diff --git a/.dir-locals.el b/.dir-locals.el index dac6cb1453..eb99a5bcc1 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -73,6 +73,9 @@ (eval . (put 'run-with-state 'scheme-indent-function 1)) (eval . (put 'wrap-program 'scheme-indent-function 1)) (eval . (put 'with-imported-modules 'scheme-indent-function 1)) + (eval . (put 'with-extensions 'scheme-indent-function 1)) + + (eval . (put 'with-database 'scheme-indent-function 2)) (eval . (put 'call-with-container 'scheme-indent-function 1)) (eval . (put 'container-excursion 'scheme-indent-function 1)) diff --git a/CODE-OF-CONDUCT b/CODE-OF-CONDUCT index 0458fd787c..ef90330cda 100644 --- a/CODE-OF-CONDUCT +++ b/CODE-OF-CONDUCT @@ -1,51 +1,78 @@ -Contributor Code of Conduct +Contributor Covenant Code of Conduct Note: In the sequel, "project" refers to GNU Guix, and "project maintainer(s)" refers to maintainer(s) of GNU Guix. -As contributors and maintainers of this project, and in the interest of -fostering an open and welcoming community, we pledge to respect all -people who contribute through reporting issues, posting feature -requests, updating documentation, submitting pull requests or patches, -and other activities. +Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +education, socio-economic status, nationality, personal appearance, race, +religion, or sexual identity and orientation. + +Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members -We are committed to making participation in this project a -harassment-free experience for everyone, regardless of level of -experience, gender, gender identity and expression, sexual orientation, -disability, personal appearance, body size, race, ethnicity, age, -religion, or nationality. Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery -* Personal attacks -* Trolling or insulting/derogatory comments + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment -* Publishing other's private information, such as physical or electronic -addresses, without explicit permission -* Other unethical or unprofessional conduct +* Publishing others’ private information, such as a physical or electronic +address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a +professional setting -Project maintainers have the right and responsibility to remove, edit, -or reject comments, commits, code, wiki edits, issues, and other -contributions that are not aligned to this Code of Conduct, or to ban -temporarily or permanently any contributor for other behaviors that they -deem inappropriate, threatening, offensive, or harmful. -By adopting this Code of Conduct, project maintainers commit themselves -to fairly and consistently applying these principles to every aspect of -managing this project. Project maintainers who do not follow or enforce -the Code of Conduct may be permanently removed from the project team. +Our Responsibilities -This Code of Conduct applies both within project spaces and in public -spaces when an individual is representing the project or its community. +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. -Instances of abusive, harassing, or otherwise unacceptable behavior may -be reported by contacting a project maintainer at guix-maintainers@gnu.org. -All complaints will be reviewed and investigated and will -result in a response that is deemed necessary and appropriate to the -circumstances. Maintainers are obligated to maintain confidentiality -with regard to the reporter of an incident. +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. -This Code of Conduct is adapted from the Contributor Covenant -(http://contributor-covenant.org), version 1.3.0, available at -http://contributor-covenant.org/version/1/3/0/ +Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at guix-maintainers@gnu.org. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project’s leadership. + +Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html diff --git a/Makefile.am b/Makefile.am index 7ea9228881..7898a3648a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -96,6 +96,7 @@ MODULES = \ guix/workers.scm \ guix/zlib.scm \ guix/build-system.scm \ + guix/build-system/android-ndk.scm \ guix/build-system/ant.scm \ guix/build-system/cargo.scm \ guix/build-system/cmake.scm \ @@ -128,6 +129,7 @@ MODULES = \ guix/svn-download.scm \ guix/i18n.scm \ guix/ui.scm \ + guix/build/android-ndk-build-system.scm \ guix/build/ant-build-system.scm \ guix/build/download.scm \ guix/build/download-nar.scm \ @@ -255,15 +257,27 @@ MODULES += \ endif BUILD_DAEMON_OFFLOAD +# Scheme implementation of the build daemon and related functionality. +STORE_MODULES = \ + guix/store/database.scm \ + guix/store/deduplication.scm + +if HAVE_GUILE_SQLITE3 +MODULES += $(STORE_MODULES) +else +MODULES_NOT_COMPILED += $(STORE_MODULES) +endif !HAVE_GUILE_SQLITE3 + # Internal modules with test suite support. dist_noinst_DATA = guix/tests.scm guix/tests/http.scm # Auxiliary files for packages. AUX_FILES = \ gnu/packages/aux-files/emacs/guix-emacs.el \ - gnu/packages/aux-files/linux-libre/4.16-arm.conf \ - gnu/packages/aux-files/linux-libre/4.16-i686.conf \ - gnu/packages/aux-files/linux-libre/4.16-x86_64.conf \ + gnu/packages/aux-files/linux-libre/4.17-arm.conf \ + gnu/packages/aux-files/linux-libre/4.17-arm64.conf \ + gnu/packages/aux-files/linux-libre/4.17-i686.conf \ + gnu/packages/aux-files/linux-libre/4.17-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.14-arm.conf \ gnu/packages/aux-files/linux-libre/4.14-i686.conf \ gnu/packages/aux-files/linux-libre/4.14-x86_64.conf \ @@ -272,7 +286,8 @@ AUX_FILES = \ gnu/packages/aux-files/linux-libre/4.4-i686.conf \ gnu/packages/aux-files/linux-libre/4.4-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.1-i686.conf \ - gnu/packages/aux-files/linux-libre/4.1-x86_64.conf + gnu/packages/aux-files/linux-libre/4.1-x86_64.conf \ + gnu/packages/aux-files/run-in-namespace.c # Templates, examples. EXAMPLES = \ @@ -375,6 +390,14 @@ SCM_TESTS += \ endif +if HAVE_GUILE_SQLITE3 + +SCM_TESTS += \ + tests/store-database.scm \ + tests/store-deduplication.scm + +endif + SH_TESTS = \ tests/guix-build.sh \ tests/guix-download.sh \ diff --git a/NEWS b/NEWS index 2c898e65f9..0ce9611e1b 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,23 @@ Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès Please send Guix bug reports to bug-guix@gnu.org. +* Changes in 0.15.0 (since 0.14.0) + +** Package management + +*** ‘guix pack’ now supports building SquashFS images +*** ‘guix pack’ can now build relocatable tarballs + +** Distribution + +*** New services + +enlightenment + +** Programming interfaces + +*** package-full-name (guix packages) now uses "@" as its delimiter. + () * Changes in 0.14.0 (since 0.13.0) ** Package management diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index bccb7a959e..5898b6515c 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -184,7 +184,8 @@ person's version identifier." (date->string (current-date 0) "~Y~m~d.~H")) (define* (build-program source version - #:optional (guile-version (effective-version))) + #:optional (guile-version (effective-version)) + #:key (pull-version 0)) "Return a program that computes the derivation to build Guix from SOURCE." (define select? ;; Select every module but (guix config) and non-Guix modules. @@ -253,11 +254,14 @@ person's version identifier." (spin system))) (display - (derivation-file-name + (and=> (run-with-store store (guix-derivation #$source #$version - #$guile-version) - #:system system))))))) + #$guile-version + #:pull-version + #$pull-version) + #:system system) + derivation-file-name)))))) #:module-path (list source)))) ;; The procedure below is our return value. @@ -266,13 +270,15 @@ person's version identifier." (guile-version (match ((@ (guile) version)) ("2.2.2" "2.2.2") (_ (effective-version)))) + (pull-version 0) #:allow-other-keys #:rest rest) "Return a derivation that unpacks SOURCE into STORE and compiles Scheme files." ;; Build the build program and then use it as a trampoline to build from ;; SOURCE. - (mlet %store-monad ((build (build-program source version guile-version)) + (mlet %store-monad ((build (build-program source version guile-version + #:pull-version pull-version)) (system (if system (return system) (current-system)))) (mbegin %store-monad (show-what-to-build* (list build)) @@ -292,6 +298,9 @@ files." (return (newline (current-output-port))) ((store-lift add-temp-root) drv) (return (read-derivation-from-file drv)))) + ("#f" + ;; Unsupported PULL-VERSION. + (return #f)) ((? string? str) (error "invalid build result" (list build str)))))))) diff --git a/build-aux/compile-as-derivation.scm b/build-aux/compile-as-derivation.scm index afb134a92a..59a84b1415 100644 --- a/build-aux/compile-as-derivation.scm +++ b/build-aux/compile-as-derivation.scm @@ -25,7 +25,8 @@ (and=> (or (getenv "XDG_CONFIG_HOME") (and=> (getenv "HOME") (cut string-append <> "/.config"))) - (cut string-append <> "/guix/latest"))) + (cute string-append <> "/guix/current/share/guile/site/" + (effective-version)))) (use-modules (guix) (guix ui) (guix git-download) @@ -43,7 +44,7 @@ (mlet* %store-monad ((source (interned-file source "guix-source" #:select? git? #:recursive? #t)) - (drv (build source))) + (drv (build source #:pull-version 1))) (mbegin %store-monad (show-what-to-build* (list drv)) (built-derivations (list drv)) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 62eb957f83..654f3ecf3e 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -264,7 +264,8 @@ all its dependencies, and ready to be installed on non-GuixSD distributions.") (define job-name ;; Return the name of a package's job. - (compose string->symbol package-full-name)) + (compose string->symbol + (cut package-full-name <> "-"))) (define package->job (let ((base-packages diff --git a/build-aux/hydra/guix-modular.scm b/build-aux/hydra/guix-modular.scm index 58e09e1831..9ff9e090fc 100644 --- a/build-aux/hydra/guix-modular.scm +++ b/build-aux/hydra/guix-modular.scm @@ -46,6 +46,7 @@ for SYSTEM. Use VERSION as the version identifier." `((derivation . ,(derivation-file-name (run-with-store store (build source #:version version #:system system + #:pull-version 1 #:guile-version "2.2")))) ;the latest 2.2.x (description . "Modular Guix") (long-description diff --git a/build-aux/test-env.in b/build-aux/test-env.in index 52082c650f..aaadcf205b 100644 --- a/build-aux/test-env.in +++ b/build-aux/test-env.in @@ -132,6 +132,7 @@ then for file in "$bootstrap_directory"/guile-* do + [ -f "$file" ] && \ "@abs_top_builddir@/pre-inst-env" \ guix download "file://$file" > /dev/null done diff --git a/configure.ac b/configure.ac index 557da63189..d338bfda53 100644 --- a/configure.ac +++ b/configure.ac @@ -124,6 +124,11 @@ dnl Guile-JSON is used in various places. GUILE_MODULE_AVAILABLE([have_guile_json], [(json)]) AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"]) +dnl Guile-Sqlite3 is used by the (guix store ...) modules. +GUIX_CHECK_GUILE_SQLITE3 +AM_CONDITIONAL([HAVE_GUILE_SQLITE3], + [test "x$guix_cv_have_recent_guile_sqlite3" = "xyes"]) + dnl Make sure we have a full-fledged Guile. GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads]) diff --git a/doc/contributing.fr.texi b/doc/contributing.fr.texi index 0ded44c5fd..fdbae637dc 100644 --- a/doc/contributing.fr.texi +++ b/doc/contributing.fr.texi @@ -3,17 +3,17 @@ Ce projet est un effort coopératif et nous avons besoin de votre aide pour le faire grandir ! Contactez-nous sur @email{guix-devel@@gnu.org} et -@code{#guix} sur le réseau IRC Freenode. Nous accueillons les idées, les -rapports de bogues, les correctifs et tout ce qui pourrait aider le -projet. Nous apprécions particulièrement toute aide sur la création de -paquets (@pxref{Consignes d'empaquetage}). +@code{#guix} sur le réseau IRC Freenode. Nous accueillons les idées, les +rapports de bogues, les correctifs et tout ce qui pourrait aider le projet. +Nous apprécions particulièrement toute aide sur la création de paquets +(@pxref{Consignes d'empaquetage}). @cindex code de conduite, des contributeurs @cindex convention de contribution Nous souhaitons fournir un environnement chaleureux, amical et sans harcèlement pour que tout le monde puisse contribuer au mieux de ses -capacités. Pour cela notre projet a une « Convention de contribution » -adaptée de @url{http://contributor-covenant.org/}. Vous pouvez trouver une +capacités. Pour cela notre projet a une « Convention de contribution » +adaptée de @url{http://contributor-covenant.org/}. Vous pouvez trouver une version locale dans le fichier @file{CODE-OF-CONDUCT} dans l'arborescence des sources. @@ -22,7 +22,7 @@ correctifs et leurs communications en ligne ; ils peuvent utiliser n'importe quel nom ou pseudonyme de leur choix. @menu -* Construire depuis Git:: The latest and greatest. +* 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. @@ -62,7 +62,7 @@ guix environment guix @end example @xref{Invoquer guix environment}, pour plus d'information sur cette -commande. On peut ajouter des dépendances supplémentaires avec +commande. On peut ajouter des dépendances supplémentaires avec @option{--ad-hoc} : @example @@ -70,7 +70,7 @@ guix environment guix --ad-hoc help2man git strace @end example Lancez @command{./bootstrap} pour générer l'infrastructure du système de -construction avec Autoconf et Automake. Si vous avez une erreur comme : +construction avec Autoconf et Automake. Si vous avez une erreur comme : @example configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES @@ -78,11 +78,11 @@ configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES @noindent cela signifie probablement qu'Autoconf n'a pas pu trouver @file{pkg.m4} qui -est fournit par pkg-config. Assurez-vous que @file{pkg.m4} est -disponible. C'est aussi vrai pour l'ensemble de macros de @file{guile.m4} -fournies par Guile. Par exemple, si vous avez installé Automake dans -@file{/usr/local}, il ne cherchera pas les fichiers @file{.m4} dans -@file{/usr/share}. Dans ce case vous devez invoquer la commande suivante : +est fournit par pkg-config. Assurez-vous que @file{pkg.m4} est disponible. +C'est aussi vrai pour l'ensemble de macros de @file{guile.m4} fournies par +Guile. Par exemple, si vous avez installé Automake dans @file{/usr/local}, +il ne cherchera pas les fichiers @file{.m4} dans @file{/usr/share}. Dans ce +case vous devez invoquer la commande suivante : @example export ACLOCAL_PATH=/usr/share/aclocal @@ -91,13 +91,13 @@ export ACLOCAL_PATH=/usr/share/aclocal @xref{Macro Search Path,,, automake, The GNU Automake Manual}, pour plus d'information. -Ensuite, lancez @command{./configure} comme d'habitude. Assurez-vous de +Ensuite, lancez @command{./configure} comme d'habitude. Assurez-vous de passer @code{--localstatedir=@var{directory}} où @var{directory} est la valeur @code{localstatedir} utilisée par votre installation actuelle (@pxref{Le dépôt} pour plus d'informations à ce propos). Finalement, vous devez invoquer @code{make check} pour lancer les tests -(@pxref{Lancer la suite de tests}). Si quelque chose échoue, jetez un œil +(@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}. @@ -106,12 +106,12 @@ aux instructions d'installation (@pxref{Installation}) ou envoyez un message @section Lancer Guix avant qu'il ne soit installé Pour garder un environnement de travail sain, il est utile de tester les -changement localement sans les installer pour de vrai. Pour pouvoir +changement localement sans les installer pour de vrai. Pour pouvoir distinguer votre rôle « d'utilisateur final » de celui parfois haut en couleur de « développeur ». Pour cela, tous les outils en ligne de commande sont utilisables même sans -avoir lancé @code{make install}. Vous devez pour cela préfixer chaque +avoir lancé @code{make install}. Vous devez pour cela préfixer chaque commande par @command{./pre-inst-env} (le script @file{pre-inst-env} se trouve dans le répertoire de plus haut niveau de l'arborescence des sources de Guix) comme cela@footnote{L'option @option{-E} de @command{sudo} garantie @@ -160,12 +160,12 @@ d'environnement nécessaires, dont @env{PATH} et @env{GUILE_LOAD_PATH}. Remarquez que @command{./pre-inst-env guix pull} ne met @emph{pas} à jour l'arborescence des sources locale ; il met seulement à jour le lien -symbolique @file{~/.config/guix/latest} (@pxref{Invoquer guix pull}). Lancez -@command{git pull} à la place si vous voulez mettre à jour votre +symbolique @file{~/.config/guix/latest} (@pxref{Invoquer guix pull}). +Lancez @command{git pull} à la place si vous voulez mettre à jour votre arborescence des sources locale@footnote{Si vous voulez paramétrer @command{guix} pour qu'il utilise votre dépôt Git, vous pouvez faire pointer le lien symbolique @file{~/.config/guix/latest} vers le répertoire contenant -ce dépôt. Si vous le seul utilisateur du système, vous pouvez aussi +ce dépôt. Si vous le seul utilisateur du système, vous pouvez aussi considérer faire pointer le lien symbolique @file{/root/.config/guix/latest} vers @file{~/.config/guix/latest} ; comme ça root aura toujours la même commande @command{guix} que votre utilisateur}. @@ -176,7 +176,7 @@ commande @command{guix} que votre utilisateur}. 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 +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}. @@ -185,10 +185,10 @@ 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 documentation en ligne (docstrings), la complétion sensible au contexte, @kbd{M-.} pour sauter à la définition d'un objet, un REPL pour tester votre -code, et bien plus (@pxref{Introduction,,, geiser, Geiser User -Manual}). Pour travailler confortablement sur Guix, assurez-vous de modifier -le chemin de chargement de Guile pour qu'il trouve les fichiers source de -votre dépôt : +code, et bien plus (@pxref{Introduction,,, geiser, Geiser User Manual}). +Pour travailler confortablement sur Guix, assurez-vous de modifier le chemin +de chargement de Guile pour qu'il trouve les fichiers source de votre dépôt +: @lisp ;; @r{Si l'extrait est dans ~/src/guix.} @@ -196,21 +196,21 @@ votre dépôt : (add-to-list 'geiser-guile-load-path "~/src/guix")) @end lisp -To actually edit the code, Emacs already has a neat Scheme mode. But in -addition to that, you must not miss -@url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. It provides -facilities to directly operate on the syntax tree, such as raising an -s-expression or wrapping it, swallowing or rejecting the following -s-expression, etc. +Pour effectivement éditer le code, Emacs a déjà un très bon mode Scheme. +Mais en plus de ça, vous ne devez pas rater +@url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. Il fournit des +fonctionnalités pour opérer directement sur l'arbre de syntaxe, comme +relever une s-expression ou l'envelopper, absorber ou rejeter la +s-expression suivante, etc. @cindex extraits de code @cindex modèles @cindex réduire la quantité de code commun Nous fournissons aussi des modèles pour les messages de commit git communs -et les définitions de paquets dans le répertoire @file{etc/snippets}. Ces +et les définitions de paquets dans le répertoire @file{etc/snippets}. Ces modèles s'utilisent avec @url{http://joaotavora.github.io/yasnippet/, YASnippet} pour développer des chaînes courtes de déclenchement en extraits -de texte interactifs. Vous pouvez ajouter le répertoire des modèles dans la +de texte interactifs. Vous pouvez ajouter le répertoire des modèles dans la variables @var{yas-snippet-dirs} d'Emacs. @lisp @@ -220,14 +220,14 @@ variables @var{yas-snippet-dirs} d'Emacs. @end lisp Les extraits de messages de commit dépendent de @url{https://magit.vc/, -Magit} pour afficher les fichiers sélectionnés. Lors de la modification d'un -message de commit, tapez @code{add} suivi de @kbd{TAB} pour insérer un +Magit} pour afficher les fichiers sélectionnés. Lors de la modification +d'un message de commit, tapez @code{add} suivi de @kbd{TAB} pour insérer un modèle de message de commit pour ajouter un paquet ; tapez @code{update} suivi de @kbd{TAB} pour insérer un modèle pour la mise à jour d'un paquet. L'extrait principal pour @code{scheme-mode} est lancé en tapant -@code{package…} suivi par @kbd{TAB}. Cet extrait insère aussi la chaîne de -déclenchement @code{origin…}, qui peut aussi être étendue. L'extrait +@code{package…} suivi par @kbd{TAB}. Cet extrait insère aussi la chaîne de +déclenchement @code{origin…}, qui peut aussi être étendue. L'extrait @code{origin} lui-même peut aussi insérer des chaînes de déclenchement qui finissent sur @code{…}, qui peuvent aussi être étendues. @@ -236,7 +236,7 @@ finissent sur @code{…}, qui peuvent aussi être étendues. @section Style de code En général notre code suit le Standard de Code GNU (@pxref{Top,,, standards, -GNU Coding Standards}). Cependant, il ne parle pas beaucoup de Scheme, donc +GNU Coding Standards}). Cependant, il ne parle pas beaucoup de Scheme, donc voici quelques règles supplémentaires. @menu @@ -250,7 +250,7 @@ voici quelques règles supplémentaires. @node Paradigme de programmation @subsection Paradigme de programmation -Le code Scheme dans Guix est écrit dans un style purement fonctionnel. Le +Le code Scheme dans Guix est écrit dans un style purement fonctionnel. Le code qui s'occupe des entrées-sorties est une exception ainsi que les procédures qui implémentent des concepts bas-niveau comme la procédure @code{memoize}. @@ -259,8 +259,8 @@ procédures qui implémentent des concepts bas-niveau comme la procédure @subsection Modules Les modules Guile qui sont sensés être utilisés du côté de la construction -doivent se trouver dans l'espace de nom @code{(guix build @dots{})}. Ils ne -doivent pas se référer à d'autres modules Guix ou GNU. Cependant il est +doivent se trouver dans l'espace de nom @code{(guix build @dots{})}. Ils ne +doivent pas se référer à d'autres modules Guix ou GNU@. Cependant il est correct pour un module « côté hôte » de dépendre d'un module coté construction. @@ -272,13 +272,13 @@ l'espace de nom @code{(gnu @dots{})} plutôt que @code{(guix @dots{})}. La tendance en Lisp classique est d'utiliser des listes pour tout représenter et de naviguer dedans « à la main ( avec @code{car}, @code{cdr}, -@code{cadr} et compagnie. Il y a plusieurs problèmes avec ce style, +@code{cadr} et compagnie. Il y a plusieurs problèmes avec ce style, notamment le fait qu'il soit dur à lire, source d'erreur et un obstacle aux rapports d'erreur bien typés. Le code de Guix devrait définir des types de données appropriées (par -exemple, avec @code{define-record-type*}) plutôt que d'abuser des listes. En -plus, il devrait utiliser la recherche de motifs, via le module Guile +exemple, avec @code{define-record-type*}) plutôt que d'abuser des listes. +En plus, il devrait utiliser la recherche de motifs, via le module Guile @code{(ice-9 match)}, surtout pour rechercher dans des listes. @node Formatage du code @@ -287,22 +287,22 @@ plus, il devrait utiliser la recherche de motifs, via le module Guile @cindex formater le code @cindex style de code Lorsque nous écrivons du code Scheme, nous suivons la sagesse commune aux -programmeurs Scheme. En général, nous suivons les +programmeurs Scheme. En général, nous suivons les @url{http://mumble.net/~campbell/scheme/style.txt, règles de style de -Riastradh}. Ce document décrit aussi les conventions utilisées dans le code -de Guile. Il est bien pensé et bien écrit, alors n'hésitez pas à le lire. +Riastradh}. Ce document décrit aussi les conventions utilisées dans le code +de Guile. Il est bien pensé et bien écrit, alors n'hésitez pas à le lire. Certaines formes spéciales introduites dans Guix comme la macro -@code{substitute*} ont des règles d'indentation spécifiques. Elles sont +@code{substitute*} ont des règles d'indentation spécifiques. Elles sont définies dans le fichier @file{.dir-locals.el} qu'Emacs utilise -automatiquement. Remarquez aussi qu'Emacs-Guix fournit le mode +automatiquement. Remarquez aussi qu'Emacs-Guix fournit le mode @code{guix-devel-mode} qui indente et colore le code Guix correctement (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual}). @cindex indentation, du code @cindex formatage, du code Si vous n'utilisez pas Emacs, assurez-vous que votre éditeur connaisse ces -règles. Pour indenter automatiquement une définition de paquet, vous pouvez +règles. Pour indenter automatiquement une définition de paquet, vous pouvez aussi lancer : @example @@ -311,16 +311,24 @@ aussi lancer : @noindent Cela indente automatiquement la définition de @var{package} dans -@file{gnu/packages/@var{file}.scm} en lançant Emacs en mode commande. Pour +@file{gnu/packages/@var{file}.scm} en lançant Emacs en mode commande. Pour indenter un fichier complet, n'indiquez pas de second argument : @example ./etc/indent-code.el gnu/services/@var{file}.scm @end example +@cindex Vim, édition de code Scheme +Si vous éditez du code avec Vim, nous recommandons de lancer @code{:set +autoindent} pour que votre code soit automatiquement indenté au moment où +vous l'entrez. En plus, +@uref{https://www.vim.org/scripts/script.php?script_id=3998, +@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 @@ -330,14 +338,14 @@ prennent plus de quatre paramètres. @node Envoyer des correctifs @section Envoyer des correctifs -Le développement se fait avec le système de contrôle de version Git. Ainsi, -l'accès au dépôt n'est pas strictement nécessaire. Nous accueillons les +Le développement se fait avec le système de contrôle de version Git. Ainsi, +l'accès au dépôt n'est pas strictement nécessaire. Nous accueillons les contributions sous forme de correctifs produits par @code{git format-patch} envoyés sur la liste de diffusion @email{guix-patches@@gnu.org}. Cette liste de diffusion est gérée par une instance Debbugs accessible à l'adresse @uref{https://bugs.gnu.org/guix-patches}, qui nous permet de -suivre les soumissions. Chaque message envoyé à cette liste se voit +suivre les soumissions. Chaque message envoyé à cette liste se voit attribuer un numéro de suivi ; les gens peuvent ensuite répondre à cette soumission en envoyant un courriel à @code{@var{NNN}@@debbugs.gnu.org}, où @var{NNN} est le numéro de suivi (@pxref{Envoyer une série de correctifs}). @@ -352,13 +360,13 @@ paquet, veuillez vérifier cette check-list : @enumerate @item Si les auteurs du paquet logiciel fournissent une signature cryptographique -pour l'archive, faîtes un effort pour vérifier l'authenticité de -l'archive. Pour un fichier de signature GPG détaché, cela se fait avec la -commande @code{gpg --verify}. +pour l'archive, faîtes un effort pour vérifier l'authenticité de l'archive. +Pour un fichier de signature GPG détaché, cela se fait avec la commande +@code{gpg --verify}. @item Prenez un peu de temps pour fournir un synopsis et une description adéquats -pour le paquet. Voir @xref{Synopsis et descriptions} pour quelques lignes +pour le paquet. Voir @xref{Synopsis et descriptions} pour quelques lignes directrices. @item @@ -376,9 +384,9 @@ Assurez-vous que le paquet n'utilise pas de copie groupée d'un logiciel déjà disponible dans un paquet séparé. Parfois, les paquets incluent des copie du code source de leurs dépendances -pour le confort de leurs utilisateurs. Cependant, en tant que distribution, +pour le confort de leurs utilisateurs. Cependant, en tant que distribution, nous voulons nous assurer que ces paquets utilisent bien les copient que -nous avons déjà dans la distribution si elles existent. Cela améliore +nous avons déjà dans la distribution si elles existent. Cela améliore l'utilisation des ressources (la dépendance n'est construite et stockée qu'une seule fois) et permet à la distribution de faire des changements transversaux comme appliquer des correctifs de sécurité pour un paquet donné @@ -386,8 +394,8 @@ 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 +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. @@ -413,27 +421,27 @@ 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 -être fusionnées dans @code{master} tous les 3 semaines. Les changements par +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}). @item plus de 1 200 paquets dépendants branche @code{core-updates} (peut inclure des changements majeurs et -potentiellement disruptifs). Cette branche devrait être fusionnée dans +potentiellement disruptifs). Cette branche devrait être fusionnée dans @code{master} tous les 2,5 mois environ. @end table Toutes ces branches sont gérées par notre ferme de construction et fusionnées dans @code{master} une fois que tout a été construit -correctement. Cela nous permet de corriger des problèmes avant qu'ils +correctement. Cela nous permet de corriger des problèmes avant qu'ils n'atteignent les utilisateurs et réduit la fenêtre pendant laquelle les binaires pré-construits ne sont pas disponibles. @item @cindex déterminisme, du processus de construction @cindex construction reproductibles, vérification -Vérifiez si le processus de construction du paquet est déterministe. Cela +Vérifiez si le processus de construction du paquet est déterministe. Cela signifie typiquement vérifier qu'une construction indépendante du paquet renvoie exactement le même résultat que vous avez obtenu, bit à bit. @@ -449,10 +457,10 @@ comme l'horodatage ou des sorties générées aléatoirement dans le résultat d la construction. Une autre option consiste à utiliser @command{guix challenge} -(@pxref{Invoquer guix challenge}). Vous pouvez lancer la commande une fois +(@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 +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 — @@ -466,8 +474,8 @@ neutre lorsque vous vous référez à des personnes, comme le @item Vérifiez que votre correctif contienne seulement un ensemble de changements -liés. Grouper des changements non liés ensemble rend la revue plus difficile -et plus lente. +liés. Grouper des changements non liés ensemble rend la revue plus +difficile et plus lente. Ajouter plusieurs paquet ou une mise à jour d'un paquet avec des corrections dans ce paquet sont des exemples de changements sans rapport. @@ -480,10 +488,10 @@ du code}). @end enumerate Lorsque vous envoyez un correctif à la liste de diffusion, utilisez -@samp{[PATCH] @dots{}} comme sujet. Vous pouvez utiliser votre client de +@samp{[PATCH] @dots{}} comme sujet. Vous pouvez utiliser votre client de courriel ou la commande @command{git send-email} (@pxref{Envoyer une série -de correctifs}). Nous préférons recevoir des correctifs en texte brut, soit -en ligne, soit en pièce-jointe MIME. Nous vous conseillons de faire +de correctifs}). Nous préférons recevoir des correctifs en texte brut, soit +en ligne, soit en pièce-jointe MIME@. Nous vous conseillons de faire attention si votre client de courriel change par exemple les retours à la ligne ou l'indentation, ce qui peut casser les correctifs. @@ -497,9 +505,9 @@ Lorsqu'un bogue est résolu, veuillez fermer le fil en envoyant un courriel à @cindex @code{git-send-email} @c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html -Lorsque vous envoyez une série de correctifs (p.e. avec @code{git +Lorsque vous envoyez une série de correctifs (p.@@:: ex.@: avec @code{git send-email}), envoyez d'abord une premier message à @email{guix-patches@@gnu.org} puis envoyez le reste des correctifs à @email{@var{NNN}@@debbugs.gnu.org} pour vous assurer qu'ils seront groupés -ensemble. Voyez @uref{https://debbugs.gnu.org/Advanced.html, la +ensemble. Voyez @uref{https://debbugs.gnu.org/Advanced.html, la documentation de Debbugs} pour plus d'informations. diff --git a/doc/contributing.texi b/doc/contributing.texi index 2792fe2b29..205c972aea 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -155,15 +155,9 @@ The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}. Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the -local source tree; it simply updates the @file{~/.config/guix/latest} +local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if -you want to upgrade your local source tree.@footnote{If you would like -to set up @command{guix} to use your Git checkout, you can point the -@file{~/.config/guix/latest} symlink to your Git checkout directory. -If you are the sole user of your system, you may also consider pointing -the @file{/root/.config/guix/latest} symlink to point to -@file{~/.config/guix/latest}; this way it will always use the same -@command{guix} as your user does.} +you want to upgrade your local source tree. @node The Perfect Setup diff --git a/doc/guix.fr.texi b/doc/guix.fr.texi index 5ad167a317..c61dc1e01c 100644 --- a/doc/guix.fr.texi +++ b/doc/guix.fr.texi @@ -10,6 +10,7 @@ @setfilename guix.fr.info @documentencoding UTF-8 @documentlanguage fr +@frenchspacing on @settitle Manuel de référence de GNU Guix @c %**end of header @@ -43,14 +44,14 @@ Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike -Gerwitz +Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby Vous avez la permission de copier, distribuer ou modifier ce document sous les termes de la Licence GNU Free Documentation, version 1.3 ou toute version ultérieure publiée par la Free Software Foundation ; sans section -invariante, texte de couverture et sans texte de quatrième de -couverture. Une copie de la licence est incluse dans la section intitulée -« GNU Free Documentation License ». +invariante, texte de couverture et sans texte de quatrième de couverture. +Une copie de la licence est incluse dans la section intitulée « GNU Free +Documentation License ». @end copying @dircategory Administration système @@ -95,8 +96,8 @@ couverture. Une copie de la licence est incluse dans la section intitulée @node Top @top GNU Guix -Cette documentation décrit GNU Guix version @value{VERSION}, un outils de -gestion de paquets fonctionnel écrit pour le système GNU. +Cette documentation décrit GNU Guix version @value{VERSION}, un outil de +gestion de paquets fonctionnel écrit pour le système GNU@. @menu * Introduction:: Qu'est-ce que Guix ? @@ -146,7 +147,7 @@ Gestion de paquets * Fonctionnalités:: Comment Guix va rendre votre vie plus heureuse. -* Invoquer guix package:: Installation, suppression, etc. de paquets. +* Invoquer guix package:: Installation, suppression, etc.@: de paquets. * Substituts:: Télécharger des binaire déjà construits. * Des paquets avec plusieurs résultats:: Un seul paquet source, plusieurs résultats. @@ -250,14 +251,15 @@ Installation du système d'installation. * Préparer l'installation:: Réseau, partitionnement, etc. * Effectuer l'installation:: Pour de vrai. -* Installer GuixSD dans une VM:: Jouer avec GuixSD. +* Installer GuixSD dans une VM:: Jouer avec GuixSD@. * Construire l'image d'installation:: D'où vient tout cela. Configuration système -* Utiliser le système de configuration:: Personnaliser votre système GNU. +* Utiliser le système de configuration:: Personnaliser votre système + GNU@. * Référence de système d'exploitation:: Détail sur la déclaration de système d'exploitation. * Systèmes de fichiers:: Configurer les montages de systèmes de @@ -268,7 +270,7 @@ Configuration système culturelles. * Services:: Spécifier les services du système. * Programmes setuid:: Programmes tournant avec les privilèges root. -* Certificats X.509:: Authentifier les serveurs HTTPS. +* Certificats X.509:: Authentifier les serveurs HTTPS@. * Name Service Switch:: Configurer le « name service switch » de la libc. * Disque de RAM initial:: Démarrage de Linux-Libre. @@ -284,30 +286,33 @@ Services * Services de base:: Services systèmes essentiels. -* Scheduled Job Execution:: The mcron service. -* Log Rotation:: The rottlog service. -* Networking Services:: Network setup, SSH daemon, etc. -* X Window:: Graphical display. -* Printing Services:: Local and remote printer support. -* Desktop Services:: D-Bus and desktop services. -* Database Services:: SQL databases, key-value stores, etc. -* Mail Services:: IMAP, POP3, SMTP, and all that. -* Messaging Services:: Messaging services. -* Telephony Services:: Telephony services. -* Monitoring Services:: Monitoring services. -* Kerberos Services:: Kerberos services. -* Web Services:: Web servers. -* Certificate Services:: TLS certificates via Let's Encrypt. -* DNS Services:: DNS daemons. -* VPN Services:: VPN daemons. -* Network File System:: NFS related services. -* Continuous Integration:: The Cuirass service. -* Power management Services:: The TLP tool. -* Audio Services:: The MPD. -* Virtualization Services:: Virtualization services. -* Version Control Services:: Providing remote access to Git repositories. -* Game Services:: Game servers. -* Miscellaneous Services:: Other services. +* 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. +* Système de fenêtrage X:: Affichage graphique. +* Services d'impression:: Support pour les imprimantes locales et + distantes. +* Services de bureaux:: D-Bus et les services de bureaux. +* Sound Services:: ALSA and Pulseaudio services. +* Services de bases de données:: Bases SQL, clefs-valeurs, etc. +* Services de courriels:: IMAP, POP3, SMTP, et tout ça. +* Services de messagerie:: Services de messagerie. +* Services de téléphonie:: Services de téléphonie. +* Services de surveillance:: Services de surveillance. +* Services Kerberos:: Services Kerberos. +* Services web:: Services web. +* Services de certificats:: Certificats TLS via Let's Encrypt. +* Services DNS:: Démons DNS@. +* Services VPN:: Démons VPN +* Système de fichiers en réseau:: Services liés à NFS@. +* Intégration continue:: Le service Cuirass. +* Services de gestion de l'énergie:: L'outil TLP@. +* Services audio:: MPD@. +* Services de virtualisation:: Services de virtualisation. +* Services de contrôle de version:: Fournit des accès distants à des + dépôts Git. +* Services de jeu:: Serveurs de jeu. +* Services divers:: D'autres services. Définir des services @@ -315,7 +320,7 @@ Définir des services * Composition de services:: Le modèle de composition des services. * Types service et services:: Types et services. -* Référence de service:: Référence de l'API. +* Référence de service:: Référence de l'API@. * Services Shepherd:: Un type de service particulier. Consignes d'empaquetage @@ -330,13 +335,13 @@ Consignes d'empaquetage * Modules python:: Un peu de comédie anglaise. * Modules perl:: Petites perles. * Paquets java:: Pause café. -* Polices de caractères:: Fond of fonts. +* Polices de caractères:: À fond les fontes. Contribuer -* Construire depuis Git:: The latest and greatest. +* 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. @@ -362,7 +367,7 @@ Style de code @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 +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 @@ -383,9 +388,9 @@ téléchargement des binaires pré-construits depuis les sources autorisées @cindex personnalisation, des paquets Guix contient de nombreuses définitions de paquet GNU et non-GNU qui respectent tous les @uref{https://www.gnu.org/philosophy/free-sw.fr.html, -libertés de l'utilisateur}. Il est @emph{extensible} : les utilisateurs +libertés de l'utilisateur}. Il est @emph{extensible} : les utilisateurs peuvent écrire leurs propres définitions de paquets (@pxref{Définition des paquets}) et les rendre disponibles dans des modules de paquets -indépendants (@pxref{Modules de paquets}). Il est aussi +indépendants (@pxref{Modules de paquets}). Il est aussi @emph{personnalisable} : les utilisateurs peuvent @emph{dériver} des 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}). @@ -395,7 +400,7 @@ depuis la ligne de commande (@pxref{Options de transformation de paquets}). 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 +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 @@ -403,27 +408,27 @@ système}). @cindex gestion de paquet fonctionnelle Sous le capot, Guix implémente la discipline de @dfn{gestion de paquet -fonctionnel} inventé par Nix (@pxref{Remerciements}). Dans Guix le processus -de construction et d'installation des paquets est vu comme une -@emph{fonction} dans le sens mathématique du terme. Cette fonction a des +fonctionnel} inventé par Nix (@pxref{Remerciements}). Dans Guix le +processus de construction et d'installation des paquets est vu comme une +@emph{fonction} dans le sens mathématique du terme. Cette fonction a des entrées (comme des scripts de construction, un compilateur et des -bibliothèques) et renvoie un paquet installé. En tant que fonction pure, son -résultat ne dépend que de ses entrées. Par exemple, il ne peut pas faire -référence à des logiciels ou des scripts qui n'ont pas été explicitement -passés en entrée. Une fonction de construction produit toujours le même -résultat quand on lui donne le même ensemble d'entrée. Elle ne peut pas -modifier l'environnement du système en cours d'exécution d'aucune manière ; -par exemple elle ne peut pas créer, modifier ou supprimer des fichiers en -dehors de ses répertoires de construction et d'installation. Ce résultat -s'obtient en lançant les processus de construction dans des environnements -isolés (ou des @dfn{conteneurs}) où seules les entrées explicites sont -visibles. +bibliothèques) et renvoie un paquet installé. En tant que fonction pure, +son résultat ne dépend que de ses entrées. Par exemple, il ne peut pas +faire référence à des logiciels ou des scripts qui n'ont pas été +explicitement passés en entrée. Une fonction de construction produit +toujours le même résultat quand on lui donne le même ensemble d'entrée. +Elle ne peut pas modifier l'environnement du système en cours d'exécution +d'aucune manière ; par exemple elle ne peut pas créer, modifier ou supprimer +des fichiers en dehors de ses répertoires de construction et +d'installation. Ce résultat s'obtient en lançant les processus de +construction dans des environnements isolés (ou des @dfn{conteneurs}) où +seules les entrées explicites sont visibles. @cindex dépôt Le résultat des fonctions de construction de paquets est mis en @dfn{cache} dans le système de fichier, dans répertoire spécial appelé le @dfn{dépôt} -(@pxref{Le dépôt}). Chaque paquet est installé dans son répertoire propre -dans le dépôt — par défaut dans @file{/gnu/store}. Le nom du répertoire +(@pxref{Le dépôt}). Chaque paquet est installé dans son répertoire propre +dans le dépôt — par défaut dans @file{/gnu/store}. Le nom du répertoire contient un hash de toutes les entrées utilisées pour construire le paquet ; ainsi, changer une entrée donnera un nom de répertoire différent. @@ -439,19 +444,19 @@ de miettes pour les paquets (@pxref{Fonctionnalités}). @cindex installer Guix 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. +@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 +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}. @cindex distro extérieure Lorsqu'il est installé sur an 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, +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. @@ -473,39 +478,40 @@ Une fois installé, Guix peut être mis à jour en lançant @command{guix pull} @node Installation binaire @section Installation binaire -@cindex installing Guix from binaries -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. +@cindex installer Guix depuis les binaires +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. -We provide a +Nous fournissons un script @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, -shell installer script}, which automates the download, installation, and -initial configuration of Guix. It should be run as the root user. +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. -Installing goes along these lines: +L'installation se comme ceci : @enumerate @item -@cindex downloading Guix binary -Download the binary tarball from -@indicateurl{ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz}, -where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine -already running the kernel Linux, and so on. +@cindex téléchargement du Guix binaire +Téléchargez l'archive binaire depuis +@indicateurl{ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{système}.tar.xz}, +où @var{système} est @code{x86_64-linux} pour une machine @code{x86_64} sur +laquelle tourne déjà le noyau Linux, etc. @c The following is somewhat duplicated in ``System Installation''. -Make sure to download the associated @file{.sig} file and to verify the -authenticity of the tarball against it, along these lines: +Assurez-vous de télécharger le fichier @file{.sig} associé et de vérifier +l'authenticité de l'archive avec, comme ceci : @example -$ wget ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig -$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig +$ wget ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{système}.tar.xz.sig +$ gpg --verify guix-binary-@value{VERSION}.@var{système}.tar.xz.sig @end example -If that command fails because you do not have the required public key, then -run this command to import it: +Si cette commande échoue parce que vous n'avez pas la clef publique requise, +lancez cette commande pour l'importer : @example $ gpg --keyserver pgp.mit.edu --recv-keys @value{OPENPGP-SIGNING-KEY-ID} @@ -513,44 +519,46 @@ $ gpg --keyserver pgp.mit.edu --recv-keys @value{OPENPGP-SIGNING-KEY-ID} @noindent @c end authentication part -and rerun the @code{gpg --verify} command. +et relancez la commande @code{gpg --verify}. @item -Now, you need to become the @code{root} user. Depending on your -distribution, you may have to run @code{su -} or @code{sudo -i}. As -@code{root}, run: +Maintenant, vous devez devenir l'utilisateur @code{root}. En fonction de +votre distribution, vous devrez lancer @code{su -} ou @code{sudo -i}. En +tant que @code{root}, lancez : @example # cd /tmp # tar --warning=no-timestamp -xf \ - guix-binary-@value{VERSION}.@var{system}.tar.xz + guix-binary-@value{VERSION}.@var{système}.tar.xz # mv var/guix /var/ && mv gnu / @end example -This creates @file{/gnu/store} (@pxref{Le dépôt}) and @file{/var/guix}. -The latter contains a ready-to-use profile for @code{root} (see next step.) +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} +(voir les étapes suivantes). -Do @emph{not} unpack the tarball on a working Guix system since that would -overwrite its own essential files. +Ne décompressez @emph{pas} l'archive sur un système Guix lancé car cela +écraserait ses propres fichiers essentiels. -The @code{--warning=no-timestamp} option makes sure GNU@tie{}tar does not -emit warnings about ``implausibly old time stamps'' (such warnings were -triggered by GNU@tie{}tar 1.26 and older; recent versions are fine.) They -stem from the fact that all the files in the archive have their modification -time set to zero (which means January 1st, 1970.) This is done on purpose -to make sure the archive content is independent of its creation time, thus -making it reproducible. +L'option @code{--warning=no-timestamp} s'assure que GNU@tie{}tar ne produise +pas d'avertissement disant que « l'horodatage est trop vieux pour être +plausible » (ces avertissements étaient produits par GNU@tie{}tar 1.26 et +précédents ; les versions récentes n'ont pas ce problème). Cela vient du +fait que les fichiers de l'archive ont pour date de modification zéro (ce +qui signifie le 1er janvier 1970). C'est fait exprès pour s'assurer que le +contenu de l'archive ne dépende pas de la date de création, ce qui la rend +reproductible. @item -Make @code{root}'s profile available under @file{~root/.guix-profile}: +Rendez le profil de @code{root} disponible sous @file{~root/.guix-profile} : @example # ln -sf /var/guix/profiles/per-user/root/guix-profile \ ~root/.guix-profile @end example -Source @file{etc/profile} to augment @code{PATH} and other relevant -environment variables: +Sourcez @file{etc/profile} pour augmenter @code{PATH} et les autres +variables d'environnement nécessaires : @example # GUIX_PROFILE="`echo ~root`/.guix-profile" ; \ @@ -558,14 +566,14 @@ environment variables: @end example @item -Create the group and user accounts for build users as explained below -(@pxref{Réglages de l'environnement de construction}). +Créez le groupe et les comptes utilisateurs pour les utilisateurs de +construction comme expliqué plus loin (@pxref{Réglages de l'environnement de construction}). @item -Run the daemon, and set it to automatically start on boot. +Lancez le démon et paramétrez-le pour démarrer automatiquement au démarrage. -If your host distro uses the systemd init system, this can be achieved with -these commands: +Si votre distribution hôte utilise le système d'initialisation systemd, cela +peut se faire avec ces commandes : @c Versions of systemd that supported symlinked service files are not @c yet widely deployed, so we should suggest that users copy the service @@ -580,7 +588,7 @@ these commands: # systemctl start guix-daemon && systemctl enable guix-daemon @end example -If your host distro uses the Upstart init system: +Si votre distribution hôte utilise le système d'initialisation Upstart : @example # initctl reload-configuration @@ -588,15 +596,15 @@ If your host distro uses the Upstart init system: # start guix-daemon @end example -Otherwise, you can still start the daemon manually with: +Sinon, vous pouvez toujours démarrer le démon manuellement avec : @example # ~root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild @end example @item -Make the @command{guix} command available to other users on the machine, for -instance with: +Rendez la commande @command{guix} disponible pour les autres utilisateurs +sur la machine, par exemple avec : @example # mkdir -p /usr/local/bin @@ -604,8 +612,8 @@ instance with: # ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix @end example -It is also a good idea to make the Info version of this manual available -there: +C'est aussi une bonne idée de rendre la version Info de ce manuel disponible +ici : @example # mkdir -p /usr/local/share/info @@ -614,13 +622,13 @@ there: do ln -s $i ; done @end example -That way, assuming @file{/usr/local/share/info} is in the search path, -running @command{info guix} will open this manual (@pxref{Other Info -Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info -search path.) +Comme cela, en supposant que @file{/usr/local/share/info} est dans le chemin +de recherche, lancer @command{info guix} ouvrira ce manuel (@pxref{Other +Info Directories,,, texinfo, GNU Texinfo}, pour plus de détails sur comment +changer le chemin de recherche de Info). @item -@cindex substitutes, authorization thereof +@cindex substituts, autorisations Pour utiliser les substituts de @code{hydra.gnu.org} ou l'un de ses mirroirs (@pxref{Substituts}), autorisez-les : @@ -629,169 +637,178 @@ Pour utiliser les substituts de @code{hydra.gnu.org} ou l'un de ses mirroirs @end example @item -Each user may need to perform a few additional steps to make their Guix -environment ready for use, @pxref{Réglages applicatifs}. +Chaque utilisateur peut avoir besoin d'effectuer des étapes supplémentaires +pour que leur environnement Guix soit prêt à être utilisé, +@pxref{Réglages applicatifs}. @end enumerate -Voilà, the installation is complete! +Voilà, l'installation est terminée ! -You can confirm that Guix is working by installing a sample package into the -root profile: +Vous pouvez confirmer que Guix fonctionne en installant un paquet d'exemple +dans le profil de root : @example # guix package -i hello @end example -The @code{guix} package must remain available in @code{root}'s profile, or -it would become subject to garbage collection---in which case you would find -yourself badly handicapped by the lack of the @command{guix} command. In -other words, do not remove @code{guix} by running @code{guix package -r -guix}. +Le paquet @code{guix} doit rester disponible dans le profil de @code{root} +ou il pourrait être sujet au ramassage de miettes — dans ce cas vous vous +retrouveriez gravement handicapé par l'absence de la commande +@command{guix}. En d'autres termes, ne supprimez pas @code{guix} en lançant +@code{guix package -r guix}. -The binary installation tarball can be (re)produced and verified simply by -running the following command in the Guix source tree: +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 : @example make guix-binary.@var{system}.tar.xz @end example @noindent -... which, in turn, runs: +… ce qui à son tour lance : @example guix pack -s @var{system} --localstatedir guix @end example -@xref{Invoquer guix pack}, for more info on this handy tool. +@xref{Invoquer guix pack}, pour plus d'info sur cet outil pratique. @node Prérequis @section Prérequis -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. +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. -GNU Guix depends on the following packages: +GNU Guix dépend des paquets suivants : @itemize -@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or -later, including 2.2.x; -@item @url{http://gnupg.org/, GNU libgcrypt}; +@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 ou +ultérieure, dont 2.2.x, +@item @url{http://gnupg.org/, GNU libgcrypt}, @item -@uref{http://gnutls.org/, GnuTLS}, specifically its Guile bindings +@uref{http://gnutls.org/, GnuTLS}, en particulier ses liaisons Guile (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, -gnutls-guile, GnuTLS-Guile}); +gnutls-guile, GnuTLS-Guile}), @item @c FIXME: Specify a version number once a release has been made. -@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 -or later; -@item @url{http://zlib.net, zlib}; +@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, d'août 2017 ou +ultérieur, +@item @url{http://zlib.net, zlib}, @item @url{http://www.gnu.org/software/make/, GNU Make}. @end itemize -The following dependencies are optional: +Les dépendances suivantes sont facultatives : @itemize @item -Installing @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} -will allow you to use the @command{guix import pypi} command -(@pxref{Invoquer guix import}). It is of interest primarily for developers -and not for casual users. +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'. -Support for build offloading (@pxref{Réglages du délestage du démon}) and -@command{guix copy} (@pxref{Invoquer guix copy}) depends on +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 or later. +0.10.2 ou ulltérieure. @item -When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} -can use it to compress build logs. +Lorsque @url{http://www.bzip.org, libbz2} est disponible, +@command{guix-daemon} peut l'utiliser pour compresser les journaux de +construction. @end itemize -Unless @code{--disable-daemon} was passed to @command{configure}, the -following packages are also needed: +À moins que @code{--disable-daemon} ne soit passé à @command{configure}, les +paquets suivants sont aussi requis : @itemize -@item @url{http://sqlite.org, SQLite 3}; -@item @url{http://gcc.gnu.org, GCC's g++}, with support for the -C++11 standard. +@item @url{http://sqlite.org, SQLite 3}, +@item @url{http://gcc.gnu.org, GCC's g++}, avec le support pour le +standard C++11. @end itemize -@cindex state directory -When configuring Guix on a system that already has a Guix installation, be -sure to specify the same state directory as the existing installation using -the @code{--localstatedir} option of the @command{configure} script +@cindex répertoire d'état +Lorsque vous configurez Guix sur un système qui a déjà une installation de +Guix, assurez-vous de spécifier le même répertoire d'état que l'installation +existante avec l'option @code{--localstatedir} du script @command{configure} (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding -Standards}). The @command{configure} script protects against unintended -misconfiguration of @var{localstatedir} so you do not inadvertently corrupt -your store (@pxref{Le dépôt}). +Standards}). Le script @command{configure} vous protège des mauvaises +configurations involontaires de @var{localstatedir} pour éviter que vous ne +corrompiez votre dépôt (@pxref{Le dépôt}). -@cindex Nix, compatibility -When a working installation of @url{http://nixos.org/nix/, the Nix package -manager} is available, you can instead configure Guix with -@code{--disable-daemon}. In that case, Nix replaces the three dependencies -above. +@cindex Nix, compatibilité +Lorsque vous avez une installation fonctionnelle du +@url{http://nixos.org/nix/, gestionnaire de paquets Nix}, vous pouvez +configurer Guix avec @code{--disable-daemon}. Dan ce cas, Nix remplace les +trois dépendances au dessus. -Guix is compatible with Nix, so it is possible to share the same store -between both. To do so, you must pass @command{configure} not only the same -@code{--with-store-dir} value, but also the same @code{--localstatedir} -value. The latter is essential because it specifies where the database that -stores metadata about the store is located, among other things. The default -values for Nix are @code{--with-store-dir=/nix/store} and -@code{--localstatedir=/nix/var}. Note that @code{--disable-daemon} is not -required if your goal is to share the store with Nix. +Guix est compatible avec Nix, donc il est possible de partager le même dépôt +entre les deux. Pour cela, vous devez passer à @command{configure} non +seulement la même valeur de @code{--with-store-dir} mais aussi la même +valeur de @code{--localstatedir}. Cette dernière est nécessaires car elle +spécifie l'emplacement de la base de données qui stocke les métadonnées sur +le dépôt, entre autres choses. Les valeurs par défaut pour Nix sont +@code{--with-store-dir=/nix/store} et @code{--localstatedir=/nix/var}. +Remarquez que @code{--disable-daemon} n'est pas requis si votre but est de +partager le dépôt avec Nix. @node Lancer la suite de tests @section Lancer la suite de tests -@cindex test suite -After a successful @command{configure} and @code{make} run, it is a good -idea to run the test suite. It can help catch issues with the setup or -environment, or bugs in Guix itself---and really, reporting test failures is -a good way to help improve the software. To run the test suite, type: +@cindex suite de tests +Après avoir lancé @command{configure} et @code{make} correctement, c'est une +bonne idée de lancer la suite de tests. Elle peut aider à trouver des +erreurs avec la configuration ou l'environnement, ou des bogues dans Guix +lui-même — et vraiment, rapporter des échecs de tests est une bonne manière +d'aider à améliorer le logiciel. Pour lancer la suite de tests, tapez : @example make check @end example -Test cases can run in parallel: you can use the @code{-j} option of -GNU@tie{}make to speed things up. The first run may take a few minutes on a -recent machine; subsequent runs will be faster because the store that is -created for test purposes will already have various things in cache. +Les cas de tests peuvent être lancés en parallèle : vous pouvez utiliser +l'option @code{-j} de GNU@tie{}make pour accélérer les choses. Le premier +lancement peut prendre plusieurs minutes sur une machine récente ; les +lancements suivants seront plus rapides car le dépôt créé pour les tests +aura déjà plusieurs choses en cache. -It is also possible to run a subset of the tests by defining the -@code{TESTS} makefile variable as in this example: +Il est aussi possible de lancer un sous-ensemble des tests en définissant la +variable makefile @code{TESTS} comme dans cet exemple : @example make check TESTS="tests/store.scm tests/cpio.scm" @end example -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: +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 : @example make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no" @end example -Upon failure, please email @email{bug-guix@@gnu.org} and attach the -@file{test-suite.log} file. Please specify the Guix version being used as -well as version numbers of the dependencies (@pxref{Prérequis}) in your -message. +Après un échec, envoyez un courriel à @email{bug-guix@@gnu.org} et attachez +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 also comes with a whole-system test suite that tests complete GuixSD -operating system instances. It can only run on systems where Guix is -already installed, using: +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 : @example make check-system @end example @noindent -or, again, by defining @code{TESTS} to select a subset of tests to run: +Ou, de nouveau, en définissant @code{TESTS} pour choisir un sous-ensemble +des tests à lancer : @example make check-system TESTS="basic mcron" @@ -799,29 +816,30 @@ make check-system TESTS="basic mcron" Ces tests systèmes sont définis dans les modules @code{(gnu tests @dots{})}. Ils fonctionnent en lançant les systèmes d'exploitation sous test -avec une instrumentation légère dans une machine virtuelle (VM). Ils peuvent -être intenses en terme de calculs ou plutôt rapides en fonction de la -disponibilité des substituts de leurs dépendances -(@pxref{Substituts}). Certains requièrent beaucoup d'espace disque pour -contenir les images des VM. +avec une instrumentation légère dans une machine virtuelle (VM). Ils +peuvent être intenses en terme de calculs ou plutôt rapides en fonction de +la disponibilité des substituts de leurs dépendances (@pxref{Substituts}). +Certains requièrent beaucoup d'espace disque pour contenir les images des +VM@. -Again in case of test failures, please send @email{bug-guix@@gnu.org} all -the details. +De nouveau, en cas d'échec, envoyez tous les détails à +@email{bug-guix@@gnu.org}. @node Paramétrer le démon @section Paramétrer le démon -@cindex daemon -Operations such as building a package or running the garbage collector are -all performed by a specialized process, the @dfn{build daemon}, on behalf of -clients. Only the daemon may access the store and its associated database. -Thus, any operation that manipulates the store goes through the daemon. For -instance, command-line tools such as @command{guix package} and -@command{guix build} communicate with the daemon (@i{via} remote procedure -calls) to instruct it what to do. +@cindex démon +Les opérations comme la construction d'un paquet ou le lancement du +ramasse-miettes sont toutes effectuées par un processus spécialisé, le +@dfn{démon de construction}, pour le compte des clients. Seul le démon peut +accéder au dépôt et à sa base de données associée. Ainsi, toute opération +manipulant le dépôt passe par le démon. Par exemple, les outils en ligne de +commande comme @command{guix package} et @command{guix build} communiquent +avec le démon (@i{via} des appels de procédures distantes) pour lui dire +quoi faire. Les sections suivantes expliquent comment préparer l'environnement du démon -de construction. Voir aussi @ref{Substituts} pour apprendre comment +de construction. Voir aussi @ref{Substituts} pour apprendre comment permettre le téléchargement de binaires pré-construits. @menu @@ -835,29 +853,33 @@ permettre le téléchargement de binaires pré-construits. @node Réglages de l'environnement de construction @subsection Réglages de l'environnement de construction -@cindex build environment -In a standard multi-user setup, Guix and its daemon---the -@command{guix-daemon} program---are installed by the system administrator; -@file{/gnu/store} is owned by @code{root} and @command{guix-daemon} runs as -@code{root}. Unprivileged users may use Guix tools to build packages or -otherwise access the store, and the daemon will do it on their behalf, -ensuring that the store is kept in a consistent state, and allowing built -packages to be shared among users. +@cindex environnement de construction +Dans une installation standard multi-utilisateurs, Guix et son démon — le +programme @command{guix-daemon} — sont installé par l'administrateur système +; @file{/gnu/store} appartient à @code{root} et @command{guix-daemon} est +lancé en @code{root}. Les utilisateurs non-privilégiés peuvent utiliser les +outils Guix pour construire des paquets ou accéder au dépôt et le démon le +fera pour leur compte en s'assurant que le dépôt garde un état cohérent et +permet le partage des paquets déjà construits entre les utilisateurs. -@cindex build users -When @command{guix-daemon} runs as @code{root}, you may not want package -build processes themselves to run as @code{root} too, for obvious security -reasons. To avoid that, a special pool of @dfn{build users} should be -created for use by build processes started by the daemon. These build users -need not have a shell and a home directory: they will just be used when the -daemon drops @code{root} privileges in build processes. Having several such -users allows the daemon to launch distinct build processes under separate -UIDs, which guarantees that they do not interfere with each other---an -essential feature since builds are regarded as pure functions -(@pxref{Introduction}). +@cindex utilisateurs de construction +Alors que @command{guix-daemon} tourne en @code{root}, vous n'avez pas +forcément envie que les processus de construction de paquets tournent aussi +en @code{root}, pour des raisons de sécurité évidentes. Pour éviter cela, +vous devriez créer une réserve spéciale d'@dfn{utilisateurs de construction} +que les processus de construction démarrés par le démon utiliseront. Ces +utilisateurs de construction n'ont pas besoin d'un shell ou d'un répertoire +personnel ; ils seront seulement utilisés quand le démon délaissera ses +privilèges @code{root} dans les processus de construction. En ayant +plusieurs de ces utilisateurs, vous permettez au démon de lancer des +processus de construction distincts sous des UID différent, ce qui garanti +qu'aucune interférence n'ait lieu entre les uns et les autres — une +fonctionnalité essentielle puisque les constructions sont supposées être des +fonctions pures (@pxref{Introduction}). -On a GNU/Linux system, a build user pool may be created like this (using -Bash syntax and the @code{shadow} commands): +Sur un système GNU/Linux, on peut créer une réserve d'utilisateurs de +construction comme ceci (avec la syntaxe Bash et les commandes +@code{shadow}) : @c See http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00239.html @c for why `-G' is needed. @@ -867,25 +889,29 @@ Bash syntax and the @code{shadow} commands): do useradd -g guixbuild -G guixbuild \ -d /var/empty -s `which nologin` \ - -c "Guix build user $i" --system \ + -c "Utilisateur de construction Guix $i" --system \ guixbuilder$i; done @end example @noindent -The number of build users determines how many build jobs may run in -parallel, as specified by the @option{--max-jobs} option (@pxref{Invoquer guix-daemon, @option{--max-jobs}}). To use @command{guix system vm} and -related commands, you may need to add the build users to the @code{kvm} -group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} -instead of @code{-G guixbuild} (@pxref{Invoquer guix system}). +Le nombre d'utilisateurs de construction détermine le nombre de tâches de +constructions qui peuvent tourner en parallèle, tel que spécifié par +l'option @option{--max-jobs} (@pxref{Invoquer guix-daemon, +@option{--max-jobs}}). Pour utiliser @command{guix system vm} et les +commandes liées, vous devrez ajouter les utilisateurs de construction au +groupe @code{kvm} pour qu'ils puissent accéder à @file{/dev/kvm} avec +@code{-G guixbuild,kvm} plutôt que @code{-G guixbuild} (@pxref{Invoquer guix system}). -The @code{guix-daemon} program may then be run as @code{root} with the -following command@footnote{If your machine uses the systemd init system, -dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file -in @file{/etc/systemd/system} will ensure that @command{guix-daemon} is -automatically started. Similarly, if your machine uses the Upstart init -system, drop the @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} -file in @file{/etc/init}.}: +Le programme @code{guix-daemon} peut ensuite être lancé en @code{root} avec +la commande suivante@footnote{Si votre machine utilise le système +d'initialisation systemd, copiez le fichier +@file{@var{prefix}/lib/systemd/system/guix-daemon.service} dans +@file{/etc/systemd/system} pour vous assurer que @command{guix-daemon} est +démarré automatiquement. De même, si votre machine utilise le système +d'initialisation Upstart, copiez le fichier +@file{@var{prefix}/lib/upstart/system/guix-daemon.conf} dans +@file{/etc/init}.} : @example # guix-daemon --build-users-group=guixbuild @@ -893,77 +919,82 @@ file in @file{/etc/init}.}: @cindex chroot @noindent -This way, the daemon starts build processes in a chroot, under one of the -@code{guixbuilder} users. On GNU/Linux, by default, the chroot environment -contains nothing but: +De cette façon, le démon démarre les processus de construction dans un +chroot, sous un des utilisateurs @code{guixbuilder}. Sur GNU/Linux par +défaut, l'environnement chroot ne contient rien d'autre que : @c Keep this list in sync with libstore/build.cc! ----------------------- @itemize @item -a minimal @code{/dev} directory, created mostly independently from the host -@code{/dev}@footnote{``Mostly'', because while the set of files that appear -in the chroot's @code{/dev} is fixed, most of these files can only be -created if the host has them.}; +un répertoire @code{/dev} minimal, créé presque indépendamment du +@code{/dev} de l'hôte@footnote{« presque », parce que même si l'ensemble des +fichiers qui apparaissent dans le @code{/dev} du chroot sont déterminés à +l'avance, la plupart de ces fichiers ne peut pas être créée si l'hôte ne les +a pas.} ; @item -the @code{/proc} directory; it only shows the processes of the container -since a separate PID name space is used; +le répertoire @code{/proc} ; il ne montre que les processus du conteneur car +on utilise une espace de nom séparé pour les PID ; @item -@file{/etc/passwd} with an entry for the current user and an entry for user -@file{nobody}; +@file{/etc/passwd} avec une entrée pour l'utilisateur actuel et une entrée +pour l'utilisateur @file{nobody} ; @item -@file{/etc/group} with an entry for the user's group; +@file{/etc/group} avec une entrée pour le groupe de l'utilisateur ; @item -@file{/etc/hosts} with an entry that maps @code{localhost} to -@code{127.0.0.1}; +@file{/etc/hosts} avec une entrée qui fait correspondre @code{localhost} à +@code{127.0.0.1} ; @item -a writable @file{/tmp} directory. +un répertoire @file{/tmp} inscriptible. @end itemize -You can influence the directory where the daemon stores build trees @i{via} -the @code{TMPDIR} environment variable. However, the build tree within the -chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where -@var{name} is the derivation name---e.g., @code{coreutils-8.24}. This way, -the value of @code{TMPDIR} does not leak inside build environments, which -avoids discrepancies in cases where build processes capture the name of -their build tree. +Vous pouvez influencer le répertoire où le démon stocke les arbres de +construction @i{via} la variable d'environnement @code{TMPDIR}. Cependant, +l'arbre de construction dans le chroot sera toujours appelé +@file{/tmp/guix-build-@var{nom}.drv-0}, où @var{nom} est le nom de la +dérivation — p.@: ex.@: @code{coreutils-8.24}. De cette façon, la valeur de +@code{TMPDIR} ne fuite pas à l'intérieur des environnements de construction, +ce qui évite des différences lorsque le processus de construction retient le +nom de leur répertoire de construction. @vindex http_proxy Le démon tient aussi compte de la variable d'environnement @code{http_proxy} pour ses téléchargements HTTP, que ce soit pour les dérivations à sortie fixes (@pxref{Dérivations}) ou pour les substituts (@pxref{Substituts}). -If you are installing Guix as an unprivileged user, it is still possible to -run @command{guix-daemon} provided you pass @code{--disable-chroot}. -However, build processes will not be isolated from one another, and not from -the rest of the system. Thus, build processes may interfere with each -other, and may access programs, libraries, and other files available on the -system---making it much harder to view them as @emph{pure} functions. +Si vous installez Guix en tant qu'utilisateur non-privilégié, il est +toujours possible de lancer @command{guix-daemon} si vous passez +@code{--disable-chroot}. Cependant, les processus de construction ne seront +pas isolés les uns des autres ni du reste du système. Ainsi les processus +de construction peuvent interférer les uns avec les autres, et peuvent +accéder à des programmes, des bibliothèques et d'autres fichiers présents +sur le système — ce qui rend plus difficile de les voir comme des fonctions +@emph{pures}. @node Réglages du délestage du démon -@subsection Using the Offload Facility +@subsection Utiliser le dispositif de déchargement -@cindex offloading -@cindex build hook -When desired, the build daemon can @dfn{offload} derivation builds to other -machines running Guix, using the @code{offload} @dfn{build -hook}@footnote{This feature is available only when -@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}. -When that feature is enabled, a list of user-specified build machines is -read from @file{/etc/guix/machines.scm}; every time a build is requested, -for instance via @code{guix build}, the daemon attempts to offload it to one -of the machines that satisfy the constraints of the derivation, in -particular its system type---e.g., @file{x86_64-linux}. Missing -prerequisites for the build are copied over SSH to the target machine, which -then proceeds with the build; upon success the output(s) of the build are -copied back to the initial machine. +@cindex déchargement +@cindex crochet de construction +Si vous le souhaitez, le démon de construction peut @dfn{décharger} des +constructions de dérivations sur d'autres machines Guix avec le @dfn{crochet +de construction} @code{offload}@footnote{Cette fonctionnalité n'est +disponible que si @uref{https://github.com/artyom-poptsov/guile-ssh, +Guile-SSH} est présent.}. Lorsque cette fonctionnalité est activée, Guix +lit une liste de machines de constructions spécifiée par l'utilisateur dans +@file{/etc/guix/machines.scm} ; à chaque fois qu'une construction est +demandée, par exemple par @code{guix build}, le démon essaie de la décharger +sur une des machines qui satisfont les contraintes de la dérivation, en +particulier le type de système, p.@: ex.@: @file{x86_64-linux}. Les +prérequis manquants pour la construction sont copiés par SSH sur la machine +de construction qui procède ensuite à la construction ; si elle réussi, les +sorties de la construction sont copiés vers la machine de départ. -The @file{/etc/guix/machines.scm} file typically looks like this: +Le fichier @file{/etc/guix/machines.scm} ressemble typiquement à cela : @example (list (build-machine @@ -971,7 +1002,7 @@ The @file{/etc/guix/machines.scm} file typically looks like this: (system "x86_64-linux") (host-key "ssh-ed25519 AAAAC3Nza@dots{}") (user "bob") - (speed 2.)) ;incredibly fast! + (speed 2.)) ;très rapide ! (build-machine (name "meeps.example.org") @@ -984,50 +1015,52 @@ The @file{/etc/guix/machines.scm} file typically looks like this: @end example @noindent -In the example above we specify a list of two build machines, one for the -@code{x86_64} architecture and one for the @code{mips64el} architecture. +Dans l'exemple ci-dessus nous spécifions une liste de deux machines de +construction, une pour l'architecture @code{x86_64} et une pour +l'architecture @code{mips64el}. -In fact, this file is---not surprisingly!---a Scheme file that is evaluated -when the @code{offload} hook is started. Its return value must be a list of -@code{build-machine} objects. While this example shows a fixed list of -build machines, one could imagine, say, using DNS-SD to return a list of -potential build machines discovered in the local network +En fait, ce fichier est — et ça ne devrait pas vous surprendre ! — un +fichier Scheme qui est évalué au démarrage du crochet @code{offload}. Sa +valeur de retour doit être une liste d'objets @code{build-machine}. Même si +cet exemple montre une liste fixée de machines de construction, on pourrait +imaginer par exemple utiliser DNS-SD pour renvoyer une liste de machines de +constructions potentielles découvertes sur le réseau local (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme -Programs}). The @code{build-machine} data type is detailed below. +Programs}). Le type de données @code{build-machine} est détaillé plus bas. -@deftp {Data Type} build-machine -This data type represents build machines to which the daemon may offload -builds. The important fields are: +@deftp {Type de données} build-machine +Ce type de données représente les machines de construction sur lesquelles le +démon peut décharger des constructions. Les champs importants sont : @table @code @item name -The host name of the remote machine. +Le nom d'hôte de la machine distante. @item system -The system type of the remote machine---e.g., @code{"x86_64-linux"}. +Le type de système de la machine distante, p.@: ex.@: @code{"x86_64-linux"}. @item user -The user account to use when connecting to the remote machine over SSH. -Note that the SSH key pair must @emph{not} be passphrase-protected, to allow -non-interactive logins. +Le compte utilisateur à utiliser lors de la connexion à la machine distante +par SSH@. Remarquez que la paire de clef SSH ne doit @emph{pas} être +protégée par mot de passe pour permettre des connexions non-interactives. @item host-key -This must be the machine's SSH @dfn{public host key} in OpenSSH format. -This is used to authenticate the machine when we connect to it. It is a -long string that looks like this: +Cela doit être la @dfn{clef d'hôte SSH publique} de la machine au format +OpenSSH@. Elle est utilisée pour authentifier la machine lors de la +connexion. C'est une longue chaîne qui ressemble à cela : @example ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org @end example -If the machine is running the OpenSSH daemon, @command{sshd}, the host key -can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}. +Si la machine utilise le démon OpenSSH, @command{sshd}, la clef d'hôte se +trouve dans un fichier comme @file{/etc/ssh/ssh_host_ed25519_key.pub}. -If the machine is running the SSH daemon of GNU@tie{}lsh, @command{lshd}, -the host key is in @file{/etc/lsh/host-key.pub} or a similar file. It can -be converted to the OpenSSH format using @command{lsh-export-key} -(@pxref{Converting keys,,, lsh, LSH Manual}): +Si la machine utilise le démon SSH de GNU@tie{}lsh, la clef d'hôte est dans +@file{/etc/lsh/host-key.pub} ou un fichier similaire. Elle peut être +convertie au format OpenSSH avec @command{lsh-export-key} +(@pxref{Converting keys,,, lsh, LSH Manual}) : @example $ lsh-export-key --openssh < /etc/lsh/host-key.pub @@ -1036,112 +1069,120 @@ ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{} @end table -A number of optional fields may be specified: +Il y a un certain nombre de champs facultatifs que vous pouvez remplir : @table @asis -@item @code{port} (default: @code{22}) -Port number of SSH server on the machine. +@item @code{port} (par défaut : @code{22}) +Numéro de port du serveur SSH sur la machine. -@item @code{private-key} (default: @file{~root/.ssh/id_rsa}) -The SSH private key file to use when connecting to the machine, in OpenSSH -format. +@item @code{private-key} (par défaut : @file{~root/.ssh/id_rsa}) +Le fichier de clef privée à utiliser lors de la connexion à la machine, au +format OpenSSH@. -Note that the default value is the private key @emph{of the root account}. -Make sure it exists if you use the default. +Remarquez que la valeur par défaut est la clef privée @emph{du compte +root}. Assurez-vous qu'elle existe si vous utilisez la valeur par défaut. -@item @code{compression} (default: @code{"zlib@@openssh.com,zlib"}) -@itemx @code{compression-level} (default: @code{3}) -The SSH-level compression methods and compression level requested. +@item @code{compression} (par défaut : @code{"zlib@@openssh.com,zlib"}) +@itemx @code{compression-level} (par défaut : @code{3}) +Les méthodes de compression au niveau SSH et le niveau de compression +demandé. -Note that offloading relies on SSH compression to reduce bandwidth usage -when transferring files to and from build machines. +Remarquez que le déchargement utilise la compression SSH pour réduire la +bande passante utilisée lors du transfert vers et depuis les machines de +construction. -@item @code{daemon-socket} (default: @code{"/var/guix/daemon-socket/socket"}) -File name of the Unix-domain socket @command{guix-daemon} is listening to on -that machine. +@item @code{daemon-socket} (par défaut : @code{"/var/guix/daemon-socket/socket"}) +Le nom de fichier du socket Unix-domain sur lequel @command{guix-daemon} +écoute sur cette machine. -@item @code{parallel-builds} (default: @code{1}) -The number of builds that may run in parallel on the machine. +@item @code{parallel-builds} (par défaut : @code{1}) +Le nombre de constructions qui peuvent tourner simultanément sur la machine. -@item @code{speed} (default: @code{1.0}) -A ``relative speed factor''. The offload scheduler will tend to prefer -machines with a higher speed factor. +@item @code{speed} (par défaut : @code{1.0}) +Un « facteur de vitesse relatif ». L'ordonnanceur des constructions tendra +à préférer les machines avec un plus grand facteur de vitesse. -@item @code{features} (default: @code{'()}) -A list of strings denoting specific features supported by the machine. An -example is @code{"kvm"} for machines that have the KVM Linux modules and -corresponding hardware support. Derivations can request features by name, -and they will be scheduled on matching build machines. +@item @code{features} (par défaut : @code{'()}) +Une liste de chaînes qui contient les fonctionnalités spécifiques supportées +par la machine. Un exemple est @code{"kvm"} pour les machines qui ont le +module Linux KVM et le support matériel correspondant. Les dérivations +peuvent demander des fonctionnalités par leur nom et seront orchestrées sur +les machines de construction correspondantes. @end table @end deftp -The @code{guile} command must be in the search path on the build machines. -In addition, the Guix modules must be in @code{$GUILE_LOAD_PATH} on the -build machine---you can check whether this is the case by running: +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 : @example ssh build-machine guile -c "'(use-modules (guix config))'" @end example -There is one last thing to do once @file{machines.scm} is in place. As -explained above, when offloading, files are transferred back and forth -between the machine stores. For this to work, you first need to generate a -key pair on each machine to allow the daemon to export signed archives of -files from the store (@pxref{Invoquer guix archive}): +Il reste une dernière chose à faire maintenant que @file{machines.scm} est +en place. Comme expliqué ci-dessus, lors du déchargement les fichiers sont +transférés entre les dépôts des machines. Pour que cela fonctionne, vous +devez d'abord générer une paire de clef sur chaque machine pour permettre au +démon d'exporter des archives signées des fichiers de son dépôt +(@pxref{Invoquer guix archive}) : @example # guix archive --generate-key @end example @noindent -Each build machine must authorize the key of the master machine so that it -accepts store items it receives from the master: +Chaque machine de construction doit autoriser la clef de la machine +maîtresse pour qu'ils acceptent les éléments de dépôt de celle-ci : @example # guix archive --authorize < master-public-key.txt @end example @noindent -Likewise, the master machine must authorize the key of each build machine. +De même, la machine maîtresse doit autoriser les clefs de chaque machine de +construction. -All the fuss with keys is here to express pairwise mutual trust relations -between the master and the build machines. Concretely, when the master -receives files from a build machine (and @i{vice versa}), its build daemon -can make sure they are genuine, have not been tampered with, and that they -are signed by an authorized key. +Toute cette histoire de clefs permet d'exprimer la confiance mutuelle +deux-à-deux entre le maître et les machines de construction. Concrètement, +lorsque le maître reçoit des fichiers d'une machine de construction (et +vice-versa), son démon de construction s'assure qu'ils sont authentiques, +n'ont pas été modifiés par un tiers et qu'il sont signés par un clef +autorisée. -@cindex offload test -To test whether your setup is operational, run this command on the master -node: +@cindex test du déchargement +Pour tester que votre paramétrage fonctionne, lancez cette commande sur le +nœud maître : @example # guix offload test @end example -This will attempt to connect to each of the build machines specified in -@file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are -available on each machine, attempt to export to the machine and import from -it, and report any error in the process. +Cela essaiera de se connecter à toutes les machines de construction +spécifiées dans @file{/etc/guix/machines.scm}, s'assurera que Guile et les +modules Guix sont disponibles sur toutes les machines et tentera d'exporter +vers la machine et d'importer depuis elle, et rapportera toute erreur +survenu pendant le processus. -If you want to test a different machine file, just specify it on the command -line: +Si vous souhaitez tester un fichier de machines différent, spécifiez-le sur +la ligne de commande : @example # guix offload test machines-qualif.scm @end example -Last, you can test the subset of the machines whose name matches a regular -expression like this: +Enfin, vous pouvez tester un sous-ensemble de machines dont le nom +correspond à une expression rationnelle comme ceci : @example # guix offload test machines.scm '\.gnu\.org$' @end example -@cindex offload status -To display the current load of all build hosts, run this command on the main -node: +@cindex statut du déchargement +Pour afficher la charge actuelle de tous les hôtes de construction, lancez +cette commande sur le nœud principal : @example # guix offload status @@ -1151,93 +1192,98 @@ node: @node Support de SELinux @subsection Support de SELinux -@cindex SELinux, daemon policy -@cindex mandatory access control, SELinux -@cindex security, guix-daemon -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. +@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@. -@subsubsection Installing the SELinux policy -@cindex SELinux, policy installation -To install the policy run this command as root: +@subsubsection Installer la politique SELinux +@cindex SELinux, installation de la politique +Pour installer la politique, lancez cette commande en root : @example semodule -i etc/guix-daemon.cil @end example -Then relabel the file system with @code{restorecon} or by a different -mechanism provided by your system. +Puis ré-étiquetez le système de fichier avec @code{restorecon} ou par un +mécanisme différent fournit par votre système. -Once the policy is installed, the file system has been relabeled, and the -daemon has been restarted, it should be running in the @code{guix_daemon_t} -context. You can confirm this with the following command: +Une fois la politique installée, le système de fichier ré-étiqueté et le +démon redémarré, il devrait être lancé dans le contexte +@code{guix_daemon_t}. Vous pouvez le confirmer avec la commande suivante : @example ps -Zax | grep guix-daemon @end example -Monitor the SELinux log files as you run a command like @code{guix build -hello} to convince yourself that SELinux permits all necessary operations. +Surveillez les fichiers journaux de SELinux pendant que vous lancez une +commande comme @code{guix build hello} pour vous convaincre que SELniux +permet toutes les opérations nécessaires. @subsubsection Limitations -@cindex SELinux, limitations +@cindex SELinux, limites -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. +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. @enumerate @item -@code{guix_daemon_socket_t} isn’t actually used. None of the socket -operations involve contexts that have anything to do with -@code{guix_daemon_socket_t}. It doesn’t hurt to have this unused label, but -it would be preferrable to define socket rules for only this label. +@code{guix_daemon_socket_t} n'est pas vraiment utilisé. Aucune des +opérations sur les sockets n'impliquent de contextes qui ont quoi que ce +soit à voir avec @code{guix_daemon_socket_t}. Ça ne fait pas de mal d'avoir +une étiquette inutilisée, mais il serait préférable de définir des règles +sur les sockets uniquement pour cette étiquette. @item -@code{guix gc} cannot access arbitrary links to profiles. By design, the -file label of the destination of a symlink is independent of the file label -of the link itself. Although all profiles under $localstatedir are -labelled, the links to these profiles inherit the label of the directory -they are in. For links in the user’s home directory this will be -@code{user_home_t}. But for links from the root user’s home directory, or -@file{/tmp}, or the HTTP server’s working directory, etc, this won’t work. -@code{guix gc} would be prevented from reading and following these links. +@code{guix gc} ne peut pas accéder à n'importe quel lien vers les profils. +Par conception, l'étiquette de fichier de la destination d'un lien +symbolique est indépendant de l'étiquette du lien lui-même. Bien que tous +les profils sous $localstatedir aient une étiquette, les liens vers ces +profils héritent de l'étiquette du répertoire dans lequel ils se trouvent. +Pour les liens dans le répertoire personnel cela sera @code{user_home_t}. +Mais pour les liens du répertoire personnel de l'utilisateur root, ou +@file{/tmp}, ou du répertoire de travail du serveur HTTP, etc, cela ne +fonctionnera pas. SELinux empêcherait @code{guix gc} de lire et de suivre +ces liens. @item -The daemon’s feature to listen for TCP connections might no longer work. -This might require extra rules, because SELinux treats network sockets -differently from files. +La fonctionnalité du démon d'écouter des connexions TCP pourrait ne plus +fonctionner. Cela demande des règles supplémentaires car SELinux traite les +sockets réseau différemment des fichiers. @item -Currently all files with a name matching the regular expression -@code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the -label @code{guix_daemon_exec_t}; this means that @emph{any} file with that -name in any profile would be permitted to run in the @code{guix_daemon_t} -domain. This is not ideal. An attacker could build a package that provides -this executable and convince a user to install and run it, which lifts it -into the @code{guix_daemon_t} domain. At that point SELinux could not -prevent it from accessing files that are allowed for processes in that -domain. +Actuellement tous les fichiers qui correspondent à l'expression rationnelle +@code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} reçoivent l'étiquette +@code{guix_daemon_exec_t} ; cela signifie que @emph{tout} fichier avec ce +nom dans n'importe quel profil serait autorisé à se lancer dans le domaine +@code{guix_daemon_t}. Ce n'est pas idéal. Un attaquant pourrait construire +un paquet qui fournit cet exécutable et convaincre un utilisateur de +l'installer et de le lancer, ce qui l'élève dans le domaine +@code{guix_daemon_t}. À ce moment SELinux ne pourrait pas l'empêcher +d'accéder à des fichiers autorisés pour les processus de ce domaine. -We could generate a much more restrictive policy at installation time, so -that only the @emph{exact} file name of the currently installed -@code{guix-daemon} executable would be labelled with -@code{guix_daemon_exec_t}, instead of using a broad regular expression. The -downside is that root would have to install or upgrade the policy at -installation time whenever the Guix package that provides the effectively -running @code{guix-daemon} executable is upgraded. +Nous pourrions générer une politique bien plus restrictive à l'installation, +pour que seuls les noms de fichiers @emph{exacts} de l'exécutable +@code{guix-daemon} actuellement installé soit étiqueté avec +@code{guix_daemon_exec_t}, plutôt que d'utiliser une expression rationnelle +plus large. L'inconvénient c'est que root devrait installer ou mettre à +jour la politique à l'installation à chaque fois que le paquet Guix qui +fournit l'exécutable @code{guix-daemon} effectivement exécuté est mis à +jour. @end enumerate @node Invoquer guix-daemon -@section Invoking @command{guix-daemon} +@section Invoquer @command{guix-daemon} -The @command{guix-daemon} program implements all the functionality to access -the store. This includes launching build processes, running the garbage -collector, querying the availability of a build result, etc. It is normally -run as @code{root} like this: +Le programme @command{guix-daemon} implémente toutes les fonctionnalités +d'accès au dépôt. Cela inclus le lancement des processus de construction, +le lancement du ramasse-miettes, la demande de disponibilité des résultats +de construction, etc. Il tourne normalement en @code{root} comme ceci : @example # guix-daemon --build-users-group=guixbuild @@ -1247,247 +1293,258 @@ run as @code{root} like this: Pour des détails sur son paramétrage, @pxref{Paramétrer le démon}. @cindex chroot -@cindex container, build environment -@cindex build environment -@cindex reproducible builds +@cindex conteneur, environnement de construction +@cindex environnement de construction +@cindex constructions reproductibles Par défaut, @command{guix-daemon} lance les processus de construction sous différents UID récupérés depuis le groupe de construction spécifié avec -@code{--build-users-group}. En plus, chaque processus de construction est +@code{--build-users-group}. En plus, chaque processus de construction est lancé dans un environnement chroot qui ne contient que le sous-ensemble du dépôt dont le processus de construction dépend, tel que spécifié par sa dérivation (@pxref{Interface de programmation, dérivation}), plus un -ensemble de répertoires systèmes spécifiques. Par défaut ce dernier contient -@file{/dev} et @file{/dev/pts}. De plus, sous GNU/Linux, l'environnement de -construction est un @dfn{conteneur} : en plus d'avoir sa propre arborescence -du système de fichier, elle a un espace de montage séparé, son propre espace -de PID, son espace de réseau, etc. Cela aide à obtenir des constructions -reproductibles (@pxref{Fonctionnalités}). +ensemble de répertoires systèmes spécifiques. Par défaut ce dernier +contient @file{/dev} et @file{/dev/pts}. De plus, sous GNU/Linux, +l'environnement de construction est un @dfn{conteneur} : en plus d'avoir sa +propre arborescence du système de fichier, elle a un espace de montage +séparé, son propre espace de PID, son espace de réseau, etc. Cela aide à +obtenir des constructions reproductibles (@pxref{Fonctionnalités}). -When the daemon performs a build on behalf of the user, it creates a build -directory under @file{/tmp} or under the directory specified by its -@code{TMPDIR} environment variable; this directory is shared with the -container for the duration of the build. Be aware that using a directory -other than @file{/tmp} can affect build results---for example, with a longer -directory name, a build process that uses Unix-domain sockets might hit the -name length limitation for @code{sun_path}, which it would otherwise not -hit. +Lorsque le démon effectue une construction pour le compte de l'utilisateur, +il crée un répertoire sous @file{/tmp} ou sous le répertoire spécifié par sa +variable d'environnement @code{TMPDIR}. Ce répertoire est partagé avec le +conteneur pendant la durée de la construction. Soyez conscient qu'utiliser +un répertoire différent de @file{/tmp} peut affecter les résultats de la +construction — par exemple avec un nom de répertoire plus long, un processus +de construction qui utiliserait des socket Unix-domain pourrait atteindre la +limite de longueur de nom de fichier pour @code{sun_path}, qu'il n'aurait +sinon pas atteinte. -The build directory is automatically deleted upon completion, unless the -build failed and the client specified @option{--keep-failed} -(@pxref{Invoquer guix build, @option{--keep-failed}}). +Le répertoire de construction est automatiquement supprimé à la fin, à moins +que la construction n'ait échoué et que le client ait spécifié +@option{--keep-failed} (@pxref{Invoquer guix build, +@option{--keep-failed}}). -The following command-line options are supported: +Les options en ligne de commande suivantes sont disponibles : @table @code -@item --build-users-group=@var{group} -Prend les utilisateurs de @var{group} pour lancer les processus de +@item --build-users-group=@var{groupe} +Prendre les utilisateurs de @var{group} pour lancer les processus de construction (@pxref{Paramétrer le démon, utilisateurs de construction}). @item --no-substitutes -@cindex substitutes -Ne pas utiliser de substitut pour les résultats de la -construction. C'est-à-dire, toujours construire localement plutôt que de -permettre le téléchargement de binaires pré-construits (@pxref{Substituts}). +@cindex substituts +Ne pas utiliser de substitut pour les résultats de la construction. +C'est-à-dire, toujours construire localement plutôt que de permettre le +téléchargement de binaires pré-construits (@pxref{Substituts}). -When the daemon runs with @code{--no-substitutes}, clients can still -explicitly enable substitution @i{via} the @code{set-build-options} remote -procedure call (@pxref{Le dépôt}). +Lorsque le démon tourne avec @code{--no-substitutes}, les clients peuvent +toujours activer explicitement la substitution @i{via} l'appel de procédure +distante @code{set-build-options} (@pxref{Le dépôt}). @item --substitute-urls=@var{urls} @anchor{daemon-substitute-urls} -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}). +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}). 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}). -@cindex build hook +@cindex crochet de construction @item --no-build-hook -Do not use the @dfn{build hook}. +Ne pas utiliser le @dfn{crochet de construction}. -The build hook is a helper program that the daemon can start and to which it -submits build requests. This mechanism is used to offload builds to other -machines (@pxref{Réglages du délestage du démon}). +Le crochet de construction est un programme d'aide qui le démon peut +démarrer et auquel soumettre les requêtes de construction. Ce mécanisme est +utilisé pour décharger les constructions à d'autres machines (@pxref{Réglages du délestage du démon}). @item --cache-failures -Cache build failures. By default, only successful builds are cached. +Mettre les échecs de construction en cache. Par défaut, seules les +constructions réussies sont mises en cache. -When this option is used, @command{guix gc --list-failures} can be used to -query the set of store items marked as failed; @command{guix gc ---clear-failures} removes store items from the set of cached failures. -@xref{Invoquer guix gc}. +Lorsque cette option est utilisée, @command{guix gc --list-failures} peut +être utilisé pour demander l'ensemble des éléments du dépôt marqués comme +échoués ; @command{guix gc --clear-failures} vide la liste des éléments +aillant échoué. @xref{Invoquer guix gc}. @item --cores=@var{n} @itemx -c @var{n} -Use @var{n} CPU cores to build each derivation; @code{0} means as many as -available. +Utiliser @var{n} cœurs CPU pour construire chaque dérivation ; @code{0} +signifie autant que possible. -The default value is @code{0}, but it may be overridden by clients, such as -the @code{--cores} option of @command{guix build} (@pxref{Invoquer guix build}). +La valeur par défaut est @code{0}, mais elle peut être modifiée par les +clients comme avec l'option @code{--cores} de @command{guix build} +(@pxref{Invoquer guix build}). -The effect is to define the @code{NIX_BUILD_CORES} environment variable in -the build process, which can then use it to exploit internal -parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}. +L'effet est de définir la variable d'environnement @code{NIX_BUILD_CORES} +dans le processus de construction, qui peut ensuite l'utiliser pour +exploiter le parallélisme en interne — par exemple en lançant @code{make +-j$NIX_BUILD_CORES}. @item --max-jobs=@var{n} @itemx -M @var{n} -Allow at most @var{n} build jobs in parallel. The default value is -@code{1}. Setting it to @code{0} means that no builds will be performed -locally; instead, the daemon will offload builds (@pxref{Réglages du délestage du démon}), or simply fail. +Permettre au plus @var{n} travaux de construction en parallèle. La valeur +par défaut est @code{1}. La mettre à @code{0} signifie qu'aucune +construction ne sera effectuée localement ; à la place, le démon déchargera +les constructions (@pxref{Réglages du délestage du démon}) ou échouera. -@item --max-silent-time=@var{seconds} -When the build or substitution process remains silent for more than -@var{seconds}, terminate it and report a build failure. +@item --max-silent-time=@var{secondes} +Lorsque le processus de construction ou de substitution restent silencieux +pendant plus de @var{secondes}, le terminer et rapporter une erreur de +construction. -The default value is @code{0}, which disables the timeout. +La valeur par défaut est @code{0}, ce qui désactive le délai. -The value specified here can be overridden by clients (@pxref{Options de construction communes, @code{--max-silent-time}}). +La valeur spécifiée ici peut être modifiée par les clients (@pxref{Options de construction communes, @code{--max-silent-time}}). -@item --timeout=@var{seconds} -Likewise, when the build or substitution process lasts for more than -@var{seconds}, terminate it and report a build failure. +@item --timeout=@var{secondes} +De même, lorsque le processus de construction ou de substitution dure plus +de @var{secondes}, le terminer et rapporter une erreur de construction. -The default value is @code{0}, which disables the timeout. +La valeur par défaut est @code{0}, ce qui désactive le délai. -The value specified here can be overridden by clients (@pxref{Options de construction communes, @code{--timeout}}). +La valeur spécifiée ici peut être modifiée par les clients (@pxref{Options de construction communes, @code{--timeout}}). @item --rounds=@var{N} -Build each derivation @var{n} times in a row, and raise an error if -consecutive build results are not bit-for-bit identical. Note that this -setting can be overridden by clients such as @command{guix build} -(@pxref{Invoquer guix build}). +Construire chaque dérivations @var{N} fois à la suite, et lever une erreur +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}). -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. +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. @item --debug -Produce debugging output. +Produire une sortie de débogage. -This is useful to debug daemon start-up issues, but then it may be -overridden by clients, for example the @code{--verbosity} option of -@command{guix build} (@pxref{Invoquer guix build}). +Cela est utile pour déboguer des problèmes de démarrage du démon, mais +ensuite elle peut être modifiée par les clients, par exemple par l'option +@code{--verbosity} de @command{guix build} (@pxref{Invoquer guix build}). -@item --chroot-directory=@var{dir} -Add @var{dir} to the build chroot. +@item --chroot-directory=@var{rép} +Ajouter @var{rép} au chroot de construction -Doing this may change the result of build processes---for instance if they -use optional dependencies found in @var{dir} when it is available, and not -otherwise. For that reason, it is not recommended to do so. Instead, make -sure that each derivation declares all the inputs that it needs. +Cela peut changer le résultat d'un processus de construction — par exemple +s'il utilise une dépendance facultative trouvée dans @var{rép} lorsqu'elle +est disponible ou pas sinon. Pour cette raison, il n'est pas recommandé +d'utiliser cette option. À la place, assurez-vous que chaque dérivation +déclare toutes les entrées dont elle a besoin. @item --disable-chroot -Disable chroot builds. +Désactive les constructions dans un chroot. -Using this option is not recommended since, again, it would allow build -processes to gain access to undeclared dependencies. It is necessary, -though, when @command{guix-daemon} is running under an unprivileged user -account. +Utiliser cette option n'est pas recommandé car, de nouveau, elle permet aux +processus de construction d'accéder à des dépendances non déclarées. Elle +est nécessaire cependant lorsque @command{guix-daemon} tourne en tant +qu'utilisateur non privilégié. @item --log-compression=@var{type} -Compress build logs according to @var{type}, one of @code{gzip}, -@code{bzip2}, or @code{none}. +Compresser les journaux de construction suivant le @var{type}, parmi +@code{gzip}, @code{bzip2} ou @code{none}. -Unless @code{--lose-logs} is used, all the build logs are kept in the -@var{localstatedir}. To save space, the daemon automatically compresses -them with bzip2 by default. +À moins que @code{--lose-logs} ne soit utilisé, tous les journaux de +construction sont gardés dans @var{localstatedir}. Pour gagner de la place, +le démon les compresse automatiquement avec bzip2 par défaut. @item --disable-deduplication -@cindex deduplication -Disable automatic file ``deduplication'' in the store. +@cindex déduplication +Désactiver la « déduplication » automatique des fichiers dans le dépôt. -By default, files added to the store are automatically ``deduplicated'': if -a newly added file is identical to another one found in the store, the -daemon makes the new file a hard link to the other file. This can -noticeably reduce disk usage, at the expense of slightly increased -input/output load at the end of a build process. This option disables this -optimization. +Par défaut, les fichiers ajoutés au dépôt sont automatiquement « dédupliqués +» : si un nouveau fichier est identique à un autre fichier trouvé dans le +dépôt, le démon en fait un lien en dur vers l'autre fichier. Cela réduit +considérablement l'utilisation de l'espace disque au prix d'une charge en +entrée/sortie plus grande à la fin d'un processus de construction. Cette +option désactive cette optimisation. @item --gc-keep-outputs[=yes|no] -Tell whether the garbage collector (GC) must keep outputs of live -derivations. +Dire si le ramasse-miettes (GC) doit garder les sorties des dérivations +utilisées. -@cindex GC roots -@cindex garbage collector roots -When set to ``yes'', the GC will keep the outputs of any live derivation -available in the store---the @code{.drv} files. The default is ``no'', -meaning that derivation outputs are kept only if they are GC roots. -@xref{Invoquer guix gc}, for more on GC roots. +@cindex racines du GC +@cindex racines du ramasse-miettes +Lorsqu'elle est à « yes », le GC gardera les sorties de toutes les +dérivations — les fichiers @code{.drv} — utilisées dans le dépôt. La valeur +par défaut est « no », ce qui signifie que les sorties des dérivations ne +sont gardées que s'il s'agit de racines du GC@. @xref{Invoquer guix gc} +pour plus d'informations sur les racines du GC@. @item --gc-keep-derivations[=yes|no] -Tell whether the garbage collector (GC) must keep derivations corresponding -to live outputs. +Dire si le ramasse-miettes (GC) doit garder les dérivations correspondant à +des sorties utilisées. -When set to ``yes'', as is the case by default, the GC keeps -derivations---i.e., @code{.drv} files---as long as at least one of their -outputs is live. This allows users to keep track of the origins of items in -their store. Setting it to ``no'' saves a bit of disk space. +Lorsqu'elle est à « yes », comme c'est le cas par défaut, le GC garde les +dérivations — c.-à-d.@: les fichiers @file{.drv} — tant qu'au moins une de +leurs sorties est utilisée. Cela permet aux utilisateurs de garder une +trace de l'origine des éléments du dépôt. Le mettre à « no » préserve un +peu d'espace disque. -Note that when both @code{--gc-keep-derivations} and -@code{--gc-keep-outputs} are used, the effect is to keep all the build -prerequisites (the sources, compiler, libraries, and other build-time tools) -of live objects in the store, regardless of whether these prerequisites are -live. This is convenient for developers since it saves rebuilds or -downloads. +Remarquez qu'avec @code{--gc-keep-derivations} et @code{--gc-keep-outputs}, +le GC gardera tous les prérequis de construction (les sources, le +compilateur, les bibliothèques, et les autres outils de construction) des +objets utilisés dans le dépôt, indépendamment du fait qu'ils soient ou non +utilisés. Cela est pratique pour les développeurs car ça leur fait gagner +du temps de reconstruction et de téléchargement. @item --impersonate-linux-2.6 -On Linux-based systems, impersonate Linux 2.6. This means that the kernel's -@code{uname} system call will report 2.6 as the release number. +Sur les système basés sur Linux, se faire passer pour Linux 2.6. Cela +signifie que l'appel système du noyau @code{uname} rapportera 2.6 comme +numéro de version. -This might be helpful to build programs that (usually wrongfully) depend on -the kernel version number. +Cela peut être utile pour construire des programmes qui dépendent +(généralement sans fondement) du numéro de version du noyau. @item --lose-logs -Do not keep build logs. By default they are kept under +Ne pas garder les journaux de construction. Par défaut ils sont gardés dans @code{@var{localstatedir}/guix/log}. -@item --system=@var{system} -Assume @var{system} as the current system type. By default it is the -architecture/kernel pair found at configure time, such as +@item --system=@var{système} +Supposer que @var{système} est le type de système actuel. Par défaut c'est +la paire architecture-noyau trouvée à la configuration, comme @code{x86_64-linux}. -@item --listen=@var{endpoint} -Listen for connections on @var{endpoint}. @var{endpoint} is interpreted as -the file name of a Unix-domain socket if it starts with @code{/} (slash -sign). Otherwise, @var{endpoint} is interpreted as a host name or host name -and port to listen to. Here are a few examples: +@item --listen=@var{extrémité} +Écouter les connexions sur @var{extrémité}. @var{extrémité} est interprété +comme un nom de fichier d'un socket Unix-domain s'il commence par @code{/} +(barre oblique). Sinon, @var{extrémité} est interprété comme un nom de +domaine ou d'hôte et un port sur lequel écouter. Voici quelques exemples : @table @code @item --listen=/gnu/var/daemon -Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, -creating it if needed. +Écouter les connexions sur le socket Unix-domain @file{/gnu/var/daemon} en +le créant si besoin. @item --listen=localhost -@cindex daemon, remote access -@cindex remote access to the daemon -@cindex daemon, cluster setup -@cindex clusters, daemon setup -Listen for TCP connections on the network interface corresponding to -@code{localhost}, on port 44146. +@cindex démon, accès distant +@cindex accès distant au démon +@cindex démon, paramètres de grappes +@cindex grappes, paramètres du démon +Écouter les connexions TCP sur l'interface réseau correspondant à +@code{localhost} sur le port 44146. @item --listen=128.0.0.42:1234 -Listen for TCP connections on the network interface corresponding to -@code{128.0.0.42}, on port 1234. +Écouter les connexions TCP sur l'interface réseau correspondant à +@code{128.0.0.42} sur le port 1234. @end table -This option can be repeated multiple times, in which case -@command{guix-daemon} accepts connections on all the specified endpoints. -Users can tell client commands what endpoint to connect to by setting the -@code{GUIX_DAEMON_SOCKET} environment variable (@pxref{Le dépôt, -@code{GUIX_DAEMON_SOCKET}}). +Cette option peut être répétée plusieurs fois, auquel cas +@command{guix-daemon} accepte des connexions sur toutes les extrémités +spécifiées. Les utilisateurs peuvent dire aux commandes clientes à quelle +extrémité se connecter en paramétrant la variable d'environnement +@code{GUIX_DAEMON_SOCKET} (@pxref{Le dépôt, @code{GUIX_DAEMON_SOCKET}}). -@quotation Note -The daemon protocol is @emph{unauthenticated and unencrypted}. Using -@code{--listen=@var{host}} is suitable on local networks, such as clusters, -where only trusted nodes may connect to the build daemon. In other cases -where remote access to the daemon is needed, we recommend using Unix-domain -sockets along with SSH. +@quotation Remarque +Le protocole du démon est @emph{non authentifié et non chiffré}. Utiliser +@code{--listen=@var{host}} est adapté sur des réseaux locaux, comme pour des +grappes de serveurs, où seuls des nœuds de confiance peuvent se connecter au +démon de construction. Dans les autres cas où l'accès à distance au démon +est requis, nous conseillons d'utiliser un socket Unix-domain avec SSH@. @end quotation -When @code{--listen} is omitted, @command{guix-daemon} listens for -connections on the Unix-domain socket located at +Lorsque @code{--listen} est omis, @command{guix-daemon} écoute les +connexions sur le socket Unix-domain situé à @file{@var{localstatedir}/guix/daemon-socket/socket}. @end table @@ -1496,52 +1553,54 @@ connections on the Unix-domain socket located at @section Réglages applicatifs @cindex distro extérieure -When using Guix on top of GNU/Linux distribution other than GuixSD---a -so-called @dfn{foreign distro}---a few additional steps are needed to get -everything in place. Here are some of them. +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. @subsection Régionalisation @anchor{locales-and-locpath} -@cindex locales, when not on GuixSD +@cindex régionalisation, en dehors de GuixSD @vindex LOCPATH @vindex GUIX_LOCPATH -Packages installed @i{via} Guix will not use the locale data of the host -system. Instead, you must first install one of the locale packages -available with Guix and then define the @code{GUIX_LOCPATH} environment -variable: +Les paquets installés @i{via} Guix n'utiliseront pas les données de +régionalisation du système hôte. À la place, vous devrez d'abord installer +l'un des paquets linguistiques disponibles dans Guix puis définir la +variable d'environnement @code{GUIX_LOCPATH} : @example $ guix package -i glibc-locales $ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale @end example -Note that the @code{glibc-locales} package contains data for all the locales -supported by the GNU@tie{}libc and weighs in at around 110@tie{}MiB. -Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few -UTF-8 locales. +Remarquez que le paquet @code{glibc-locales} contient les données pour tous +les environnement linguistiques supportés par la GNU@tie{}libc et pèse +environ 110@tie{}Mo. Autrement, les @code{glibc-utf8-locales} est plus +petit mais limité à quelques environnements UTF-8. -The @code{GUIX_LOCPATH} variable plays a role similar to @code{LOCPATH} +La variable @code{GUIX_LOCPATH} joue un rôle similaire à @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference -Manual}). There are two important differences though: +Manual}). Il y a deux différences importantes cependant : @enumerate @item -@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc -provided by foreign distros. Thus, using @code{GUIX_LOCPATH} allows you to -make sure the programs of the foreign distro will not end up loading -incompatible locale data. +@code{GUIX_LOCPATH} n'est compris que par la libc dans Guix et pas par la +libc fournie par les distros externes. Ainsi, utiliser @code{GUIX_LOCPATH} +vous permet de vous assurer que les programmes de la distro externe ne +chargeront pas de données linguistiques incompatibles. @item -libc suffixes each entry of @code{GUIX_LOCPATH} with @code{/X.Y}, where -@code{X.Y} is the libc version---e.g., @code{2.22}. This means that, should -your Guix profile contain a mixture of programs linked against different -libc version, each libc version will only try to load locale data in the -right format. +La libc ajoute un suffixe @code{/X.Y} à chaque entrée de +@code{GUIX_LOCPATH}, où @code{X.Y} est la version de la libc — p.@: ex.@: +@code{2.22}. Cela signifie que, si votre profile Guix contient un mélange +de programmes liés avec des versions différentes de la libc, chaque version +de la libc essaiera de charger les environnements linguistiques dans le bon +format. @end enumerate -This is important because the locale data format used by different libc -versions may be incompatible. +Cela est important car le format des données linguistiques utilisés par +différentes version de la libc peuvent être incompatibles. @subsection Name Service Switch @@ -1549,79 +1608,86 @@ versions may be incompatible. @cindex NSS (name service switch), glibc @cindex nscd (name service caching daemon) @cindex name service caching daemon (nscd) -When using Guix on a foreign distro, we @emph{strongly recommend} that the -system run the GNU C library's @dfn{name service cache daemon}, -@command{nscd}, which should be listening on the @file{/var/run/nscd/socket} -socket. Failing to do that, applications installed with Guix may fail to -look up host names or user accounts, or may even crash. The next paragraphs -explain why. +Lorsque vous utilisez Guix sur une distro externe, nous @emph{recommandons +fortement} que ce système fasse tourner le @dfn{démon de cache de service de +noms} de la bibliothèque C de GNU, @command{nscd}, qui devrait écouter sur +le socket @file{/var/run/nscd/socket}. Sans cela, les applications +installées avec Guix peuvent échouer à résoudre des noms d'hôtes ou +d'utilisateurs, ou même planter. Les paragraphes suivants expliquent +pourquoi. @cindex @file{nsswitch.conf} -The GNU C library implements a @dfn{name service switch} (NSS), which is an -extensible mechanism for ``name lookups'' in general: host name resolution, -user accounts, and more (@pxref{Name Service Switch,,, libc, The GNU C -Library Reference Manual}). +La bibliothèque C de GNU implémente un @dfn{name service switch} (NSS), qui +est un mécanisme d'extension pour les « résolutions de noms » en général : +résolution de nom d'hôte, de compte utilisateur et plus (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual}). @cindex Network information service (NIS) @cindex NIS (Network information service) -Being extensible, the NSS supports @dfn{plugins}, which provide new name -lookup implementations: for example, the @code{nss-mdns} plugin allow -resolution of @code{.local} host names, the @code{nis} plugin allows user -account lookup using the Network information service (NIS), and so on. -These extra ``lookup services'' are configured system-wide in -@file{/etc/nsswitch.conf}, and all the programs running on the system honor -those settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference -Manual}). +Comme il est extensible, NSS supporte des @dfn{greffons} qui fournissent une +nouvelle implémentation de résolution de nom : par exemple le greffon +@code{nss-mdns} permet la résolution de noms d'hôtes en @code{.local}, le +greffon @code{nis} permet la résolution de comptes utilisateurs avec le +Network Information Service (NIS), etc. Ces « services de recherches » +supplémentaires sont configurés au niveau du système dans +@file{/etc/nsswitch.conf}, et tous les programmes qui tournent sur ce +système honorent ces paramètres (@pxref{NSS Configuration File,,, libc, The +GNU C Reference Manual}) -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). +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). -And this is where the problem is: if your application is linked against -Guix's C library (say, glibc 2.24) and tries to load NSS plugins from -another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will -likely crash or have its name lookups fail unexpectedly. +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 +greffons NSS d'une autre bibliothèque C (disons, @code{libnss_mdns.so} pour +glibc-2.22), il est très probable qu'elle plante ou que sa résolution de nom +échoue de manière inattendue. -Running @command{nscd} on the system, among other advantages, eliminates -this binary incompatibility problem because those @code{libnss_*.so} files -are loaded in the @command{nscd} process, not in applications themselves. +Lancer @command{nscd} sur le système, entre autres avantages, élimine ce +problème d'incompatibilité binaire car ces fichiers @code{libnss_*.so} sont +chargés par le processus @command{nscd}, pas par l'application elle-même. -@subsection X11 Fonts +@subsection Polices X11 -@cindex fonts -The majority of graphical applications use Fontconfig to locate and load -fonts and perform X11-client-side rendering. The @code{fontconfig} package -in Guix looks for fonts in @file{$HOME/.guix-profile} by default. Thus, to -allow graphical applications installed with Guix to display fonts, you have -to install fonts with Guix as well. Essential font packages include -@code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont-ttf}. +@cindex polices +La majorité des applications graphiques utilisent fontconfig pour trouver et +charger les police et effectuer le rendu côté client X11. Le paquet +@code{fontconfig} dans Guix cherche les polices dans +@file{$HOME/.guix-profile} par défaut. Ainsi, pour permettre aux +applications graphiques installées avec Guix d'afficher des polices, vous +devez aussi installer des polices avec Guix. Les paquets de polices +essentiels sont @code{gs-fonts}, @code{font-dejavu} et +@code{font-gnu-freefont-ttf}. -To display text written in Chinese languages, Japanese, or Korean in -graphical applications, consider installing -@code{font-adobe-source-han-sans} or @code{font-wqy-zenhei}. The former has -multiple outputs, one per language family (@pxref{Des paquets avec plusieurs résultats}). For instance, the following command installs fonts for Chinese -languages: +Pour afficher des textes écrits en chinois, en japonais ou en coréen dans +les applications graphiques, installez @code{font-adobe-source-han-sans} ou +@code{font-wqy-zenhei}. Le premier a plusieurs sorties, une par famille de +langue (@pxref{Des paquets avec plusieurs résultats}). Par exemple, la commande +suivante installe les polices pour le chinois : @example guix package -i font-adobe-source-han-sans:cn @end example @cindex @code{xterm} -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: +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 : @example -*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1 @end example -To be able to use such full names for the TrueType fonts installed in your -Guix profile, you need to extend the font path of the X server: +Pour pouvoir utiliser ces noms complets avec les polices TrueType installées +dans votre profil Guix, vous devez étendre le chemin des polices du serveur +X : @c Note: 'xset' does not accept symlinks so the trick below arranges to @c get at the real directory. See . @@ -1630,68 +1696,72 @@ xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir) @end example @cindex @code{xlsfonts} -After that, you can run @code{xlsfonts} (from @code{xlsfonts} package) to -make sure your TrueType fonts are listed there. +Ensuite, vous pouvez lancer @code{xlsfonts} (du paquet @code{xlsfonts}) pour +vous assurer que vos polices TrueType y sont listées. @cindex @code{fc-cache} -@cindex font cache -After installing fonts you may have to refresh the font cache to use them in -applications. The same applies when applications installed via Guix do not -seem to find fonts. To force rebuilding of the font cache run -@code{fc-cache -f}. The @code{fc-cache} command is provided by the -@code{fontconfig} package. +@cindex cache de polices +Après l'installation des polices vous devrez peut-être rafraîchir le cache +des polices pour pouvoir les utiliser dans les applications. Ça s'applique +aussi lorsque les applications installées avec Guix n'ont pas l'air de +trouver les polices. Pour forcer la reconstruction du cache de polices +lancez @code{fc-cache -f}. La commande @code{fc-cache} est fournie par le +paquet @code{fontconfig}. @subsection Certificats X.509 @cindex @code{nss-certs} -The @code{nss-certs} package provides X.509 certificates, which allow -programs to authenticate Web servers accessed over HTTPS. +Le paquet @code{nss-certs} fournit les certificats X.509 qui permettent aux +programmes d'authentifier les serveurs web par HTTPS@. -When using Guix on a foreign distro, you can install this package and define -the relevant environment variables so that packages know where to look for -certificates. @xref{Certificats X.509}, for detailed information. +Lorsque vous utilisez Guix sur une distribution externe, vous pouvez +installer ce paquet et définir les variables d'environnement adéquates pour +que les paquets sachent où trouver les certificats. @xref{Certificats X.509}, pour des informations détaillées. -@subsection Emacs Packages +@subsection Paquets emacs @cindex @code{emacs} -When you install Emacs packages with Guix, the elisp files may be placed -either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in -sub-directories of -@file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}. The latter -directory exists because potentially there may exist thousands of Emacs -packages and storing all their files in a single directory may not be -reliable (because of name conflicts). So we think using a separate -directory for each package is a good idea. It is very similar to how the -Emacs package system organizes the file structure (@pxref{Package Files,,, -emacs, The GNU Emacs Manual}). +Lorsque vous installez les paquets Emacs avec Guix, les fichiers elisp +peuvent être placés soit dans +@file{$HOME/.guix-profile/share/emacs/site-lisp/} soit dans des +sous-répertoires de +@file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}. Ce dernier existe +car il existe potentiellement des milliers de paquets Emacs et stocker leurs +fichiers dans un seul répertoire peut ne pas être fiable (à cause de +conflits de noms). Donc on pense qu'utiliser un répertoire séparé est une +bonne idée. C'est très similaire à la manière dont le système de paquet +d'Emacs organise la structure de fichiers (@pxref{Package Files,,, emacs, +The GNU Emacs Manual}). -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}). +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}). -@subsection The GCC toolchain +@subsection La chaîne d'outils GCC @cindex GCC @cindex ld-wrapper -Guix offers individual compiler packages such as @code{gcc} but if you are -in need of a complete toolchain for compiling and linking source code what -you really want is the @code{gcc-toolchain} package. This package provides -a complete GCC toolchain for C/C++ development, including GCC itself, the -GNU C Library (headers and binaries, plus debugging symbols in the -@code{debug} output), Binutils, and a linker wrapper. +Guix offre des paquets de compilateurs individuels comme @code{gcc} mais si +vous avez besoin d'une chaîne de compilation complète pour compiler et lier +du code source, vous avez en fait besoin du paquet @code{gcc-toolchain}. Ce +paquet fournit une chaîne d'outils GCC pour le développement C/C++, dont GCC +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 attempt to use impure library, error message +@cindex tentative d'utiliser une bibliothèque impure, message d'erreur -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. By default, the linker -wrapper refuses to link to libraries outside the store to ensure -``purity''. This can be annoying when using the toolchain to link with -local libraries. To allow references to libraries outside the store you -need to define the environment variable +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}. @c TODO What else? @@ -1700,19 +1770,19 @@ need to define the environment variable @node Gestion de paquets @chapter Gestion de paquets -@cindex packages -The purpose of GNU Guix is to allow users to easily install, upgrade, and -remove software packages, without having to know about their build -procedures or dependencies. Guix also goes beyond this obvious set of -features. +@cindex paquets +Le but de GNU Guix est de permettre à ses utilisateurs d'installer, mettre à +jour et supprimer facilement des paquets logiciels sans devoir connaître +leur procédure de construction ou leurs dépendances. Guix va aussi plus +loin que ces fonctionnalités évidentes. Ce chapitre décrit les principales fonctionnalités de Guix, ainsi que des -outils de gestion des paquets qu'il fournit. En plus de l'interface en ligne -de commande décrite en dessous de (@pxref{Invoquer guix package, @code{guix -package}}), vous pouvez aussi utiliser l'interface Emacs-Guix (@pxref{Top,,, -emacs-guix, Le manuel de référence de emacs-guix}), après avoir installé le -paquet @code{emacs-guix} (lancez la commande @kbd{M-x guix-help} pour le -démarrer) : +outils de gestion des paquets qu'il fournit. En plus de l'interface en +ligne de commande décrite en dessous de (@pxref{Invoquer guix package, +@code{guix package}}), vous pouvez aussi utiliser l'interface Emacs-Guix +(@pxref{Top,,, emacs-guix, Le manuel de référence de emacs-guix}), après +avoir installé le paquet @code{emacs-guix} (lancez la commande @kbd{M-x +guix-help} pour le démarrer) : @example guix package -i emacs-guix @@ -1720,7 +1790,7 @@ guix package -i emacs-guix @menu * Fonctionnalités:: Comment Guix va rendre votre vie plus heureuse. -* Invoquer guix package:: Installation, suppression, etc. de paquets. +* Invoquer guix package:: Installation, suppression, etc.@: de paquets. * Substituts:: Télécharger des binaire déjà construits. * Des paquets avec plusieurs résultats:: Un seul paquet source, plusieurs résultats. @@ -1734,250 +1804,262 @@ guix package -i emacs-guix @node Fonctionnalités @section Fonctionnalités -When using Guix, each package ends up in the @dfn{package store}, in its own -directory---something that resembles @file{/gnu/store/xxx-package-1.2}, -where @code{xxx} is a base32 string. +Lorsque vous utilisez Guix, chaque paquet arrive dans @dfn{dépôt des +paquets}, dans son propre répertoire — quelque chose comme +@file{/gnu/store/xxx-paquet-1.2}, où @code{xxx} est une chaîne en base32. -Instead of referring to these directories, users have their own -@dfn{profile}, which points to the packages that they actually want to use. -These profiles are stored within each user's home directory, at -@code{$HOME/.guix-profile}. +Plutôt que de se rapporter à ces répertoires, les utilisateurs ont leur +propre @dfn{profil} qui pointe vers les paquets qu'ils veulent vraiment +utiliser. Ces profils sont stockés dans le répertoire personnel de chaque +utilisateur dans @code{$HOME/.guix-profile}. -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. +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. -The @command{guix package} command is the central tool to manage packages -(@pxref{Invoquer guix package}). It operates on the per-user profiles, and -can be used @emph{with normal user privileges}. +La commande @command{guix package} est l'outil central pour gérer les +paquets (@pxref{Invoquer guix package}). Il opère sur les profils +utilisateurs et peut être utilisé avec les @emph{privilèges utilisateurs +normaux}. @cindex transactions -The command provides the obvious install, remove, and upgrade operations. -Each invocation is actually a @emph{transaction}: either the specified -operation succeeds, or nothing happens. Thus, if the @command{guix package} -process is terminated during the transaction, or if a power outage occurs -during the transaction, then the user's profile remains in its previous -state, and remains usable. +La commande fournit les opérations évidentes d'installation, de suppression +et de mise à jour. Chaque invocation est en fait une @emph{transaction} : +soit l'opération demandée réussi, soit rien ne se passe. Ainsi, si le +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. -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 GuixSD is subject to transactional upgrades and roll-back +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 (@pxref{Utiliser le système de configuration}). -All packages in the package store may be @emph{garbage-collected}. Guix can -determine which packages are still referenced by user profiles, and remove -those that are provably no longer referenced (@pxref{Invoquer guix gc}). -Users may also explicitly remove old generations of their profile so that -the packages they refer to can be collected. +Tous les paquets du dépôt des paquets peut être @emph{glané}. Guix peut +déterminer quels paquets sont toujours référencés par les profils des +utilisateurs et supprimer ceux qui ne sont plus référencés de manière +prouvable (@pxref{Invoquer guix gc}). Les utilisateurs peuvent toujours +explicitement supprimer les anciennes générations de leur profil pour que +les paquets auxquels elles faisaient référence puissent être glanés. -@cindex reproducibility -@cindex reproducible builds -Finally, Guix takes a @dfn{purely functional} approach to package -management, as described in the introduction (@pxref{Introduction}). Each -@file{/gnu/store} package directory name contains a hash of all the inputs -that were used to build that package---compiler, libraries, build scripts, -etc. This direct correspondence allows users to make sure a given package -installation matches the current state of their distribution. It also helps -maximize @dfn{build reproducibility}: thanks to the isolated build -environments that are used, a given build is likely to yield bit-identical -files when performed on different machines (@pxref{Invoquer guix-daemon, -container}). +@cindex reproductibilité +@cindex constructions reproductibles +Finalement, Guix prend une approche @dfn{purement fonctionnelle} de la +gestion de paquets, telle que décrite dans l'introduction +(@pxref{Introduction}). Chaque nom de répertoire de paquet dans +@file{/gnu/store} contient un hash de toutes les entrées qui ont été +utilisées pendant la construction de ce paquet — le compilateur, les +bibliothèques, les scripts de construction, etc. Cette correspondance +directe permet aux utilisateurs de s'assurer que l'installation d'un paquet +donné correspond à l'état actuel de leur distribution. Elle aide aussi à +maximiser la @dfn{reproductibilité} : grâce aux environnements de +construction utilisés, une construction donnée à de forte chances de donner +des fichiers identiques bit-à-bit lorsqu'elle est effectuée sur des machines +différents (@pxref{Invoquer guix-daemon, container}). -@cindex substitutes +@cindex substituts Ce fondement permet à Guix de supporter le @dfn{déploiement transparent de -binaire ou source}. Lorsqu'une binaire pré-construit pour une entrée de +binaire ou source}. Lorsqu'une binaire pré-construit pour une entrée de @file{/gnu/store} est disponible depuis une source externe (un @dfn{substitut}), Guix le télécharge simplement et le décompresse ; sinon, -il construit le paquet depuis les sources localement -(@pxref{Substituts}). Comme les résultats des constructions sont -généralement reproductibles au bit près, si vous n'avez pas besoin de faire -confiance aux serveurs qui fournissent les substituts : vous pouvez forcer -une construction locale et @emph{défier} les fournisseurs (@pxref{Invoquer guix challenge}). +il construit le paquet depuis les sources localement (@pxref{Substituts}). +Comme les résultats des constructions sont généralement reproductibles au +bit près, si vous n'avez pas besoin de faire confiance aux serveurs qui +fournissent les substituts : vous pouvez forcer une construction locale et +@emph{défier} les fournisseurs (@pxref{Invoquer guix challenge}). -Control over the build environment is a feature that is also useful for -developers. The @command{guix environment} command allows developers of a -package to quickly set up the right development environment for their -package, without having to manually install the dependencies of the package -into their profile (@pxref{Invoquer guix environment}). +Le contrôle de l'environnement de construction est aussi une fonctionnalité +utile pour les développeurs. La commande @command{guix environment} permet +aux développeurs d'un paquet de mettre en place rapidement le bon +environnement de développement pour leur paquet, sans avoir à installer +manuellement les dépendances du paquet dans leur profil (@pxref{Invoquer guix environment}). @node Invoquer guix package -@section Invoking @command{guix package} +@section Invoquer @command{guix package} -@cindex installing packages -@cindex removing packages -@cindex package installation -@cindex package removal +@cindex installer des paquets +@cindex supprimer des paquets +@cindex installation de paquets +@cindex suppression de paquets La commande @command{guix package} est l'outil qui permet d'installer, mettre à jour et supprimer les paquets ainsi que de revenir à une -configuration précédente. Elle n'opère que dans le profil de l'utilisateur +configuration précédente. Elle n'opère que dans le profil de l'utilisateur et fonctionne avec les privilèges utilisateurs normaux -(@pxref{Fonctionnalités}). Sa syntaxe est : +(@pxref{Fonctionnalités}). Sa syntaxe est : @example guix package @var{options} @end example @cindex transactions -Primarily, @var{options} specifies the operations to be performed during the -transaction. Upon completion, a new profile is created, but previous -@dfn{generations} of the profile remain available, should the user want to -roll back. +@var{options} spécifie d'abord les opérations à effectuer pendant la +transaction. À la fin, une nouvelle génération du profil est créée mais les +@dfn{générations} précédentes du profil restent disponibles si l'utilisateur +souhaite y revenir. -For example, to remove @code{lua} and install @code{guile} and -@code{guile-cairo} in a single transaction: +Par exemple, pour supprimer @code{lua} et installer @code{guile} et +@code{guile-cairo} en une seule transaction : @example guix package -r lua -i guile guile-cairo @end example -@command{guix package} also supports a @dfn{declarative approach} whereby -the user specifies the exact set of packages to be available and passes it -@i{via} the @option{--manifest} option (@pxref{profile-manifest, -@option{--manifest}}). +@command{guix package} supporte aussi une @dfn{approche déclarative} où +l'utilisateur spécifie l'ensemble exact des paquets qui doivent être +disponibles le passe @i{via} l'option @option{--manifest} +(@pxref{profile-manifest, @option{--manifest}}). -@cindex profile -For each user, a symlink to the user's default profile is automatically -created in @file{$HOME/.guix-profile}. This symlink always points to the -current generation of the user's default profile. Thus, users can add -@file{$HOME/.guix-profile/bin} to their @code{PATH} environment variable, -and so on. -@cindex search paths -If you are not using the Guix System Distribution, consider adding the -following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, -bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all -the right environment variable definitions: +@cindex profil +Pour chaque utilisateur, un lien symbolique vers le profil par défaut de cet +utilisateur est automatiquement créé dans @file{$HOME/.guix-profile}. Ce +lien symbolique pointe toujours vers la génération actuelle du profil par +défaut de l'utilisateur. Ainsi, les utilisateurs peuvent ajouter +@file{$HOME/.guix-profile/bin} à leur variable d'environnement @code{PATH} +etc. +@cindex chemins de recherche +Si vous n'utilisez pas la distribution système Guix, vous devriez ajouter +les lignes suivantes à votre @file{~/.bash_profile} (@pxref{Bash Startup +Files,,, bash, The GNU Bash Reference Manual}) pour que les shells créés +ensuite aient les bonnes définitions des variables d'environnement : @example GUIX_PROFILE="$HOME/.guix-profile" ; \ source "$HOME/.guix-profile/etc/profile" @end example -In a multi-user setup, user profiles are stored in a place registered as a -@dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to -(@pxref{Invoquer guix gc}). That directory is normally -@code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where -@var{localstatedir} is the value passed to @code{configure} as -@code{--localstatedir}, and @var{user} is the user name. The -@file{per-user} directory is created when @command{guix-daemon} is started, -and the @var{user} sub-directory is created by @command{guix package}. +Dans un environnement multi-utilisateur, les profils utilisateurs sont +stockés comme une @dfn{racine du ramasse-miettes}, vers laquelle pointe +@file{$HOME/.guix-profile} (@pxref{Invoquer guix gc}). Ce répertoire est +normalement +@code{@var{localstatedir}/guix/profiles/per-user/@var{utilisateur}}, où +@var{localstatedir} est la valeur passée à @code{configure} avec +@code{--localstatedir} et @var{utilisateur} le nom d'utilisateur. Le +répertoire @file{per-user} est créé lorsque @command{guix-daemon} est +démarré et sous-répertoire @var{utilisateur} est créé par @command{guix +package}. -The @var{options} can be among the following: +Les @var{options} peuvent être les suivante : @table @code -@item --install=@var{package} @dots{} -@itemx -i @var{package} @dots{} -Install the specified @var{package}s. +@item --install=@var{paquet} @dots{} +@itemx -i @var{paquet} @dots{} +Installer les @var{paquet}s spécifiés. -Each @var{package} may specify either a simple package name, such as -@code{guile}, or a package name followed by an at-sign and version number, -such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, -the newest version prefixed by @code{1.8} is selected.) +Chaque @var{paquet} peut spécifier soit un simple nom de paquet, comme +@code{guile} ou un nom de paquet suivi d'un arobase et d'un numéro de +version, comme @code{guile@@1.8.8} ou simplement @code{guile@@1.8} (dans ce +dernier cas, la version la plus récente commençant par @code{1.8} est +utilisée). -If no version number is specified, the newest available version will be -selected. In addition, @var{package} may contain a colon, followed by the -name of one of the outputs of the package, as in @code{gcc:doc} or -@code{binutils@@2.22:lib} (@pxref{Des paquets avec plusieurs résultats}). -Packages with a corresponding name (and optionally version) are searched for -among the GNU distribution modules (@pxref{Modules de paquets}). +Si aucun numéro de version n'est spécifié, la version la plus récente +disponible est choisie. En plus, @var{paquet} peut contenir un deux-points, +suivi du nom d'une des sorties du paquet, comme dans @code{gcc:doc} ou +@code{binutils@@2.22:lib} (@pxref{Des paquets avec plusieurs résultats}). Des +paquets avec un nom correspondant et (éventuellement une version) sont +recherchés dans les modules de la distribution GNU (@pxref{Modules de paquets}). -@cindex propagated inputs -Sometimes packages have @dfn{propagated inputs}: these are dependencies that -automatically get installed along with the required package +@cindex entrées propagées +Parfois les paquets ont des @dfn{entrées propagées} : ce sont des +dépendances qui sont installées automatiquement avec le paquet demandé (@pxref{package-propagated-inputs, @code{propagated-inputs} in -@code{package} objects}, for information about propagated inputs in package -definitions). +@code{package} objects} pour plus d'informations sur les entrées propagées +dans les définitions des paquets). @anchor{package-cmd-propagated-inputs} -An example is the GNU MPC library: its C header files refer to those of the -GNU MPFR library, which in turn refer to those of the GMP library. Thus, -when installing MPC, the MPFR and GMP libraries also get installed in the -profile; removing MPC also removes MPFR and GMP---unless they had also been -explicitly installed by the user. +Un exemple est la bibliothèque MPC de GNU : ses fichiers d'en-tête C se +réfèrent à ceux de la bibliothèque MPFR de GNU, qui se réfèrent en retour à +ceux de la bibliothèque GMP. Ainsi, lorsqu'on installe MPC, les +bibliothèques MPFR et GMP sont aussi installées dans le profil ; supprimer +MPC supprimera aussi MPFR et GMP — à moins qu'ils n'aient été aussi +installés explicitement par l'utilisateur. -Besides, packages sometimes rely on the definition of environment variables -for their search paths (see explanation of @code{--search-paths} below). -Any missing or possibly incorrect environment variable definitions are -reported here. +D'autre part, les paquets dépendent parfois de la définition de variables +d'environnement pour leur chemin de recherche (voir les explications sur +@code{--search-paths} plus bas). Toute définition de variable +d'environnement manquante ou possiblement incorrecte est rapportée ici. @item --install-from-expression=@var{exp} @itemx -e @var{exp} -Install the package @var{exp} evaluates to. +Installer le paquet évalué par @var{exp} -@var{exp} must be a Scheme expression that evaluates to a @code{} -object. This option is notably useful to disambiguate between same-named -variants of a package, with expressions such as @code{(@@ (gnu packages -base) guile-final)}. +@var{exp} doit être une expression Scheme qui s'évalue en un objet +@code{}. Cette option est notamment utile pour distinguer les +variantes d'un paquet avec le même nom, avec des expressions comme @code{(@@ +(gnu packages base) guile-final)}. -Note that this option installs the first output of the specified package, -which may be insufficient when needing a specific output of a -multiple-output package. +Remarquez que cette option installe la première sortie du paquet, ce qui +peut être insuffisant lorsque vous avez besoin d'une sortie spécifique d'un +paquet à plusieurs sorties. -@item --install-from-file=@var{file} -@itemx -f @var{file} -Install the package that the code within @var{file} evaluates to. +@item --install-from-file=@var{fichier} +@itemx -f @var{fichier} +Installer le paquet évalué par le code dans le @var{fichier}. -As an example, @var{file} might contain a definition like this -(@pxref{Définition des paquets}): +Par exemple, @var{fichier} peut contenir une définition comme celle-ci +(@pxref{Définition des paquets}) : @example @verbatiminclude package-hello.scm @end example -Developers may find it useful to include such a @file{guix.scm} file in the -root of their project source tree that can be used to test development -snapshots and create reproducible development environments (@pxref{Invoquer guix environment}). +Les développeurs peuvent trouver utile d'inclure un tel fichier +@file{guix.scm} à la racine de l'arborescence des sources de leur projet qui +pourrait être utilisé pour tester des versions de développement et créer des +environnements de développement reproductibles (@pxref{Invoquer guix environment}). -@item --remove=@var{package} @dots{} -@itemx -r @var{package} @dots{} -Remove the specified @var{package}s. +@item --remove=@var{paquet} @dots{} +@itemx -r @var{paquet} @dots{} +Supprimer les @var{paquet}s spécifiés. -As for @code{--install}, each @var{package} may specify a version number -and/or output name in addition to the package name. For instance, @code{-r -glibc:debug} would remove the @code{debug} output of @code{glibc}. +Comme pour @code{--install}, chaque @var{paquet} peut spécifier un numéro de +version ou un nom de sortie en plus du nom du paquet. Par exemple, @code{-r +glibc:debug} supprimerait la sortie @code{debug} de @code{glibc}. @item --upgrade[=@var{regexp} @dots{}] @itemx -u [@var{regexp} @dots{}] -@cindex upgrading packages -Upgrade all the installed packages. If one or more @var{regexp}s are -specified, upgrade only installed packages whose name matches a -@var{regexp}. Also see the @code{--do-not-upgrade} option below. +@cindex mettre à jour des paquets +Mettre à jour tous les paquets installés. Si une @var{regexp} ou plus est +spécifiée, la mise à jour n'installera que les paquets dont le nom +correspond à @var{regexp}. Voyez aussi l'option @code{--do-not-upgrade} en +dessous. -Note that this upgrades package to the latest version of packages found in -the distribution currently installed. To update your distribution, you -should regularly run @command{guix pull} (@pxref{Invoquer guix pull}). +Remarquez que cela met à jour vers la dernière version des paquets trouvée +dans la distribution actuellement installée. Pour mettre à jour votre +distribution, vous devriez lancer régulièrement @command{guix pull} +(@pxref{Invoquer guix pull}). @item --do-not-upgrade[=@var{regexp} @dots{}] -When used together with the @code{--upgrade} option, do @emph{not} upgrade -any packages whose name matches a @var{regexp}. For example, to upgrade all -packages in the current profile except those containing the substring -``emacs'': +Lorsqu'elle est utilisée avec l'option @code{--upgrade}, ne @emph{pas} +mettre à jour les paquets dont le nom correspond à @var{regexp}. Par +exemple, pour mettre à jour tous les paquets du profil actuel à l'exception +de ceux qui contiennent la chaîne « emacs » : @example $ guix package --upgrade . --do-not-upgrade emacs @end example -@item @anchor{profile-manifest}--manifest=@var{file} -@itemx -m @var{file} -@cindex profile declaration -@cindex profile manifest -Create a new generation of the profile from the manifest object returned by -the Scheme code in @var{file}. +@item @anchor{profile-manifest}--manifest=@var{fichier} +@itemx -m @var{fichier} +@cindex déclaration de profil +@cindex manifest de profil +Créer une nouvelle génération du profil depuis l'objet manifeste renvoyé par +le code Scheme dans @var{fichier}. -This allows you to @emph{declare} the profile's contents rather than -constructing it through a sequence of @code{--install} and similar -commands. The advantage is that @var{file} can be put under version -control, copied to different machines to reproduce the same profile, and so -on. +Cela vous permet de @emph{déclarer} le contenu du profil plutôt que de le +construire avec une série de @code{--install} et de commandes similaires. +L'avantage étant que le @var{fichier} peut être placé sous contrôle de +version, copié vers d'autres machines pour reproduire le même profil, etc. @c FIXME: Add reference to (guix profile) documentation when available. -@var{file} must return a @dfn{manifest} object, which is roughly a list of -packages: +@var{fichier} doit retourner un objet @dfn{manifest} qui est en gros une +liste de paquets : @findex packages->manifest @example @@ -1986,16 +2068,17 @@ packages: (packages->manifest (list emacs guile-2.0 - ;; Use a specific package output. + ;; Utiliser une sortie spécifique d'un paquet. (list guile-2.0 "debug"))) @end example @findex specifications->manifest -In this example we have to know which modules define the @code{emacs} and -@code{guile-2.0} variables to provide the right @code{use-package-modules} -line, which can be cumbersome. We can instead provide regular package -specifications and let @code{specifications->manifest} look up the -corresponding package objects, like this: +Dans cet exemple on doit savoir quels modules définissent les variables +@code{emacs} et @code{guile-2.0} pour fournir la bonne ligne +@code{use-package-modules} ce qui peut être embêtant. On peut à la place +fournir des spécifications de paquets normales et laisser +@code{specifications->manifest} rechercher les objets de paquets +correspondants, comme ceci : @example (specifications->manifest @@ -2003,65 +2086,69 @@ corresponding package objects, like this: @end example @item --roll-back -@cindex rolling back -@cindex undoing transactions -@cindex transactions, undoing -Roll back to the previous @dfn{generation} of the profile---i.e., undo the -last transaction. +@cindex revenir en arrière +@cindex défaire des transactions +@cindex transactions, défaire +Revenir à la @dfn{génération} précédente du profil c.-à-d.@: défaire la +dernière transaction. -When combined with options such as @code{--install}, roll back occurs before -any other actions. +Lorsqu'elle est combinée avec des options comme @code{--install}, cette +option revient en arrière avant toute autre action. -When rolling back from the first generation that actually contains installed -packages, the profile is made to point to the @dfn{zeroth generation}, which -contains no files apart from its own metadata. +Lorsque vous revenez de la première génération qui contient des fichiers, le +profil pointera vers la @dfn{zéroième génération} qui ne contient aucun +fichier en dehors de ses propres métadonnées. -After having rolled back, installing, removing, or upgrading packages -overwrites previous future generations. Thus, the history of the -generations in a profile is always linear. +Après être revenu en arrière, l'installation, la suppression et la mise à +jour de paquets réécrit les futures générations précédentes. Ainsi, +l'historique des générations dans un profil est toujours linéaire. -@item --switch-generation=@var{pattern} -@itemx -S @var{pattern} -@cindex generations -Switch to a particular generation defined by @var{pattern}. +@item --switch-generation=@var{motif} +@itemx -S @var{motif} +@cindex générations +Basculer vers une génération particulière définie par le @var{motif}. -@var{pattern} may be either a generation number or a number prefixed with -``+'' or ``-''. The latter means: move forward/backward by a specified -number of generations. For example, if you want to return to the latest -generation after @code{--roll-back}, use @code{--switch-generation=+1}. +Le @var{motif} peut être soit un numéro de génération soit un nombre précédé +de « + » ou « - ». Ce dernier signifie : se déplacer en avant ou en arrière +d'un nombre donné de générations. Par exemple, si vous voulez retourner à +la dernière génération après @code{--roll-back}, utilisez +@code{--switch-generation=+1}. -The difference between @code{--roll-back} and @code{--switch-generation=-1} -is that @code{--switch-generation} will not make a zeroth generation, so if -a specified generation does not exist, the current generation will not be -changed. +La différence entre @code{--roll-back} et @code{--switch-generation=-1} est +que @code{--switch-generation} ne vous amènera pas à la zéroième génération, +donc si la génération demandée n'existe pas la génération actuelle ne +changera pas. -@item --search-paths[=@var{kind}] -@cindex search paths -Report environment variable definitions, in Bash syntax, that may be needed -in order to use the set of installed packages. These environment variables -are used to specify @dfn{search paths} for files used by some of the -installed packages. +@item --search-paths[=@var{genre}] +@cindex chemins de recherche +Rapporter les définitions des variables d'environnement dans la syntaxe Bash +qui peuvent être requises pour utiliser l'ensemble des paquets installés. +Ces variables d'environnement sont utilisées pour spécifier les @dfn{chemins +de recherche} de fichiers utilisés par les paquets installés. -For example, GCC needs the @code{CPATH} and @code{LIBRARY_PATH} environment -variables to be defined so it can look for headers and libraries in the -user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler -Collection (GCC)}). If GCC and, say, the C library are installed in the -profile, then @code{--search-paths} will suggest setting these variables to -@code{@var{profile}/include} and @code{@var{profile}/lib}, respectively. +Par exemple, GCC a besoin des variables d'environnement @code{CPATH} et +@code{LIBRARY_PATH} pour trouver les en-têtes et les bibliothèques dans le +profil de l'utilisateur (@pxref{Environment Variables,,, gcc, Using the GNU +Compiler Collection (GCC)}). Si GCC et, disons, la bibliothèque C sont +installés dans le profil, alors @code{--search-paths} suggérera +d'initialiser ces variables à @code{@var{profil}/include} et +@code{@var{profil}/lib}, respectivement. -The typical use case is to define these environment variables in the shell: +Le cas d'utilisation typique est de définir ces variables d'environnement +dans le shell : @example $ eval `guix package --search-paths` @end example -@var{kind} may be one of @code{exact}, @code{prefix}, or @code{suffix}, -meaning that the returned environment variable definitions will either be -exact settings, or prefixes or suffixes of the current value of these -variables. When omitted, @var{kind} defaults to @code{exact}. +@var{genre} peut être l'une des valeurs @code{exact}, @code{prefix} ou +@code{suffix}, ce qui signifie que les définitions des variables +d'environnement retournées seront soit les paramètres exactes, ou placés +avant ou après la valeur actuelle de ces paramètres. Lorsqu'il est omis, +@var{genre} a pour valeur par défaut @code{exact}. -This option can also be used to compute the @emph{combined} search paths of -several profiles. Consider this example: +Cette option peut aussi être utilisé pour calculer les chemins de recherche +@emph{combinés} de plusieurs profils. Regardez cet exemple : @example $ guix package -p foo -i guile @@ -2069,51 +2156,52 @@ $ guix package -p bar -i guile-json $ guix package -p foo -p bar --search-paths @end example -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. +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. -@item --profile=@var{profile} -@itemx -p @var{profile} -Use @var{profile} instead of the user's default profile. +@item --profile=@var{profil} +@itemx -p @var{profil} +Utiliser le @var{profil} à la place du profil par défaut de l'utilisateur. -@cindex collisions, in a profile -@cindex colliding packages in profiles -@cindex profile collisions +@cindex collisions, dans un profil +@cindex faire des collisions de paquets dans des profils +@cindex profil, collisions @item --allow-collisions -Allow colliding packages in the new profile. Use at your own risk! +Permettre des collisions de paquets dans le nouveau profil. À utiliser à +vos risques et périls ! -By default, @command{guix package} reports as an error @dfn{collisions} in -the profile. Collisions happen when two or more different versions or -variants of a given package end up in the profile. +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 -Produce verbose output. In particular, emit the build log of the -environment on the standard error port. +Produire une sortie verbeuse. En particulier, fournir les journaux de +construction de l'environnement sur le port d'erreur standard. @item --bootstrap -Use the bootstrap Guile to build the profile. This option is only useful to -distribution developers. +Utiliser le programme d'amorçage Guile pour compiler le profil. Cette +option n'est utile que pour les développeurs de la distriibution. @end table -In addition to these actions, @command{guix package} supports the following -options to query the current state of a profile, or the availability of -packages: +En plus de ces actions, @command{guix package} supporte les options +suivantes pour demander l'état actuel d'un profil ou la disponibilité des +paquets : @table @option @item --search=@var{regexp} @itemx -s @var{regexp} -@cindex searching for packages -List the available packages whose name, synopsis, or description matches -@var{regexp}, sorted by relevance. Print all the metadata of matching -packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, -recutils, GNU recutils manual}). +@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}). -This allows specific fields to be extracted using the @command{recsel} -command, for instance: +Cela permet à des champs spécifiques d'être extraits avec la commande +@command{recsel}, par exemple : @example $ guix package -s malloc | recsel -p name,version,relevance @@ -2130,8 +2218,8 @@ version: 7.6.0 relevance: 1 @end example -Similarly, to show the name of all the packages available under the terms of -the GNU@tie{}LGPL version 3: +De manière similaire, pour montrer le nom de tous les paquets disponibles +sous license GNU@tie{}LGPL version 3 : @example $ guix package -s "" | recsel -p name -e 'license ~ "LGPL 3"' @@ -2141,8 +2229,9 @@ name: gmp @dots{} @end example -It is also possible to refine search results using several @code{-s} flags. -For example, the following command returns a list of board games: +Il est aussi possible de raffiner les résultats de la recherche avec +plusieurs options @code{-s}. Par exemple, la commande suivante renvoie la +liste des jeux de plateau : @example $ guix package -s '\' -s game | recsel -p name @@ -2150,13 +2239,14 @@ name: gnubg @dots{} @end example -If we were to omit @code{-s game}, we would also get software packages that -deal with printed circuit boards; removing the angle brackets around -@code{board} would further add packages that have to do with keyboards. +Si on avait oublié @code{-s game}, on aurait aussi eu les paquets logiciels +qui s'occupent de circuits imprimés (en anglais : circuit board) ; supprimer +les chevrons autour de @code{board} aurait aussi ajouté les paquets qui +parlent de clavier (en anglais : key@emph{board}). -And now for a more elaborate example. The following command searches for -cryptographic libraries, filters out Haskell, Perl, Python, and Ruby -libraries, and prints the name and synopsis of the matching packages: +Et maintenant un exemple plus élaboré. La commande suivante recherche les +bibliothèques cryptographiques, retire les bibliothèques Haskell, Perl, +Python et Ruby et affiche le nom et le synopsis des paquets correspondants : @example $ guix package -s crypto -s library | \ @@ -2164,12 +2254,12 @@ $ guix package -s crypto -s library | \ @end example @noindent -@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more -information on @dfn{selection expressions} for @code{recsel -e}. +@xref{Selection Expressions,,, recutils, GNU recutils manual} pour plus +d'information sur les @dfn{expressions de sélection} pour @code{recsel -e}. -@item --show=@var{package} -Show details about @var{package}, taken from the list of available packages, -in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, +@item --show=@var{paquet} +Afficher les détails du @var{paquet} dans la liste des paquets disponibles, +au format @code{recutils} (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual}). @example @@ -2181,8 +2271,8 @@ name: python version: 3.3.5 @end example -You may also specify the full name of a package to only get details about a -specific version of it: +Vous pouvez aussi spécifier le nom complet d'un paquet pour n'avoir que les +détails concernant une version spécifique : @example $ guix package --show=python@@3.4 | recsel -p name,version name: python @@ -2204,92 +2294,97 @@ for its headers, etc.), and the path of this package in the store. @item --list-available[=@var{regexp}] @itemx -A [@var{regexp}] -Liste les paquets actuellement disponibles dans la distribution pour ce -système (@pxref{Distribution GNU}). Lorsque @var{regexp} est spécifié, liste -uniquement les paquets dont le nom correspond à @var{regexp}. +Lister les paquets actuellement disponibles dans la distribution pour ce +système (@pxref{Distribution GNU}). Lorsque @var{regexp} est spécifié, +liste uniquement les paquets dont le nom correspond à @var{regexp}. For each package, print the following items separated by tabs: its name, its version string, the parts of the package (@pxref{Des paquets avec plusieurs résultats}), and the source location of its definition. -@item --list-generations[=@var{pattern}] -@itemx -l [@var{pattern}] -@cindex generations -Return a list of generations along with their creation dates; for each -generation, show the installed packages, with the most recently installed -packages shown last. Note that the zeroth generation is never shown. +@item --list-generations[=@var{motif}] +@itemx -l [@var{motif}] +@cindex générations +Renvoyer la liste des générations avec leur date de création ; pour chaque +génération, montre les paquets installés avec les paquets installés les plus +récemment en dernier. Remarquez que la zéroième génération n'est jamais +montrée. -For each installed package, print the following items, separated by tabs: -the name of a package, its version string, the part of the package that is -installed (@pxref{Des paquets avec plusieurs résultats}), and the location of this -package in the store. +Pour chaque paquet installé, afficher les éléments suivants, séparés par des +tabulations : le nom du paquet, sa version, la partie du paquet qui a été +installée (@pxref{Des paquets avec plusieurs résultats}), et l'emplacement du +paquet dans le dépôt. -When @var{pattern} is used, the command returns only matching generations. -Valid patterns include: +Lorsque @var{motif} est utilisé, la commande ne renvoie que les générations +correspondantes. Les motifs valides sont : @itemize -@item @emph{Integers and comma-separated integers}. Both patterns denote -generation numbers. For instance, @code{--list-generations=1} returns the -first one. +@item @emph{Des entiers et des entiers séparés par des virgules}. Les deux motifs correspondent +à des numéros de version. Par exemple, @code{--list-generations=1} renvoie +la première. -And @code{--list-generations=1,8,2} outputs three generations in the -specified order. Neither spaces nor trailing commas are allowed. +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{Ranges}. @code{--list-generations=2..9} prints the -specified generations and everything in between. Note that the start of a -range must be smaller than its end. +@item @emph{Des interval}. @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. -It is also possible to omit the endpoint. For example, -@code{--list-generations=2..}, returns all generations starting from the -second one. +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 +deuxième. -@item @emph{Durations}. You can also get the last @emph{N}@tie{}days, weeks, -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. +@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. @end itemize -@item --delete-generations[=@var{pattern}] -@itemx -d [@var{pattern}] -When @var{pattern} is omitted, delete all generations except the current -one. +@item --delete-generations[=@var{motif}] +@itemx -d [@var{motif}] +Lorsque @var{motif} est omis, supprimer toutes les générations en dehors de +l'actuelle. -This command accepts the same patterns as @option{--list-generations}. When -@var{pattern} is specified, delete the matching generations. When -@var{pattern} specifies a duration, generations @emph{older} than the -specified duration match. For instance, @code{--delete-generations=1m} -deletes generations that are more than one month old. +Cette commande accepte les même motifs que @option{--list-generations}. +Lorsque @var{motif} est spécifié, supprimer les générations correspondante. +Lorsque @var{motif} spécifie une durée, les générations @emph{plus vieilles} +que la durée spécifiée correspondent. Par exemple +@code{--delete-generations=1m} supprime les générations vieilles de plus +d'un mois. -If the current generation matches, it is @emph{not} deleted. Also, the -zeroth generation is never deleted. +Si la génération actuelle correspond, elle n'est @emph{pas} supprimée. La +zéroième génération n'est elle non plus jamais supprimée. -Note that deleting generations prevents rolling back to them. Consequently, -this command must be used with care. +Remarquez que supprimer des générations empêche de revenir en arrière vers +elles. Ainsi, cette commande doit être utilisée avec précaution. @end table -Finally, since @command{guix package} may actually start build processes, it -supports all the common build options (@pxref{Options de construction communes}). It -also supports package transformation options, such as @option{--with-source} -(@pxref{Options de transformation de paquets}). However, note that package -transformations are lost when upgrading; to preserve transformations across -upgrades, you should define your own package variant in a Guile module and -add it to @code{GUIX_PACKAGE_PATH} (@pxref{Définition des paquets}). +Enfin, comme @command{guix package} peut démarrer des processus de +construction, elle supporte les options de construction communes +(@pxref{Options de construction communes}). Elle supporte aussi les options de +transformation de paquets comme @option{--with-source} (@pxref{Options de transformation de paquets}). Cependant, remarquez que les transformations de +paquets sont perdues à la mise à jour ; pour les préserver à travers les +mises à jours, vous devriez définir vos propres variantes des paquets dans +une module Guile et l'ajouter à @code{GUIX_PACKAGE_PATH} (@pxref{Définition des paquets}). @node Substituts @section Substituts -@cindex substitutes -@cindex pre-built binaries -Guix supports transparent source/binary deployment, which means that it can -either build things locally, or download pre-built items from a server, or -both. We call these pre-built items @dfn{substitutes}---they are -substitutes for local build results. In many cases, downloading a -substitute is much faster than building things locally. +@cindex substituts +@cindex binaires pré-construits +Guix gère le déploiement depuis des binaires ou des sources de manière +transparente ce qui signifie qu'il peut aussi bien construire localement que +télécharger des éléments pré-construits depuis un serveur ou les deux. Nous +appelons ces éléments pré-construits des @dfn{substituts} — ils se +substituent aux résultats des constructions locales. Dans la plupart des +cas, télécharger un substitut est bien plus rapide que de construire les +choses localement. -Substitutes can be anything resulting from a derivation build -(@pxref{Dérivations}). Of course, in the common case, they are pre-built -package binaries, but source tarballs, for instance, which also result from -derivation builds, can be available as substitutes. +Les substituts peuvent être tout ce qui résulte d'une construction de +dérivation (@pxref{Dérivations}). Bien sûr dans le cas général, il s'agit +de paquets binaires pré-construits, mais les archives des sources par +exemple résultent aussi de la construction d'une dérivation qui peut aussi +être disponible en tant que substitut. @menu * Serveur de substituts officiel:: Une source particulière de substituts. @@ -2307,69 +2402,73 @@ derivation builds, can be available as substitutes. @subsection Serveur de substituts officiel @cindex hydra -@cindex build farm -The @code{mirror.hydra.gnu.org} 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}). +@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} +(@pxref{client-substitute-urls,, client @option{--substitute-urls} option}). -Substitute URLs can be either HTTP or HTTPS. HTTPS is recommended because -communications are encrypted; conversely, using HTTP makes all -communications visible to an eavesdropper, who could use the information -gathered to determine, for instance, whether your system has unpatched -security vulnerabilities. +Les URL des substituts peuvent être soit en HTTP soit en HTTPS. Le HTTPS +est recommandé parce que les communications sont chiffrées ; à l'inverse +HTTP rend les communications visibles pour un espion qui peut utiliser les +informations accumulées sur vous pour déterminer par exemple si votre +système a des vulnérabilités de sécurités non corrigées. -Substitutes from the official build farm are enabled by default when using -the Guix System Distribution (@pxref{Distribution GNU}). However, they are -disabled by default when using Guix on a foreign distribution, unless you -have explicitly enabled them via one of the recommended installation steps -(@pxref{Installation}). The following paragraphs describe how to enable or -disable substitutes for the official build farm; the same procedure can also -be used to enable substitutes for any other substitute server. +Les substituts de la ferme de construction officielle sont activés par +défaut dans la distribution système Guix (@pxref{Distribution GNU}). +Cependant, ils sont désactivés par défaut lorsque vous utilisez Guix sur une +distribution externe, à moins que vous ne les ayez explicitement activés via +l'une des étapes d'installation recommandées (@pxref{Installation}). Les +paragraphes suivants décrivent comment activer ou désactiver les substituts +de la ferme de construction ; la même procédure peut être utilisée pour +activer les substituts de n'importe quel autre serveur de substituts. @node Autoriser un serveur de substituts @subsection Autoriser un serveur de substituts -@cindex security -@cindex substitutes, authorization thereof -@cindex access control list (ACL), for substitutes -@cindex ACL (access control list), for substitutes -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{Invoquer guix archive}). Doing so implies that you trust @code{hydra.gnu.org} to not -be compromised and to serve genuine substitutes. +@cindex sécurité +@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. -The public key for @code{hydra.gnu.org} is installed along with Guix, in -@code{@var{prefix}/share/guix/hydra.gnu.org.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: +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 : @example -# guix archive --authorize < @var{prefix}/share/guix/hydra.gnu.org.pub +# guix archive --authorize < @var{préfixe}/share/guix/hydra.gnu.org.pub @end example -@quotation Note -Similarly, the @file{berlin.guixsd.org.pub} file contains the public key for -the project's new build farm, reachable at +@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}. -As of this writing @code{berlin.guixsd.org} is being upgraded so it can -better scale up, but you might want to give it a try. It is backed by 20 -x86_64/i686 build nodes and may be able to provide substitutes more quickly -than @code{mirror.hydra.gnu.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} @end quotation -Once this is in place, the output of a command like @code{guix build} should -change from something like: +Une fois que cela est en place, la sortie d'une commande comme @code{guix +build} devrait changer de quelque chose comme : @example $ guix build emacs --dry-run -The following derivations would be built: +Les dérivations suivantes seraient construites : /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv @@ -2378,11 +2477,11 @@ The following derivations would be built: @end example @noindent -to something like: +à quelque chose comme : @example $ guix build emacs --dry-run -112.3 MB would be downloaded: +112.3 Mo seraient téléchargés : /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3 /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16 @@ -2391,439 +2490,461 @@ $ guix build emacs --dry-run @end example @noindent -This indicates that substitutes from @code{hydra.gnu.org} are usable and -will be downloaded, when possible, for future builds. +Cela indique que les substituts de @code{hydra.gnu.org} sont utilisables et +seront téléchargés, si possible, pour les futures constructions. -@cindex substitutes, how to disable -The substitute mechanism can be disabled globally by running -@code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoquer guix-daemon}). It can also be disabled temporarily by passing the -@code{--no-substitutes} option to @command{guix package}, @command{guix -build}, and other command-line tools. +@cindex substituts, comment les désactiver +Le mécanisme de substitution peut être désactivé globalement en lançant +@code{guix-daemon} avec @code{--no-substitutes} (@pxref{Invoquer guix-daemon}). Il peut aussi être désactivé temporairement en passant +l'option @code{--no-substitutes} à @command{guix package}, @command{guix +build} et aux autres outils en ligne de commande. @node Authentification des substituts @subsection Authentification des substituts -@cindex digital signatures -Guix detects and raises an error when attempting to use a substitute that -has been tampered with. Likewise, it ignores substitutes that are not -signed, or that are not signed by one of the keys listed in the ACL. +@cindex signatures numériques +Guix détecte et lève une erreur lorsqu'il essaye d'utiliser un substituts +qui a été modifié. De même, il ignore les substituts qui ne sont pas signés +ou qui ne sont pas signés par l'une des clefs listés dans l'ACL. -There is one exception though: if an unauthorized server provides -substitutes that are @emph{bit-for-bit identical} to those provided by an -authorized server, then the unauthorized server becomes eligible for -downloads. For example, assume we have chosen two substitute servers with -this option: +Il y a une exception cependant : si un serveur non autorisé fournit des +substituts qui sont @emph{identiques bit-à-bit} à ceux fournis par un +serveur autorisé, alors le serveur non autorisé devient disponible pour les +téléchargements. Par exemple en supposant qu'on a choisi deux serveurs de +substituts avec cette option : @example --substitute-urls="https://a.example.org https://b.example.org" @end example @noindent -@cindex reproducible builds -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). +@cindex constructions reproductibles +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). -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.) +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). @node Paramètres de serveur mandataire @subsection Paramètres de serveur mandataire @vindex http_proxy -Substitutes are downloaded over HTTP or HTTPS. The @code{http_proxy} -environment variable can be set in the environment of @command{guix-daemon} -and is honored for downloads of substitutes. Note that the value of -@code{http_proxy} in the environment where @command{guix build}, -@command{guix package}, and other client commands are run has -@emph{absolutely no effect}. +Les substituts sont téléchargés par HTTP ou HTTPS. La variable +d'environnement @code{http_proxy} peut être initialisée dans l'environnement +de @command{guix-daemon} et est respectée pour le téléchargement des +substituts. Remarquez que la valeur de @code{http_proxy} dans +l'environnement où tournent @command{guix build}, @command{guix package} et +les autres clients n'a @emph{absolument aucun effet}. @node Échec de substitution @subsection Échec de substitution -Even when a substitute for a derivation is available, sometimes the -substitution attempt will fail. This can happen for a variety of reasons: -the substitute server might be offline, the substitute may recently have -been deleted, the connection might have been interrupted, etc. +Même lorsqu'un substitut pour une dérivation est disponible, la substitution +échoue parfois. Cela peut arriver pour plusieurs raisons : le serveur de +substitut peut être hors ligne, le substitut a récemment été supprimé du +serveur, la connexion peut avoir été interrompue, etc. -When substitutes are enabled and a substitute for a derivation is available, -but the substitution attempt fails, Guix will attempt to build the -derivation locally depending on whether or not @code{--fallback} was given -(@pxref{fallback-option,, common build option @code{--fallback}}). -Specifically, if @code{--fallback} was omitted, then no local build will be -performed, and the derivation is considered to have failed. However, if -@code{--fallback} was given, then Guix will attempt to build the derivation -locally, and the success or failure of the derivation depends on the success -or failure of the local build. Note that when substitutes are disabled or -no substitute is available for the derivation in question, a local build -will @emph{always} be performed, regardless of whether or not -@code{--fallback} was given. +Lorsque les substituts sont activés et qu'un substitut pour une dérivation +est disponible, mais que la tentative de substitution échoue, Guix essaiera +de construire la dérivation localement si @code{--fallback} a été passé en +argument (@pxref{fallback-option,, common build option @code{--fallback}}). +Plus spécifiquement, si cet option n'a pas été passée en argument, alors +aucune construction locale n'est effectuée et la dérivation est considérée +comme étant en échec. Cependant, si @code{--fallback} est passé en argument, +alors Guix essaiera de construire la dérivation localement et l'échec ou le +succès de la dérivation dépend de l'échec ou du succès de la construction +locale. Remarquez que lorsque les substituts sont désactivés ou qu'aucun +substitut n'est disponible pour la dérivation en question, une construction +locale sera @emph{toujours} effectuée, indépendamment du fait que l'argument +@code{--fallback} ait été ou non passé. -To get an idea of how many substitutes are available right now, you can try -running the @command{guix weather} command (@pxref{Invoquer guix weather}). -This command provides statistics on the substitutes provided by a server. +Pour se donner une idée du nombre de substituts disponibles maintenant, vous +pouvez essayer de lancer la commande @command{guix weather} (@pxref{Invoquer guix weather}). Cette command fournit des statistiques sur les substituts +fournis par un serveur. @node De la confiance en des binaires @subsection De la confiance en des binaires -@cindex trust, of pre-built binaries -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{Invoquer guix publish}). +@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}). -Guix has the foundations to maximize build reproducibility -(@pxref{Fonctionnalités}). In most cases, independent builds of a given package or -derivation should yield bit-identical results. Thus, through a diverse set -of independent package builds, we can strengthen the integrity of our -systems. The @command{guix challenge} command aims to help users assess -substitute servers, and to assist developers in finding out about -non-deterministic package builds (@pxref{Invoquer guix challenge}). -Similarly, the @option{--check} option of @command{guix build} allows users -to check whether previously-installed substitutes are genuine by rebuilding -them locally (@pxref{build-check, @command{guix build --check}}). +Guix possède les fondations pour maximiser la reproductibilité logicielle +(@pxref{Fonctionnalités}). Dans la plupart des cas, des constructions +indépendantes d'un paquet donnée ou d'une dérivation devrait donner des +résultats identiques au bit près. Ainsi, à travers un ensemble de +constructions de paquets indépendantes il est possible de renforcer +l'intégrité du système. La commande @command{guix challenge} a pour but +d'aider les utilisateurs à tester les serveurs de substituts et à aider les +développeurs à trouver les constructions de paquets non-déterministes +(@pxref{Invoquer guix challenge}). De même, l'option @option{--check} de +@command{guix build} permet aux utilisateurs de vérifier si les substituts +précédemment installés sont authentiques en les reconstruisant localement +(@pxref{build-check, @command{guix build --check}}). -In the future, we want Guix to have support to publish and retrieve binaries -to/from other users, in a peer-to-peer fashion. If you would like to -discuss this project, join us on @email{guix-devel@@gnu.org}. +Dans le futur, nous aimerions que Guix puisse publier et recevoir des +binaires d'autres utilisateurs, d'une manière pair-à-pair. Si vous voulez +discuter de ce projet, rejoignez-nous sur @email{guix-devel@@gnu.org}. @node Des paquets avec plusieurs résultats @section Des paquets avec plusieurs résultats -@cindex multiple-output packages -@cindex package outputs -@cindex outputs +@cindex paquets avec plusieurs résultats +@cindex sorties de paquets +@cindex sorties -Often, packages defined in Guix have a single @dfn{output}---i.e., the -source package leads to exactly one directory in the store. When running -@command{guix package -i glibc}, one installs the default output of the GNU -libc package; the default output is called @code{out}, but its name can be -omitted as shown in this command. In this particular case, the default -output of @code{glibc} contains all the C header files, shared libraries, -static libraries, Info documentation, and other supporting files. +Souvent, les paquets définis dans Guix ont une seule @dfn{sortie} — +c.-à-d.@: que le paquet source conduit à exactement un répertoire dans le +dépôt. Lorsque vous lancez @command{guix package -i glibc}, vous installez +la sortie par défaut du paquet GNU libc ; la sortie par défaut est appelée +@code{out} mais son nom peut être omis comme le montre cette commande. Dans +ce cas particuliers, la sortie par défaut de @code{glibc} contient tous les +fichiers d'en-tête C, les bibliothèques partagées, les bibliothèques +statiques, la documentation Info et les autres fichiers de support. -Sometimes it is more appropriate to separate the various types of files -produced from a single source package into separate outputs. For instance, -the GLib C library (used by GTK+ and related packages) installs more than -20 MiB of reference documentation as HTML pages. To save space for users -who do not need it, the documentation goes to a separate output, called -@code{doc}. To install the main GLib output, which contains everything but -the documentation, one would run: +Parfois il est plus approprié de séparer les divers types de fichiers +produits par un même paquet source en plusieurs sorties. Par exemple, la +bibliothèque C GLib (utilisée par GTK+ et des paquets associés) installe +plus de 20 Mo de documentation de référence dans des pages HTML. Pour +préserver l'espace disque des utilisateurs qui n'en ont pas besoin, la +documentation va dans une sortie séparée nommée @code{doc}. Pour installer +la sortie principale de GLib, qui contient tout sauf la documentation, on +devrait lancer : @example guix package -i glib @end example @cindex documentation -The command to install its documentation is: +La commande pour installer la documentation est : @example guix package -i glib:doc @end example -Some packages install programs with different ``dependency footprints''. -For instance, the WordNet package installs both command-line tools and -graphical user interfaces (GUIs). The former depend solely on the C -library, whereas the latter depend on Tcl/Tk and the underlying X -libraries. In this case, we leave the command-line tools in the default -output, whereas the GUIs are in a separate output. This allows users who do -not need the GUIs to save space. The @command{guix size} command can help -find out about such situations (@pxref{Invoquer guix size}). @command{guix -graph} can also be helpful (@pxref{Invoquer guix graph}). +Certains paquets installent des programmes avec des « empreintes dépendances +» différentes. Par exemple le paquet WordNet installe à la fois les outils +en ligne de commande et les interfaces graphiques (GUI). La première ne +dépend que de la bibliothèque C, alors que cette dernière dépend de Tcl/Tk +et des bibliothèques X sous-jacentes. Dans ce cas, nous laissons les outils +en ligne de commande dans la sortie par défaut et l'interface graphique dans +une sortie séparée. Cela permet aux utilisateurs qui n'ont pas besoin +d'interface graphique de gagner de la place. La commande @command{guix +size} peut aider à trouver ces situations (@pxref{Invoquer guix size}). @command{guix graph} peut aussi être utile (@pxref{Invoquer guix graph}). -There are several such multiple-output packages in the GNU distribution. -Other conventional output names include @code{lib} for libraries and -possibly header files, @code{bin} for stand-alone programs, and @code{debug} -for debugging information (@pxref{Installer les fichiers de débogage}). The outputs -of a packages are listed in the third column of the output of @command{guix -package --list-available} (@pxref{Invoquer guix package}). +Il y a plusieurs paquets à sorties multiples dans la distribution GNU. +D'autres noms de sorties conventionnels sont @code{lib} pour les +bibliothèques et éventuellement les fichiers d'en-tête, @code{bin} pour les +programmes indépendants et @code{debug} pour les informations de débogage +(@pxref{Installer les fichiers de débogage}). Les sorties d'un paquet sont listés +dans la troisième colonne de la sortie de @command{guix package +--list-available} (@pxref{Invoquer guix package}). @node Invoquer guix gc -@section Invoking @command{guix gc} +@section Invoquer @command{guix gc} -@cindex garbage collector -@cindex disk space -Packages that are installed, but not used, may be @dfn{garbage-collected}. -The @command{guix gc} command allows users to explicitly run the garbage -collector to reclaim space from the @file{/gnu/store} directory. It is the -@emph{only} way to remove files from @file{/gnu/store}---removing files or -directories manually may break it beyond repair! +@cindex ramasse-miettes +@cindex espace disque +Les paquets qui sont installés mais pas utilisés peuvent être @dfn{glanés}. +La commande @command{guix gc} permet aux utilisateurs de lancer +explicitement le ramasse-miettes pour récupérer de l'espace dans le +répertoire @file{/gnu/store}. C'est la @emph{seule} manière de supprimer +des fichiers de @file{/gnu/store} — supprimer des fichiers ou des +répertoires à la main peut le casser de manière impossible à réparer ! -@cindex GC roots -@cindex garbage collector roots -The garbage collector has a set of known @dfn{roots}: any file under -@file{/gnu/store} reachable from a root is considered @dfn{live} and cannot -be deleted; any other file is considered @dfn{dead} and may be deleted. The -set of garbage collector roots (``GC roots'' for short) includes default -user profiles; by default, the symlinks under @file{/var/guix/gcroots} -represent these GC roots. New GC roots can be added with @command{guix -build --root}, for example (@pxref{Invoquer guix build}). +@cindex racines du GC +@cindex racines du ramasse-miettes +Le ramasse-miettes a un ensemble de @dfn{racines} connues : tout fichier +dans @file{/gnu/store} atteignable depuis une racine est considéré comme +@dfn{utilisé} et ne peut pas être supprimé ; tous les autres fichiers sont +considérés comme @dfn{inutilisés} et peuvent être supprimés. L'ensemble des +racines du ramasse-miettes (ou « racines du GC » pour faire court) inclue +les profils par défaut des utilisateurs ; par défaut les liens symboliques +sous @file{/var/guix/gcroots} représentent ces racines du GC. De nouvelles +racines du GC peuvent être ajoutées avec la @command{guix build -- root} par +exemple (@pxref{Invoquer guix build}). -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{Invoquer guix package}). +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}). -Our recommendation is to run a garbage collection periodically, or when you -are short on disk space. For instance, to guarantee that at least 5@tie{}GB -are available on your disk, simply run: +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 +5@tie{}Go d'espace reste libre sur votre disque, lancez simplement : @example guix gc -F 5G @end example -It is perfectly safe to run as a non-interactive periodic job -(@pxref{Scheduled Job Execution}, for how to set up such a job on GuixSD). -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. +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. -The @command{guix gc} command has three modes of operation: it can be used -to garbage-collect any dead files (the default), to delete specific files -(the @code{--delete} option), to print garbage-collector information, or for -more advanced queries. The garbage collection options are as follows: +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 +fichiers spécifiques (l'option @code{--delete}), pour afficher des +informations sur le ramasse-miettes ou pour des requêtes plus avancées. Les +options du ramasse-miettes sont : @table @code @item --collect-garbage[=@var{min}] @itemx -C [@var{min}] -Collect garbage---i.e., unreachable @file{/gnu/store} files and -sub-directories. This is the default operation when no option is specified. +Ramasse les miettes — c.-à-d.@: les fichiers inaccessibles de +@file{/gnu/store} et ses sous-répertoires. C'est l'opération par défaut +lorsqu'aucune option n'est spécifiée. -When @var{min} is given, stop once @var{min} bytes have been collected. -@var{min} may be a number of bytes, or it may include a unit as a suffix, -such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block -size, size specifications,, coreutils, GNU Coreutils}). +Lorsque @var{min} est donné, s'arrêter une fois que @var{min} octets ont été +collectés. @var{min} pour être un nombre d'octets ou inclure un suffixe +d'unité, comme @code{MiB} pour mébioctet et @code{GB} pour gigaoctet +(@pxref{Block size, size specifications,, coreutils, GNU Coreutils}). -When @var{min} is omitted, collect all the garbage. +Lorsque @var{min} est omis, tout glaner. -@item --free-space=@var{free} -@itemx -F @var{free} -Collect garbage until @var{free} space is available under @file{/gnu/store}, -if possible; @var{free} denotes storage space, such as @code{500MiB}, as -described above. +@item --free-space=@var{libre} +@itemx -F @var{libre} +Glaner jusqu'à ce que @var{libre} espace soit disponible dans +@file{/gnu/store} si possible ; @var{libre} est une quantité de stockage +comme @code{500MiB} comme décrit ci-dessus. -When @var{free} or more is already available in @file{/gnu/store}, do -nothing and exit immediately. +Lorsque @var{libre} ou plus est disponible dans @file{/gnu/store} ne rien +faire et s'arrêter immédiatement. @item --delete @itemx -d -Attempt to delete all the store files and directories specified as -arguments. This fails if some of the files are not in the store, or if they -are still live. +Essayer de supprimer tous les fichiers et les répertoires du dépôt spécifiés +en argument. Cela échoue si certains des fichiers ne sont pas dans le dépôt +ou s'ils sont toujours utilisés. @item --list-failures -List store items corresponding to cached build failures. +Lister les éléments du dépôt qui correspondent à des échecs de construction -This prints nothing unless the daemon was started with +Cela n'affiche rien à moins que le démon n'ait été démarré avec @option{--cache-failures} (@pxref{Invoquer guix-daemon, @option{--cache-failures}}). @item --clear-failures -Remove the specified store items from the failed-build cache. +Supprimer les éléments du dépôt spécifiés du cache des constructions +échouées. -Again, this option only makes sense when the daemon is started with -@option{--cache-failures}. Otherwise, it does nothing. +De nouveau, cette option ne fait de sens que lorsque le démon est démarré +avec @option{--cache-failures}. Autrement elle ne fait rien. @item --list-dead -Show the list of dead files and directories still present in the -store---i.e., files and directories no longer reachable from any root. +Montrer la liste des fichiers et des répertoires inutilisés encore présents +dans le dépôt — c.-à-d.@: les fichiers et les répertoires qui ne sont plus +atteignables par aucune racine. @item --list-live -Show the list of live store files and directories. +Montrer la liste des fichiers et des répertoires du dépôt utilisés. @end table -In addition, the references among existing store files can be queried: +En plus, les références entre les fichiers existants du dépôt peuvent être +demandés : @table @code @item --references @itemx --referrers -@cindex package dependencies -List the references (respectively, the referrers) of store files given as -arguments. +@cindex dépendances des paquets +Lister les références (respectivement les référents) des fichiers du dépôt +en argument. @item --requisites @itemx -R @cindex closure -List the requisites of the store files passed as arguments. Requisites -include the store files themselves, their references, and the references of -these, recursively. In other words, the returned list is the -@dfn{transitive closure} of the store files. +Lister les prérequis des fichiers du dépôt passés en argument. Les +prérequis sont le fichier du dépôt lui-même, leur références et les +références de ces références, récursivement. En d'autre termes, la liste +retournée est la @dfn{closure transitive} des fichiers du dépôt. -@xref{Invoquer guix size}, for a tool to profile the size of the closure of -an element. @xref{Invoquer guix graph}, for a tool to visualize the graph -of references. +@xref{Invoquer guix size} pour un outil pour surveiller la taille de la +closure d'un élément. @xref{Invoquer guix graph} pour un outil pour +visualiser le graphe des références. @item --derivers -@cindex derivation -Return the derivation(s) leading to the given store items +@cindex dérivation +Renvoie les dérivations menant aux éléments du dépôt donnés (@pxref{Dérivations}). -For example, this command: +Par exemple cette commande : @example guix gc --derivers `guix package -I ^emacs$ | cut -f4` @end example @noindent -returns the @file{.drv} file(s) leading to the @code{emacs} package -installed in your profile. +renvoie les fichiers @file{.drv} menant au paquet @code{emacs} installé dans +votre profil. -Note that there may be zero matching @file{.drv} files, for instance because -these files have been garbage-collected. There can also be more than one -matching @file{.drv} due to fixed-output derivations. +Remarquez qu'il peut n'y avoir aucun fichier @file{.drv} par exemple quand +ces fichiers ont été glanés. Il peut aussi y avoir plus d'un fichier +@file{.drv} correspondant à cause de dérivations à sortie fixées. @end table -Lastly, the following options allow you to check the integrity of the store -and to control disk usage. +Enfin, les options suivantes vous permettent de vérifier l'intégrité du +dépôt et de contrôler l'utilisation du disque. @table @option @item --verify[=@var{options}] -@cindex integrity, of the store -@cindex integrity checking -Verify the integrity of the store. +@cindex intégrité, du dépôt +@cindex vérification d'intégrité +Vérifier l'intégrité du dépôt. -By default, make sure that all the store items marked as valid in the -database of the daemon actually exist in @file{/gnu/store}. +Par défaut, s'assurer que tous les éléments du dépôt marqués comme valides +dans la base de données du démon existent bien dans @file{/gnu/store}. -When provided, @var{options} must be a comma-separated list containing one -or more of @code{contents} and @code{repair}. +Lorsqu'elle est fournie, l'@var{option} doit être une liste séparée par des +virgule de l'un ou plus parmi @code{contents} et @code{repair}. -When passing @option{--verify=contents}, the daemon computes the content -hash of each store item and compares it against its hash in the database. -Hash mismatches are reported as data corruptions. Because it traverses -@emph{all the files in the store}, this command can take a long time, -especially on systems with a slow disk drive. +Lorsque vous passez @option{--verify=contents}, le démon calcul le hash du +contenu de chaque élément du dépôt et le compare au hash de sa base de +données. Les différences de hash sont rapportées comme des corruptions de +données. Comme elle traverse @emph{tous les fichiers du dépôt}, cette +commande peut prendre très longtemps pour terminer, surtout sur un système +avec un disque lent. -@cindex repairing the store -@cindex corruption, recovering from +@cindex réparer le dépôt +@cindex corruption, récupérer de Utiliser @option{--verify=repair} ou @option{--verify=contents,repair} fait que le démon essaie de réparer les objets du dépôt corrompus en récupérant -leurs substituts (@pxref{Substituts}). Comme la réparation n'est pas +leurs substituts (@pxref{Substituts}). Comme la réparation n'est pas atomique et donc potentiellement dangereuse, elle n'est disponible que pour -l'administrateur système. Une alternative plus légère lorsque vous +l'administrateur système. Une alternative plus légère lorsque vous connaissez exactement quelle entrée est corrompue consiste à lancer @command{guix build --repair} (@pxref{Invoquer guix build}). @item --optimize -@cindex deduplication -Optimize the store by hard-linking identical files---this is -@dfn{deduplication}. +@cindex déduplication +Optimiser le dépôt en liant en dur les fichiers identiques — c'est la +@dfn{déduplication}. -The daemon performs deduplication after each successful build or archive -import, unless it was started with @code{--disable-deduplication} -(@pxref{Invoquer guix-daemon, @code{--disable-deduplication}}). Thus, this -option is primarily useful when the daemon was running with -@code{--disable-deduplication}. +Le démon effectue une déduplication à chaque construction réussie ou import +d'archive à moins qu'il n'ait été démarré avec +@code{--disable-deduplication} (@pxref{Invoquer guix-daemon, +@code{--disable-deduplication}}). Ainsi, cette option est surtout utile +lorsque le démon tourne avec @code{--disable-deduplication}. @end table @node Invoquer guix pull -@section Invoking @command{guix pull} +@section Invoquer @command{guix pull} -@cindex upgrading Guix -@cindex updating Guix +@cindex mettre à niveau Guix +@cindex mettre à jour Guix @cindex @command{guix pull} @cindex pull -Packages are installed or upgraded to the latest version available in the -distribution currently available on your local machine. To update that -distribution, along with the Guix tools, you must run @command{guix pull}: -the command downloads the latest Guix source code and package descriptions, -and deploys it. Source code is downloaded from a @uref{https://git-scm.com, -Git} repository. +Les paquets sont installés ou mis à jour vers la dernière version disponible +dans la distribution actuellement disponible sur votre machine locale. Pour +mettre à jour cette distribution, en même temps que les outils Guix, vous +devez lancer @command{guix pull} ; la commande télécharge le dernier code +source de Guix et des descriptions de paquets et le déploie. Le code source +est téléchargé depuis un dépôt @uref{https://git-scm.com, Git}. -On completion, @command{guix package} will use packages and package versions -from this just-retrieved copy of Guix. Not only that, but all the Guix -commands and Scheme modules will also be taken from that latest version. -New @command{guix} sub-commands added by the update also become available. +À la fin, @command{guix package} utilisera les paquets et les versions des +paquets de la copie de Guix tout juste récupérée. Non seulement ça, mais +toutes les commandes Guix et les modules Scheme seront aussi récupérés +depuis la dernière version. Les nouvelles sous-commandes de @command{guix} +ajoutés par la mise à jour sont aussi maintenant disponibles. -Any user can update their Guix copy using @command{guix pull}, and the -effect is limited to the user who run @command{guix pull}. For instance, -when user @code{root} runs @command{guix pull}, this has no effect on the -version of Guix that user @code{alice} sees, and vice versa@footnote{Under -the hood, @command{guix pull} updates the @file{~/.config/guix/latest} -symbolic link to point to the latest Guix, and the @command{guix} command -loads code from there. Currently, the only way to roll back an invocation -of @command{guix pull} is to manually update this symlink to point to the -previous Guix.}. +Chaque utilisateur peut mettre à jour sa copie de Guix avec @command{guix +pull} et l'effet est limité à l'utilisateur qui a lancé @command{guix +pull}. Par exemple, lorsque l'utilisateur @code{root} lance @command{guix +pull}, cela n'a pas d'effet sur la version de Guix que vois @code{alice} et +vice-versa@footnote{Sous le capot, @command{guix pull} met à jour le lien +symbolique @file{~/.config/guix/latest} pour qu'il pointe vers la dernière +version de Guix et la commande @command{guix} charge son code depuis cet +endroit. Actuellement la seule manière de revenir en arrière sur une +invocation de @command{guix pull} est de mettre à jour manuellement le lien +symbolique pour qu'il pointe vers une version précédente de Guix.}. -The @command{guix pull} command is usually invoked with no arguments, but it -supports the following options: +La commande @command{guix pull} est typiquement invoquée sans arguments mais +il supporte les options suivantes : @table @code @item --verbose -Produce verbose output, writing build logs to the standard error output. +Produire une sortie verbeuse, en écrivant les journaux de construction sur +la sortie d'erreur standard. @item --url=@var{url} -Download Guix from the Git repository at @var{url}. +Télécharger Guix depuis le dépôt Git à @var{url}. @vindex GUIX_PULL_URL -By default, the source is taken from its canonical Git repository at -@code{gnu.org}, for the stable branch of Guix. To use a different source, -set the @code{GUIX_PULL_URL} environment variable. +Par défaut, la source est récupérée depuis le dépôt Git canonique sur +@code{gnu.org}, pour la branche stable de Guix. Pour utiliser une autre +source, paramétrez la variable d'environnement @code{GUIX_PULL_URL}. @item --commit=@var{commit} -Deploy @var{commit}, a valid Git commit ID represented as a hexadecimal -string. +Déployer de @var{commit}, un ID de commit Git valide représenté par une +chaîne hexadécimale. -@item --branch=@var{branch} -Deploy the tip of @var{branch}, the name of a Git branch available on the -repository at @var{url}. +@item --branch=@var{branche} +Déployer le haut de la @var{branche}, le nom d'une branche Git disponible +sur le répertoire à @var{url}. @item --bootstrap -Use the bootstrap Guile to build the latest Guix. This option is only -useful to Guix developers. +Utiliser le programme d'amorçage Guile pour construire la dernière version +de Guix. Cette option n'est utile que pour les développeurs de Guix. @end table -In addition, @command{guix pull} supports all the common build options -(@pxref{Options de construction communes}). +En plus, @command{guix pull} supporte toutes les options de construction +communes (@pxref{Options de construction communes}). @node Invoquer guix pack -@section Invoking @command{guix pack} +@section Invoquer @command{guix pack} -Occasionally you want to pass software to people who are not (yet!) lucky -enough to be using Guix. You'd tell them to run @command{guix package -i -@var{something}}, but that's not possible in this case. This is where -@command{guix pack} comes in. +Parfois vous voulez passer un logiciel à des gens qui n'ont pas (encore !) +la chance d'utiliser Guix. Vous leur diriez bien de lancer @command{guix +package -i @var{quelque chose}} mais ce n'est pas possible dans ce cas. +C'est là que @command{guix pack} entre en jeu. -@quotation Note -If you are looking for ways to exchange binaries among machines that already -run Guix, @pxref{Invoquer guix copy}, @ref{Invoquer guix publish}, and -@ref{Invoquer guix archive}. +@quotation Remarque +Si vous cherchez comment échanger des binaires entre des machines où Guix +est déjà installé, @pxref{Invoquer guix copy}, @ref{Invoquer guix publish}, +et @ref{Invoquer guix archive}. @end quotation @cindex pack -@cindex bundle -@cindex application bundle -@cindex software bundle -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. +@cindex lot +@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 +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. -For example, to create a bundle containing Guile, Emacs, Geiser, and all -their dependencies, you can run: +Par exemple, pour créer un lot contenant Guile, Emacs, Geiser et toutes +leurs dépendances, vous pouvez lancer : @example $ guix pack guile emacs geiser @@ -2831,270 +2952,341 @@ $ guix pack guile emacs geiser /gnu/store/@dots{}-pack.tar.gz @end example -The result here is a tarball containing a @file{/gnu/store} directory with -all the relevant packages. The resulting tarball contains a @dfn{profile} -with the three packages of interest; the profile is the same as would be -created by @command{guix package -i}. It is this mechanism that is used to -create Guix's own standalone binary tarball (@pxref{Installation binaire}). +Le résultat ici est une archive tar contenant un répertoire +@file{/gnu/store} avec tous les paquets nécessaires. L'archive qui en +résulte contient un @dfn{profil} avec les trois paquets qui vous intéressent +; le profil est le même qui celui qui aurait été créé avec @command{guix +package -i}. C'est ce mécanisme qui est utilisé pour créer les archives tar +binaires indépendantes de Guix (@pxref{Installation binaire}). -Users of this pack would have to run -@file{/gnu/store/@dots{}-profile/bin/guile} to run Guile, which you may find -inconvenient. To work around it, you can create, say, a @file{/opt/gnu/bin} -symlink to the profile: +Les utilisateurs de ce pack devraient lancer +@file{/gnu/store/@dots{}-profile/bin/guile} pour lancer Guile, ce qui n'est +pas très pratique. Pour éviter cela, vous pouvez créer, disons, un lien +symbolique @file{/opt/gnu/bin} vers le profil : @example guix pack -S /opt/gnu/bin=bin guile emacs geiser @end example @noindent -That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy. +De cette façon, les utilisateurs peuvent joyeusement taper +@file{/opt/gnu/bin/guile} et profiter. -Alternatively, you can produce a pack in the Docker image format using the -following command: +@cindex relocatable binaries, with @command{guix pack} +What if the recipient of your pack does not have root privileges on their +machine, and thus cannot unpack it in the root file system? In that case, +you will want to use the @code{--relocatable} option (see below). This +option produces @dfn{relocatable binaries}, meaning they they can be placed +anywhere in the file system hierarchy: in the example above, users can +unpack your tarball in their home directory and directly run +@file{./opt/gnu/bin/guile}. + +@cindex Docker, build an image with guix pack +Autrement, vous pouvez produire un pack au format d'image Docker avec la +commande suivante : @example guix pack -f docker guile emacs geiser @end example @noindent -The result is a tarball that can be passed to the @command{docker load} -command. See the -@uref{https://docs.docker.com/engine/reference/commandline/load/, Docker -documentation} for more information. +Le résultat est une archive tar qui peut être passée à la commande +@command{docker load}. Voir la +@uref{https://docs.docker.com/engine/reference/commandline/load/, +documentation de Docker} pour plus d'informations. -Several command-line options allow you to customize your pack: +@cindex Singularity, build an image with guix pack +@cindex SquashFS, build an image with guix pack +Yet another option is to produce a SquashFS image with the following +command: + +@example +guix pack -f squashfs guile emacs geiser +@end example + +@noindent +The result is a SquashFS file system image that can either be mounted or +directly be used as a file system container image with the +@uref{http://singularity.lbl.gov, Singularity container execution +environment}, using commands like @command{singularity shell} or +@command{singularity exec}. + +Diverses options en ligne de commande vous permettent de personnaliser votre +pack : @table @code @item --format=@var{format} @itemx -f @var{format} -Produce a pack in the given @var{format}. +Produire un pack dans le @var{format} donné. -The available formats are: +Les formats disponibles sont : @table @code @item tarball -This is the default format. It produces a tarball containing all the -specified binaries and symlinks. +C'est le format par défaut. Il produit une archive tar contenant tous les +binaires et les liens symboliques spécifiés. @item docker -This produces a tarball that follows the +Cela produit une archive tar qui suit la @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, -Docker Image Specification}. +spécification des images Docker}. + +@item squashfs +This produces a SquashFS image containing all the specified binaries and +symlinks, as well as empty mount points for virtual file systems like +procfs. @end table +@item --relocatable +@itemx -R +Produce @dfn{relocatable binaries}---i.e., binaries that can be placed +anywhere in the file system hierarchy and run from there. For example, if +you create a pack containing Bash with: + +@example +guix pack -R -S /mybin=bin bash +@end example + +@noindent +... you can copy that pack to a machine that lacks Guix, and from your home +directory as a normal user, run: + +@example +tar xf pack.tar.gz +./mybin/sh +@end example + +@noindent +In that shell, if you type @code{ls /gnu/store}, you'll notice that +@file{/gnu/store} shows up and contains all the dependencies of @code{bash}, +even though the machine actually lacks @file{/gnu/store} altogether! That is +probably the simplest way to deploy Guix-built software on a non-Guix +machine. + +There's a gotcha though: this technique relies on the @dfn{user namespace} +feature of the kernel Linux, which allows unprivileged users to mount or +change root. Old versions of Linux did not support it, and some GNU/Linux +distributions turn it off; on these systems, programs from the pack +@emph{will fail to run}, unless they are unpacked in the root file system. + @item --expression=@var{expr} @itemx -e @var{expr} -Consider the package @var{expr} evaluates to. +Considérer le paquet évalué par @var{expr}. -This has the same purpose as the same-named option in @command{guix build} -(@pxref{Options de construction supplémentaires, @code{--expression} in @command{guix +Cela a le même but que l'option de même nom de @command{guix build} +(@pxref{Options de construction supplémentaires, @code{--expression} dans @command{guix build}}). -@item --manifest=@var{file} -@itemx -m @var{file} -Use the packages contained in the manifest object returned by the Scheme -code in @var{file}. +@item --manifest=@var{fichier} +@itemx -m @var{fichier} +Utiliser les paquets contenus dans l'objet manifeste renvoyé par le code +Scheme dans @var{fichier} -This has a similar purpose as the same-named option in @command{guix -package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same -manifest files. It allows you to define a collection of packages once and -use it both for creating profiles and for creating archives for use on -machines that do not have Guix installed. Note that you can specify -@emph{either} a manifest file @emph{or} a list of packages, but not both. +Elle a un but similaire à l'option de même nom dans @command{guix package} +(@pxref{profile-manifest, @option{--manifest}}) et utilise les mêmes +fichiers manifeste. Ils vous permettent de définir une collection de +paquets une fois et de l'utiliser aussi bien pour créer des profils que pour +créer des archives pour des machines qui n'ont pas Guix d'installé. +Remarquez que vous pouvez spécifier @emph{soit} un fichier manifeste, +@emph{soit} une liste de paquet, mais pas les deux. -@item --system=@var{system} -@itemx -s @var{system} -Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the -system type of the build host. +@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 --target=@var{triplet} -@cindex cross-compilation -Cross-build for @var{triplet}, which must be a valid GNU triplet, such as -@code{"mips64el-linux-gnu"} (@pxref{Specifying target triplets, GNU -configuration triplets,, autoconf, Autoconf}). +@cindex compilation croisée +Effectuer une compilation croisée pour @var{triplet} qui doit être un +triplet GNU valide, comme @code{"mips64el-linux-gnu"} (@pxref{Specifying +target triplets, GNU configuration triplets,, autoconf, Autoconf}). -@item --compression=@var{tool} -@itemx -C @var{tool} -Compress the resulting tarball using @var{tool}---one of @code{gzip}, -@code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression. +@item --compression=@var{outil} +@itemx -C @var{outil} +Compresser l'archive résultante avec @var{outil} — l'un des outils parmi +@code{bzip2}, @code{xz}, @code{lzip} ou @code{none} pour aucune compression. @item --symlink=@var{spec} @itemx -S @var{spec} -Add the symlinks specified by @var{spec} to the pack. This option can -appear several times. +Ajouter les liens symboliques spécifiés par @var{spec} dans le pack. Cette +option peut apparaître plusieurs fois. -@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source} -is the symlink that will be created and @var{target} is the symlink target. +@var{spec} a la forme @code{@var{source}=@var{cible}}, où @var{source} est +le lien symbolique qui sera créé et @var{cible} est la cible du lien. -For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} -symlink pointing to the @file{bin} sub-directory of the profile. +Par exemple, @code{-S /opt/gnu/bin=bin} crée un lien symbolique +@file{/opt/gnu/bin} qui pointe vers le sous-répertoire @file{bin} du profil. @item --localstatedir -Include the ``local state directory'', @file{/var/guix}, in the resulting -pack. +Inclure le « répertoire d'état local », @file{/var/guix} dans le paquet +résultant. -@file{/var/guix} contains the store database (@pxref{Le dépôt}) as well as -garbage-collector roots (@pxref{Invoquer guix gc}). Providing it in the -pack means that the store is ``complete'' and manageable by Guix; not -providing it pack means that the store is ``dead'': items cannot be added to -it or removed from it after extraction of the pack. +@file{/var/guix} contient la base de données du dépôt (@pxref{Le dépôt}) +ainsi que les racines du ramasse-miettes (@pxref{Invoquer guix gc}). Le +fournir dans le pack signifie que le dépôt et « complet » et gérable par +Guix ; ne pas le fournir dans le pack signifie que le dépôt est « mort » : +aucun élément ne peut être ajouté ni enlevé après l'extraction du pack. -One use case for this is the Guix self-contained binary tarball +Un cas d'utilisation est l'archive binaire indépendante de Guix (@pxref{Installation binaire}). @item --bootstrap -Use the bootstrap binaries to build the pack. This option is only useful to -Guix developers. +Utiliser les programmes d'amorçage pour construire le pack. Cette option +n'est utile que pour les développeurs de Guix. @end table -In addition, @command{guix pack} supports all the common build options -(@pxref{Options de construction communes}) and all the package transformation options -(@pxref{Options de transformation de paquets}). +En plus, @command{guix pack} supporte toutes les options de construction +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 Invoking @command{guix archive} +@section Invoquer @command{guix archive} @cindex @command{guix archive} @cindex archive -The @command{guix archive} command allows users to @dfn{export} files from -the store into a single archive, and to later @dfn{import} them on a machine -that runs Guix. In particular, it allows store files to be transferred from -one machine to the store on another machine. +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 Note -If you're looking for a way to produce archives in a format suitable for -tools other than Guix, @pxref{Invoquer guix pack}. +@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 exporting store items -To export store files as an archive to standard output, run: +@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{specifications}... +guix archive --export @var{options} @var{spécifications}... @end example -@var{specifications} may be either store file names or package -specifications, as for @command{guix package} (@pxref{Invoquer guix package}). For instance, the following command creates an archive -containing the @code{gui} output of the @code{git} package and the main -output of @code{emacs}: +@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 -If the specified packages are not built yet, @command{guix archive} -automatically builds them. The build process may be controlled with the -common build options (@pxref{Options de construction communes}). +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}). -To transfer the @code{emacs} package to a machine connected over SSH, one -would run: +Pour transférer le paquet @code{emacs} vers une machine connectée en SSH, on +pourrait lancer : @example -guix archive --export -r emacs | ssh the-machine guix archive --import +guix archive --export -r emacs | ssh la-machine guix archive --import @end example @noindent -Similarly, a complete user profile may be transferred from one machine to -another like this: +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 the-machine guix-archive --import + ssh la-machine guix-archive --import @end example @noindent -However, note that, in both examples, all of @code{emacs} and the profile as -well as all of their dependencies are transferred (due to @code{-r}), -regardless of what is already available in the store on the target machine. -The @code{--missing} option can help figure out which items are missing from -the target store. The @command{guix copy} command simplifies and optimizes -this whole process, so this is probably what you should use in this case -(@pxref{Invoquer guix copy}). +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, archive format -@cindex normalized archive (nar) -Archives are stored in the ``normalized archive'' or ``nar'' format, which -is comparable in spirit to `tar', but with differences that make it more -appropriate for our purposes. First, rather than recording all Unix -metadata for each file, the nar format only mentions the file type (regular, -directory, or symbolic link); Unix permissions and owner/group are -dismissed. Second, the order in which directory entries are stored always -follows the order of file names according to the C locale collation order. -This makes archive production fully deterministic. +@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. -When exporting, the daemon digitally signs the contents of the archive, and -that digital signature is appended. When importing, the daemon verifies the -signature and rejects the import in case of an invalid signature or if the -signing key is not authorized. +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. -The main options are: +Les principales options sont : @table @code @item --export -Export the specified store files or packages (see below.) Write the -resulting archive to the standard output. +Exporter les fichiers ou les paquets du dépôt (voir plus bas). Écrire +l'archive résultante sur la sortie standard. -Dependencies are @emph{not} included in the output, unless -@code{--recursive} is passed. +Les dépendances ne sont @emph{pas} incluses dans la sortie à moins que +@code{--recursive} ne soit passé. @item -r @itemx --recursive -When combined with @code{--export}, this instructs @command{guix archive} to -include dependencies of the given items in the archive. Thus, the resulting -archive is self-contained: it contains the closure of the exported store -items. +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 -Read an archive from the standard input, and import the files listed therein -into the store. Abort if the archive has an invalid digital signature, or -if it is signed by a public key not among the authorized keys (see -@code{--authorize} below.) +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 -Read a list of store file names from the standard input, one per line, and -write on the standard output the subset of these files missing from the -store. +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{parameters}] -@cindex signing, archives -Generate a new key pair for the daemon. This is a prerequisite before -archives can be exported with @code{--export}. Note that this operation -usually takes time, because it needs to gather enough entropy to generate -the key pair. +@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. -The generated key pair is typically stored under @file{/etc/guix}, in -@file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, -which must be kept secret.) When @var{parameters} is omitted, an ECDSA key -using the Ed25519 curve is generated, or, for Libgcrypt versions before -1.6.0, it is a 4096-bit RSA key. Alternatively, @var{parameters} can -specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General -public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt -Reference Manual}). +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 authorizing, archives -Authorize imports signed by the public key passed on standard input. The -public key must be in ``s-expression advanced format''---i.e., the same -format as the @file{signing-key.pub} file. +@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}. -The list of authorized keys is kept in the human-editable file -@file{/etc/guix/acl}. The file contains -@url{http://people.csail.mit.edu/rivest/Sexp.txt, ``advanced-format -s-expressions''} and is structured as an access-control list in the -@url{http://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure -(SPKI)}. +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{directory} -@itemx -x @var{directory} +@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{directory}. C'est une -opération de bas niveau requise seulement dans de rares cas d'usage ; voir -plus loin. +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{hydra.gnu.org} to @file{/tmp/emacs}: +Par exemple, la commande suivante extrait le substitut pour Emacs servi par +@code{hydra.gnu.org} dans @file{/tmp/emacs} : @example $ wget -O - \ @@ -3102,13 +3294,15 @@ $ wget -O - \ | bunzip2 | guix archive -x /tmp/emacs @end example -Single-item archives are different from multiple-item archives produced by -@command{guix archive --export}; they contain a single store item, and they -do @emph{not} embed a signature. Thus this operation does @emph{no} -signature verification and its output should be considered unsafe. +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. -The primary purpose of this operation is to facilitate inspection of archive -contents coming from possibly untrusted substitute servers. +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 @@ -3116,30 +3310,34 @@ contents coming from possibly untrusted substitute servers. @node Interface de programmation @chapter Interface de programmation -GNU Guix provides several Scheme programming interfaces (APIs) to define, -build, and query packages. The first interface allows users to write -high-level package definitions. These definitions refer to familiar -packaging concepts, such as the name and version of a package, its build -system, and its dependencies. These definitions can then be turned into -concrete build actions. +GNU Guix fournit diverses interface de programmation Scheme (API) qui pour +définir, construire et faire des requêtes sur des paquets. La première +interface permet aux utilisateurs d'écrire des définitions de paquets de +haut-niveau. Ces définitions se réfèrent à des concepts de création de +paquets familiers, comme le nom et la version du paquet, son système de +construction et ses dépendances. Ces définitions peuvent ensuite être +transformées en actions concrètes lors de la construction. -Build actions are performed by the Guix daemon, on behalf of users. In a -standard setup, the daemon has write access to the store---the -@file{/gnu/store} directory---whereas users do not. The recommended setup -also has the daemon perform builds in chroots, under a specific build users, -to minimize interference with the rest of the system. +Les actions de construction sont effectuées par le démon Guix, pour le +compte des utilisateurs. Dans un environnement standard, le démon possède +les droits en écriture sur le dépôt — le répertoire @file{/gnu/store} — mais +pas les utilisateurs. La configuration recommandée permet aussi au démon +d'effectuer la construction dans des chroots, avec un utilisateur de +construction spécifique pour minimiser les interférences avec le reste du +système. -@cindex derivation -Lower-level APIs are available to interact with the daemon and the store. -To instruct the daemon to perform a build action, users actually provide it -with a @dfn{derivation}. A derivation is a low-level representation of the -build actions to be taken, and the environment in which they should -occur---derivations are to package definitions what assembly is to C -programs. The term ``derivation'' comes from the fact that build results -@emph{derive} from them. +@cindex dérivation +Il y a des API de plus bas niveau pour interagir avec le démon et le dépôt. +Pour demander au démon d'effectuer une action de construction, les +utilisateurs lui donnent en fait une @dfn{dérivation}. Une dérivation est +une représentation à bas-niveau des actions de construction à entreprendre +et l'environnement dans lequel elles devraient avoir lieu — les dérivations +sont aux définitions de paquets ce que l'assembleur est aux programmes C. +Le terme de « dérivation » vient du fait que les résultats de la +construction en @emph{dérivent}. -This chapter describes all these APIs in turn, starting from high-level -package definitions. +Ce chapitre décrit toutes ces API tour à tour, à partir des définitions de +paquets à haut-niveau. @menu * Définition des paquets:: Définir de nouveaux paquets. @@ -3155,10 +3353,10 @@ package definitions. @node Définition des paquets @section Définition des paquets -The high-level interface to package definitions is implemented in the -@code{(guix packages)} and @code{(guix build-system)} modules. As an -example, the package definition, or @dfn{recipe}, for the GNU Hello package -looks like this: +L'interface de haut-niveau pour les définitions de paquets est implémentée +dans les modules @code{(guix packages)} et @code{(guix build-system)}. Par +exemple, la définition du paquet, ou la @dfn{recette}, du paquet GNU Hello +ressemble à cela : @example (define-module (gnu packages hello) @@ -3189,179 +3387,189 @@ looks like this: @end example @noindent -Without being a Scheme expert, the reader may have guessed the meaning of -the various fields here. This expression binds the variable @code{hello} to -a @code{} object, which is essentially a record (@pxref{SRFI-9, -Scheme records,, guile, GNU Guile Reference Manual}). This package object -can be inspected using procedures found in the @code{(guix packages)} -module; for instance, @code{(package-name hello)} -returns---surprise!---@code{"hello"}. +Sans être un expert Scheme, le lecteur peut comprendre la signification des +différents champs présents. Cette expression lie la variable @code{hello} à +un objet @code{}, qui est essentiellement un enregistrement +(@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}). On +peut inspecter cet objet de paquet avec les procédures qui se trouvent dans +le module @code{(guix packages)} ; par exemple, @code{(package-name hello)} +renvoie — oh surprise ! — @code{"hello"}. -With luck, you may be able to import part or all of the definition of the -package you are interested in from another repository, using the @code{guix -import} command (@pxref{Invoquer guix import}). +Avec un peu de chance, vous pourrez importer tout ou partie de la définition +du paquet qui vous intéresse depuis un autre répertoire avec la commande +@code{guix import} (@pxref{Invoquer guix import}). -In the example above, @var{hello} is defined in a module of its own, -@code{(gnu packages hello)}. Technically, this is not strictly necessary, -but it is convenient to do so: all the packages defined in modules under -@code{(gnu packages @dots{})} are automatically known to the command-line -tools (@pxref{Modules de paquets}). +Dans l'exemple précédent, @var{hello} est défini dans un module à part, +@code{(gnu packages hello)}. Techniquement, cela n'est pas strictement +nécessaire, mais c'est pratique : tous les paquets définis dans des modules +sous @code{(gnu packages @dots{})} sont automatiquement connus des outils en +ligne de commande (@pxref{Modules de paquets}). -There are a few points worth noting in the above package definition: +Il y a quelques points à remarquer dans la définition de paquet précédente : @itemize @item -The @code{source} field of the package is an @code{} object -(@pxref{Référence d'origine}, for the complete reference). Here, the -@code{url-fetch} method from @code{(guix download)} is used, meaning that -the source is a file to be downloaded over FTP or HTTP. +Le champ @code{source} du paquet est un objet @code{} (@pxref{Référence d'origine}, pour la référence complète). Ici, on utilise la méthode +@code{url-fetch} de @code{(guix download)}, ce qui signifie que la source +est un fichier à télécharger par FTP ou HTTP. -The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the -GNU mirrors defined in @code{(guix download)}. +Le préfixe @code{mirror://gnu} demande à @code{url-fetch} d'utiliser l'un +des miroirs GNU définis dans @code{(guix download)}. -The @code{sha256} field specifies the expected SHA256 hash of the file being -downloaded. It is mandatory, and allows Guix to check the integrity of the -file. The @code{(base32 @dots{})} form introduces the base32 representation -of the hash. You can obtain this information with @code{guix download} -(@pxref{Invoquer guix download}) and @code{guix hash} (@pxref{Invoquer guix hash}). +Le champ @code{sha256} spécifie le hash SHA256 attendu pour le fichier +téléchargé. Il est requis et permet à Guix de vérifier l'intégrité du +fichier. La forme @code{(base32 @dots{})} introduit a représentation en +base32 du hash. Vous pouvez obtenir cette information avec @code{guix +download} (@pxref{Invoquer guix download}) et @code{guix hash} +(@pxref{Invoquer guix hash}). -@cindex patches -When needed, the @code{origin} form can also have a @code{patches} field -listing patches to be applied, and a @code{snippet} field giving a Scheme -expression to modify the source code. +@cindex correctifs +Lorsque cela est requis, la forme @code{origin} peut aussi avec un champ +@code{patches} qui liste les correctifs à appliquer et un champ +@code{snippet} qui donne une expression Scheme pour modifier le code source. @item -@cindex GNU Build System -The @code{build-system} field specifies the procedure to build the package -(@pxref{Systèmes de construction}). Here, @var{gnu-build-system} represents the -familiar GNU Build System, where packages may be configured, built, and -installed with the usual @code{./configure && make && make check && make -install} command sequence. +@cindex Système de construction GNU +Le champ @code{build-system} spécifie la procédure pour construire le paquet +(@pxref{Systèmes de construction}). Ici, @var{gnu-build-system} représente le système +de construction GNU familier, où les paquets peuvent être configurés, +construits et installés avec la séquence @code{./configure && make && make +check && make install} habituelle. @item -The @code{arguments} field specifies options for the build system -(@pxref{Systèmes de construction}). Here it is interpreted by @var{gnu-build-system} -as a request run @file{configure} with the @code{--enable-silent-rules} -flag. +Le champ @code{arguments} spécifie des options pour le système de +construction (@pxref{Systèmes de construction}). Ici il est interprété par +@var{gnu-build-system} comme une demande de lancer @file{configure} avec le +drapeau @code{--enable-silent-rules}. @cindex quote @cindex quoting @findex ' @findex quote -What about these quote (@code{'}) characters? They are Scheme syntax to -introduce a literal list; @code{'} is synonymous with @code{quote}. -@xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, for -details. Here the value of the @code{arguments} field is a list of -arguments passed to the build system down the road, as with @code{apply} -(@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual}). +Que sont ces apostrophes (@code{'}) ? C'est de la syntaxe Scheme pour +introduire une liste ; @code{'} est synonyme de la fonction @code{quote}. +@xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, pour +des détails. Ice la valeur du champ @code{arguments} est une liste +d'arguments passés au système de construction plus tard, comme avec +@code{apply} (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile +Reference Manual}). -The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} -(@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and -@code{#:configure-flags} is a keyword used to pass a keyword argument to the -build system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference -Manual}). +La séquence dièse-deux-points (@code{#:}) définie un @dfn{mot-clef} Scheme +(@pxref{Keywords,,, guile, GNU Guile Reference Manual}), et +@code{#:configure-flags} est un mot-clef utilisé pour passer un argument au +système de construction (@pxref{Coding With Keywords,,, guile, GNU Guile +Reference Manual}). @item -The @code{inputs} field specifies inputs to the build process---i.e., -build-time or run-time dependencies of the package. Here, we define an -input called @code{"gawk"} whose value is that of the @var{gawk} variable; -@var{gawk} is itself bound to a @code{} object. +Le champ @code{inputs} spécifie les entrées du processus de construction — +c.-à-d.@: les dépendances à la construction ou à l'exécution du paquet. Ici +on définie une entrée nommée @code{"gawk"} dont la valeur est la variable +@var{gawk} ; @var{gawk} est elle-même liée à un objet @code{}. -@cindex backquote (quasiquote) +@cindex accent grave (quasiquote) @findex ` @findex quasiquote -@cindex comma (unquote) +@cindex virgule (unquote) @findex , @findex unquote @findex ,@@ @findex unquote-splicing -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}). +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}). -Note that GCC, Coreutils, Bash, and other essential tools do not need to be -specified as inputs here. Instead, @var{gnu-build-system} takes care of -ensuring that they are present (@pxref{Systèmes de construction}). +Remarquez que GCC, Coreutils, Bash et les autres outils essentiels n'ont pas +besoin d'être spécifiés en tant qu'entrées ici. À la place, le +@var{gnu-build-system} est en charge de s'assurer qu'ils sont présents +(@pxref{Systèmes de construction}). -However, any other dependencies need to be specified in the @code{inputs} -field. Any dependency not specified here will simply be unavailable to the -build process, possibly leading to a build failure. +Cependant, toutes les autres dépendances doivent être spécifiées dans le +champ @code{inputs}. Toute dépendance qui ne serait pas spécifiée ici sera +simplement indisponible pour le processus de construction, ce qui peut mener +à un échec de la construction. @end itemize -@xref{Référence de paquet}, for a full description of possible fields. +@xref{Référence de paquet}, pour une description complète des champs +possibles. -Once a package definition is in place, the package may actually be built -using the @code{guix build} command-line tool (@pxref{Invoquer guix build}), -troubleshooting any build failures you encounter (@pxref{Débogage des échecs de construction}). You can easily jump back to the package definition using the -@command{guix edit} command (@pxref{Invoquer guix edit}). @xref{Consignes d'empaquetage}, for more information on how to test package definitions, and -@ref{Invoquer guix lint}, for information on how to check a definition for -style conformance. +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{Invoquer guix build}), pour résoudre les échecs de construction que +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 +@ref{Invoquer guix lint}, pour des informations sur la manière de vérifier +que la définition réspecte les conventions de style. @vindex GUIX_PACKAGE_PATH -Lastly, @pxref{Modules de paquets}, for information on how to extend the -distribution by adding your own package definitions to -@code{GUIX_PACKAGE_PATH}. +Enfin, @pxref{Modules de paquets} pour des informations sur la manière +d'étendre la distribution en ajoutant vos propres définitions de paquets +dans @code{GUIX_PACKAGE_PATH}. -Finally, updating the package definition to a new upstream version can be -partly automated by the @command{guix refresh} command (@pxref{Invoquer guix refresh}). +Finalement, la mise à jour de la définition du paquet à une nouvelle version +amont peut en partie s'automatiser avec la commande @command{guix refresh} +(@pxref{Invoquer guix refresh}). -Behind the scenes, a derivation corresponding to the @code{} object -is first computed by the @code{package-derivation} procedure. That -derivation is stored in a @code{.drv} file under @file{/gnu/store}. The -build actions it prescribes may then be realized by using the -@code{build-derivations} procedure (@pxref{Le dépôt}). +Sous le capot, une dérivation qui correspond à un objet @code{} est +d'abord calculé par la procédure @code{package-derivation}. Cette +dérivation est stockée dans un fichier @code{.drv} dans @file{/gnu/store}. +Les actions de construction qu'il prescrit peuvent ensuite être réalisées +par la procédure @code{build-derivation} (@pxref{Le dépôt}). -@deffn {Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}] -Return the @code{} object of @var{package} for @var{system} +@deffn {Procédure Scheme} package-derivation @var{dépôt} @var{paquet} [@var{système}] +Renvoie l'objet @code{} du @var{paquet} pour le @var{système} (@pxref{Dérivations}). -@var{package} must be a valid @code{} object, and @var{system} must -be a string denoting the target system type---e.g., @code{"x86_64-linux"} -for an x86_64 Linux-based GNU system. @var{store} must be a connection to -the daemon, which operates on the store (@pxref{Le dépôt}). +@var{paquet} doit être un objet @code{} valide et @var{système} une +chaîne indiquant le type de système cible — p.ex.@: @code{"x86_64-linux"} +pour un système GNU x86_64 basé sur Linux. @var{dépôt} doit être une +connexion au démon, qui opère sur les dépôt (@pxref{Le dépôt}). @end deffn @noindent -@cindex cross-compilation -Similarly, it is possible to compute a derivation that cross-builds a -package for some other system: +@cindex compilation croisée +De manière identique, il est possible de calculer une dérivation qui +effectue une compilation croisée d'un paquet pour un autre système : -@deffn {Scheme Procedure} package-cross-derivation @var{store} @ - @var{package} @var{target} [@var{system}] Return the @code{} -object of @var{package} cross-built from @var{system} to @var{target}. +@deffn {Procédure Scheme} package-cross-derivation @var{dépôt} @ + @var{paquet} @var{cible} [@var{système}] renvoie l'objet @code{} +duof @var{paquet} construit depuis @var{système} pour @var{cible}. -@var{target} must be a valid GNU triplet denoting the target hardware and -operating system, such as @code{"mips64el-linux-gnu"} (@pxref{Configuration -Names, GNU configuration triplets,, configure, GNU Configure and Build -System}). +@var{cible} doit être un triplet GNU valide indiquant le matériel cible et +le système d'exploitation, comme @code{"mips64el-linux-gnu"} +(@pxref{Configuration Names, GNU configuration triplets,, configure, GNU +Configure and Build System}). @end deffn -@cindex package transformations -@cindex input rewriting -@cindex dependency tree rewriting -Packages can be manipulated in arbitrary ways. An example of a useful -transformation is @dfn{input rewriting}, whereby the dependency tree of a -package is rewritten by replacing specific inputs by others: +@cindex transformations de paquets +@cindex réécriture d'entrées +@cindex réécriture de l'arbre des dépendances +On peut manipuler les paquets de manière arbitraire. Une transformation +utile est par exemple la @dfn{réécriture d'entrées} où l'arbre des +dépendances d'un paquet est réécrit en replaçant des entrées spécifiques par +d'autres : -@deffn {Scheme Procedure} package-input-rewriting @var{replacements} @ - [@var{rewrite-name}] Return a procedure that, when passed a package, -replaces its direct and indirect dependencies (but not its implicit inputs) -according to @var{replacements}. @var{replacements} is a list of package -pairs; the first element of each pair is the package to replace, and the -second one is the replacement. +@deffn {Procédure Scheme} package-input-rewriting @var{remplacements} @ + [@var{nom-réécrit}] Renvoie une procédure qui, lorsqu'on lui donne un +paquet, remplace des dépendances directes et indirectes (mais pas ses +entrées implicites) en fonction de @var{remplacements}. @var{remplacements} +est une liste de paires de paquets ; le premier élément de chaque pair est +le paquet à remplacer, le second son remplaçant. -Optionally, @var{rewrite-name} is a one-argument procedure that takes the -name of a package and returns its new name after rewrite. +De manière facultative, @var{nom-réécrit} est une procédure à un argument +qui prend le nom d'un paquet et renvoie son nouveau nom après l'avoir +réécrit. @end deffn @noindent -Consider this example: +Regardez cet exemple : @example (define libressl-instead-of-openssl - ;; This is a procedure to replace OPENSSL by LIBRESSL, - ;; recursively. + ;; Cette procédure remplace OPENSSL par LIBRESSL, + ;; récursivement. (package-input-rewriting `((,openssl . ,libressl)))) (define git-with-libressl @@ -3369,18 +3577,21 @@ Consider this example: @end example @noindent -Here we first define a rewriting procedure that replaces @var{openssl} with -@var{libressl}. Then we use it to define a @dfn{variant} of the @var{git} -package that uses @var{libressl} instead of @var{openssl}. This is exactly -what the @option{--with-input} command-line option does (@pxref{Options de transformation de paquets, @option{--with-input}}). +Ici nous définissons d'abord une procédure de réécriture qui remplace +@var{openssl} par @var{libressl}. Ensuite nous l'utilisons pour définir une +@dfn{variante} du paquet @var{git} qui utilise @var{libressl} plutôt que +@var{openssl}. cela est exactement ce que l'option en ligne de commande +@option{--with-input} fait (@pxref{Options de transformation de paquets, +@option{--with-input}}). -A more generic procedure to rewrite a package dependency graph is -@code{package-mapping}: it supports arbitrary changes to nodes in the graph. +Une procédure plus générique pour réécrire un graphe de dépendance d'un +paquet est @code{package-mapping} : elle supporte n'importe quel changement +dans les nœuds du graphe. -@deffn {Scheme Procedure} package-mapping @var{proc} [@var{cut?}] -Return a procedure that, given a package, applies @var{proc} to all the -packages depended on and returns the resulting package. The procedure stops -recursion when @var{cut?} returns true for a given package. +@deffn {Procédure Scheme} package-mapping @var{proc} [@var{cut?}] +Renvoie une procédure qui, avec un paquet, applique @var{proc} sur tous les +paquets dont il dépend et renvoie le paquet qui en résulte. La procédure +arrête la récursion là où @var{cut?} renvoie vrai pour un paquet donné. @end deffn @menu @@ -3390,159 +3601,167 @@ recursion when @var{cut?} returns true for a given package. @node Référence de paquet -@subsection @code{package} Reference +@subsection Référence de @code{package} -This section summarizes all the options available in @code{package} -declarations (@pxref{Définition des paquets}). +Cette section résume toutes les options disponibles dans les déclarations +@code{package} (@pxref{Définition des paquets}). -@deftp {Data Type} package -This is the data type representing a package recipe. +@deftp {Type de donnée} package +C'est le type de donnée représentant une recette de paquets @table @asis @item @code{name} -The name of the package, as a string. +Le nom du paquet, comme une chaîne de caractères. @item @code{version} -The version of the package, as a string. +La version du paquet, comme une chaîne de caractères. @item @code{source} -An object telling how the source code for the package should be acquired. -Most of the time, this is an @code{origin} object, which denotes a file -fetched from the Internet (@pxref{Référence d'origine}). It can also be any -other ``file-like'' object such as a @code{local-file}, which denotes a file -from the local file system (@pxref{G-Expressions, @code{local-file}}). +Un objet qui indique comment le code source du paquet devrait être +récupéré. La plupart du temps, c'est un objet @code{origin} qui indique un +fichier récupéré depuis internet (@pxref{Référence d'origine}). Il peut aussi +s'agir de tout autre objet ``simili-fichier'' comme un @code{local-file} qui +indique un fichier du système de fichier local (@pxref{G-Expressions, +@code{local-file}}). @item @code{build-system} -The build system that should be used to build the package (@pxref{Systèmes de construction}). +Le système de construction qui devrait être utilisé pour construire le +paquet (@pxref{Systèmes de construction}). -@item @code{arguments} (default: @code{'()}) -The arguments that should be passed to the build system. This is a list, -typically containing sequential keyword-value pairs. +@item @code{arguments} (par défaut : @code{'()}) +Les arguments à passer au système de construction. C'est une liste qui +contient typiquement une séquence de paires de clefs-valeurs. -@item @code{inputs} (default: @code{'()}) -@itemx @code{native-inputs} (default: @code{'()}) -@itemx @code{propagated-inputs} (default: @code{'()}) -@cindex inputs, of packages -These fields list dependencies of the package. Each one is a list of -tuples, where each tuple has a label for the input (a string) as its first -element, a package, origin, or derivation as its second element, and -optionally the name of the output thereof that should be used, which -defaults to @code{"out"} (@pxref{Des paquets avec plusieurs résultats}, for more -on package outputs). For example, the list below specifies three inputs: +@item @code{inputs} (par défaut : @code{'()}) +@itemx @code{native-inputs} (par défaut : @code{'()}) +@itemx @code{propagated-inputs} (par défaut : @code{'()}) +@cindex entrées, des paquets +Ces champs listent les dépendances du paquet. Chacune est une liste de +tuples, où chaque tuple a une étiquette pour une entrée (une chaîne de +caractères) comme premier élément, un paquet, une origine ou une dérivation +comme deuxième élément et éventuellement le nom d'une sortie à utiliser qui +est @code{"out"} par défaut (@pxref{Des paquets avec plusieurs résultats}, pour +plus d'informations sur les sorties des paquets). Par exemple, la liste +suivante spécifie trois entrées : @example `(("libffi" ,libffi) ("libunistring" ,libunistring) - ("glib:bin" ,glib "bin")) ;the "bin" output of Glib + ("glib:bin" ,glib "bin")) ;la sortie "bin" de Glib @end example -@cindex cross compilation, package dependencies -The distinction between @code{native-inputs} and @code{inputs} is necessary -when considering cross-compilation. When cross-compiling, dependencies -listed in @code{inputs} are built for the @emph{target} architecture; -conversely, dependencies listed in @code{native-inputs} are built for the -architecture of the @emph{build} machine. +@cindex compilation croisée, dépendances des paquets +La distinction entre @code{native-inputs} et @code{inputs} est nécessaire +lorsqu'on considère la compilation croisée. Lors d'une compilation croisée, +les dépendances listées dans @code{inputs} sont construites pour +l'architecture @emph{cible} ; inversement, les dépendances listées dans +@code{native-inputs} sont construites pour l'architecture de la machine de +@emph{construction}. -@code{native-inputs} is typically used to list tools needed at build time, -but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or -Bison. @command{guix lint} can report likely mistakes in this area -(@pxref{Invoquer guix lint}). +@code{native-inputs} est typiquement utilisé pour lister les outils requis à +la construction mais pas à l'exécution, comme Autoconf, Automake, +pkg-config, Gettext ou Bison. @command{guix lint} peut rapporter des +erreurs de ce type (@pxref{Invoquer guix lint}). @anchor{package-propagated-inputs} -Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the -specified packages will be automatically installed alongside the package -they belong to (@pxref{package-cmd-propagated-inputs, @command{guix -package}}, for information on how @command{guix package} deals with -propagated inputs.) +Enfin, @code{propagated-inputs} est similaire à @code{inputs}, mais les +paquets spécifiés seront automatiquement installés avec le paquet auquel ils +appartiennent (@pxref{package-cmd-propagated-inputs, @command{guix +package}}, pour des informations sur la manière dont @command{guix package} +traite les entrées propagées). -For example this is necessary when a C/C++ library needs headers of another -library to compile, or when a pkg-config file refers to another one @i{via} -its @code{Requires} field. +Par exemple cela est nécessaire lorsque des bibliothèques C/C++ ont besoin +d'en-têtes d'une autre bibliothèque pour être compilé ou lorsqu'un fichier +pkg-config se rapporte à un autre @i{via} son champ @code{Requires}. -Another example where @code{propagated-inputs} is useful is for languages -that lack a facility to record the run-time search path akin to the -@code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more. -To ensure that libraries written in those languages can find library code -they depend on at run time, run-time dependencies must be listed in -@code{propagated-inputs} rather than @code{inputs}. +Un autre exemple où @code{propagated-inputs} est utile est pour les langages +auxquels il manque un moyen de retenir le chemin de recherche comme c'est le +cas du @code{RUNPATH} des fichiers ELF ; cela comprend Guile, Python, Perl +et plus. Pour s'assurer que les bibliothèques écrites dans ces langages +peuvent trouver le code des bibliothèques dont elles dépendent à +l'exécution, les dépendances à l'exécution doivent être listées dans +@code{propagated-inputs} plutôt que @code{inputs}. -@item @code{self-native-input?} (default: @code{#f}) -This is a Boolean field telling whether the package should use itself as a -native input when cross-compiling. +@item @code{self-native-input?} (par défaut : @code{#f}) +C'est un champ booléen qui indique si le paquet devrait s'utiliser lui-même +comme entrée native lors de la compilation croisée. -@item @code{outputs} (default: @code{'("out")}) -The list of output names of the package. @xref{Des paquets avec plusieurs résultats}, for typical uses of additional outputs. +@item @code{outputs} (par défaut : @code{'("out")}) +La liste des noms de sorties du paquet. @xref{Des paquets avec plusieurs résultats}, pour des exemples typiques d'utilisation de sorties +supplémentaires. -@item @code{native-search-paths} (default: @code{'()}) -@itemx @code{search-paths} (default: @code{'()}) -A list of @code{search-path-specification} objects describing search-path -environment variables honored by the package. +@item @code{native-search-paths} (par défaut : @code{'()}) +@itemx @code{search-paths} (par défaut : @code{'()}) +Une liste d'objets @code{search-path-specification} décrivant les variables +d'environnement de recherche de chemins que ce paquet utilise. -@item @code{replacement} (default: @code{#f}) -This must be either @code{#f} or a package object that will be used as a -@dfn{replacement} for this package. @xref{Mises à jour de sécurité, grafts}, for -details. +@item @code{replacement} (par défaut : @code{#f}) +Ce champ doit être soit @code{#f} soit un objet de paquet qui sera utilisé +comme @dfn{remplaçant} de ce paquet. @xref{Mises à jour de sécurité, grafts}, pour +plus de détails. @item @code{synopsis} -A one-line description of the package. +Une description sur une ligne du paquet. @item @code{description} -A more elaborate description of the package. +Une description plus détaillée du paquet. @item @code{license} -@cindex license, of packages -The license of the package; a value from @code{(guix licenses)}, or a list -of such values. +@cindex licence, des paquets +La licence du paquet ; une valeur tirée de @code{(guix licenses)} ou une +liste de ces valeurs. @item @code{home-page} -The URL to the home-page of the package, as a string. +L'URL de la page d'accueil du paquet, en tant que chaîne de caractères. -@item @code{supported-systems} (default: @var{%supported-systems}) -The list of systems supported by the package, as strings of the form -@code{architecture-kernel}, for example @code{"x86_64-linux"}. +@item @code{supported-systems} (par défaut : @var{%supported-systems}) +La liste des systèmes supportés par le paquet, comme des chaînes de +caractères de la forme @code{architecture-noyau}, par exemple +@code{"x86_64-linux"}. -@item @code{maintainers} (default: @code{'()}) -The list of maintainers of the package, as @code{maintainer} objects. +@item @code{maintainers} (par défaut : @code{'()}) +La liste des mainteneurs du paquet, comme des objets @code{maintainer}. -@item @code{location} (default: source location of the @code{package} form) -The source location of the package. It is useful to override this when -inheriting from another package, in which case this field is not -automatically corrected. +@item @code{location} (par défaut : emplacement de la source de la forme @code{package}) +L'emplacement de la source du paquet. C'est utile de le remplacer lorsqu'on +hérite d'un autre paquet, auquel cas ce champ n'est pas automatiquement +corrigé. @end table @end deftp @node Référence d'origine -@subsection @code{origin} Reference +@subsection Référence de @code{origin} -This section summarizes all the options available in @code{origin} -declarations (@pxref{Définition des paquets}). +Cette section résume toutes les options disponibles dans le déclarations +@code{origin} (@pxref{Définition des paquets}). -@deftp {Data Type} origin -This is the data type representing a source code origin. +@deftp {Type de donnée} origin +C'est le type de donnée qui représente l'origine d'un code source. @table @asis @item @code{uri} -An object containing the URI of the source. The object type depends on the -@code{method} (see below). For example, when using the @var{url-fetch} -method of @code{(guix download)}, the valid @code{uri} values are: a URL -represented as a string, or a list thereof. +Un objet contenant l'URI de la source. Le type d'objet dépend de la +@code{method} (voir plus bas). Par exemple, avec la méthode @var{url-fetch} +de @code{(guix download)}, les valeurs valide d'@code{uri} sont : une URL +représentée par une chaîne de caractères, ou une liste de chaînes de +caractères. @item @code{method} -A procedure that handles the URI. +Un procédure qui gère l'URI. -Examples include: +Quelques exemples : @table @asis -@item @var{url-fetch} from @code{(guix download)} -download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} -field; +@item @var{url-fetch} de @code{(guix download)} +télécharge un fichier depuis l'URL HTTP, HTTPS ou FTP spécifiée dans le +champ @code{uri} ; @vindex git-fetch -@item @var{git-fetch} from @code{(guix git-download)} -clone the Git version control repository, and check out the revision -specified in the @code{uri} field as a @code{git-reference} object; a -@code{git-reference} looks like this: +@item @var{git-fetch} de @code{(guix git-download)} +clone le dépôt sous contrôle de version Git et récupère la révision +spécifiée dans le champ @code{uri} en tant qu'objet @code{git-reference} ; +un objet @code{git-reference} ressemble à cela : @example (git-reference @@ -3552,47 +3771,50 @@ specified in the @code{uri} field as a @code{git-reference} object; a @end table @item @code{sha256} -A bytevector containing the SHA-256 hash of the source. Typically the -@code{base32} form is used here to generate the bytevector from a base-32 -string. +Un bytevector contenant le hash SHA-256 de la source. Typiquement la forme +@code{base32} est utilisée ici pour générer le bytevector depuis une chaîne +de caractères en base-32. -You can obtain this information using @code{guix download} (@pxref{Invoquer guix download}) or @code{guix hash} (@pxref{Invoquer guix hash}). +Vous pouvez obtenir cette information avec @code{guix download} +(@pxref{Invoquer guix download}) ou @code{guix hash} (@pxref{Invoquer guix hash}). -@item @code{file-name} (default: @code{#f}) -The file name under which the source code should be saved. When this is -@code{#f}, a sensible default value will be used in most cases. In case the -source is fetched from a URL, the file name from the URL will be used. For -version control checkouts, it is recommended to provide the file name -explicitly because the default is not very descriptive. +@item @code{file-name} (par défaut : @code{#f}) +Le nom de fichier à utiliser pour sauvegarder le fichier. Lorsqu'elle est à +@code{#f}, une valeur par défaut raisonnable est utilisée dans la plupart +des cas. Dans le cas où la source est récupérée depuis une URL, le nom de +fichier est celui de l'URL. Pour les sources récupérées depuis un outil de +contrôle de version, il est recommandé de fournir un nom de fichier +explicitement parce que le nom par défaut n'est pas très descriptif. -@item @code{patches} (default: @code{'()}) -A list of file names, origins, or file-like objects (@pxref{G-Expressions, -file-like objects}) pointing to patches to be applied to the source. +@item @code{patches} (par défaut : @code{'()}) +Une liste de noms de fichiers, d'origines ou d'objets simili-fichiers +(@pxref{G-Expressions, file-like objects}) qui pointent vers des correctifs +à appliquer sur la source. -This list of patches must be unconditional. In particular, it cannot depend -on the value of @code{%current-system} or @code{%current-target-system}. +Cette liste de correctifs doit être inconditionnelle. En particulier, elle +ne peut pas dépendre des valeurs de @code{%current-system} ou +@code{%current-target-system}. -@item @code{snippet} (default: @code{#f}) -A G-expression (@pxref{G-Expressions}) or S-expression that will be run in -the source directory. This is a convenient way to modify the source, -sometimes more convenient than a patch. +@item @code{snippet} (par défaut : @code{#f}) +Une G-expression (@pxref{G-Expressions}) ou une S-expression qui sera lancée +dans le répertoire des sources. C'est une manière pratique de modifier la +source, parfois plus qu'un correctif. -@item @code{patch-flags} (default: @code{'("-p1")}) -A list of command-line flags that should be passed to the @code{patch} -command. +@item @code{patch-flags} (par défaut : @code{'("-p1")}) +Une liste de drapeaux à passer à la commande @code{patch}. -@item @code{patch-inputs} (default: @code{#f}) -Input packages or derivations to the patching process. When this is -@code{#f}, the usual set of inputs necessary for patching are provided, such -as GNU@tie{}Patch. +@item @code{patch-inputs} (par défaut : @code{#f}) +Paquets d'entrées ou dérivations pour le processus de correction. +Lorsqu'elle est à @code{#f}, l'ensemble d'entrées habituellement nécessaire +pour appliquer des correctifs est fournit, comme GNU@tie{}Patch. -@item @code{modules} (default: @code{'()}) -A list of Guile modules that should be loaded during the patching process -and while running the code in the @code{snippet} field. +@item @code{modules} (par défaut : @code{'()}) +Une liste de modules Guile qui devraient être chargés pendant le processus +de correction et pendant que le lancement du code du champ @code{snippet}. -@item @code{patch-guile} (default: @code{#f}) -The Guile package that should be used in the patching process. When this is -@code{#f}, a sensible default is used. +@item @code{patch-guile} (par défaut : @code{#f}) +Le paquet Guile à utiliser dans le processus de correction. Lorsqu'elle est +à @code{#f}, une valeur par défaut raisonnable est utilisée. @end table @end deftp @@ -3600,7 +3822,7 @@ The Guile package that should be used in the patching process. When this is @node Systèmes de construction @section Systèmes de construction -@cindex build system +@cindex système de construction Each package definition specifies a @dfn{build system} and arguments for that build system (@pxref{Définition des paquets}). This @code{build-system} field represents the build procedure of the package, as well as implicit @@ -3742,6 +3964,25 @@ will be run. @end defvr +@defvr {Scheme Variable} android-ndk-build-system +@cindex Android distribution +@cindex Android NDK build system +This variable is exported by @code{(guix build-system android-ndk)}. It +implements a build procedure for Android NDK (native development kit) +packages using a Guix-specific build process. + +The build system assumes that packages install their public interface +(header) files to the subdirectory "include" of the "out" output and their +libraries to the subdirectory "lib" of the "out" output. + +It's also assumed that the union of all the dependencies of a package has no +conflicting files. + +For the time being, cross-compilation is not supported - so right now the +libraries and header files are assumed to be host tools. + +@end defvr + @defvr {Scheme Variable} asdf-build-system/source @defvrx {Scheme Variable} asdf-build-system/sbcl @defvrx {Scheme Variable} asdf-build-system/ecl @@ -4188,7 +4429,7 @@ The store is @emph{always} accessed by the daemon on behalf of its clients the daemon over a Unix-domain socket, send requests to it, and read the result---these are remote procedure calls, or RPCs. -@quotation Note +@quotation Remarque Users must @emph{never} modify files under @file{/gnu/store} directly. This would lead to inconsistencies and break the immutability assumptions of Guix's functional model (@pxref{Introduction}). @@ -4218,10 +4459,10 @@ These are for Unix-domain sockets. @file{/var/guix/daemon-socket/socket}. @item guix -@cindex daemon, remote access -@cindex remote access to the daemon -@cindex daemon, cluster setup -@cindex clusters, daemon setup +@cindex démon, accès distant +@cindex accès distant au démon +@cindex démon, paramètres de grappes +@cindex grappes, paramètres du démon These URIs denote connections over TCP/IP, without encryption nor authentication of the remote host. The URI must specify the host name and optionally a port number (by default port 44146 is used): @@ -4256,7 +4497,7 @@ Additional URI schemes may be supported in the future. @c XXX: Remove this note when the protocol incurs fewer round trips @c and when (guix derivations) no longer relies on file system access. -@quotation Note +@quotation Remarque The ability to connect to remote build daemons is considered experimental as of @value{VERSION}. Please get in touch with us to share any problems or suggestions you may have (@pxref{Contribuer}). @@ -4940,6 +5181,23 @@ which comes in handy in this case: @dots{}))) @end example +@cindex extensions, for gexps +@findex with-extensions +In the same vein, sometimes you want to import not just pure-Scheme modules, +but also ``extensions'' such as Guile bindings to C libraries or other +``full-blown'' packages. Say you need the @code{guile-json} package +available on the build side, here's how you would do it: + +@example +(use-modules (gnu packages guile)) ;for 'guile-json' + +(with-extensions (list guile-json) + (gexp->derivation "something-with-json" + #~(begin + (use-modules (json)) + @dots{}))) +@end example + The syntactic form to construct gexps is summarized below. @deffn {Scheme Syntax} #~@var{exp} @@ -5023,6 +5281,17 @@ defined in @var{body}@dots{}, but not on those defined, say, in procedures called from @var{body}@dots{}. @end deffn +@deffn {Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{} +Mark the gexps defined in @var{body}@dots{} as requiring @var{extensions} in +their build and execution environment. @var{extensions} is typically a list +of package objects such as those defined in the @code{(gnu packages guile)} +module. + +Concretely, the packages listed in @var{extensions} are added to the load +path while compiling imported modules in @var{body}@dots{}; they are also +added to the load path of the gexp returned by @var{body}@dots{}. +@end deffn + @deffn {Scheme Procedure} gexp? @var{obj} Return @code{#t} if @var{obj} is a G-expression. @end deffn @@ -5035,15 +5304,15 @@ monads.) @deffn {Monadic Procedure} gexp->derivation @var{name} @var{exp} @ [#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ -[#:module-path @var{%load-path}] @ [#:references-graphs #f] -[#:allowed-references #f] @ [#:disallowed-references #f] @ -[#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} -"-builder")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] -[#:substitutable? #t] [#:guile-for-build #f] Return a derivation @var{name} -that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on -@var{system}; @var{exp} is stored in a file called @var{script-name}. When -@var{target} is true, it is used as the cross-compilation target triplet for -packages referred to by @var{exp}. +[#:module-path @var{%load-path}] @ [#:effective-version "2.2"] @ +[#:references-graphs #f] [#:allowed-references #f] @ +[#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name +(string-append @var{name} "-builder")] @ [#:deprecation-warnings #f] @ +[#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Return a +derivation @var{name} that runs @var{exp} (a gexp) with +@var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in +a file called @var{script-name}. When @var{target} is true, it is used as +the cross-compilation target triplet for packages referred to by @var{exp}. @var{modules} is deprecated in favor of @code{with-imported-modules}. Its meaning is to make @var{modules} available in the evaluation context of @@ -5052,6 +5321,10 @@ meaning is to make @var{modules} available in the evaluation context of the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}. +@var{effective-version} determines the string to use when adding extensions +of @var{exp} (see @code{with-extensions}) to the search path---e.g., +@code{"2.2"}. + @var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable. @@ -5188,7 +5461,7 @@ The resulting file holds references to all the dependencies of @var{exp} or a subset thereof. @end deffn -@deffn {Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f] +@deffn {Scheme Procedure} derivation @var{store} @var{name} @var{builder} @ Return an object representing the Scheme file @var{name} that contains @var{exp}. @@ -5311,10 +5584,11 @@ an associated gexp compiler, such as a @code{}. @node Utilitaires @chapter Utilitaires -This section describes Guix command-line utilities. Some of them are -primarily targeted at developers and users who write new package -definitions, while others are more generally useful. They complement the -Scheme programming interface of Guix in a convenient way. +cette section décrit les utilitaires en ligne de commande de Guix. certains +sont surtout faits pour les développeurs qui écrivent de nouvelles +définitions de paquets tandis que d'autres sont plus utiles pour une +utilisation générale. Ils complètent l'interface de programmation Scheme de +Guix d'une manière pratique. @menu * Invoquer guix build:: Construire des paquets depuis la ligne de @@ -5340,7 +5614,7 @@ Scheme programming interface of Guix in a convenient way. @node Invoquer guix build @section Invoquer @command{guix build} -@cindex package building +@cindex construction de paquets @cindex @command{guix build} The @command{guix build} command builds packages or derivations and their dependencies, and prints the resulting store paths. Note that it does not @@ -5348,7 +5622,7 @@ modify the user's profile---this is the job of the @command{guix package} command (@pxref{Invoquer guix package}). Thus, it is mainly useful for distribution developers. -The general syntax is: +La syntaxe générale est : @example guix build @var{options} @var{package-or-derivation}@dots{} @@ -5447,9 +5721,9 @@ tant qu'ils sont signés par une clef autorisée par l'administrateur système When @var{urls} is the empty string, substitutes are effectively disabled. @item --no-substitutes -Ne pas utiliser de substitut pour les résultats de la -construction. C'est-à-dire, toujours construire localement plutôt que de -permettre le téléchargement de binaires pré-construits (@pxref{Substituts}). +Ne pas utiliser de substitut pour les résultats de la construction. +C'est-à-dire, toujours construire localement plutôt que de permettre le +téléchargement de binaires pré-construits (@pxref{Substituts}). @item --no-grafts Do not ``graft'' packages. In practice, this means that package updates @@ -5476,16 +5750,17 @@ Do not attempt to offload builds @i{via} the ``build hook'' of the daemon (@pxref{Réglages du délestage du démon}). That is, always build things locally instead of offloading builds to remote machines. -@item --max-silent-time=@var{seconds} -When the build or substitution process remains silent for more than -@var{seconds}, terminate it and report a build failure. +@item --max-silent-time=@var{secondes} +Lorsque le processus de construction ou de substitution restent silencieux +pendant plus de @var{secondes}, le terminer et rapporter une erreur de +construction. By default, the daemon's setting is honored (@pxref{Invoquer guix-daemon, @code{--max-silent-time}}). -@item --timeout=@var{seconds} -Likewise, when the build or substitution process lasts for more than -@var{seconds}, terminate it and report a build failure. +@item --timeout=@var{secondes} +De même, lorsque le processus de construction ou de substitution dure plus +de @var{secondes}, le terminer et rapporter une erreur de construction. By default, the daemon's setting is honored (@pxref{Invoquer guix-daemon, @code{--timeout}}). @@ -5640,7 +5915,7 @@ log is kept in @file{/var} (or similar) and can always be retrieved using the @option{--log-file} option. @item --file=@var{file} -@itemx -f @var{file} +@itemx -f @var{fichier} Build the package or derivation that the code within @var{file} evaluates to. @@ -5722,12 +5997,12 @@ The following derivations will be built: @end table -@item --system=@var{system} -@itemx -s @var{system} -Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the -system type of the build host. +@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. -@quotation Note +@quotation Remarque The @code{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation. See @code{--target} below for information on cross-compilation. @@ -5735,11 +6010,18 @@ on cross-compilation. An example use of this is on Linux-based systems, which can emulate different personalities. For instance, passing @code{--system=i686-linux} -on an @code{x86_64-linux} system allows you to build packages in a complete +on an @code{x86_64-linux} system or @code{--system=armhf-linux} on an +@code{aarch64-linux} system allows you to build packages in a complete 32-bit environment. +@quotation Remarque +Building for an @code{armhf-linux} system is unconditionally enabled on +@code{aarch64-linux} machines, although certain aarch64 chipsets do not +allow for this functionality, notably the ThunderX. +@end quotation + Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is -enabled (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), +enabled (@pxref{Services de virtualisation, @code{qemu-binfmt-service-type}}), you can build for any system for which a QEMU @code{binfmt_misc} handler is installed. @@ -5747,10 +6029,10 @@ Builds for a system other than that of the machine you are using can also be offloaded to a remote machine of the right architecture. @xref{Réglages du délestage du démon}, for more information on offloading. @item --target=@var{triplet} -@cindex cross-compilation -Cross-build for @var{triplet}, which must be a valid GNU triplet, such as -@code{"mips64el-linux-gnu"} (@pxref{Specifying target triplets, GNU -configuration triplets,, autoconf, Autoconf}). +@cindex compilation croisée +Effectuer une compilation croisée pour @var{triplet} qui doit être un +triplet GNU valide, comme @code{"mips64el-linux-gnu"} (@pxref{Specifying +target triplets, GNU configuration triplets,, autoconf, Autoconf}). @anchor{build-check} @item --check @@ -5765,13 +6047,13 @@ 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. -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. +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. @item --repair @cindex repairing store items -@cindex corruption, recovering from +@cindex corruption, récupérer de Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them. @@ -5984,7 +6266,7 @@ primarily a convenience tool for anyone contributing to the distribution: it computes the cryptographic hash of a file, which can be used in the definition of a package (@pxref{Définition des paquets}). -The general syntax is: +La syntaxe générale est : @example guix hash @var{option} @var{file} @@ -6049,7 +6331,7 @@ demand. The command knows of a few repositories from which it can ``import'' package metadata. The result is a package definition, or a template thereof, in the format we know (@pxref{Définition des paquets}). -The general syntax is: +La syntaxe générale est : @example guix import @var{importer} @var{options}@dots{} @@ -6380,6 +6662,12 @@ package signatures,, emacs, The GNU Emacs Manual}). @uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier. @end itemize + +@item --recursive +@itemx -r +Traverse the dependency graph of the given upstream package recursively and +generate package expressions for all those packages that are not yet in +Guix. @end table @item crate @@ -6454,7 +6742,7 @@ The following options are supported: @item --expression=@var{expr} @itemx -e @var{expr} -Consider the package @var{expr} evaluates to. +Considérer le paquet évalué par @var{expr}. This is useful to precisely refer to a package, as in this example: @@ -6492,8 +6780,8 @@ The @code{non-core} subset refers to the remaining packages. It is typically useful in cases where an update of the core packages would be inconvenient. -@item --manifest=@var{file} -@itemx -m @var{file} +@item --manifest=@var{fichier} +@itemx -m @var{fichier} Select all the packages from the manifest in @var{file}. This is useful to check if any packages of the user manifest can be updated. @@ -6687,15 +6975,33 @@ where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., Package developers can specify in package recipes the @uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)} name -and version of the package when they differ from the name that Guix uses, as -in this example: +and version of the package when they differ from the name or version that +Guix uses, as in this example: @example (package (name "grub") ;; @dots{} ;; CPE calls this package "grub2". - (properties '((cpe-name . "grub2")))) + (properties '((cpe-name . "grub2") + (cpe-version . "2.3"))) +@end example + +@c See . +Some entries in the CVE database do not specify which version of a package +they apply to, and would thus ``stick around'' forever. Package developers +who found CVE alerts and verified they can be ignored can declare them as in +this example: + +@example +(package + (name "t1lib") + ;; @dots{} + ;; These CVEs no longer apply and can be safely ignored. + (properties `((lint-hidden-cve . ("CVE-2011-0433" + "CVE-2011-1553" + "CVE-2011-1554" + "CVE-2011-5244"))))) @end example @item formatting @@ -6703,7 +7009,7 @@ Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc. @end table -The general syntax is: +La syntaxe générale est : @example guix lint @var{options} @var{package}@dots{} @@ -6738,18 +7044,22 @@ dependency added to a package, or the impact of using a single output for a package that could easily be split (@pxref{Des paquets avec plusieurs résultats}). Such are the typical issues that @command{guix size} can highlight. -The command can be passed a package specification such as @code{gcc@@4.8} or -@code{guile:debug}, or a file name in the store. Consider this example: +The command can be passed one or more package specifications such as +@code{gcc@@4.8} or @code{guile:debug}, or a file name in the store. +Consider this example: @example $ guix size coreutils store item total self -/gnu/store/@dots{}-coreutils-8.23 70.0 13.9 19.8% -/gnu/store/@dots{}-gmp-6.0.0a 55.3 2.5 3.6% -/gnu/store/@dots{}-acl-2.2.52 53.7 0.5 0.7% -/gnu/store/@dots{}-attr-2.4.46 53.2 0.3 0.5% -/gnu/store/@dots{}-gcc-4.8.4-lib 52.9 15.7 22.4% -/gnu/store/@dots{}-glibc-2.21 37.2 37.2 53.1% +/gnu/store/@dots{}-gcc-5.5.0-lib 60.4 30.1 38.1% +/gnu/store/@dots{}-glibc-2.27 30.3 28.8 36.6% +/gnu/store/@dots{}-coreutils-8.28 78.9 15.0 19.0% +/gnu/store/@dots{}-gmp-6.1.2 63.1 2.7 3.4% +/gnu/store/@dots{}-bash-static-4.4.12 1.5 1.5 1.9% +/gnu/store/@dots{}-acl-2.2.52 61.1 0.4 0.5% +/gnu/store/@dots{}-attr-2.4.47 60.6 0.2 0.3% +/gnu/store/@dots{}-libcap-2.25 60.5 0.2 0.2% +total: 78.9 MiB @end example @cindex closure @@ -6769,20 +7079,23 @@ last column shows the ratio of the size of the item itself to the space occupied by all the items listed here. In this example, we see that the closure of Coreutils weighs in at -70@tie{}MiB, half of which is taken by libc. (That libc represents a large -fraction of the closure is not a problem @i{per se} because it is always -available on the system anyway.) +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.) -When the package passed to @command{guix size} is available in the store, -@command{guix size} queries the daemon to determine its dependencies, and -measures its size in the store, similar to @command{du -ms --apparent-size} -(@pxref{du invocation,,, coreutils, GNU Coreutils}). +When the package(s) passed to @command{guix size} are available in the +store@footnote{More precisely, @command{guix size} looks for the +@emph{ungrafted} variant of the given package(s), as returned by @code{guix +build @var{package} --no-grafts}. @xref{Mises à jour de sécurité}, for information +on grafts.}, @command{guix size} queries the daemon to determine its +dependencies, and measures its size in the store, similar to @command{du -ms +--apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils}). -Lorsque le paquet donné n'est @emph{pas} dans le dépôt, @command{guix size} -rapporte les informations en se basant sur les substituts disponibles -(@pxref{Substituts}). Cela permet de profiler l'utilisation du disque des -éléments du dépôt qui ne sont pas sur le disque, mais seulement disponibles -à distance. +When the given packages are @emph{not} in the store, @command{guix size} +reports information based on the available substitutes +(@pxref{Substituts}). This makes it possible it to profile disk usage of +store items that are not even on disk, only available remotely. You can also specify several package names: @@ -6833,8 +7146,8 @@ This option requires that installed and visible in Guile's module search path. When that is not the case, @command{guix size} fails as it tries to load it. -@item --system=@var{system} -@itemx -s @var{system} +@item --system=@var{système} +@itemx -s @var{système} Consider packages for @var{system}---e.g., @code{x86_64-linux}. @end table @@ -6844,7 +7157,7 @@ Consider packages for @var{system}---e.g., @code{x86_64-linux}. @cindex DAG @cindex @command{guix graph} -@cindex package dependencies +@cindex dépendances des paquets Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG). It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command provides a visual @@ -6929,7 +7242,7 @@ dependencies. @item bag-with-origins Similar to @code{bag}, but also showing origins and their dependencies. -@item derivation +@item dérivation This is the most detailed representation: It shows the DAG of derivations (@pxref{Dérivations}) and plain store items. Compared to the above representation, many additional nodes are visible, including build scripts, @@ -7007,7 +7320,7 @@ Currently, the available backends are Graphviz and d3.js. @item --expression=@var{expr} @itemx -e @var{expr} -Consider the package @var{expr} evaluates to. +Considérer le paquet évalué par @var{expr}. This is useful to precisely refer to a package, as in this example: @@ -7029,7 +7342,7 @@ reproducible development environments without polluting their package profile. The @command{guix environment} tool takes one or more packages, builds all of their inputs, and creates a shell environment to use them. -The general syntax is: +La syntaxe générale est : @example guix environment @var{options} @var{package}@dots{} @@ -7129,7 +7442,7 @@ mounted: guix environment --ad-hoc --container guile -- guile @end example -@quotation Note +@quotation Remarque The @code{--container} option requires Linux-libre 3.19 or newer. @end quotation @@ -7186,15 +7499,15 @@ guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) "include")' Create an environment for the package or list of packages that the code within @var{file} evaluates to. -As an example, @var{file} might contain a definition like this -(@pxref{Définition des paquets}): +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{file} -@itemx -m @var{file} +@item --manifest=@var{fichier} +@itemx -m @var{fichier} Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}. @@ -7236,8 +7549,8 @@ contain package inputs. @item --search-paths Display the environment variable definitions that make up the environment. -@item --system=@var{system} -@itemx -s @var{system} +@item --system=@var{système} +@itemx -s @var{système} Attempt to build for @var{system}---e.g., @code{i686-linux}. @item --container @@ -7352,7 +7665,7 @@ privilèges le plus tôt possible. The signing key pair must be generated before @command{guix publish} is launched, using @command{guix archive --generate-key} (@pxref{Invoquer guix archive}). -The general syntax is: +La syntaxe générale est : @example guix publish @var{options}@dots{} @@ -7529,7 +7842,7 @@ If your host distro uses the systemd init system: @end example @item -If your host distro uses the Upstart init system: +Si votre distribution hôte utilise le système d'initialisation Upstart : @example # ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/ @@ -7543,7 +7856,7 @@ Otherwise, proceed similarly with your distro's init system. @node Invoquer guix challenge @section Invoking @command{guix challenge} -@cindex reproducible builds +@cindex constructions reproductibles @cindex verifiable builds @cindex @command{guix challenge} @cindex challenge @@ -7647,7 +7960,7 @@ $ guix challenge @var{package} where @var{package} is a package specification such as @code{guile@@2.0} or @code{glibc:debug}. -The general syntax is: +La syntaxe générale est : @example guix challenge @var{options} [@var{packages}@dots{}] @@ -7712,7 +8025,7 @@ retrieving must be in @file{/etc/guix/acl} so it is accepted by your own daemon. @xref{Invoquer guix archive}, for more information about store item authentication. -The general syntax is: +La syntaxe générale est : @example guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{} @@ -7740,7 +8053,7 @@ unless @option{--dry-run} was specified. Common build options are supported @section Invoking @command{guix container} @cindex container @cindex @command{guix container} -@quotation Note +@quotation Remarque As of version @value{VERSION}, this tool is experimental. The interface is subject to radical change in the future. @end quotation @@ -7749,7 +8062,7 @@ The purpose of @command{guix container} is to manipulate processes running within an isolated environment, commonly known as a ``container'', typically created by the @command{guix environment} (@pxref{Invoquer guix environment}) and @command{guix system container} (@pxref{Invoquer guix system}) commands. -The general syntax is: +La syntaxe générale est : @example guix container @var{action} @var{options}@dots{} @@ -7853,13 +8166,13 @@ specific package sets. The available options are listed below. When this option is omitted, the default set of substitute servers is queried. -@item --system=@var{system} -@itemx -s @var{system} +@item --system=@var{système} +@itemx -s @var{système} Query substitutes for @var{system}---e.g., @code{aarch64-linux}. This option can be repeated, in which case @command{guix weather} will query substitutes for several system types. -@item --manifest=@var{file} +@item --manifest=@var{fichier} Instead of querying substitutes for all the packages, only ask for those specified in @var{file}. @var{file} must contain a @dfn{manifest}, as with the @code{-m} option of @command{guix package} (@pxref{Invoquer guix package}). @@ -7954,7 +8267,7 @@ on a machine. The Guix package manager can also be installed on top of a running GNU/Linux system, @pxref{Installation}. @ifinfo -@quotation Note +@quotation Remarque @c This paragraph is for people reading this from tty2 of the @c installation image. You are reading this documentation with an Info reader. For details on how @@ -7974,7 +8287,7 @@ available. d'installation. * Préparer l'installation:: Réseau, partitionnement, etc. * Effectuer l'installation:: Pour de vrai. -* Installer GuixSD dans une VM:: Jouer avec GuixSD. +* Installer GuixSD dans une VM:: Jouer avec GuixSD@. * Construire l'image d'installation:: D'où vient tout cela. @end menu @@ -8012,8 +8325,7 @@ More than 6,500 packages are available, but you might occasionally find that a useful package is missing. @item -GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop -Services}), as well as a number of X11 window managers. However, some +GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Services de bureaux}), as well as a number of X11 window managers. However, some graphical applications may be missing, as well as KDE. @end itemize @@ -8082,8 +8394,8 @@ $ wget ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}. $ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig @end example -If that command fails because you do not have the required public key, then -run this command to import it: +Si cette commande échoue parce que vous n'avez pas la clef publique requise, +lancez cette commande pour l'importer : @example $ gpg --keyserver pgp.mit.edu --recv-keys @value{OPENPGP-SIGNING-KEY-ID} @@ -8091,7 +8403,7 @@ $ gpg --keyserver pgp.mit.edu --recv-keys @value{OPENPGP-SIGNING-KEY-ID} @noindent @c end duplication -and rerun the @code{gpg --verify} command. +et relancez la commande @code{gpg --verify}. This image contains the tools necessary for an installation. It is meant to be copied @emph{as is} to a large-enough USB stick or DVD. @@ -8166,7 +8478,7 @@ 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 Note +@quotation Remarque Installation requires access to the Internet so that any missing dependencies of your system configuration can be downloaded. See the ``Networking'' section below. @@ -8579,7 +8891,8 @@ instantiated. Then we show how this mechanism can be extended, for instance to support new system services. @menu -* Utiliser le système de configuration:: Personnaliser votre système GNU. +* Utiliser le système de configuration:: Personnaliser votre système + GNU@. * Référence de système d'exploitation:: Détail sur la déclaration de système d'exploitation. * Systèmes de fichiers:: Configurer les montages de systèmes de @@ -8590,7 +8903,7 @@ to support new system services. culturelles. * Services:: Spécifier les services du système. * Programmes setuid:: Programmes tournant avec les privilèges root. -* Certificats X.509:: Authentifier les serveurs HTTPS. +* Certificats X.509:: Authentifier les serveurs HTTPS@. * Name Service Switch:: Configurer le « name service switch » de la libc. * Disque de RAM initial:: Démarrage de Linux-Libre. @@ -8677,7 +8990,7 @@ 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 @command{lshd} secure shell daemon listening on port 2222 -(@pxref{Networking Services, @code{lsh-service}}). Under the hood, +(@pxref{Services réseau, @code{lsh-service}}). Under the hood, @code{lsh-service} arranges so that @code{lshd} is started with the right command-line options, possibly with supporting configuration files generated as needed (@pxref{Définir des services}). @@ -8743,7 +9056,7 @@ This example refers to the @file{/boot/efi} file system by its UUID, @code{1234-ABCD}. Replace this UUID with the right UUID on your system, as returned by the @command{blkid} command. -@xref{Desktop Services}, for the exact list of services provided by +@xref{Services de bureaux}, for the exact list of services provided by @var{%desktop-services}. @xref{Certificats X.509}, for background information about the @code{nss-certs} package that is used here. @@ -8989,20 +9302,30 @@ This is a string specifying the type of the file system---e.g., This designates the place where the file system is to be mounted. @item @code{device} -This names the ``source'' of the file system. By default it is the name of -a node under @file{/dev}, but its meaning depends on the @code{title} field -described below. +This names the ``source'' of the file system. It can be one of three +things: a file system label, a file system UUID, or the name of a +@file{/dev} node. Labels and UUIDs offer a way to refer to file systems +without having to hard-code their actual device name@footnote{Note that, +while it is tempting to use @file{/dev/disk/by-uuid} and similar device +names to achieve the same result, this is not recommended: These special +device nodes are created by the udev daemon and may be unavailable at the +time the device is mounted.}. -@item @code{title} (default: @code{'device}) -This is a symbol that specifies how the @code{device} field is to be -interpreted. +@findex file-system-label +File system labels are created using the @code{file-system-label} procedure, +UUIDs are created using @code{uuid}, and @file{/dev} node are plain +strings. Here's an example of a file system referred to by its label, as +shown by the @command{e2label} command: -When it is the symbol @code{device}, then the @code{device} field is -interpreted as a file name; when it is @code{label}, then @code{device} is -interpreted as a file system label name; when it is @code{uuid}, -@code{device} is interpreted as a file system unique identifier (UUID). +@example +(file-system + (mount-point "/home") + (type "ext4") + (device (file-system-label "my-home"))) +@end example -UUIDs may be converted from their string representation (as shown by the +@findex uuid +UUIDs are converted from their string representation (as shown by the @command{tune2fs -l} command) using the @code{uuid} form@footnote{The @code{uuid} form expects 16-byte UUIDs as defined in @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}. This is the form @@ -9014,21 +9337,12 @@ this: (file-system (mount-point "/home") (type "ext4") - (title 'uuid) (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) @end example -The @code{label} and @code{uuid} options offer a way to refer to file -systems without having to hard-code their actual device name@footnote{Note -that, while it is tempting to use @file{/dev/disk/by-uuid} and similar -device names to achieve the same result, this is not recommended: These -special device nodes are created by the udev daemon and may be unavailable -at the time the device is mounted.}. - -However, when the source of a file system is a mapped device (@pxref{Périphériques mappés}), its @code{device} field @emph{must} refer to the mapped device -name---e.g., @file{/dev/mapper/root-partition}---and consequently -@code{title} must be set to @code{'device}. This is required so that the -system knows that mounting the file system depends on having the +When the source of a file system is a mapped device (@pxref{Périphériques mappés}), its @code{device} field @emph{must} refer to the mapped device +name---e.g., @file{"/dev/mapper/root-partition"}. This is required so that +the system knows that mounting the file system depends on having the corresponding device mapping established. @item @code{flags} (default: @code{'()}) @@ -9544,30 +9858,33 @@ core services, that may be used in an @code{operating-system} declaration. @menu * Services de base:: Services systèmes essentiels. -* Scheduled Job Execution:: The mcron service. -* Log Rotation:: The rottlog service. -* Networking Services:: Network setup, SSH daemon, etc. -* X Window:: Graphical display. -* Printing Services:: Local and remote printer support. -* Desktop Services:: D-Bus and desktop services. -* Database Services:: SQL databases, key-value stores, etc. -* Mail Services:: IMAP, POP3, SMTP, and all that. -* Messaging Services:: Messaging services. -* Telephony Services:: Telephony services. -* Monitoring Services:: Monitoring services. -* Kerberos Services:: Kerberos services. -* Web Services:: Web servers. -* Certificate Services:: TLS certificates via Let's Encrypt. -* DNS Services:: DNS daemons. -* VPN Services:: VPN daemons. -* Network File System:: NFS related services. -* Continuous Integration:: The Cuirass service. -* Power management Services:: The TLP tool. -* Audio Services:: The MPD. -* Virtualization Services:: Virtualization services. -* Version Control Services:: Providing remote access to Git repositories. -* Game Services:: Game servers. -* Miscellaneous Services:: Other services. +* 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. +* Système de fenêtrage X:: Affichage graphique. +* Services d'impression:: Support pour les imprimantes locales et + distantes. +* Services de bureaux:: D-Bus et les services de bureaux. +* Sound Services:: ALSA and Pulseaudio services. +* Services de bases de données:: Bases SQL, clefs-valeurs, etc. +* Services de courriels:: IMAP, POP3, SMTP, et tout ça. +* Services de messagerie:: Services de messagerie. +* Services de téléphonie:: Services de téléphonie. +* Services de surveillance:: Services de surveillance. +* Services Kerberos:: Services Kerberos. +* Services web:: Services web. +* Services de certificats:: Certificats TLS via Let's Encrypt. +* Services DNS:: Démons DNS@. +* Services VPN:: Démons VPN +* Système de fichiers en réseau:: Services liés à NFS@. +* Intégration continue:: Le service Cuirass. +* Services de gestion de l'énergie:: L'outil TLP@. +* Services audio:: MPD@. +* Services de virtualisation:: Services de virtualisation. +* Services de contrôle de version:: Fournit des accès distants à des + dépôts Git. +* Services de jeu:: Serveurs de jeu. +* Services divers:: D'autres services. @end menu @node Services de base @@ -10030,7 +10347,7 @@ Name of the group for build user accounts. Number of build user accounts to create. @item @code{authorize-key?} (default: @code{#t}) -@cindex substitutes, authorization thereof +@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}). @@ -10220,15 +10537,30 @@ See @code{man loadkeys} for details. @cindex mouse @cindex gpm -@deffn {Scheme Procedure} gpm-service [#:gpm @var{gpm}] @ - [#:options] Run @var{gpm}, the general-purpose mouse daemon, with the given -command-line @var{options}. GPM allows users to use the mouse in the -console, notably to select, copy, and paste text. The default value of -@var{options} uses the @code{ps2} protocol, which works for both USB and -PS/2 mice. +@defvr {Scheme Variable} gpm-service-type +This is the type of the service that runs GPM, the @dfn{general-purpose +mouse daemon}, which provides mouse support to the Linux console. GPM +allows users to use the mouse in the console, notably to select, copy, and +paste text. -This service is not part of @var{%base-services}. -@end deffn +The value for services of this type must be a @code{gpm-configuration} (see +below). This service is not part of @var{%base-services}. +@end defvr + +@deftp {Data Type} gpm-configuration +Data type representing the configuration of GPM. + +@table @asis +@item @code{options} (default: @code{%default-gpm-options}) +Command-line options passed to @command{gpm}. The default set of options +instruct @command{gpm} to listen to mouse events on @file{/dev/input/mice}. +@xref{Command Line,,, gpm, gpm manual}, for more information. + +@item @code{gpm} (default: @code{gpm}) +The GPM package to use. + +@end table +@end deftp @anchor{guix-publish-service-type} @deffn {Scheme Variable} guix-publish-service-type @@ -10253,7 +10585,7 @@ The TCP port to listen for connections. The host (and thus, network interface) to listen to. Use @code{"0.0.0.0"} to listen on all the network interfaces. -@item @code{compression-level} (default: @code{3}) +@item @code{compression-level} (par défaut : @code{3}) The gzip compression level at which substitutes are compressed. Use @code{0} to disable compression altogether, and @code{9} to get the best compression ratio at the expense of increased CPU usage. @@ -10317,8 +10649,8 @@ space that can be locked in memory. These settings are commonly used for real-time audio systems. @end deffn -@node Scheduled Job Execution -@subsubsection Scheduled Job Execution +@node Exécution de tâches planifiées +@subsubsection Exécution de tâches planifiées @cindex cron @cindex mcron @@ -10411,8 +10743,8 @@ mcron, GNU@tie{}mcron}). @end deftp -@node Log Rotation -@subsubsection Log Rotation +@node Rotation des journaux +@subsubsection Rotation des journaux @cindex rottlog @cindex log rotation @@ -10444,7 +10776,7 @@ This is the type of the Rottlog service, whose value is a Other services can extend this one with new @code{log-rotation} objects (see below), thereby augmenting the set of files to be rotated. -This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to +This service type can define mcron jobs (@pxref{Exécution de tâches planifiées}) to run the rottlog service. @end defvr @@ -10464,7 +10796,7 @@ A list of @code{log-rotation} objects as defined below. @item @code{jobs} This is a list of gexps where each gexp corresponds to an mcron job -specification (@pxref{Scheduled Job Execution}). +specification (@pxref{Exécution de tâches planifiées}). @end table @end deftp @@ -10513,8 +10845,8 @@ The list of syslog-controlled files to be rotated. By default it is: @code{'("/var/log/messages" "/var/log/secure")}. @end defvr -@node Networking Services -@subsubsection Networking Services +@node Services réseau +@subsubsection Services réseau The @code{(gnu services networking)} module provides services to configure the network interface. @@ -10525,6 +10857,49 @@ Return a service that runs @var{dhcp}, a Dynamic Host Configuration Protocol (DHCP) client, on all the non-loopback network interfaces. @end deffn +@deffn {Scheme Procedure} dhcpd-service-type +This type defines a service that runs a DHCP daemon. To create a service of +this type, you must supply a @code{}. For example: + +@example +(service dhcpd-service-type + (dhcpd-configuration + (config-file (local-file "my-dhcpd.conf")) + (interfaces '("enp0s25")))) +@end example +@end deffn + +@deftp {Data Type} dhcpd-configuration +@table @asis +@item @code{package} (default: @code{isc-dhcp}) +The package that provides the DHCP daemon. This package is expected to +provide the daemon at @file{sbin/dhcpd} relative to its output directory. +The default package is the @uref{http://www.isc.org/products/DHCP, ISC's +DHCP server}. +@item @code{config-file} (default: @code{#f}) +The configuration file to use. This is required. It will be passed to +@code{dhcpd} via its @code{-cf} option. This may be any ``file-like'' +object (@pxref{G-Expressions, file-like objects}). See @code{man +dhcpd.conf} for details on the configuration file syntax. +@item @code{version} (default: @code{"4"}) +The DHCP version to use. The ISC DHCP server supports the values ``4'', +``6'', and ``4o6''. These correspond to the @code{dhcpd} program options +@code{-4}, @code{-6}, and @code{-4o6}. See @code{man dhcpd} for details. +@item @code{run-directory} (default: @code{"/run/dhcpd"}) +The run directory to use. At service activation time, this directory will +be created if it does not exist. +@item @code{pid-file} (default: @code{"/run/dhcpd/dhcpd.pid"}) +The PID file to use. This corresponds to the @code{-pf} option of +@code{dhcpd}. See @code{man dhcpd} for details. +@item @code{interfaces} (default: @code{'()}) +The names of the network interfaces on which dhcpd should listen for +broadcasts. If this list is not empty, then its elements (which must be +strings) will be appended to the @code{dhcpd} invocation when starting the +daemon. It may not be necessary to explicitly specify any interfaces here; +see @code{man dhcpd} for details. +@end table +@end deftp + @defvr {Scheme Variable} static-networking-service-type @c TODO Document data structures. This is the type for statically-configured network interfaces. @@ -10558,6 +10933,27 @@ several commands to interact with the daemon and configure networking: @command{wicd-cli} and @command{wicd-curses} user interfaces. @end deffn +@cindex ModemManager + +@defvr {Scheme Variable} modem-manager-service-type +This is the service type for the +@uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager} +service. The value for this service type is a +@code{modem-manager-configuration} record. + +This service is part of @code{%desktop-services} (@pxref{Services de bureaux}). +@end defvr + +@deftp {Data Type} modem-manager-configuration +Data type representing the configuration of ModemManager. + +@table @asis +@item @code{modem-manager} (default: @code{modem-manager}) +The ModemManager package to use. + +@end table +@end deftp + @cindex NetworkManager @defvr {Scheme Variable} network-manager-service-type @@ -10566,7 +10962,7 @@ This is the service type for the service. The value for this service type is a @code{network-manager-configuration} record. -This service is part of @code{%desktop-services} (@pxref{Desktop Services}). +This service is part of @code{%desktop-services} (@pxref{Services de bureaux}). @end defvr @deftp {Data Type} network-manager-configuration @@ -10797,7 +11193,7 @@ separated by a colon or period, i.e. @code{"user"}, @code{"user:group"} or @item @code{program} (default: @code{"internal"}) The server program which will serve the requests, or @code{"internal"} if @command{inetd} should use a built-in service. -@item @code{arguments} (default: @code{'()}) +@item @code{arguments} (par défaut : @code{'()}) A list strings or file-like objects, which are the server program's arguments, starting with the zeroth argument, i.e. the name of the program itself. For @command{inetd}'s internal services, this entry must be @@ -11202,8 +11598,8 @@ Package object of the Open vSwitch. @end table @end deftp -@node X Window -@subsubsection X Window +@node Système de fenêtrage X +@subsubsection Système de fenêtrage X @cindex X11 @cindex X Window System @@ -11262,7 +11658,7 @@ If false, a session described by one of the available @file{.desktop} files in @code{/run/current-system/profile} and @code{~/.guix-profile} will be used. -@quotation Note +@quotation Remarque You must install at least one window manager in the system profile or in your user profile. Failing to do that, if @code{auto-login-session} is false, you will be unable to log in. @@ -11359,7 +11755,7 @@ Script to run after starting xorg-server. @item @code{xdisplay-stop} (default @code{#~(string-append #$sddm "/share/sddm/scripts/Xstop")}) Script to run before stopping xorg-server. -@item @code{xsession-command} (default: @code{xinitr }) +@item @code{xsession-command} (default: @code{xinitrc}) Script to run before starting a X session. @item @code{xsessions-directory} (default: "/run/current-system/profile/share/xsessions") @@ -11429,6 +11825,44 @@ resolutions---e.g., @code{((1024 768) (640 480))}. Last, @var{extra-config} is a list of strings or objects appended to the configuration file. It is used to pass extra text to be added verbatim to the configuration file. + +@cindex keymap +@cindex keyboard layout +This procedure is especially useful to configure a different keyboard layout +than the default US keymap. For instance, to use the ``bépo'' keymap by +default on the display manager: + +@example +(define bepo-evdev + "Section \"InputClass\" + Identifier \"evdev keyboard catchall\" + Driver \"evdev\" + MatchIsKeyboard \"on\" + Option \"xkb_layout\" \"fr\" + Option \"xkb_variant\" \"bepo\" +EndSection") + +(operating-system + ... + (services + (modify-services %desktop-services + (slim-service-type config => + (slim-configuration + (inherit config) + (startx (xorg-start-command + #:configuration-file + (xorg-configuration-file + #:extra-config + (list bepo-evdev))))))))) +@end example + +The @code{MatchIsKeyboard} line specifies that we only apply the +configuration to keyboards. Without this line, other devices such as +touchpad may not work correctly because they will be attached to the wrong +driver. In this example, the user typically used @code{setxkbmap fr bepo} +to set their favorite keymap once logged in. The first argument corresponds +to the layout, while the second argument corresponds to the variant. The +@code{xkb_variant} line can be omitted to select the default variant. @end deffn @deffn {Scheme Procedure} screen-locker-service @var{package} [@var{program}] @@ -11444,8 +11878,8 @@ makes the good ol' XlockMore usable. @end deffn -@node Printing Services -@subsubsection Printing Services +@node Services d'impression +@subsubsection Services d'impression @cindex printer support with CUPS The @code{(gnu services cups)} module provides a Guix service definition for @@ -12270,8 +12704,8 @@ strings of the same name, you could instantiate a CUPS service like this: @end example -@node Desktop Services -@subsubsection Desktop Services +@node Services de bureaux +@subsubsection Services de bureaux The @code{(gnu services desktop)} module provides services that are usually useful in the context of a ``desktop'' setup---that is, on a machine running @@ -12287,13 +12721,13 @@ environment and networking: This is a list of services that builds upon @var{%base-services} and adds or adjusts services for a typical ``desktop'' setup. -In particular, it adds a graphical login manager (@pxref{X Window, +In particular, it adds a graphical login manager (@pxref{Système de fenêtrage X, @code{slim-service}}), screen lockers, a network management tool -(@pxref{Networking Services, @code{network-manager-service-type}}), energy +(@pxref{Services réseau, @code{network-manager-service-type}}), energy and color management services, the @code{elogind} login and seat manager, the Polkit privilege service, the GeoClue location service, the AccountsService daemon that allows authorized users change system passwords, -an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the +an NTP client (@pxref{Services réseau}), the Avahi daemon, and has the name service switch service configured to be able to use @code{nss-mdns} (@pxref{Name Service Switch, mDNS}). @end defvr @@ -12301,13 +12735,14 @@ name service switch service configured to be able to use @code{nss-mdns} The @var{%desktop-services} variable can be used as the @code{services} field of an @code{operating-system} declaration (@pxref{Référence de système d'exploitation, @code{services}}). -Additionally, the @code{gnome-desktop-service}, @code{xfce-desktop-service} -and @code{mate-desktop-service} procedures can add GNOME, XFCE and/or MATE -to a system. To ``add GNOME'' means that system-level services like the -backlight adjustment helpers and the power management utilities are added to -the system, extending @code{polkit} and @code{dbus} appropriately, allowing -GNOME to operate with elevated privileges on a limited number of -special-purpose system interfaces. Additionally, adding a service made by +Additionally, the @code{gnome-desktop-service}, @code{xfce-desktop-service}, +@code{mate-desktop-service} and @code{enlightenment-desktop-service-type} +procedures can add GNOME, XFCE, MATE and/or Enlightenment to a system. To +``add GNOME'' means that system-level services like the backlight adjustment +helpers and the power management utilities are added to the system, +extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to +operate with elevated privileges on a limited number of special-purpose +system interfaces. Additionally, adding a service made by @code{gnome-desktop-service} adds the GNOME metapackage to the system profile. Likewise, adding the XFCE service not only adds the @code{xfce} metapackage to the system profile, but it also gives the Thunar file manager @@ -12317,7 +12752,11 @@ graphical interface. To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces. Additionally, adding a service made by -@code{mate-desktop-service} adds the MATE metapackage to the system profile. +@code{mate-desktop-service} adds the MATE metapackage to the system +profile. ``Adding ENLIGHTENMENT'' means that @code{dbus} is extended +appropriately, and several of Enlightenment's binaries are set as setuid, +allowing Enlightenment's screen locker and other functionality to work as +expetected. The desktop environments in Guix use the Xorg display server by default. If you'd like to use the newer display server protocol called Wayland, you need @@ -12345,9 +12784,21 @@ Return a service that adds the @code{mate} package to the system profile, and extends polkit with the actions from @code{mate-settings-daemon}. @end deffn +@deffn {Scheme Procedure} enlightenment-desktop-service-type +Return a service that adds the @code{enlightenment} package to the system +profile, and extends dbus with actions from @code{efl}. +@end deffn + +@deftp {Data Type} enlightenment-desktop-service-configuration +@table @asis +@item @code{enlightenment} (default @code{enlightenment}) +The enlightenment package to use. +@end table +@end deftp + Because the GNOME, XFCE and MATE desktop services pull in so many packages, -the default @code{%desktop-services} variable doesn't include either of them -by default. To add GNOME, XFCE or MATE, just @code{cons} them onto +the default @code{%desktop-services} variable doesn't include any of them by +default. To add GNOME, XFCE or MATE, just @code{cons} them onto @code{%desktop-services} in the @code{services} field of your @code{operating-system}: @@ -12548,8 +12999,49 @@ keyboard or mouse. Users need to be in the @code{lp} group to access the D-Bus service. @end deffn -@node Database Services -@subsubsection Database Services +@node Sound Services +@subsubsection Sound Services + +@cindex sound support +@cindex ALSA +@cindex PulseAudio, sound support + +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. + +@deffn {Scheme Variable} alsa-service-type +This is the type for the @uref{https://alsa-project.org/, ALSA}, +@command{alsa-configuration} record as in this example: + +@example +(service alsa-service-type) +@end example + +See below for details about @code{alsa-configuration}. +@end deffn + +@deftp {Data Type} alsa-configuration +Data type representing the configuration for @code{alsa-service}. + +@table @asis +@item @code{pulseaudio?} (default: @var{#t}) +Whether ALSA applications should transparently be made to use the +@uref{http://www.pulseaudio.org/, PulseAudio} sound server. + +Using PulseAudio allows you to run several sound-producing applications at +the same time and to individual control them @i{via} @command{pavucontrol}, +among other things. + +@item @code{extra-options} (default: @var{""}) +String to append to the @file{asound.conf} file. + +@end table +@end deftp + +@node Services de bases de données +@subsubsection Services de bases de données @cindex database @cindex SQL @@ -12672,8 +13164,8 @@ Directory in which to store the database and related files. @end table @end deftp -@node Mail Services -@subsubsection Mail Services +@node Services de courriels +@subsubsection Services de courriels @cindex mail @cindex email @@ -14006,8 +14498,8 @@ above example, there doesn't need to be a @code{postmaster} entry in the @code{postmaster} mail to @code{bob} (which subsequently would deliver mail to @code{bob@@example.com} and @code{bob@@example2.com}). -@node Messaging Services -@subsubsection Messaging Services +@node Services de messagerie +@subsubsection Services de messagerie @cindex messaging @cindex jabber @@ -14479,14 +14971,17 @@ interface. @item @code{package} (default: @code{bitlbee}) The BitlBee package to use. +@item @code{plugins} (default: @code{'()}) +List of plugin packages to use---e.g., @code{bitlbee-discord}. + @item @code{extra-settings} (default: @code{""}) Configuration snippet added as-is to the BitlBee configuration file. @end table @end deftp -@node Telephony Services -@subsubsection Telephony Services +@node Services de téléphonie +@subsubsection Services de téléphonie @cindex Murmur (VoIP server) @cindex VoIP server @@ -14694,8 +15189,8 @@ server will be linked by this host name instead. -@node Monitoring Services -@subsubsection Monitoring Services +@node Services de surveillance +@subsubsection Services de surveillance @subsubheading Tailon Service @@ -14844,8 +15339,8 @@ is accessed via a reverse proxy. @end deftp -@node Kerberos Services -@subsubsection Kerberos Services +@node Services Kerberos +@subsubsection Services Kerberos @cindex Kerberos The @code{(gnu services kerberos)} module provides services relating to the @@ -14966,8 +15461,8 @@ authenticate. @end deftp -@node Web Services -@subsubsection Web Services +@node Services web +@subsubsection Services web @cindex web @cindex www @@ -15559,8 +16054,65 @@ A simple setup for cat-avatar-generator can look like this: %base-services)) @end example -@node Certificate Services -@subsubsection Certificate Services +@subsubheading Hpcguix-web + +@cindex hpcguix-web +The @uref{hpcguix-web, https://github.com/UMCUGenetics/hpcguix-web/} program +is a customizable web interface to browse Guix packages, initially designed +for users of high-performance computing (HPC) clusters. + +@defvr {Scheme Variable} hpcguix-web-service-type +The service type for @code{hpcguix-web}. +@end defvr + +@deftp {Data Type} hpcguix-web-configuration +Data type for the hpcguix-web service configuration. + +@table @asis +@item @code{specs} +A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service +configuration. The main items available in this spec are: + +@table @asis +@item @code{title-prefix} (default: @code{"hpcguix | "}) +The page title prefix. + +@item @code{guix-command} (default: @code{"guix"}) +The @command{guix} command. + +@item @code{package-filter-proc} (default: @code{(const #t)}) +A procedure specifying how to filter packages that are displayed. + +@item @code{package-page-extension-proc} (default: @code{(const '())}) +Extension package for @code{hpcguix-web}. + +@item @code{menu} (default: @code{'()}) +Additional entry in page @code{menu}. +@end table + +See the hpcguix-web repository for a +@uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, +complete example}. + +@item @code{package} (default: @code{hpcguix-web}) +The hpcguix-web package to use. +@end table +@end deftp + +A typical hpcguix-web service declaration looks like this: + +@example +(service hpcguix-web-service-type + (hpcguix-web-configuration + (specs + #~(define site-config + (hpcweb-configuration + (title-prefix "Guix-HPC - ") + (menu '(("/about" "ABOUT")))))))) +@end example + +@node Services de certificats +@subsubsection Services de certificats @cindex Web @cindex HTTP, HTTPS @@ -15653,8 +16205,7 @@ needs to be able to serve challenges and responses, it needs to be able to run a web server. It does so by extending the @code{nginx} web service with an @code{nginx-server-configuration} listening on the @var{domains} on port 80, and which has a @code{nginx-location-configuration} for the -@code{/.well-known/} URI path subspace used by Let's Encrypt. @xref{Web -Services}, for more on these nginx configuration data types. +@code{/.well-known/} URI path subspace used by Let's Encrypt. @xref{Services web}, for more on these nginx configuration data types. Requests to other URL paths will be matched by the @code{default-location}, which if present is added to all @code{nginx-server-configuration}s. @@ -15698,15 +16249,19 @@ space-delimited list of renewed certificate domains (for example, For each @code{certificate-configuration}, the certificate is saved to @code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}. -@node DNS Services -@subsubsection DNS Services +@node Services DNS +@subsubsection Services DNS @cindex DNS (domain name system) @cindex domain name system (DNS) The @code{(gnu services dns)} module provides services related to the @dfn{domain name system} (DNS). It provides a server service for hosting an @emph{authoritative} DNS server for multiple zones, slave or master. This -service uses @uref{https://www.knot-dns.cz/, Knot DNS}. +service uses @uref{https://www.knot-dns.cz/, Knot DNS}. And also a caching +and forwarding DNS server for the LAN, which uses +@uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}. + +@subsubheading Knot Service An example configuration of an authoritative server for two zones, one master and one slave, is: @@ -16104,9 +16659,62 @@ The list of knot-zone-configuration used by this configuration. @end table @end deftp +@subsubheading Dnsmasq Service -@node VPN Services -@subsubsection VPN Services +@deffn {Scheme Variable} dnsmasq-service-type +This is the type of the dnsmasq service, whose value should be an +@code{dnsmasq-configuration} object as in this example: + +@example +(service dnsmasq-service-type + (dnsmasq-configuration + (no-resolv? #t) + (servers '("192.168.1.1")))) +@end example +@end deffn + +@deftp {Data Type} dnsmasq-configuration +Data type representing the configuration of dnsmasq. + +@table @asis +@item @code{package} (default: @var{dnsmasq}) +Package object of the dnsmasq server. + +@item @code{no-hosts?} (default: @code{#f}) +When true, don't read the hostnames in /etc/hosts. + +@item @code{port} (default: @code{53}) +The port to listen on. Setting this to zero completely disables DNS +funtion, leaving only DHCP and/or TFTP. + +@item @code{local-service?} (default: @code{#t}) +Accept DNS queries only from hosts whose address is on a local subnet, ie a +subnet for which an interface exists on the server. + +@item @code{listen-addresses} (default: @code{'()}) +Listen on the given IP addresses. + +@item @code{resolv-file} (default: @code{"/etc/resolv.conf"}) +The file to read the IP address of the upstream nameservers from. + +@item @code{no-resolv?} (default: @code{#f}) +When true, don't read @var{resolv-file}. + +@item @code{servers} (default: @code{'()}) +Specify IP address of upstream servers directly. + +@item @code{cache-size} (default: @code{150}) +Set the size of dnsmasq's cache. Setting the cache size to zero disables +caching. + +@item @code{negative-cache?} (default: @code{#t}) +When false, disable negative caching. + +@end table +@end deftp + +@node Services VPN +@subsubsection Services VPN @cindex VPN (virtual private network) @cindex virtual private network (VPN) @@ -16463,8 +17071,8 @@ Defaults to @samp{#f}. @c %end of automatic openvpn-server documentation -@node Network File System -@subsubsection Network File System +@node Système de fichiers en réseau +@subsubsection Système de fichiers en réseau @cindex NFS The @code{(gnu services nfs)} module provides the following services, which @@ -16527,7 +17135,7 @@ The @dfn{global security system} (GSS) daemon provides strong security for RPC based protocols. Before exchanging RPC requests an RPC client must establish a security context. Typically this is done using the Kerberos command @command{kinit} or automatically at login time using PAM services -(@pxref{Kerberos Services}). +(@pxref{Services Kerberos}). @defvr {Scheme Variable} gss-service-type A service type for the Global Security System (GSS) daemon. @@ -16575,8 +17183,8 @@ The local NFSv4 domain name. This must be a string or @code{#f}. If it is @end table @end deftp -@node Continuous Integration -@subsubsection Continuous Integration +@node Intégration continue +@subsubsection Intégration continue @cindex continuous integration @uref{https://notabug.org/mthl/cuirass, Cuirass} est un outil d'intégration @@ -16670,8 +17278,8 @@ The Cuirass package to use. @end table @end deftp -@node Power management Services -@subsubsection Power management Services +@node Services de gestion de l'énergie +@subsubsection Services de gestion de l'énergie @cindex power management with TLP The @code{(gnu services pm)} module provides a Guix service definition for @@ -17193,8 +17801,8 @@ Package object of thermald. @end table @end deftp -@node Audio Services -@subsubsection Audio Services +@node Services audio +@subsubsection Services audio The @code{(gnu services audio)} module provides a service to start MPD (the Music Player Daemon). @@ -17243,7 +17851,7 @@ path can be specified here. @end table @end deftp -@node Virtualization Services +@node Services de virtualisation @subsubsection Virtualization services The @code{(gnu services virtualization)} module provides services for the @@ -18030,8 +18638,8 @@ Return true if @var{obj} is a platform object. Return the name of @var{platform}---a string such as @code{"arm"}. @end deffn -@node Version Control Services -@subsubsection Version Control Services +@node Services de contrôle de version +@subsubsection 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 @@ -18102,8 +18710,7 @@ 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. +Git web service. It is designed to sit behind a FastCGI proxy. @xref{Services web}, for more on running the necessary @code{fcgiwrap} daemon. Guix has a separate configuration data type for serving Git repositories over HTTP. @@ -18129,8 +18736,7 @@ map @code{http://@var{server}/git/@var{repo}.git} to this prefix are not passed on to this Git instance. @item @code{fcgiwrap-socket} (default: @code{127.0.0.1:9000}) -The socket on which the @code{fcgiwrap} daemon is listening. @xref{Web -Services}. +The socket on which the @code{fcgiwrap} daemon is listening. @xref{Services web}. @end table @end deftp @@ -18163,10 +18769,10 @@ configuration. An example nginx service definition to serve the default @end example This example assumes that you are using Let's Encrypt to get your TLS -certificate. @xref{Certificate Services}. The default @code{certbot} +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{Web Services}. +@xref{Services web}. @end deffn @subsubheading Cgit Service @@ -18653,7 +19259,7 @@ Defaults to @samp{#f}. @end deftypevr -@deftypevr {@code{cgit-configuration} parameter} list project-list +@deftypevr {@code{cgit-configuration} parameter} 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. @@ -19113,8 +19719,8 @@ instantiate a cgit service like this: @end example -@node Game Services -@subsubsection Game Services +@node Services de jeu +@subsubsection Services de jeu @subsubheading The Battle for Wesnoth Service @cindex wesnothd @@ -19144,8 +19750,8 @@ The port to bind the server to. @end table @end deftp -@node Miscellaneous Services -@subsubsection Miscellaneous Services +@node Services divers +@subsubsection Services divers @cindex sysctl @subsubheading System Control Service @@ -19466,9 +20072,9 @@ is to have @code{.local} host lookup working. 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, +also need to use @code{avahi-service} (@pxref{Services réseau, @code{avahi-service}}), or @var{%desktop-services}, which includes it -(@pxref{Desktop Services}). Doing this makes @code{nss-mdns} accessible to +(@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. @@ -19623,7 +20229,7 @@ initialization system. 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. -@item --system=@var{system} +@item --system=@var{système} Have @file{/run/booted-system} and @file{/run/current-system} point to @var{system}. @@ -19938,7 +20544,7 @@ It also adds a bootloader menu entry for the new OS configuration, ---unless configurations to a submenu, allowing you to choose an older system generation at boot time should you need it. -@quotation Note +@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 @@ -19947,7 +20553,7 @@ It is highly recommended to run @command{guix pull} once before you run @end quotation @item switch-generation -@cindex generations +@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 @@ -19987,7 +20593,7 @@ services. This action will fail if the specified generation does not exist. @item roll-back -@cindex rolling 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 @@ -20126,7 +20732,7 @@ guix system container my-config.scm \ --expose=$HOME --share=$HOME/tmp=/exchange @end example -@quotation Note +@quotation Remarque This option requires Linux-libre 3.19 or newer. @end quotation @@ -20142,8 +20748,8 @@ 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}). -@item --system=@var{system} -@itemx -s @var{system} +@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}). @@ -20210,7 +20816,7 @@ available debugging commands. @end table @end table -@quotation Note +@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 @@ -20378,7 +20984,7 @@ 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{Miscellaneous Services, Spice service}. +You'll also need to add the @pxref{Services divers, Spice service}. @node Définir des services @subsection Définir des services @@ -20390,7 +20996,7 @@ in the first place? And what is a service anyway? @menu * Composition de services:: Le modèle de composition des services. * Types service et services:: Types et services. -* Référence de service:: Référence de l'API. +* Référence de service:: Référence de l'API@. * Services Shepherd:: Un type de service particulier. @end menu @@ -20415,10 +21021,10 @@ the @file{/etc} directory of the system. 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, +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{Desktop Services, +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 @@ -20740,7 +21346,7 @@ 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. -For example, this extends mcron (@pxref{Scheduled Job Execution}) with an +For example, this extends mcron (@pxref{Exécution de tâches planifiées}) with an additional job: @example @@ -21033,7 +21639,7 @@ gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1 @xref{Invoquer guix lint}, for more information. -@quotation Note +@quotation Remarque As of version @value{VERSION}, the feature described below is considered ``beta''. @end quotation @@ -21252,7 +21858,7 @@ correctif. * Modules python:: Un peu de comédie anglaise. * Modules perl:: Petites perles. * Paquets java:: Pause café. -* Polices de caractères:: Fond of fonts. +* Polices de caractères:: À fond les fontes. @end menu @node Liberté logiciel @@ -21382,7 +21988,7 @@ ambiguities. A typical package definition may look like this: @example (define my-package (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7") - (revision "1")) ;Guix package revision + (revision "1")) ;révision du paquet Guix (package (version (git-version "0.9" revision commit)) (source (origin @@ -21581,7 +22187,7 @@ becomes package @code{java-apache-commons-cli}. @node Polices de caractères @subsection Polices de caractères -@cindex fonts +@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 @@ -21842,22 +22448,23 @@ generated binaries could be broken for some reason. @node Remerciements @chapter Remerciements -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. +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. -The Nix-based software distributions, Nixpkgs and NixOS, have also been an -inspiration for Guix. +Les distributions logicielles basées sur Nix, Nixpkgs et NixOS, ont aussi +été une inspiration pour Guix. -GNU@tie{}Guix itself is a collective work with contributions from a number -of people. See the @file{AUTHORS} file in Guix for more information on -these fine people. The @file{THANKS} file lists people who have helped by -reporting bugs, taking care of the infrastructure, providing artwork and -themes, making suggestions, and more---thank you! +GNU@tie{}Guix lui-même est un travail collectif avec des contributions d'un +grand nombre de personnes. Voyez le fichier @file{AUTHORS} dans Guix pour +plus d'information sur ces personnes de qualité. Le fichier @file{THANKS} +liste les personnes qui ont aidé en rapportant des bogues, en prenant soin +de l'infrastructure, en fournissant des images et des thèmes, en faisant des +suggestions et bien plus. Merci ! @c ********************************************************************* diff --git a/doc/guix.texi b/doc/guix.texi index 87892fc892..13b42f59f3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -47,7 +47,8 @@ Copyright @copyright{} 2017, 2018 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* -Copyright @copyright{} 2018 Mike Gerwitz +Copyright @copyright{} 2018 Mike Gerwitz@* +Copyright @copyright{} 2018 Pierre-Antoine Rouby Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -235,6 +236,7 @@ Services * X Window:: Graphical display. * Printing Services:: Local and remote printer support. * Desktop Services:: D-Bus and desktop services. +* Sound Services:: ALSA and Pulseaudio services. * Database Services:: SQL databases, key-value stores, etc. * Mail Services:: IMAP, POP3, SMTP, and all that. * Messaging Services:: Messaging services. @@ -2741,11 +2743,39 @@ Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who run @command{guix pull}. For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice -versa@footnote{Under the hood, @command{guix pull} updates the -@file{~/.config/guix/latest} symbolic link to point to the latest Guix, -and the @command{guix} command loads code from there. Currently, the -only way to roll back an invocation of @command{guix pull} is to -manually update this symlink to point to the previous Guix.}. +versa. + +The result of running @command{guix pull} is a @dfn{profile} available +under @file{~/.config/guix/current} containing the latest Guix. Thus, +make sure to add it to the beginning of your search path so that you use +the latest version, and similarly for the Info manual +(@pxref{Documentation}): + +@example +export PATH="$HOME/.config/guix/current/bin:$PATH" +export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH" +@end example + +This @code{~/.config/guix/current} profile works like any other profile +created by @command{guix package} (@pxref{Invoking guix package}). That +is, you can list generations, roll back to the previous +generation---i.e., the previous Guix---and so on: + +@example +$ guix package -p ~/.config/guix/current -l +Generation 1 May 25 2018 10:06:41 + guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4 + +Generation 2 May 27 2018 19:07:47 + + guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f + - guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4 + +Generation 3 May 30 2018 16:11:39 (current) + + guix a076f19 out /gnu/store/332czkicwwg6lc3x4aqbw5q2mq12s7fj-guix-a076f1990 + - guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f +$ guix package -p ~/.config/guix/current --roll-back +switched from generation 3 to 2 +@end example The @command{guix pull} command is usually invoked with no arguments, but it supports the following options: @@ -2833,6 +2863,16 @@ guix pack -S /opt/gnu/bin=bin guile emacs geiser @noindent That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy. +@cindex relocatable binaries, with @command{guix pack} +What if the recipient of your pack does not have root privileges on +their machine, and thus cannot unpack it in the root file system? In +that case, you will want to use the @code{--relocatable} option (see +below). This option produces @dfn{relocatable binaries}, meaning they +they can be placed anywhere in the file system hierarchy: in the example +above, users can unpack your tarball in their home directory and +directly run @file{./opt/gnu/bin/guile}. + +@cindex Docker, build an image with guix pack Alternatively, you can produce a pack in the Docker image format using the following command: @@ -2846,6 +2886,22 @@ command. See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information. +@cindex Singularity, build an image with guix pack +@cindex SquashFS, build an image with guix pack +Yet another option is to produce a SquashFS image with the following +command: + +@example +guix pack -f squashfs guile emacs geiser +@end example + +@noindent +The result is a SquashFS file system image that can either be mounted or +directly be used as a file system container image with the +@uref{http://singularity.lbl.gov, Singularity container execution +environment}, using commands like @command{singularity shell} or +@command{singularity exec}. + Several command-line options allow you to customize your pack: @table @code @@ -2864,8 +2920,46 @@ specified binaries and symlinks. This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}. + +@item squashfs +This produces a SquashFS image containing all the specified binaries and +symlinks, as well as empty mount points for virtual file systems like +procfs. @end table +@item --relocatable +@itemx -R +Produce @dfn{relocatable binaries}---i.e., binaries that can be placed +anywhere in the file system hierarchy and run from there. For example, +if you create a pack containing Bash with: + +@example +guix pack -R -S /mybin=bin bash +@end example + +@noindent +... you can copy that pack to a machine that lacks Guix, and from your +home directory as a normal user, run: + +@example +tar xf pack.tar.gz +./mybin/sh +@end example + +@noindent +In that shell, if you type @code{ls /gnu/store}, you'll notice that +@file{/gnu/store} shows up and contains all the dependencies of +@code{bash}, even though the machine actually lacks @file{/gnu/store} +altogether! That is probably the simplest way to deploy Guix-built +software on a non-Guix machine. + +There's a gotcha though: this technique relies on the @dfn{user +namespace} feature of the kernel Linux, which allows unprivileged users +to mount or change root. Old versions of Linux did not support it, and +some GNU/Linux distributions turn it off; on these systems, programs +from the pack @emph{will fail to run}, unless they are unpacked in the +root file system. + @item --expression=@var{expr} @itemx -e @var{expr} Consider the package @var{expr} evaluates to. @@ -3749,6 +3843,25 @@ that should be run during the @code{build} phase. By default the @end defvr +@defvr {Scheme Variable} android-ndk-build-system +@cindex Android distribution +@cindex Android NDK build system +This variable is exported by @code{(guix build-system android-ndk)}. It +implements a build procedure for Android NDK (native development kit) +packages using a Guix-specific build process. + +The build system assumes that packages install their public interface +(header) files to the subdirectory "include" of the "out" output and +their libraries to the subdirectory "lib" of the "out" output. + +It's also assumed that the union of all the dependencies of a package +has no conflicting files. + +For the time being, cross-compilation is not supported - so right now +the libraries and header files are assumed to be host tools. + +@end defvr + @defvr {Scheme Variable} asdf-build-system/source @defvrx {Scheme Variable} asdf-build-system/sbcl @defvrx {Scheme Variable} asdf-build-system/ecl @@ -4979,6 +5092,23 @@ headers, which comes in handy in this case: @dots{}))) @end example +@cindex extensions, for gexps +@findex with-extensions +In the same vein, sometimes you want to import not just pure-Scheme +modules, but also ``extensions'' such as Guile bindings to C libraries +or other ``full-blown'' packages. Say you need the @code{guile-json} +package available on the build side, here's how you would do it: + +@example +(use-modules (gnu packages guile)) ;for 'guile-json' + +(with-extensions (list guile-json) + (gexp->derivation "something-with-json" + #~(begin + (use-modules (json)) + @dots{}))) +@end example + The syntactic form to construct gexps is summarized below. @deffn {Scheme Syntax} #~@var{exp} @@ -5062,6 +5192,18 @@ directly defined in @var{body}@dots{}, but not on those defined, say, in procedures called from @var{body}@dots{}. @end deffn +@deffn {Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{} +Mark the gexps defined in @var{body}@dots{} as requiring +@var{extensions} in their build and execution environment. +@var{extensions} is typically a list of package objects such as those +defined in the @code{(gnu packages guile)} module. + +Concretely, the packages listed in @var{extensions} are added to the +load path while compiling imported modules in @var{body}@dots{}; they +are also added to the load path of the gexp returned by +@var{body}@dots{}. +@end deffn + @deffn {Scheme Procedure} gexp? @var{obj} Return @code{#t} if @var{obj} is a G-expression. @end deffn @@ -5076,6 +5218,7 @@ information about monads.) [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @var{%load-path}] @ + [#:effective-version "2.2"] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ @@ -5096,6 +5239,9 @@ make @var{modules} available in the evaluation context of @var{exp}; the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}. +@var{effective-version} determines the string to use when adding extensions of +@var{exp} (see @code{with-extensions}) to the search path---e.g., @code{"2.2"}. + @var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable. @@ -5793,9 +5939,16 @@ information on cross-compilation. An example use of this is on Linux-based systems, which can emulate different personalities. For instance, passing -@code{--system=i686-linux} on an @code{x86_64-linux} system allows you +@code{--system=i686-linux} on an @code{x86_64-linux} system or +@code{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment. +@quotation Note +Building for an @code{armhf-linux} system is unconditionally enabled on +@code{aarch64-linux} machines, although certain aarch64 chipsets do not +allow for this functionality, notably the ThunderX. +@end quotation + Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is enabled (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), you can build for any system for @@ -6461,6 +6614,12 @@ signatures,, emacs, The GNU Emacs Manual}). @uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier. @end itemize + +@item --recursive +@itemx -r +Traverse the dependency graph of the given upstream package recursively +and generate package expressions for all those packages that are not yet +in Guix. @end table @item crate @@ -6773,15 +6932,33 @@ where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., Package developers can specify in package recipes the @uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)} -name and version of the package when they differ from the name that Guix -uses, as in this example: +name and version of the package when they differ from the name or version +that Guix uses, as in this example: @example (package (name "grub") ;; @dots{} ;; CPE calls this package "grub2". - (properties '((cpe-name . "grub2")))) + (properties '((cpe-name . "grub2") + (cpe-version . "2.3"))) +@end example + +@c See . +Some entries in the CVE database do not specify which version of a +package they apply to, and would thus ``stick around'' forever. Package +developers who found CVE alerts and verified they can be ignored can +declare them as in this example: + +@example +(package + (name "t1lib") + ;; @dots{} + ;; These CVEs no longer apply and can be safely ignored. + (properties `((lint-hidden-cve . ("CVE-2011-0433" + "CVE-2011-1553" + "CVE-2011-1554" + "CVE-2011-5244"))))) @end example @item formatting @@ -6825,19 +7002,23 @@ single output for a package that could easily be split (@pxref{Packages with Multiple Outputs}). Such are the typical issues that @command{guix size} can highlight. -The command can be passed a package specification such as @code{gcc@@4.8} +The command can be passed one or more package specifications +such as @code{gcc@@4.8} or @code{guile:debug}, or a file name in the store. Consider this example: @example $ guix size coreutils store item total self -/gnu/store/@dots{}-coreutils-8.23 70.0 13.9 19.8% -/gnu/store/@dots{}-gmp-6.0.0a 55.3 2.5 3.6% -/gnu/store/@dots{}-acl-2.2.52 53.7 0.5 0.7% -/gnu/store/@dots{}-attr-2.4.46 53.2 0.3 0.5% -/gnu/store/@dots{}-gcc-4.8.4-lib 52.9 15.7 22.4% -/gnu/store/@dots{}-glibc-2.21 37.2 37.2 53.1% +/gnu/store/@dots{}-gcc-5.5.0-lib 60.4 30.1 38.1% +/gnu/store/@dots{}-glibc-2.27 30.3 28.8 36.6% +/gnu/store/@dots{}-coreutils-8.28 78.9 15.0 19.0% +/gnu/store/@dots{}-gmp-6.1.2 63.1 2.7 3.4% +/gnu/store/@dots{}-bash-static-4.4.12 1.5 1.5 1.9% +/gnu/store/@dots{}-acl-2.2.52 61.1 0.4 0.5% +/gnu/store/@dots{}-attr-2.4.47 60.6 0.2 0.3% +/gnu/store/@dots{}-libcap-2.25 60.5 0.2 0.2% +total: 78.9 MiB @end example @cindex closure @@ -6857,17 +7038,21 @@ 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. In this example, we see that the closure of Coreutils weighs in at -70@tie{}MiB, half of which is taken by libc. (That libc represents a -large fraction of the closure is not a problem @i{per se} because it is -always available on the system anyway.) +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.) -When the package passed to @command{guix size} is available in the -store, @command{guix size} queries the daemon to determine its +When the package(s) passed to @command{guix size} are available in the +store@footnote{More precisely, @command{guix size} looks for the +@emph{ungrafted} variant of the given package(s), as returned by +@code{guix build @var{package} --no-grafts}. @xref{Security Updates}, +for information on grafts.}, @command{guix size} queries the daemon to determine its dependencies, and measures its size in the store, similar to @command{du -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils}). -When the given package is @emph{not} in the store, @command{guix size} +When the given packages are @emph{not} in the store, @command{guix size} reports information based on the available substitutes (@pxref{Substitutes}). This makes it possible it to profile disk usage of store items that are not even on disk, only available remotely. @@ -9115,20 +9300,31 @@ This is a string specifying the type of the file system---e.g., This designates the place where the file system is to be mounted. @item @code{device} -This names the ``source'' of the file system. By default it is the name -of a node under @file{/dev}, but its meaning depends on the @code{title} -field described below. +This names the ``source'' of the file system. It can be one of three +things: a file system label, a file system UUID, or the name of a +@file{/dev} node. Labels and UUIDs offer a way to refer to file +systems without having to hard-code their actual device +name@footnote{Note that, while it is tempting to use +@file{/dev/disk/by-uuid} and similar device names to achieve the same +result, this is not recommended: These special device nodes are created +by the udev daemon and may be unavailable at the time the device is +mounted.}. -@item @code{title} (default: @code{'device}) -This is a symbol that specifies how the @code{device} field is to be -interpreted. +@findex file-system-label +File system labels are created using the @code{file-system-label} +procedure, UUIDs are created using @code{uuid}, and @file{/dev} node are +plain strings. Here's an example of a file system referred to by its +label, as shown by the @command{e2label} command: -When it is the symbol @code{device}, then the @code{device} field is -interpreted as a file name; when it is @code{label}, then @code{device} -is interpreted as a file system label name; when it is @code{uuid}, -@code{device} is interpreted as a file system unique identifier (UUID). +@example +(file-system + (mount-point "/home") + (type "ext4") + (device (file-system-label "my-home"))) +@end example -UUIDs may be converted from their string representation (as shown by the +@findex uuid +UUIDs are converted from their string representation (as shown by the @command{tune2fs -l} command) using the @code{uuid} form@footnote{The @code{uuid} form expects 16-byte UUIDs as defined in @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}. This is the @@ -9140,22 +9336,13 @@ like this: (file-system (mount-point "/home") (type "ext4") - (title 'uuid) (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) @end example -The @code{label} and @code{uuid} options offer a way to refer to file -systems without having to hard-code their actual device -name@footnote{Note that, while it is tempting to use -@file{/dev/disk/by-uuid} and similar device names to achieve the same -result, this is not recommended: These special device nodes are created -by the udev daemon and may be unavailable at the time the device is -mounted.}. - -However, when the source of a file system is a mapped device (@pxref{Mapped +When the source of a file system is a mapped device (@pxref{Mapped Devices}), its @code{device} field @emph{must} refer to the mapped -device name---e.g., @file{/dev/mapper/root-partition}---and consequently -@code{title} must be set to @code{'device}. This is required so that +device name---e.g., @file{"/dev/mapper/root-partition"}. +This is required so that the system knows that mounting the file system depends on having the corresponding device mapping established. @@ -9697,6 +9884,7 @@ declaration. * X Window:: Graphical display. * Printing Services:: Local and remote printer support. * Desktop Services:: D-Bus and desktop services. +* Sound Services:: ALSA and Pulseaudio services. * Database Services:: SQL databases, key-value stores, etc. * Mail Services:: IMAP, POP3, SMTP, and all that. * Messaging Services:: Messaging services. @@ -11624,7 +11812,7 @@ Script to run after starting xorg-server. @item @code{xdisplay-stop} (default @code{#~(string-append #$sddm "/share/sddm/scripts/Xstop")}) Script to run before stopping xorg-server. -@item @code{xsession-command} (default: @code{xinitr }) +@item @code{xsession-command} (default: @code{xinitrc}) Script to run before starting a X session. @item @code{xsessions-directory} (default: "/run/current-system/profile/share/xsessions") @@ -11697,6 +11885,44 @@ resolutions---e.g., @code{((1024 768) (640 480))}. Last, @var{extra-config} is a list of strings or objects appended to the configuration file. It is used to pass extra text to be added verbatim to the configuration file. + +@cindex keymap +@cindex keyboard layout +This procedure is especially useful to configure a different keyboard layout +than the default US keymap. For instance, to use the ``bépo'' keymap by +default on the display manager: + +@example +(define bepo-evdev + "Section \"InputClass\" + Identifier \"evdev keyboard catchall\" + Driver \"evdev\" + MatchIsKeyboard \"on\" + Option \"xkb_layout\" \"fr\" + Option \"xkb_variant\" \"bepo\" +EndSection") + +(operating-system + ... + (services + (modify-services %desktop-services + (slim-service-type config => + (slim-configuration + (inherit config) + (startx (xorg-start-command + #:configuration-file + (xorg-configuration-file + #:extra-config + (list bepo-evdev))))))))) +@end example + +The @code{MatchIsKeyboard} line specifies that we only apply the configuration +to keyboards. Without this line, other devices such as touchpad may not work +correctly because they will be attached to the wrong driver. In this example, +the user typically used @code{setxkbmap fr bepo} to set their favorite keymap +once logged in. The first argument corresponds to the layout, while the second +argument corresponds to the variant. The @code{xkb_variant} line can be omitted +to select the default variant. @end deffn @deffn {Scheme Procedure} screen-locker-service @var{package} [@var{program}] @@ -12582,11 +12808,11 @@ field of an @code{operating-system} declaration (@pxref{operating-system Reference, @code{services}}). Additionally, the @code{gnome-desktop-service}, -@code{xfce-desktop-service} and @code{mate-desktop-service} -procedures can add GNOME, XFCE and/or MATE to a system. -To ``add GNOME'' means that system-level services like the -backlight adjustment helpers and the power management utilities are -added to the system, extending @code{polkit} and @code{dbus} +@code{xfce-desktop-service}, @code{mate-desktop-service} and +@code{enlightenment-desktop-service-type} procedures can add GNOME, XFCE, MATE +and/or Enlightenment to a system. To ``add GNOME'' means that system-level +services like the backlight adjustment helpers and the power management +utilities are added to the system, extending @code{polkit} and @code{dbus} appropriately, allowing GNOME to operate with elevated privileges on a limited number of special-purpose system interfaces. Additionally, adding a service made by @code{gnome-desktop-service} adds the GNOME @@ -12599,7 +12825,10 @@ To ``add MATE'' means that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE to operate with elevated privileges on a limited number of special-purpose system interfaces. Additionally, adding a service made by @code{mate-desktop-service} adds the MATE -metapackage to the system profile. +metapackage to the system profile. ``Adding ENLIGHTENMENT'' means that +@code{dbus} is extended appropriately, and several of Enlightenment's binaries +are set as setuid, allowing Enlightenment's screen locker and other +functionality to work as expetected. The desktop environments in Guix use the Xorg display server by default. If you'd like to use the newer display server protocol @@ -12629,8 +12858,20 @@ profile, and extends polkit with the actions from @code{mate-settings-daemon}. @end deffn +@deffn {Scheme Procedure} enlightenment-desktop-service-type +Return a service that adds the @code{enlightenment} package to the system +profile, and extends dbus with actions from @code{efl}. +@end deffn + +@deftp {Data Type} enlightenment-desktop-service-configuration +@table @asis +@item @code{enlightenment} (default @code{enlightenment}) +The enlightenment package to use. +@end table +@end deftp + Because the GNOME, XFCE and MATE desktop services pull in so many packages, -the default @code{%desktop-services} variable doesn't include either of +the default @code{%desktop-services} variable doesn't include any of them by default. To add GNOME, XFCE or MATE, just @code{cons} them onto @code{%desktop-services} in the @code{services} field of your @code{operating-system}: @@ -12842,6 +13083,48 @@ bluetooth keyboard or mouse. Users need to be in the @code{lp} group to access the D-Bus service. @end deffn +@node Sound Services +@subsubsection Sound Services + +@cindex sound support +@cindex ALSA +@cindex PulseAudio, sound support + +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. + +@deffn {Scheme Variable} alsa-service-type +This is the type for the @uref{https://alsa-project.org/, ALSA}, +@command{alsa-configuration} record as in this example: + +@example +(service alsa-service-type) +@end example + +See below for details about @code{alsa-configuration}. +@end deffn + +@deftp {Data Type} alsa-configuration +Data type representing the configuration for @code{alsa-service}. + +@table @asis +@item @code{pulseaudio?} (default: @var{#t}) +Whether ALSA applications should transparently be made to use the +@uref{http://www.pulseaudio.org/, PulseAudio} sound server. + +Using PulseAudio allows you to run several sound-producing applications +at the same time and to individual control them @i{via} +@command{pavucontrol}, among other things. + +@item @code{extra-options} (default: @var{""}) +String to append to the @file{asound.conf} file. + +@end table +@end deftp + @node Database Services @subsubsection Database Services @@ -14880,6 +15163,9 @@ networking interface. @item @code{package} (default: @code{bitlbee}) The BitlBee package to use. +@item @code{plugins} (default: @code{'()}) +List of plugin packages to use---e.g., @code{bitlbee-discord}. + @item @code{extra-settings} (default: @code{""}) Configuration snippet added as-is to the BitlBee configuration file. @end table @@ -15979,6 +16265,64 @@ A simple setup for cat-avatar-generator can look like this: %base-services)) @end example +@subsubheading Hpcguix-web + +@cindex hpcguix-web +The @uref{hpcguix-web, https://github.com/UMCUGenetics/hpcguix-web/} +program is a customizable web interface to browse Guix packages, +initially designed for users of high-performance computing (HPC) +clusters. + +@defvr {Scheme Variable} hpcguix-web-service-type +The service type for @code{hpcguix-web}. +@end defvr + +@deftp {Data Type} hpcguix-web-configuration +Data type for the hpcguix-web service configuration. + +@table @asis +@item @code{specs} +A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service +configuration. The main items available in this spec are: + +@table @asis +@item @code{title-prefix} (default: @code{"hpcguix | "}) +The page title prefix. + +@item @code{guix-command} (default: @code{"guix"}) +The @command{guix} command. + +@item @code{package-filter-proc} (default: @code{(const #t)}) +A procedure specifying how to filter packages that are displayed. + +@item @code{package-page-extension-proc} (default: @code{(const '())}) +Extension package for @code{hpcguix-web}. + +@item @code{menu} (default: @code{'()}) +Additional entry in page @code{menu}. +@end table + +See the hpcguix-web repository for a +@uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, +complete example}. + +@item @code{package} (default: @code{hpcguix-web}) +The hpcguix-web package to use. +@end table +@end deftp + +A typical hpcguix-web service declaration looks like this: + +@example +(service hpcguix-web-service-type + (hpcguix-web-configuration + (specs + #~(define site-config + (hpcweb-configuration + (title-prefix "Guix-HPC - ") + (menu '(("/about" "ABOUT")))))))) +@end example + @node Certificate Services @subsubsection Certificate Services @@ -16133,7 +16477,11 @@ saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}. The @code{(gnu services dns)} module provides services related to the @dfn{domain name system} (DNS). It provides a server service for hosting an @emph{authoritative} DNS server for multiple zones, slave or master. -This service uses @uref{https://www.knot-dns.cz/, Knot DNS}. +This service uses @uref{https://www.knot-dns.cz/, Knot DNS}. And also a +caching and forwarding DNS server for the LAN, which uses +@uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}. + +@subsubheading Knot Service An example configuration of an authoritative server for two zones, one master and one slave, is: @@ -16528,6 +16876,59 @@ The list of knot-zone-configuration used by this configuration. @end table @end deftp +@subsubheading Dnsmasq Service + +@deffn {Scheme Variable} dnsmasq-service-type +This is the type of the dnsmasq service, whose value should be an +@code{dnsmasq-configuration} object as in this example: + +@example +(service dnsmasq-service-type + (dnsmasq-configuration + (no-resolv? #t) + (servers '("192.168.1.1")))) +@end example +@end deffn + +@deftp {Data Type} dnsmasq-configuration +Data type representing the configuration of dnsmasq. + +@table @asis +@item @code{package} (default: @var{dnsmasq}) +Package object of the dnsmasq server. + +@item @code{no-hosts?} (default: @code{#f}) +When true, don't read the hostnames in /etc/hosts. + +@item @code{port} (default: @code{53}) +The port to listen on. Setting this to zero completely disables DNS +funtion, leaving only DHCP and/or TFTP. + +@item @code{local-service?} (default: @code{#t}) +Accept DNS queries only from hosts whose address is on a local subnet, +ie a subnet for which an interface exists on the server. + +@item @code{listen-addresses} (default: @code{'()}) +Listen on the given IP addresses. + +@item @code{resolv-file} (default: @code{"/etc/resolv.conf"}) +The file to read the IP address of the upstream nameservers from. + +@item @code{no-resolv?} (default: @code{#f}) +When true, don't read @var{resolv-file}. + +@item @code{servers} (default: @code{'()}) +Specify IP address of upstream servers directly. + +@item @code{cache-size} (default: @code{150}) +Set the size of dnsmasq's cache. Setting the cache size to zero +disables caching. + +@item @code{negative-cache?} (default: @code{#t}) +When false, disable negative caching. + +@end table +@end deftp @node VPN Services @subsubsection VPN Services @@ -19100,7 +19501,7 @@ Defaults to @samp{#f}. @end deftypevr -@deftypevr {@code{cgit-configuration} parameter} list project-list +@deftypevr {@code{cgit-configuration} parameter} 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. diff --git a/etc/guix-install.sh b/etc/guix-install.sh index 78cd7580bb..d9f1955098 100755 --- a/etc/guix-install.sh +++ b/etc/guix-install.sh @@ -86,9 +86,7 @@ chk_require() _debug "--- [ $FUNCNAME ] ---" for c in ${cmds[@]}; do - command -v "$c" &>/dev/null - [ "$?" -eq "1" ] && - warn+=("$c") + command -v "$c" &>/dev/null || warn+=("$c") done [ "${#warn}" -ne 0 ] && diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm index f7820a37a4..8b7a95a6fc 100644 --- a/gnu/bootloader/extlinux.scm +++ b/gnu/bootloader/extlinux.scm @@ -64,6 +64,7 @@ corresponding to old generations of the system." (format port "# This file was generated from your GuixSD configuration. Any changes # will be lost upon reconfiguration. UI menu.c32 +MENU TITLE GuixSD Boot Options PROMPT ~a TIMEOUT ~a~%" (if (> timeout 0) 1 0) diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 3b01125c78..a131f3b506 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2016 Chris Marusich ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Mathieu Othacehe @@ -31,6 +31,7 @@ #:use-module (gnu system) #:use-module (gnu bootloader) #:use-module (gnu system uuid) + #:use-module (gnu system file-systems) #:autoload (gnu packages bootloaders) (grub) #:autoload (gnu packages compression) (gzip) #:autoload (gnu packages gtk) (guile-cairo guile-rsvg) @@ -120,25 +121,14 @@ otherwise." (define* (svg->png svg #:key width height) "Build a PNG of HEIGHT x WIDTH from SVG." - ;; Note: Guile-RSVG & co. are now built for Guile 2.2, so we use 2.2 here. - ;; TODO: Remove #:guile-for-build when 2.2 has become the default. - (mlet %store-monad ((guile (package->derivation guile-2.2 #:graft? #f))) - (gexp->derivation "grub-image.png" - (with-imported-modules '((gnu build svg)) + (gexp->derivation "grub-image.png" + (with-imported-modules '((gnu build svg)) + (with-extensions (list guile-rsvg guile-cairo) #~(begin - ;; We need these two libraries. - (add-to-load-path (string-append #+guile-rsvg - "/share/guile/site/" - (effective-version))) - (add-to-load-path (string-append #+guile-cairo - "/share/guile/site/" - (effective-version))) - (use-modules (gnu build svg)) (svg->png #+svg #$output #:width #$width - #:height #$height))) - #:guile-for-build guile))) + #:height #$height)))))) (define* (grub-background-image config #:key (width 1024) (height 768)) "Return the GRUB background image defined in CONFIG with a ratio of @@ -303,9 +293,10 @@ code." ((? uuid? uuid) (format #f "search --fs-uuid --set ~a" (uuid->string device))) - ((? string? label) - (format #f "search --label --set ~a" label)) - (#f + ((? file-system-label? label) + (format #f "search --label --set ~a" + (file-system-label->string label))) + ((or #f (? string?)) #~(format #f "search --file --set ~a" #$file))))) (define* (grub-configuration-file config entries diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm index 21d0aecce2..52b38dd1ab 100644 --- a/gnu/bootloader/u-boot.scm +++ b/gnu/bootloader/u-boot.scm @@ -33,7 +33,12 @@ u-boot-a20-olinuxino-micro-bootloader u-boot-banana-pi-m2-ultra-bootloader u-boot-beaglebone-black-bootloader - u-boot-nintendo-nes-classic-edition-bootloader)) + u-boot-mx6cuboxi-bootloader + u-boot-nintendo-nes-classic-edition-bootloader + u-boot-novena-bootloader + u-boot-pine64-plus-bootloader + u-boot-puma-rk3399-bootloader + u-boot-wandboard-bootloader)) (define install-u-boot #~(lambda (bootloader device mount-point) @@ -62,6 +67,33 @@ (write-file-on-device u-boot (stat:size (stat u-boot)) device (* 8 1024))))) +(define install-allwinner64-u-boot + #~(lambda (bootloader device mount-point) + (let ((spl (string-append bootloader "/libexec/spl/sunxi-spl.bin")) + (u-boot (string-append bootloader "/libexec/u-boot.itb"))) + (write-file-on-device spl (stat:size (stat spl)) + device (* 8 1024)) + (write-file-on-device u-boot (stat:size (stat u-boot)) + device (* 40 1024))))) + +(define install-imx-u-boot + #~(lambda (bootloader device mount-point) + (let ((spl (string-append bootloader "/libexec/SPL")) + (u-boot (string-append bootloader "/libexec/u-boot.img"))) + (write-file-on-device spl (stat:size (stat spl)) + device (* 1 1024)) + (write-file-on-device u-boot (stat:size (stat u-boot)) + device (* 69 1024))))) + +(define install-puma-rk3399-u-boot + #~(lambda (bootloader device mount-point) + (let ((spl (string-append bootloader "/libexec/u-boot-spl.rksd")) + (u-boot (string-append bootloader "/libexec/u-boot.itb"))) + (write-file-on-device spl (stat:size (stat spl)) + device (* 64 512)) + (write-file-on-device u-boot (stat:size (stat u-boot)) + device (* 512 512))))) + ;;; @@ -86,6 +118,16 @@ (inherit u-boot-bootloader) (installer install-allwinner-u-boot))) +(define u-boot-allwinner64-bootloader + (bootloader + (inherit u-boot-bootloader) + (installer install-allwinner64-u-boot))) + +(define u-boot-imx-bootloader + (bootloader + (inherit u-boot-bootloader) + (installer install-imx-u-boot))) + (define u-boot-nintendo-nes-classic-edition-bootloader (bootloader (inherit u-boot-allwinner-bootloader) @@ -110,3 +152,29 @@ (bootloader (inherit u-boot-allwinner-bootloader) (package u-boot-banana-pi-m2-ultra))) + +(define u-boot-mx6cuboxi-bootloader + (bootloader + (inherit u-boot-imx-bootloader) + (package u-boot-mx6cuboxi))) + +(define u-boot-wandboard-bootloader + (bootloader + (inherit u-boot-imx-bootloader) + (package u-boot-wandboard))) + +(define u-boot-novena-bootloader + (bootloader + (inherit u-boot-imx-bootloader) + (package u-boot-novena))) + +(define u-boot-pine64-plus-bootloader + (bootloader + (inherit u-boot-allwinner64-bootloader) + (package u-boot-pine64-plus))) + +(define u-boot-puma-rk3399-bootloader + (bootloader + (inherit u-boot-bootloader) + (package u-boot-puma-rk3399) + (installer install-puma-rk3399-u-boot))) diff --git a/gnu/build/cross-toolchain.scm b/gnu/build/cross-toolchain.scm index 450443ca63..d430b8afc4 100644 --- a/gnu/build/cross-toolchain.scm +++ b/gnu/build/cross-toolchain.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis ;;; @@ -119,7 +119,7 @@ C_*INCLUDE_PATH." ;; libc is false, so we are building xgcc-sans-libc. ;; Add essential headers from mingw-w64. (let ((mingw-source (assoc-ref inputs "mingw-source"))) - (system* "tar" "xvf" mingw-source) + (invoke "tar" "xvf" mingw-source) (let ((mingw-headers (unpacked-mingw-dir))) ;; We need _mingw.h which will gets built from _mingw.h.in by ;; mingw-w64's configure. We cannot configure mingw-w64 until we @@ -160,7 +160,7 @@ C_*INCLUDE_PATH." "Install a stripped GCC." ;; Unlike our 'strip' phase, this will do the right thing for ;; cross-compilers. - (zero? (system* "make" "install-strip"))) + (invoke "make" "install-strip")) (define* (cross-gcc-build-phases target #:optional (phases %standard-phases)) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 145b3b14e7..3f97afeedd 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2016, 2017 David Craven ;;; Copyright © 2017 Mathieu Othacehe ;;; @@ -473,17 +473,9 @@ were found." (find-partition luks-partition-uuid-predicate)) -(define* (canonicalize-device-spec spec #:optional (title 'any)) - "Return the device name corresponding to SPEC. TITLE is a symbol, one of -the following: - - • 'device', in which case SPEC is known to designate a device node--e.g., - \"/dev/sda1\"; - • 'label', in which case SPEC is known to designate a partition label--e.g., - \"my-root-part\"; - • 'uuid', in which case SPEC must be a UUID designating a partition; - • 'any', in which case SPEC can be anything. -" +(define (canonicalize-device-spec spec) + "Return the device name corresponding to SPEC, which can be a , a +, or a string (typically a /dev file name)." (define max-trials ;; Number of times we retry partition label resolution, 1 second per ;; trial. Note: somebody reported a delay of 16 seconds (!) before their @@ -491,19 +483,6 @@ the following: ;; this long. 20) - (define canonical-title - ;; The realm of canonicalization. - (if (eq? title 'any) - (if (string? spec) - ;; The "--root=SPEC" kernel command-line option always provides a - ;; string, but the string can represent a device, a UUID, or a - ;; label. So check for all three. - (cond ((string-prefix? "/" spec) 'device) - ((string->uuid spec) 'uuid) - (else 'label)) - 'uuid) - title)) - (define (resolve find-partition spec fmt) (let loop ((count 0)) (let ((device (find-partition spec))) @@ -518,23 +497,19 @@ the following: (sleep 1) (loop (+ 1 count)))))))) - (case canonical-title - ((device) - ;; Nothing to do. - spec) - ((label) + (match spec + ((? string?) + ;; Nothing to do, but wait until SPEC shows up. + (resolve identity spec identity)) + ((? file-system-label?) ;; Resolve the label. - (resolve find-partition-by-label spec identity)) - ((uuid) + (resolve find-partition-by-label + (file-system-label->string spec) + identity)) + ((? uuid?) (resolve find-partition-by-uuid - (cond ((string? spec) - (string->uuid spec)) - ((uuid? spec) - (uuid-bytevector spec)) - (else spec)) - uuid->string)) - (else - (error "unknown device title" title)))) + (uuid-bytevector spec) + uuid->string)))) (define (check-file-system device type) "Run a file system check of TYPE on DEVICE." @@ -615,8 +590,7 @@ run a file system check." ""))))) (let ((type (file-system-type fs)) (options (file-system-options fs)) - (source (canonicalize-device-spec (file-system-device fs) - (file-system-title fs))) + (source (canonicalize-device-spec (file-system-device fs))) (mount-point (string-append root "/" (file-system-mount-point fs))) (flags (mount-flags->bit-mask (file-system-flags fs)))) diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index 18d87260a9..44b3506284 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -507,9 +507,15 @@ upon error." (error "pre-mount actions failed"))) (if root - (mount-root-file-system (canonicalize-device-spec root) - root-fs-type - #:volatile-root? volatile-root?) + ;; The "--root=SPEC" kernel command-line option always provides a + ;; string, but the string can represent a device, a UUID, or a + ;; label. So check for all three. + (let ((root (cond ((string-prefix? "/" root) root) + ((uuid root) => identity) + (else (file-system-label root))))) + (mount-root-file-system (canonicalize-device-spec root) + root-fs-type + #:volatile-root? volatile-root?)) (mount "none" "/root" "tmpfs")) ;; Mount the specified file systems. diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index 173a67cef9..bb018fc9c1 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -26,6 +26,7 @@ make-marionette marionette-eval wait-for-file + wait-for-tcp-port marionette-control marionette-screen-text wait-for-screen-text @@ -187,6 +188,32 @@ FILE has not shown up after TIMEOUT seconds, raise an error." ('failure (error "file didn't show up" file)))) +(define* (wait-for-tcp-port port marionette + #:key (timeout 20)) + "Wait for up to TIMEOUT seconds for PORT to accept connections in +MARIONETTE. Raise an error on failure." + ;; Note: The 'connect' loop has to run within the guest because, when we + ;; forward ports to the host, connecting to the host never raises + ;; ECONNREFUSED. + (match (marionette-eval + `(begin + (let ((sock (socket PF_INET SOCK_STREAM 0))) + (let loop ((i 0)) + (catch 'system-error + (lambda () + (connect sock AF_INET INADDR_LOOPBACK ,port) + 'success) + (lambda args + (if (< i ,timeout) + (begin + (sleep 1) + (loop (+ 1 i))) + 'failure)))))) + marionette) + ('success #t) + ('failure + (error "nobody's listening on port" port)))) + (define (marionette-control command marionette) "Run COMMAND in the QEMU monitor of MARIONETTE. COMMAND is a string such as \"sendkey ctrl-alt-f1\" or \"screendump foo.ppm\" (info \"(qemu-doc) diff --git a/gnu/build/shepherd.scm b/gnu/build/shepherd.scm index c955e3c83f..f383259924 100644 --- a/gnu/build/shepherd.scm +++ b/gnu/build/shepherd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,7 +55,6 @@ (define (tmpfs directory) (file-system (device "none") - (title 'device) (mount-point directory) (type "tmpfs") (check? #f))) diff --git a/gnu/build/svg.scm b/gnu/build/svg.scm index b5474ec4a0..6f1f4b3684 100644 --- a/gnu/build/svg.scm +++ b/gnu/build/svg.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017 Ludovic Courtès +;;; Copyright © 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2015 Andy Wingo ;;; ;;; This file is part of GNU Guix. @@ -18,16 +18,11 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu build svg) + #:use-module (rsvg) + #:use-module (cairo) #:use-module (srfi srfi-11) #:export (svg->png)) -;; We need Guile-RSVG and Guile-Cairo. Load them lazily, at run time, to -;; allow compilation to proceed. See also . -(module-autoload! (current-module) - '(rsvg) '(rsvg-handle-new-from-file)) -(module-autoload! (current-module) - '(cairo) '(cairo-image-surface-create)) - (define* (downscaled-surface surface #:key source-width source-height diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 527b4c495d..fa3ce7790d 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -106,11 +106,16 @@ the #:references-graphs parameter of 'derivation'." (not target-arm32?)) '("-enable-kvm") '()) + + ;; Pass "panic=1" so that the guest dies upon error. "-append" - ;; The serial port name differs between emulated architectures/machines. - ,@(if target-arm32? - `(,(string-append "console=ttyAMA0 --load=" builder)) - `(,(string-append "console=ttyS0 --load=" builder))) + ,(string-append "panic=1 --load=" builder + + ;; The serial port name differs between emulated + ;; architectures/machines. + " console=" + (if target-arm32? "ttyAMA0" "ttyS0")) + ;; NIC is not supported on ARM "virt" machine, so use a user mode ;; network stack instead. ,@(if target-arm32? @@ -265,7 +270,8 @@ actual /dev name based on DEVICE." #:key label uuid) "Create an ext-family file system of TYPE on PARTITION. If LABEL is true, use that as the volume name. If UUID is true, use it as the partition UUID." - (format #t "creating ~a partition...\n" type) + (format #t "creating ~a partition... ~@[label: ~s~] ~@[uuid: ~s~]\n" + type label (and uuid (uuid->string uuid))) (apply invoke (string-append "mkfs." type) "-F" partition `(,@(if label diff --git a/gnu/local.mk b/gnu/local.mk index 1f55d3e794..08bba803f4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1,6 +1,6 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès -# Copyright © 2013, 2014, 2015, 2016, 2017 Andreas Enge +# Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Andreas Enge # Copyright © 2016 Mathieu Lirzin # Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Mark H Weaver # Copyright © 2016 Chris Marusich @@ -96,6 +96,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/chez.scm \ %D%/packages/ci.scm \ %D%/packages/cinnamon.scm \ + %D%/packages/cluster.scm \ %D%/packages/cmake.scm \ %D%/packages/cobol.scm \ %D%/packages/code.scm \ @@ -202,6 +203,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/graphics.scm \ %D%/packages/graphviz.scm \ %D%/packages/groff.scm \ + %D%/packages/groovy.scm \ %D%/packages/gsasl.scm \ %D%/packages/gstreamer.scm \ %D%/packages/gtk.scm \ @@ -225,7 +227,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/image-processing.scm \ %D%/packages/image-viewers.scm \ %D%/packages/imagemagick.scm \ - %D%/packages/indent.scm \ %D%/packages/inklingreader.scm \ %D%/packages/inkscape.scm \ %D%/packages/irc.scm \ @@ -343,6 +344,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/plotutils.scm \ %D%/packages/polkit.scm \ %D%/packages/popt.scm \ + %D%/packages/printers.scm \ %D%/packages/profiling.scm \ %D%/packages/pth.scm \ %D%/packages/pulseaudio.scm \ @@ -480,6 +482,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/networking.scm \ %D%/services/nfs.scm \ %D%/services/shepherd.scm \ + %D%/services/sound.scm \ %D%/services/herd.scm \ %D%/services/pm.scm \ %D%/services/rsync.scm \ @@ -551,12 +554,15 @@ dist_patch_DATA = \ %D%/packages/patches/abiword-black-drawing-with-gtk322.patch \ %D%/packages/patches/acl-fix-perl-regex.patch \ %D%/packages/patches/acl-hurd-path-max.patch \ + %D%/packages/patches/adb-add-libraries.patch \ %D%/packages/patches/aegis-constness-error.patch \ %D%/packages/patches/aegis-perl-tempdir1.patch \ %D%/packages/patches/aegis-perl-tempdir2.patch \ %D%/packages/patches/aegis-test-fixup-1.patch \ %D%/packages/patches/aegis-test-fixup-2.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ + %D%/packages/patches/alsa-lib-add-environment-variable.patch \ + %D%/packages/patches/amule-crypto-6.patch \ %D%/packages/patches/ansible-wrap-program-hack.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \ @@ -575,9 +581,10 @@ dist_patch_DATA = \ %D%/packages/patches/azr3.patch \ %D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ - %D%/packages/patches/binutils-ld-new-dtags.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blast+-fix-makefile.patch \ + %D%/packages/patches/boost-fix-icu-build.patch \ + %D%/packages/patches/btrfs-progs-e-value-block.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ @@ -602,7 +609,6 @@ dist_patch_DATA = \ %D%/packages/patches/clisp-remove-failing-test.patch \ %D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/clx-remove-demo.patch \ - %D%/packages/patches/cmake-fix-tests.patch \ %D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/cool-retro-term-dont-check-uninit-member.patch \ %D%/packages/patches/cool-retro-term-fix-array-size.patch \ @@ -629,11 +635,14 @@ dist_patch_DATA = \ %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ + %D%/packages/patches/doxygen-gcc-ice.patch \ %D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ + %D%/packages/patches/e2fsprogs-glibc-2.27.patch \ %D%/packages/patches/eigen-arm-neon-fixes.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-disable-failing-tests.patch \ + %D%/packages/patches/elogind-glibc-2.27.patch \ %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/emacs-browse-at-remote-cgit-gnu.patch \ %D%/packages/patches/emacs-exec-path.patch \ @@ -642,6 +651,7 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ + %D%/packages/patches/enlightenment-fix-setuid-path.patch \ %D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \ @@ -656,6 +666,8 @@ dist_patch_DATA = \ %D%/packages/patches/fasthenry-spFactor.patch \ %D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch \ %D%/packages/patches/fcgi-2.4.0-poll.patch \ + %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ + %D%/packages/patches/fifo-map-remove-catch.hpp.patch \ %D%/packages/patches/file-CVE-2017-1000249.patch \ %D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-test-xargs.patch \ @@ -664,7 +676,6 @@ dist_patch_DATA = \ %D%/packages/patches/fltk-xfont-on-demand.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ - %D%/packages/patches/fontconfig-remove-debug-printf.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \ %D%/packages/patches/freeimage-CVE-2016-5684.patch \ %D%/packages/patches/freeimage-fix-build-with-gcc-5.patch \ @@ -696,7 +707,6 @@ dist_patch_DATA = \ %D%/packages/patches/gd-CVE-2018-5711.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-freetype-test-failure.patch \ - %D%/packages/patches/gegl-CVE-2012-4433.patch \ %D%/packages/patches/gemma-intel-compat.patch \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ @@ -706,13 +716,7 @@ dist_patch_DATA = \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/ghostscript-runpath.patch \ %D%/packages/patches/giflib-make-reallocarray-private.patch \ - %D%/packages/patches/gimp-CVE-2017-17784.patch \ - %D%/packages/patches/gimp-CVE-2017-17785.patch \ - %D%/packages/patches/gimp-CVE-2017-17786.patch \ - %D%/packages/patches/gimp-CVE-2017-17787.patch \ - %D%/packages/patches/gimp-CVE-2017-17789.patch \ %D%/packages/patches/glib-networking-ssl-cert-file.patch \ - %D%/packages/patches/glib-respect-datadir.patch \ %D%/packages/patches/glib-tests-timer.patch \ %D%/packages/patches/glibc-CVE-2015-5180.patch \ %D%/packages/patches/glibc-CVE-2015-7547.patch \ @@ -724,12 +728,15 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \ %D%/packages/patches/glibc-allow-kernel-2.6.32.patch \ %D%/packages/patches/glibc-bootstrap-system.patch \ + %D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \ %D%/packages/patches/glibc-ldd-x86_64.patch \ %D%/packages/patches/glibc-locales.patch \ %D%/packages/patches/glibc-memchr-overflow-i686.patch \ %D%/packages/patches/glibc-o-largefile.patch \ + %D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch \ %D%/packages/patches/glibc-vectorized-strcspn-guards.patch \ %D%/packages/patches/glibc-versioned-locpath.patch \ + %D%/packages/patches/glibc-2.27-git-fixes.patch \ %D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch \ %D%/packages/patches/glog-gcc-5-demangling.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ @@ -737,6 +744,7 @@ dist_patch_DATA = \ %D%/packages/patches/gnome-todo-libical-compat.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \ + %D%/packages/patches/gnupg-1.4-CVE-2018-12020.patch \ %D%/packages/patches/gnutls-skip-trust-store-test.patch \ %D%/packages/patches/gnutls-skip-pkgconfig-test.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ @@ -745,14 +753,15 @@ dist_patch_DATA = \ %D%/packages/patches/gpm-glibc-2.26.patch \ %D%/packages/patches/gpsbabel-minizip.patch \ %D%/packages/patches/gpsbabel-qstring.patch \ - %D%/packages/patches/graphite2-ffloat-store.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/groff-source-date-epoch.patch \ + %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \ %D%/packages/patches/gsl-test-i686.patch \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-default-utf8.patch \ %D%/packages/patches/guile-default-utf8.patch \ + %D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \ %D%/packages/patches/guile-linux-syscalls.patch \ %D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-relocatable.patch \ @@ -777,14 +786,13 @@ dist_patch_DATA = \ %D%/packages/patches/hdf-eos5-remove-gctp.patch \ %D%/packages/patches/hdf-eos5-fix-szip.patch \ %D%/packages/patches/hdf-eos5-fortrantests.patch \ - %D%/packages/patches/heimdal-CVE-2017-6594.patch \ - %D%/packages/patches/heimdal-CVE-2017-11103.patch \ %D%/packages/patches/hmmer-remove-cpu-specificity.patch \ %D%/packages/patches/higan-remove-march-native-flag.patch \ %D%/packages/patches/hubbub-sort-entities.patch \ %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ + %D%/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch \ %D%/packages/patches/icecat-use-system-graphite2.patch \ %D%/packages/patches/icecat-use-system-harfbuzz.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ @@ -805,6 +813,7 @@ dist_patch_DATA = \ %D%/packages/patches/jq-CVE-2015-8863.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/khmer-use-libraries.patch \ + %D%/packages/patches/libziparchive-add-includes.patch \ %D%/packages/patches/kiki-level-selection-crash.patch \ %D%/packages/patches/kiki-makefile.patch \ %D%/packages/patches/kiki-missing-includes.patch \ @@ -817,7 +826,6 @@ dist_patch_DATA = \ %D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \ %D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \ %D%/packages/patches/laby-make-install.patch \ - %D%/packages/patches/lcms-CVE-2016-10165.patch \ %D%/packages/patches/ldc-bootstrap-disable-tests.patch \ %D%/packages/patches/ldc-1.7.0-disable-phobos-tests.patch \ %D%/packages/patches/ledger-fix-uninitialized.patch \ @@ -849,17 +857,20 @@ dist_patch_DATA = \ %D%/packages/patches/libgdata-glib-duplicate-tests.patch \ %D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnomeui-utf8.patch \ + %D%/packages/patches/libgpg-error-aarch64-logging-fix.patch \ %D%/packages/patches/libgxps-CVE-2017-11590.patch \ %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/liboop-mips64-deplibs-fix.patch \ %D%/packages/patches/libotr-test-auth-fix.patch \ %D%/packages/patches/liblxqt-include.patch \ %D%/packages/patches/libmad-armv7-thumb-pt1.patch \ %D%/packages/patches/libmad-armv7-thumb-pt2.patch \ %D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \ + %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \ + %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \ + %D%/packages/patches/libreoffice-icu.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \ %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ %D%/packages/patches/libsndfile-CVE-2017-8362.patch \ @@ -867,19 +878,16 @@ dist_patch_DATA = \ %D%/packages/patches/libssh-hostname-parser-bug.patch \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ - %D%/packages/patches/libtasn1-CVE-2017-10790.patch \ - %D%/packages/patches/libtasn1-CVE-2018-6003.patch \ %D%/packages/patches/libtheora-config-guess.patch \ %D%/packages/patches/libtiff-CVE-2017-9935.patch \ %D%/packages/patches/libtiff-CVE-2017-18013.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-for-axoloti.patch \ + %D%/packages/patches/libutils-add-includes.patch \ + %D%/packages/patches/libutils-remove-damaging-includes.patch \ %D%/packages/patches/libvdpau-va-gl-unbundle.patch \ - %D%/packages/patches/libvorbis-CVE-2017-14632.patch \ - %D%/packages/patches/libvorbis-CVE-2017-14633.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ - %D%/packages/patches/libxcb-python-3.5-compat.patch \ %D%/packages/patches/libxslt-generated-ids.patch \ %D%/packages/patches/libxt-guix-search-paths.patch \ %D%/packages/patches/lierolibre-check-unaligned-access.patch \ @@ -905,10 +913,13 @@ dist_patch_DATA = \ %D%/packages/patches/lxsession-use-gapplication.patch \ %D%/packages/patches/lyx-2.2.3-fix-test.patch \ %D%/packages/patches/mailutils-uninitialized-memory.patch \ + %D%/packages/patches/make-glibc-compat.patch \ %D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/mars-install.patch \ %D%/packages/patches/mars-sfml-2.3.patch \ %D%/packages/patches/maxima-defsystem-mkdir.patch \ + %D%/packages/patches/maven-generate-component-xml.patch \ + %D%/packages/patches/maven-generate-javax-inject-named.patch \ %D%/packages/patches/mcron-install.patch \ %D%/packages/patches/mcrypt-CVE-2012-4409.patch \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \ @@ -927,14 +938,12 @@ dist_patch_DATA = \ %D%/packages/patches/mozjs38-shell-version.patch \ %D%/packages/patches/mozjs38-tracelogger.patch \ %D%/packages/patches/mozjs38-version-detection.patch \ + %D%/packages/patches/mumble-1.2.19-abs.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ - %D%/packages/patches/mupdf-build-with-latest-openjpeg.patch \ - %D%/packages/patches/mupdf-CVE-2017-17858.patch \ - %D%/packages/patches/mupdf-CVE-2018-6544.patch \ - %D%/packages/patches/mupdf-CVE-2018-1000051.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ %D%/packages/patches/mutt-store-references.patch \ + %D%/packages/patches/myrepos-CVE-2018-7032.patch \ %D%/packages/patches/net-tools-bitrot.patch \ %D%/packages/patches/netcdf-date-time.patch \ %D%/packages/patches/netcdf-tst_h_par.patch \ @@ -962,6 +971,7 @@ dist_patch_DATA = \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ %D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openscenegraph-ffmpeg3.patch \ + %D%/packages/patches/opensmtpd-fix-crash.patch \ %D%/packages/patches/openssl-runpath.patch \ %D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \ %D%/packages/patches/openssl-c-rehash-in.patch \ @@ -977,8 +987,7 @@ dist_patch_DATA = \ %D%/packages/patches/patchelf-rework-for-arm.patch \ %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ %D%/packages/patches/patch-hurd-path-max.patch \ - %D%/packages/patches/pcre2-CVE-2017-7186.patch \ - %D%/packages/patches/pcre2-CVE-2017-8786.patch \ + %D%/packages/patches/perf-gcc-ice.patch \ %D%/packages/patches/perl-file-path-CVE-2017-6512.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch \ @@ -999,6 +1008,7 @@ dist_patch_DATA = \ %D%/packages/patches/pinball-src-deps.patch \ %D%/packages/patches/pinball-system-ltdl.patch \ %D%/packages/patches/pingus-sdl-libs-config.patch \ + %D%/packages/patches/pius.patch \ %D%/packages/patches/pixman-CVE-2016-5296.patch \ %D%/packages/patches/plink-1.07-unclobber-i.patch \ %D%/packages/patches/plink-endian-detection.patch \ @@ -1015,8 +1025,8 @@ dist_patch_DATA = \ %D%/packages/patches/psm-ldflags.patch \ %D%/packages/patches/psm-repro.patch \ %D%/packages/patches/pulseaudio-fix-mult-test.patch \ + %D%/packages/patches/pulseaudio-glibc-2.27.patch \ %D%/packages/patches/pulseaudio-longer-test-timeout.patch \ - %D%/packages/patches/pycairo-wscript.patch \ %D%/packages/patches/pybugz-encode-error.patch \ %D%/packages/patches/pybugz-stty.patch \ %D%/packages/patches/pygpgme-disable-problematic-tests.patch \ @@ -1043,7 +1053,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-nose-timer-drop-ordereddict.patch \ %D%/packages/patches/python-pillow-fix-failing-tests.patch \ %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ - %D%/packages/patches/python-statsmodels-fix-tests.patch \ %D%/packages/patches/python-scikit-learn-fix-test-non-determinism.patch \ %D%/packages/patches/python-configobj-setuptools.patch \ %D%/packages/patches/python-faker-fix-build-32bit.patch \ @@ -1058,10 +1067,12 @@ dist_patch_DATA = \ %D%/packages/patches/python-unittest2-python3-compat.patch \ %D%/packages/patches/python-unittest2-remove-argparse.patch \ %D%/packages/patches/python-waitress-fix-tests.patch \ + %D%/packages/patches/qemu-glibc-2.27.patch \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qtbase-use-TZDIR.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/quagga-reproducible-build.patch \ + %D%/packages/patches/quassel-qt-5.11.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/rapicorn-isnan.patch \ %D%/packages/patches/raptor2-heap-overflow.patch \ @@ -1088,9 +1099,9 @@ dist_patch_DATA = \ %D%/packages/patches/scotch-build-parallelism.patch \ %D%/packages/patches/scotch-graph-diam-64.patch \ %D%/packages/patches/scotch-graph-induce-type-64.patch \ + %D%/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ - %D%/packages/patches/shadow-CVE-2018-7169.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \ %D%/packages/patches/shishi-fix-libgcrypt-detection.patch \ %D%/packages/patches/slim-session.patch \ @@ -1100,6 +1111,7 @@ dist_patch_DATA = \ %D%/packages/patches/slim-login.patch \ %D%/packages/patches/sooperlooper-build-with-wx-30.patch \ %D%/packages/patches/steghide-fixes.patch \ + %D%/packages/patches/strace-kernel-4.16.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-format-security.patch \ @@ -1107,7 +1119,7 @@ dist_patch_DATA = \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \ %D%/packages/patches/t1lib-CVE-2011-1552+.patch \ - %D%/packages/patches/tar-CVE-2016-6321.patch \ + %D%/packages/patches/tar-remove-wholesparse-check.patch \ %D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tclxml-3.2-install.patch \ %D%/packages/patches/tcsh-fix-autotest.patch \ @@ -1143,7 +1155,6 @@ dist_patch_DATA = \ %D%/packages/patches/unzip-overflow-long-fsize.patch \ %D%/packages/patches/unzip-remove-build-date.patch \ %D%/packages/patches/ustr-fix-build-with-gcc-5.patch \ - %D%/packages/patches/util-linux-CVE-2018-7738.patch \ %D%/packages/patches/util-linux-tests.patch \ %D%/packages/patches/upower-builddir.patch \ %D%/packages/patches/valgrind-enable-arm.patch \ @@ -1178,8 +1189,6 @@ dist_patch_DATA = \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \ - %D%/packages/patches/xcb-proto-python3-print.patch \ - %D%/packages/patches/xcb-proto-python3-whitespace.patch \ %D%/packages/patches/xdotool-fix-makefile.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ast-remove-mibstore.patch \ diff --git a/gnu/packages.scm b/gnu/packages.scm index 1a37a17342..7b954769e9 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -188,7 +188,7 @@ decreasing version order." version>?))) (if version (filter (lambda (package) - (string-prefix? version (package-version package))) + (version-prefix? version (package-version package))) matching) matching))))) diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm index c9d9b099c5..d399f98f09 100644 --- a/gnu/packages/accessibility.scm +++ b/gnu/packages/accessibility.scm @@ -83,7 +83,7 @@ available to help to click.") (license license:gpl2+))) (define-public footswitch - (let ((commit "deedd87fd90fad90ce342aeabafd4a3198d7d3d4") + (let ((commit "ca43d53fc2002520cc825d119702afc124303e73") (revision "2")) (package (name "footswitch") @@ -95,7 +95,8 @@ available to help to click.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1ys90wqyz62kffa8m3hgaq1dl7f29x3mrc3zqfjrkbn2ps0k6ps0")))) + (base32 + "14pyzc4ws1mj859xs9n4x83wzxxvd3bh5bdxzr6nv267xwx1mq68")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -112,6 +113,7 @@ available to help to click.") (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) (install-file "footswitch" bin) + (install-file "scythe" bin) #t)))))) (home-page "https://github.com/rgerganov/footswitch") (synopsis "Command line utility for PCsensor foot switch") diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm index 7880e533da..8d5f0117f5 100644 --- a/gnu/packages/acl.scm +++ b/gnu/packages/acl.scm @@ -1,8 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2014, 2018 Mark H Weaver ;;; Copyright © 2014 Andreas Enge ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,8 +48,20 @@ (build-system gnu-build-system) (arguments `(#:test-target "tests" + #:modules ((ice-9 ftw) + ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases + ;; XXX After repacking the sources the timestamps are reset to the + ;; epoch, which leads to a failure in gzipping the CHANGES file. + (add-after 'unpack 'ensure-no-mtimes-pre-1980 + (lambda _ + (let ((early-1980 315619200)) ; 1980-01-02 UTC + (ftw "." (lambda (file stat flag) + (unless (<= early-1980 (stat:mtime stat)) + (utime file early-1980 early-1980)) + #t)) + #t))) (add-after 'build 'patch-exec-bin-sh (lambda _ (substitute* "test/run" @@ -64,10 +77,11 @@ ;; this user does not exist within Guix's build environment. (for-each (lambda (file) (delete-file (string-append "test/" file))) - '("setfacl-X.test" "cp.test" "misc.test")))) + '("setfacl-X.test" "cp.test" "misc.test")) + #t)) (replace 'install (lambda _ - (zero? (system* "make" "install" "install-lib" "install-dev"))))))) + (invoke "make" "install" "install-lib" "install-dev")))))) (inputs `(("attr" ,attr))) (native-inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 2b9b43bc50..6b8df3fb9b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -50,8 +50,11 @@ #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages dns) + #:use-module (gnu packages file) #:use-module (gnu packages ncurses) #:use-module (gnu packages readline) #:use-module (gnu packages linux) @@ -70,6 +73,7 @@ #:use-module (gnu packages gnupg) #:use-module (gnu packages bison) #:use-module (gnu packages flex) + #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages openldap) #:use-module (gnu packages mcrypt) @@ -97,7 +101,8 @@ #:use-module (gnu packages xml) #:use-module (gnu packages boost) #:use-module (gnu packages elf) - #:use-module (gnu packages mpi)) + #:use-module (gnu packages mpi) + #:use-module (gnu packages web)) (define-public aide (package @@ -358,16 +363,15 @@ hostname.") (define-public shadow (package (name "shadow") - (version "4.5") + (version "4.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/shadow-maint/shadow/releases/" "download/" version "/shadow-" version ".tar.xz")) - (patches (search-patches "shadow-CVE-2018-7169.patch")) (sha256 (base32 - "0hdpai78n63l3v3fgr3kkiqzhd0awrpfnnzz4mf7lmxdh61qb37w")))) + "10smy01km2bqjjvsd2jz17zvrxbzj89qczyb1amk38j28bcci609")))) (build-system gnu-build-system) (arguments `(;; Assume System V `setpgrp (void)', which is the default on GNU @@ -386,7 +390,8 @@ hostname.") "libc")))) (substitute* "lib/nscd.c" (("/usr/sbin/nscd") - (string-append libc "/sbin/nscd")))))) + (string-append libc "/sbin/nscd"))) + #t))) (add-after 'install 'remove-groups (lambda* (#:key outputs #:allow-other-keys) ;; Remove `groups', which is already provided by Coreutils. @@ -486,8 +491,8 @@ allow automatic login and starting any app.") (output (assoc-ref %outputs "out")) (etc (string-append output "/etc"))) (setenv "PATH" (string-append xz "/bin")) - (system* (string-append tar "/bin/tar") "xvf" - source) + (invoke (string-append tar "/bin/tar") "xvf" + source) (chdir ,(string-append "netbase-" version)) (mkdir-p etc) (for-each copy-file @@ -603,10 +608,10 @@ connection alive.") (define-public isc-dhcp (let* ((bind-major-version "9") - (bind-minor-version "9") - (bind-patch-version "11") - (bind-release-type "-P") ; for patch release, use "-P" - (bind-release-version "1") ; for patch release, e.g. "6" + (bind-minor-version "11") + (bind-patch-version "3") + (bind-release-type "") ; for patch release, use "-P" + (bind-release-version "") ; for patch release, e.g. "6" (bind-version (string-append bind-major-version "." bind-minor-version @@ -616,14 +621,14 @@ connection alive.") bind-release-version))) (package (name "isc-dhcp") - (version "4.3.6-P1") + (version "4.4.1") (source (origin (method url-fetch) (uri (string-append "http://ftp.isc.org/isc/dhcp/" version "/dhcp-" version ".tar.gz")) (sha256 (base32 - "1hx3az6ckvgvybr1ag4k9kqr8zfcpzcww4vpw5gz0mi8y2z7gl9g")))) + "025nfqx4zwdgv4b3rkw26ihcj312vir08jk6yi57ndmb4a4m08ia")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f @@ -669,16 +674,16 @@ connection alive.") sh " SHELL=" sh)))) (let ((bind-directory (string-append "bind-" ,bind-version))) - (system* "tar" "xf" "bind.tar.gz") + (invoke "tar" "xf" "bind.tar.gz") (for-each patch-shebang (find-files bind-directory ".*")) - (zero? (system* "tar" "cf" "bind.tar.gz" - bind-directory - ;; avoid non-determinism in the archive - "--sort=name" - "--mtime=@0" - "--owner=root:0" - "--group=root:0")))))) + (invoke "tar" "cf" "bind.tar.gz" + bind-directory + ;; avoid non-determinism in the archive + "--sort=name" + "--mtime=@0" + "--owner=root:0" + "--group=root:0"))))) (add-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys) ;; Install the dhclient script for GNU/Linux and make sure @@ -704,7 +709,8 @@ connection alive.") ,(map (lambda (dir) (string-append dir "/bin:" dir "/sbin")) - (list inetutils net-tools coreutils sed)))))))))) + (list inetutils net-tools coreutils sed)))) + #t)))))) (native-inputs `(("perl" ,perl))) @@ -722,7 +728,7 @@ connection alive.") "/bind-" bind-version ".tar.gz")) (sha256 (base32 - "1a4g6nzzrbmhngdgvgv1jjq4fm06m8fwc2a0gskkchplxl7dva20")))) + "1xbnb2b11274z9frc9y7nvkyxr52qx09bwb97gf9qzzcn8adx78d")))) ;; When cross-compiling, we need the cross Coreutils and sed. ;; Otherwise just use those from %FINAL-INPUTS. @@ -737,7 +743,7 @@ connection alive.") "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a reference implementation of all aspects of DHCP, through a suite of DHCP tools: server, client, and relay agent.") - (license license:isc) + (license license:mpl2.0) (properties '((cpe-name . "dhcp")))))) (define-public libpcap @@ -898,13 +904,15 @@ at once based on a Perl regular expression.") "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}") - ;; Don't try to chown root. - "") - (("mkdir -p \\$\\(ROTT_STATDIR\\)") - ;; Don't attempt to create /var/lib/rottlog. - "true"))))) + '(begin + (substitute* "Makefile.in" + (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}") + ;; Don't try to chown root. + "") + (("mkdir -p \\$\\(ROTT_STATDIR\\)") + ;; Don't attempt to create /var/lib/rottlog. + "true")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location @@ -955,7 +963,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.8.22") + (version "1.8.23") (source (origin (method url-fetch) (uri @@ -965,10 +973,12 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "00pxp74xkwdcmrjwy55j0k8p684jk1zx3nzdc11v30q8q8kwnmkj")) + "0yg62wq8rcrbr7qvh3wgfg2g4bwanbi50cr2lf2cfyy8dydx4qyq")) (modules '((guix build utils))) (snippet - '(delete-file-recursively "lib/zlib")))) + '(begin + (delete-file-recursively "lib/zlib") + #t)))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1255,7 +1265,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") (define-public acpica (package (name "acpica") - (version "20180313") + (version "20180531") (source (origin (method url-fetch) (uri (string-append @@ -1263,7 +1273,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") version ".tar.gz")) (sha256 (base32 - "16galaadmr37q2pvk2gyxrm8d1xldzk31djfxfq9v1c9yq4i425h")))) + "0q7vg1nr51f3rg16vjh4glz361a64r6gpm46fqkl2jf4fq7g43g5")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) ("bison" ,bison))) @@ -1272,7 +1282,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") "CC=gcc" "HOST=_LINUX" "OPT_CFLAGS=-Wall -fno-strict-aliasing") - #:tests? #f ; no 'check' target. + #:tests? #f ; no 'check' target #:phases (modify-phases %standard-phases (delete 'configure)))) (home-page "https://acpica.org/") (synopsis "Tools for the development and debug of ACPI tables") @@ -1284,7 +1294,7 @@ of ACPI meant to be directly integrated into the host OS as a kernel-resident subsystem, and a small set of tools to assist in developing and debugging ACPI tables. This package contains only the user-space tools needed for ACPI table development, not the kernel implementation of ACPI.") - (license license:gpl2))) ; Dual GPLv2/ACPICA Licence + (license license:gpl2))) ; dual GPLv2/ACPICA Licence (define-public stress (package @@ -1407,9 +1417,11 @@ environment variable is set and output is to tty.") (base32 "1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4")) (modules '((guix build utils))) - (snippet '(substitute* "tests/testsuite" - (("#![[:blank:]]?/bin/sh") - "#!$SHELL"))))) + (snippet '(begin + (substitute* "tests/testsuite" + (("#![[:blank:]]?/bin/sh") + "#!$SHELL")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -1829,14 +1841,14 @@ done with the @code{auditctl} utility.") (modules '((guix build utils))) (snippet '(begin - (map delete-file-recursively - ;; Remove bundled lua, pcap, and pcre libraries. - ;; FIXME: Remove bundled liblinear once packaged. - '("liblua" - "libpcap" - "libpcre" - ;; Remove pre-compiled binares. - "mswin32")) + (for-each delete-file-recursively + ;; Remove bundled lua, pcap, and pcre libraries. + ;; FIXME: Remove bundled liblinear once packaged. + '("liblua" + "libpcap" + "libpcre" + ;; Remove pre-compiled binares. + "mswin32")) #t)))) (build-system gnu-build-system) (inputs @@ -1941,7 +1953,7 @@ throughput (in the same interval).") (define-public thefuck (package (name "thefuck") - (version "3.26") + (version "3.27") (source (origin (method url-fetch) (uri (string-append "https://github.com/nvbn/thefuck/archive/" @@ -1949,7 +1961,7 @@ throughput (in the same interval).") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0ddlf25ik97z34bcpc52xyfhlfm6a3hdi43l6cz4ggwcawdwvn1p")) + "0my32n2x8x0f0wr8ql7qgk9qhb6ibv5b1rqs5b2r4nadv0gpiv96")) (patches (search-patches "thefuck-test-environ.patch")))) (build-system python-build-system) (arguments @@ -2141,7 +2153,9 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.") (snippet ;; Remove binaries contained in the tarball which are only for the ;; target and can be regenerated anyway. - '(delete-file-recursively "bin")) + '(begin + (delete-file-recursively "bin") + #t)) (file-name (string-append name "-" version ".tar.gz")))) (native-inputs `(("pkg-config" ,pkg-config) @@ -2468,7 +2482,7 @@ make it a perfect utility on modern distros.") (define-public thermald (package (name "thermald") - (version "1.7.1") + (version "1.7.2") (source (origin (method url-fetch) @@ -2476,25 +2490,15 @@ make it a perfect utility on modern distros.") version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0isgmav3z3nb5bsdya8m3haqhzj1lyfjx7i812cqfjrh2a9msin4")))) + "15a6vb67y5wsmf0irrq7sxam18yqpz64130k83ryf24mp40h661b")))) (build-system gnu-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (add-after - 'unpack 'autogen.sh-and-fix-paths - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; XXX this can probably be removed after version 1.7.1. - ;; upstartconfir is hardcoded to /etc/init and the build - ;; system tries to mkdir that. We don't even need upstart - ;; files at all; this is a fast and kludgy workaround - (substitute* "data/Makefile.am" - (("upstartconfdir = /etc/init") - (string-append "upstartconfdir = " - out "/etc/init"))) - ;; Now run autogen - (invoke "sh" "autogen.sh") - #t)))) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (invoke "sh" "autogen.sh") + #t))) #:configure-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "--sysconfdir=" @@ -2516,7 +2520,7 @@ make it a perfect utility on modern distros.") (synopsis "CPU scaling for thermal management") (description "The Linux Thermal Daemon helps monitor and control temperature on systems running the Linux kernel.") - ;; arm and aarch64 don't have cpuid.h + ;; arm and aarch64 don't have cpuid.h. (supported-systems '("i686-linux" "x86_64-linux")) (license license:gpl2+))) @@ -2652,3 +2656,116 @@ Python loading in HPC environments.") ;; This package supports x86_64 and PowerPC64 (supported-systems '("x86_64-linux")) (license license:lgpl2.1))) + +(define-public inxi-minimal + (let ((real-name "inxi")) + (package + (name "inxi-minimal") + (version "3.0.11-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/smxi/inxi") + (commit version))) + (sha256 + (base32 + "07wihl4gsamq98mhxvm6k4vpphym75467cxfa19b3g5ggpyq894g")))) + (build-system trivial-build-system) + (inputs + `(("bash" ,bash) + ("perl" ,perl))) + (native-inputs + `(("gzip" ,gzip))) + (arguments + `(#:modules + ((guix build utils) + (ice-9 match) + (srfi srfi-26)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match) + (srfi srfi-26)) + (setenv "PATH" (string-append + (assoc-ref %build-inputs "bash") "/bin" ":" + (assoc-ref %build-inputs "gzip") "/bin" ":" + (assoc-ref %build-inputs "perl") "/bin" ":")) + (copy-recursively (assoc-ref %build-inputs "source") + ,(string-append real-name "-" version)) + (with-directory-excursion ,(string-append real-name "-" version) + (with-fluids ((%default-port-encoding #f)) + (substitute* "inxi" (("/usr/bin/env perl") (which "perl")))) + (let ((bin (string-append %output "/bin"))) + (install-file "inxi" bin) + (wrap-program (string-append bin "/inxi") + `("PATH" ":" = + ("$PATH" + ,@(map (lambda (input) + (match input + ((name . store) + (let ((store-append + (cut string-append store <>))) + (cond + ((member name '("util-linux")) + (string-append (store-append "/bin") ":" + (store-append "/sbin"))) + ((member name '("dmidecode" "iproute2")) + (store-append "/sbin")) + (else (store-append "/bin"))))))) + %build-inputs))) + `("PERL5LIB" ":" = + ,(delete + "" + (map (match-lambda + (((? (cut string-prefix? "perl-" <>) name) . dir) + (string-append dir "/lib/perl5/site_perl")) + (_ "")) + %build-inputs))))) + (invoke "gzip" "inxi.1") + (install-file "inxi.1.gz" + (string-append %output "/share/man/man1"))) + #t))) + (home-page "https://smxi.org/docs/inxi.htm") + (synopsis "Full-featured system information script") + (description "Inxi is a system information script that can display +various things about your hardware and software to users in an IRC chatroom or +support forum. It runs with the @code{/exec} command in most IRC clients.") + (license license:gpl3+)))) + +(define-public inxi + (package + (inherit inxi-minimal) + (name "inxi") + (inputs + `(("dmidecode" ,dmidecode) + ("file" ,file) + ("bind:utils" ,isc-bind "utils") ; dig + ("gzip" ,gzip) + ("iproute2" ,iproute) ; ip + ("kmod" ,kmod) ; modinfo + ("lm-sensors" ,lm-sensors) + ("mesa-utils" ,mesa-utils) + ("pciutils" ,pciutils) + ("procps" ,procps) + ("tar" ,tar) + ("tree" ,tree) + ("util-linux" ,util-linux) ; lsblk + ("usbutils" ,usbutils) ; lsusb + ("wmctrl" ,wmctrl) + ("xdpyinfo" ,xdpyinfo) + ("xprop" ,xprop) + ("xrandr" ,xrandr) + ("coreutils" ,coreutils) ; uptime + ("inetutils" ,inetutils) ; ifconfig + ("perl-cpanel-json-xs" ,perl-cpanel-json-xs) + ("perl-http-tiny" ,perl-http-tiny) + ("perl-io-socket-ssl" ,perl-io-socket-ssl) + ("perl-json-xs" ,perl-json-xs) + ("perl-time-hires" ,perl-time-hires) + ;; TODO: Add more inputs: + ;; ipmi-sensors + ;; hddtemp + ;; perl-xml-dumper + ;; ipmitool + ,@(package-inputs inxi-minimal))))) diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index 7093c7467c..4615b346d6 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -51,15 +51,15 @@ formats.") (define-public qrencode (package (name "qrencode") - (version "3.4.4") + (version "4.0.0") (source (origin (method url-fetch) (uri (string-append "https://fukuchi.org/works/qrencode/qrencode-" version - ".tar.gz")) + ".tar.bz2")) (sha256 (base32 - "0wiagx7i8p9zal53smf5abrnh9lr31mv0p36wg017401jrmf5577")))) + "02vx69fl52jbcrmnydsaxcmy6nxqm9jyxzd7hr07s491d7hka069")))) (build-system gnu-build-system) (inputs `(("libpng" ,libpng))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index d2370a02ca..816f013655 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Andreas Enge ;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou -;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2014, 2018 Mark H Weaver ;;; Copyright © 2016, 2018 Ricardo Wurmus ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice @@ -27,7 +27,9 @@ (define-module (gnu packages algebra) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages documentation) #:use-module (gnu packages ed) #:use-module (gnu packages flex) @@ -60,15 +62,15 @@ (define-public mpfrcx (package (name "mpfrcx") - (version "0.4.2") + (version "0.5") (source (origin (method url-fetch) (uri (string-append - "http://www.multiprecision.org/mpfrcx/download/mpfrcx-" + "http://www.multiprecision.org/downloads/mpfrcx-" version ".tar.gz")) (sha256 (base32 - "0grw66b255r574lvll1bqccm5myj2m8ajzsjaygcyq9zjnnbnhhy")))) + "1s968480ymv6w0rnvfp9mxvx98hvi29fkvw8nk4ggzc6azxgwybs")))) (build-system gnu-build-system) (propagated-inputs `(("gmp" ,gmp) @@ -82,7 +84,7 @@ on the rounding. For the time being, only the few functions needed to implement the floating point approach to complex multiplication are implemented. On the other hand, these comprise asymptotically fast multiplication routines such as Toom–Cook and the FFT.") - (license license:lgpl2.1+) + (license license:lgpl3+) (home-page "http://mpfrcx.multiprecision.org/"))) (define-public cm @@ -211,7 +213,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") (define-public giac-xcas (package (name "giac-xcas") - (version "1.4.9-45") + (version "1.4.9-59") (source (origin (method url-fetch) ;; "~parisse/giac" is not used because the maintainer regularly @@ -223,7 +225,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") "source/giac_" version ".tar.gz")) (sha256 (base32 - "11za5rznr2dgy6598y4iwrcyi86w7f601ci9i794kl8k22pqhcd8")))) + "0dv5p5y6gkrsmz3xa7fw87rjyabwdwk09mqb09kb7gai9n9dgayk")))) (build-system gnu-build-system) (arguments `(#:phases @@ -519,31 +521,40 @@ a C program.") (license license:bsd-3))) (define-public fftw - ;; TODO: Make this 3.3.7 (see below) on the next upgrade cycle. (package (name "fftw") - (version "3.3.5") + (version "3.3.7") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-" version".tar.gz")) (sha256 (base32 - "1kwbx92ps0r7s2mqy7lxbxanslxdzj7dp7r7gmdkzv1j8yqf3kwf")))) + "0wsms8narnbhfsa8chdflv2j9hzspvflblnqdn7hw8x5xdzrnq1v")))) (build-system gnu-build-system) (arguments - '(#:configure-flags - '("--enable-shared" "--enable-openmp" "--enable-threads") - #:phases (alist-cons-before - 'build 'no-native - (lambda _ - ;; By default '-mtune=native' is used. However, that may - ;; cause the use of ISA extensions (SSE2, etc.) that are - ;; not necessarily available on the user's machine when - ;; that package is built on a different machine. - (substitute* (find-files "." "Makefile$") - (("-mtune=native") ""))) - %standard-phases))) + `(#:configure-flags + '("--enable-shared" "--enable-openmp" "--enable-threads" + ,@(let ((system (or (%current-target-system) (%current-system)))) + ;; Enable SIMD extensions for codelets. See details at: + ;; . + (cond + ((string-prefix? "x86_64" system) + '("--enable-sse2" "--enable-avx" "--enable-avx2" + "--enable-avx512" "--enable-avx-128-fma")) + ((string-prefix? "i686" system) + '("--enable-sse2")) + ((string-prefix? "aarch64" system) + ;; Note that fftw supports NEON on 32-bit ARM only when + ;; compiled for single-precision. + '("--enable-neon")) + (else + '()))) + ;; By default '-mtune=native' is used. However, that may cause the + ;; use of ISA extensions (e.g. AVX) that are not necessarily + ;; available on the user's machine when that package is built on a + ;; different machine. + "ax_cv_c_flags__mtune_native=no"))) (native-inputs `(("perl" ,perl))) (home-page "http://fftw.org") (synopsis "Computing the discrete Fourier transform") @@ -559,8 +570,15 @@ cosine/ sine transforms or DCT/DST).") (name "fftwf") (arguments (substitute-keyword-arguments (package-arguments fftw) - ((#:configure-flags cf) - `(cons "--enable-float" ,cf)))) + ((#:configure-flags fftw-configure-flags) + `(cons* "--enable-single" + ,@(if (string-prefix? "arm" (or (%current-target-system) + (%current-system))) + ;; fftw supports NEON on 32-bit ARM only when compiled + ;; for single-precision, so add it here. + '("--enable-neon") + '()) + ,fftw-configure-flags)))) (description (string-append (package-description fftw) " Single-precision version.")))) @@ -579,42 +597,6 @@ cosine/ sine transforms or DCT/DST).") (string-append (package-description fftw) " With OpenMPI parallelism support.")))) -(define-public fftw-3.3.7 - ;; TODO: Make this the default 'fftw' on the next upgrade cycle. - (package - (inherit fftw) - (version "3.3.7") - (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-" - version".tar.gz")) - (sha256 - (base32 - "0wsms8narnbhfsa8chdflv2j9hzspvflblnqdn7hw8x5xdzrnq1v")))))) - -(define-public fftw-avx - (package - (inherit fftw-3.3.7) - (name "fftw-avx") - (arguments - (substitute-keyword-arguments (package-arguments fftw-3.3.7) - ((#:configure-flags flags ''()) - ;; Enable AVX & co. See details at: - ;; . - `(append '("--enable-avx" "--enable-avx2" "--enable-avx512" - "--enable-avx-128-fma") - ,flags)) - ((#:substitutable? _ #f) - ;; To run the tests, we must have a CPU that supports all these - ;; extensions. Since we cannot be sure that machines in the build - ;; farm support them, disable substitutes altogether. - #f) - ((#:phases _) - ;; Since we're not providing binaries, let '-mtune=native' through. - '%standard-phases))) - (synopsis "Computing the discrete Fourier transform (AVX2-optimized)") - (supported-systems '("x86_64-linux")))) - (define-public java-la4j (package (name "java-la4j") @@ -732,9 +714,10 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).") ;; but maintainers say it's a known issue and it's unsupported ;; anyway, so just skip them. '(begin + (substitute* "unsupported/CMakeLists.txt" + (("add_subdirectory\\(test.*") + "# Do not build the tests for unsupported features.\n")) (substitute* "CMakeLists.txt" - (("add_subdirectory\\(unsupported\\)") - "# Do not build the tests for unsupported features.\n") ;; Work around ;; . (("\"include/eigen3\"") @@ -743,7 +726,8 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).") ;; See ;; https://bitbucket.org/eigen/eigen/commits/ea8c22ce6920e982d15245ee41d0531a46a28e5d ((".*svd_preallocate[^\n]*" &) - (string-append "//" & " // Not supported by BDCSVD"))))))) + (string-append "//" & " // Not supported by BDCSVD"))) + #t)))) (build-system cmake-build-system) (arguments '(;; Turn off debugging symbols to save space. @@ -774,3 +758,37 @@ features, and more.") ;; Most of the code is MPLv2, with a few files under LGPLv2.1+ or BSD-3. ;; See 'COPYING.README' for details. (license license:mpl2.0))) + +(define-public xtensor + (package + (name "xtensor") + (version "0.15.9") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/QuantStack/xtensor/archive/" + version ".tar.gz")) + (sha256 + (base32 + "0mlsw4p1w5mh7pscddfdamz27zq3wml5qla3vbzgvif34vsqc8ra")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system cmake-build-system) + (native-inputs + `(("googletest" ,googletest) + ("xtl" ,xtl))) + (arguments + `(#:configure-flags + '("-DBUILD_TESTS=ON") + #:test-target "xtest")) + (home-page "http://quantstack.net/xtensor") + (synopsis "C++ tensors with broadcasting and lazy computing") + (description "xtensor is a C++ library meant for numerical analysis with +multi-dimensional array expressions. + +xtensor provides: +@itemize +@item an extensible expression system enabling lazy broadcasting. +@item an API following the idioms of the C++ standard library. +@item tools to manipulate array expressions and build upon xtensor. +@end itemize") + (license license:bsd-3))) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 92de9736f1..7618c0e1f6 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -27,18 +27,73 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system android-ndk) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages check) + #:use-module (gnu packages compression) #:use-module (gnu packages gnupg) + #:use-module (gnu packages pcre) #:use-module (gnu packages python) + #:use-module (gnu packages selinux) #:use-module (gnu packages ssh) #:use-module (gnu packages version-control) #:use-module (gnu packages tls) #:use-module (gnu packages linux)) +(define-public android-make-stub + (package + (name "android-make-stub") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/daym/android-make-stub.git") + (commit (string-append "v" version)))) + (file-name (string-append "android-make-stub-" + version "-checkout")) + (sha256 + (base32 + "0y1b2x96d37n6f1bp6dcx08bn08zac0cylmbfsx6mf2nahc02fhc")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; None exist. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (invoke "make" (string-append "prefix=" out) "install") + #t)))))) + (home-page "https://github.com/daym/android-make-stub") + (synopsis "Stubs for the @command{make} system of the Android platform") + (description "@code{android-make-stub} provides stubs for the +@command{make} system of the Android platform. This allows us to +use their packages mostly unmodified in our Android NDK build system.") + (license license:asl2.0))) + +(define-public android-googletest + (package (inherit googletest) + (name "android-googletest") + (arguments + `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON") + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-host-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + (symlink "libgtest.so" + (string-append lib "/libgtest_host.so")) + (symlink "libgmock.so" + (string-append lib "/libgmock_host.so")) + #t)))))))) + ;; The Makefiles that we add are largely based on the Debian ;; packages. They are licensed under GPL-2 and have copyright: ;; 2012, Stefan Handschuh @@ -58,52 +113,69 @@ version "-checkout")) (sha256 (base32 - "0xc2n7jxrf1iw9cc278pijdfjix2fkiig5ws27f6rwp40zg5mrgg")))) + "0xc2n7jxrf1iw9cc278pijdfjix2fkiig5ws27f6rwp40zg5mrgg")) + (patches + (search-patches "libbase-use-own-logging.patch" + "libbase-fix-includes.patch" + "libutils-remove-damaging-includes.patch" + "libutils-add-includes.patch" + "adb-add-libraries.patch" + "libziparchive-add-includes.patch")))) -(define liblog +(define (android-platform-system-extras version) + (origin + (method git-fetch) + (uri (git-reference + (url "https://android.googlesource.com/platform/system/extras") + (commit (string-append "android-" version)))) + (file-name (string-append "android-platform-system-extras-" + version "-checkout")) + (sha256 + (base32 + "18130c23ybqcpgjc5v6f8kdbv2xn39hyiaj17dzldjb9rlwzcyy9")))) + +(define (android-platform-bionic version) + (origin + (method git-fetch) + (uri (git-reference + (url "https://android.googlesource.com/platform/bionic") + (commit (string-append "android-" version)))) + (file-name (string-append "android-platform-bionic-" + version "-checkout")) + (sha256 + (base32 + "0n9wkz3ynqw39if1ss9n32m66iga14nndf29hpm7g1aqn4wvvgzk")))) + +(define (android-platform-external version subdirectory checksum) + (origin + (method git-fetch) + (uri (git-reference + (url + (string-append "https://android.googlesource.com/platform/external/" + subdirectory)) + (commit (string-append "android-" version)))) + (file-name (string-append "android-platform-system-external-" subdirectory "-" + version "-checkout")) + (sha256 + (base32 + checksum)))) + +(define android-liblog (package - (name "liblog") + (name "android-liblog") (version (android-platform-version)) (source (android-platform-system-core version)) - (build-system gnu-build-system) + (build-system android-ndk-build-system) (arguments - `(#:tests? #f ; TODO. - #:make-flags '("CC=gcc") + `(#:make-flags '("LDLIBS=-lpthread") #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source (lambda _ (chdir "liblog") #t)) - (add-after 'enter-source 'create-Makefile - (lambda _ - ;; No useful makefile is shipped, so we create one. - (with-output-to-file "Makefile" - (lambda _ - (display - (string-append - "NAME = liblog\n" - "SOURCES = log_event_list.c log_event_write.c" - " logger_write.c config_write.c logger_name.c" - " logger_lock.c fake_log_device.c fake_writer.c" - " event_tag_map.c\n" - - "CFLAGS += -fvisibility=hidden -fPIC\n" - "CPPFLAGS += -I../include -DFAKE_LOG_DEVICE=1" - ;; Keep these two in sync with "liblog/Android.bp". - " -DLIBLOG_LOG_TAG=1005" - " -DSNET_EVENT_LOG_TAG=1397638484\n" - "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 -lpthread\n" - - "build: $(SOURCES)\n" - " $(CC) $^ -o $(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)\n")) - #t)))) - (delete 'configure) - (replace 'install + (add-after 'install 'ldconfig (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) - (install-file "liblog.so.0" lib) - (with-directory-excursion lib - (symlink "liblog.so.0" "liblog.so")) + (let ((out (assoc-ref outputs "out"))) + (symlink "liblog.so.0" (string-append out "/lib/liblog.so")) #t)))))) (home-page "https://developer.android.com/") (synopsis "Logging library from the Android platform.") @@ -113,62 +185,29 @@ interfaces for either writing or reading logs. The log buffers are divided up in Main, System, Radio and Events sub-logs.") (license license:asl2.0))) -(define libbase +(define android-libbase (package - (name "libbase") + (name "android-libbase") (version (android-platform-version)) - (source (origin - (inherit (android-platform-system-core version)) - (patches - (search-patches "libbase-use-own-logging.patch" - "libbase-fix-includes.patch")))) - (build-system gnu-build-system) + (source (android-platform-system-core version)) + (build-system android-ndk-build-system) (arguments - `(#:tests? #f ; TODO. + `(#:tests? #f ; Test failure: logging.UNIMPLEMENTED + #:make-flags '("CXXFLAGS=-std=gnu++11") #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source - (lambda _ (chdir "base") #t)) - (add-after 'enter-source 'create-Makefile - (lambda _ - ;; No useful makefile is shipped, so we create one. - (with-output-to-file "Makefile" - (lambda _ - (display - (string-append - "NAME = libbase\n" - "SOURCES = file.cpp logging.cpp parsenetaddress.cpp" - " stringprintf.cpp strings.cpp errors_unix.cpp\n" - - "CXXFLAGS += -std=gnu++11 -fPIC\n" - "CPPFLAGS += -Iinclude -I../include\n" - "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0" - " -L.. -llog\n" - - "build: $(SOURCES)\n" - " $(CXX) $^ -o $(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS)" - " $(LDFLAGS)\n")) - #t)))) - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) - (install-file "libbase.so.0" lib) - (with-directory-excursion lib - (symlink "libbase.so.0" "libbase.so")) - (copy-recursively "include" out) - #t)))))) - (inputs `(("liblog" ,liblog))) + (lambda _ (chdir "base") #t))))) + (inputs `(("android-liblog" ,android-liblog))) (home-page "https://developer.android.com/") (synopsis "Android platform base library") (description "@code{libbase} is a library in common use by the various Android core host applications.") (license license:asl2.0))) -(define libcutils +(define android-libcutils (package - (name "libcutils") + (name "android-libcutils") (version (android-platform-version)) (source (android-platform-system-core version)) (build-system gnu-build-system) @@ -206,10 +245,13 @@ various Android core host applications.") (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) + (lib (string-append out "/lib")) + (include (string-append out "/include"))) (install-file "libcutils.so.0" lib) (with-directory-excursion lib (symlink "libcutils.so.0" "libcutils.so")) + (copy-recursively "../include/cutils" + (string-append include "/cutils")) #t)))))) (home-page "https://developer.android.com/") (synopsis "Android platform c utils library") @@ -217,90 +259,92 @@ various Android core host applications.") various Android core host applications.") (license license:asl2.0))) +(define-public android-libsparse + (package + (name "android-libsparse") + (version (android-platform-version)) + (source (android-platform-system-core version)) + (build-system android-ndk-build-system) + (arguments + `(#:make-flags '("CFLAGS=-Wno-error" + "CXXFLAGS=-fpermissive -Wno-error") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "libsparse") #t))))) + (inputs + `(("zlib" ,zlib))) + (home-page "https://developer.android.com/") + (synopsis "Android platform sparse library") + (description "@code{android-libsparse} is a library in common use by the +various Android core host applications.") + (license license:asl2.0))) + +(define-public android-libziparchive + (package + (name "android-libziparchive") + (version (android-platform-version)) + (source (android-platform-system-core version)) + (build-system android-ndk-build-system) + (arguments + `(#:make-flags '("CFLAGS=-Wno-error" + "CXXFLAGS=-fpermissive -Wno-error -std=gnu++11") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "libziparchive") #t)) + (add-before 'check 'setenv + (lambda _ + (setenv "ziparchive_tests_host_PARAMS" "--test_data_dir=testdata") + #t)) + (add-after 'install 'install-headers + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (copy-recursively "../include/ziparchive" + (string-append out "/include/ziparchive")) + #t)))))) + (inputs + `(("zlib" ,zlib))) + (native-inputs + `(("android-libbase" ,android-libbase) + ("android-libutils" ,android-libutils) + ("android-liblog" ,android-liblog))) + (home-page "https://developer.android.com/") + (synopsis "Android platform ZIP library") + (description "@code{android-libziparchive} is a library in common use by the +various Android core host applications.") + (license license:asl2.0))) + (define-public adb (package (name "adb") (version (android-platform-version)) - (source (origin - (inherit (android-platform-system-core version)) - (patches - (search-patches "libbase-use-own-logging.patch" - "libbase-fix-includes.patch")))) - (build-system gnu-build-system) + (source (android-platform-system-core version)) + (build-system android-ndk-build-system) (arguments - `(#:phases + `(#:tests? #f ; Test failure: sysdeps_poll.fd_count + #:make-flags + (list "CFLAGS=-Wno-error" + "CXXFLAGS=-fpermissive -Wno-error -std=gnu++14 -D_Nonnull= -D_Nullable= -I ." + (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib " + "-Wl,-rpath=" (assoc-ref %build-inputs "openssl") "/lib -L .")) + #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source (lambda _ (chdir "adb") #t)) - (add-before 'build 'fix-clang - (lambda _ - ;; adb_client.h contains _Nonnull and _Nullable attributes, that - ;; are not understood by gcc. - (substitute* "adb_client.h" - (("_Nonnull") "") - (("_Nullable") "")) + (add-after 'enter-source 'make-libs-available + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "Android.mk" + (("libcrypto_static") "libcrypto")) #t)) - (add-before 'build 'fix-main - (lambda _ - ;; main.cpp used to be adb_main.cpp in the current directory - ;; rather than in its own subdirectory, but it was not fixed. - ;; This leads to some header files not being found anymore. - (copy-file "client/main.cpp" "adb_main.cpp") - #t)) - (add-after 'enter-source 'create-Makefile - (lambda* (#:key outputs #:allow-other-keys) - ;; No useful makefile is shipped, so we create one. - (with-output-to-file "Makefile" - (lambda _ - (display - (string-append - ;; Common for all components. - "CXXFLAGS += -std=gnu++14 -fpermissive\n" - "CPPFLAGS += -I../include -I../base/include -I. -DADB_HOST=1 " - "-DADB_REVISION='\"" ,version "\"' -fPIC\n" - "LDFLAGS += -lcrypto -lpthread -lbase -lcutils -L. -ladb\n" - - ;; Libadb specifics. - "LIBADB_SOURCES = adb.cpp adb_auth.cpp adb_io.cpp " - "adb_listeners.cpp adb_trace.cpp adb_utils.cpp fdevent.cpp " - "sockets.cpp transport.cpp transport_local.cpp transport_usb.cpp " - "get_my_path_linux.cpp sysdeps_unix.cpp usb_linux.cpp " - "adb_auth_host.cpp diagnose_usb.cpp services.cpp " - "shell_service_protocol.cpp bugreport.cpp line_printer.cpp\n" - - "LIBADB_LDFLAGS += -shared -Wl,-soname,libadb.so.0 " - "-lcrypto -lpthread -lbase\n" - - ;; Adb specifics. - "ADB_SOURCES = adb_main.cpp console.cpp commandline.cpp " - "adb_client.cpp file_sync_client.cpp\n" - "ADB_LDFLAGS += -Wl,-rpath=" (assoc-ref outputs "out") "/lib\n" - - "build: libadb $(ADB_SOURCES)\n" - " $(CXX) $(ADB_SOURCES) -o adb $(CXXFLAGS) $(CPPFLAGS) " - "$(ADB_LDFLAGS) $(LDFLAGS)\n" - - "libadb: $(LIBADB_SOURCES)\n" - " $(CXX) $^ -o libadb.so.0 $(CXXFLAGS) $(CPPFLAGS) " - "$(LIBADB_LDFLAGS)\n" - " ln -sv libadb.so.0 libadb.so\n")) - #t)))) - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib")) - (bin (string-append out "/bin"))) - (install-file "libadb.so.0" lib) - (install-file "adb" bin) - (with-directory-excursion lib - (symlink "libadb.so.0" "libadb.so")) - #t)))) - ;; Test suite must be run with attached devices - #:tests? #f)) + (add-after 'install 'install-headers + (lambda* (#:key inputs outputs #:allow-other-keys) + (install-file "diagnose_usb.h" (string-append (assoc-ref outputs "out") "/include")) + #t))))) (inputs - `(("libbase" ,libbase) - ("libcutils" ,libcutils) + `(("android-libbase" ,android-libbase) + ("android-libcutils" ,android-libcutils) + ("android-liblog" ,android-liblog) ("openssl" ,openssl))) (home-page "https://developer.android.com/studio/command-line/adb.html") (synopsis "Android Debug Bridge") @@ -329,8 +373,10 @@ to a Unix shell that can run commands on the connected device or emulator.") (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) + (bin (string-append out "/bin")) + (include (string-append out "/include"))) (install-file "mkbootimg" bin) + (install-file "bootimg.h" include) #t)))))) (home-page "https://developer.android.com/studio/command-line/adb.html") (synopsis "Tool to create Android boot images") @@ -338,6 +384,263 @@ to a Unix shell that can run commands on the connected device or emulator.") Images.") (license license:asl2.0))) +(define-public android-safe-iop + (package + (name "android-safe-iop") + (version (android-platform-version)) + (source (android-platform-external version "safe-iop" + "1nyyrs463advjhlq8xx1lm37m4g5afv7gy0csxrj7biwwl0v13qw")) + (build-system android-ndk-build-system) + (arguments + `(#:make-flags '("CXXFLAGS=-fpermissive -Wno-error") + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-host + (lambda _ + ;; TODO: Cross-compile. + (substitute* "Android.mk" + (("BUILD_STATIC_LIBRARY") "BUILD_HOST_STATIC_LIBRARY")) + #t))))) + (home-page "https://developer.android.com/") + (synopsis "Safe integers in C") + (description "@code{android-safe-iop} provides a set of functions for +performing and checking safe integer operations. Ensure that integer +operations do not result in silent overflow.") + (license license:bsd-2))) + +(define-public android-bionic-uapi + (package + (name "android-bionic-uapi") + (version (android-platform-version)) + (source (android-platform-bionic version)) + (build-system android-ndk-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "libc") #t)) + (replace 'check + (const #t)) + (replace 'build + (const #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-sys (string-append out "/include/sys"))) + (mkdir-p out-sys) + (install-file "include/sys/system_properties.h" out-sys) + (install-file "include/sys/_system_properties.h" out-sys) + (copy-recursively "kernel/uapi" (string-append out "/include")) + #t)))))) + (home-page "https://developer.android.com/") + (synopsis "Android Linux API that is safe for user space") + (description "@code{android-bionic-uapi} provides the part of the Linux API +that is safe to use for user space. It also includes +@code{system_properties.h} and @code{_system_properties.h}.") + (license license:asl2.0))) + +(define-public android-libselinux + (package + (name "android-libselinux") + (version (android-platform-version)) + (source + (android-platform-external version "libselinux" + "13m2q32gzdcs5d0zj1nwasjy1j8vsxsgbjg7m5sa9lfcjaj7nkm7")) + (build-system android-ndk-build-system) + (arguments + ;; See logd/Android.mk for the *_LOG_TAG values. + `(#:make-flags (list (string-append "CFLAGS=-Wno-error " + "-I core/include " + "-I core/libpackagelistparser/include " + "-DAUDITD_LOG_TAG=1003 " + "-DLOGD_LOG_TAG=1004 -D_GNU_SOURCE") + "LDFLAGS=-L . -lpcre") + #:phases + (modify-phases %standard-phases + (add-after 'unpack-core 'patch-HOST + (lambda _ + ;; gettid duplicates otherwise. + (substitute* "src/procattr.c" + (("#ifdef HOST") "#ifdef XXX")) + #t))))) + (inputs + `(("openssl" ,openssl))) + (native-inputs + `(("android-bionic-uapi" ,android-bionic-uapi) + ;; pcre is inlined by our package. + ("pcre" ,pcre))) + (home-page "https://developer.android.com/") + (synopsis (package-synopsis libselinux)) + (description (package-description libselinux)) + (license (package-license libselinux)))) + +(define-public android-ext4-utils + (package + (name "android-ext4-utils") + (version (android-platform-version)) + (source (android-platform-system-extras version)) + (build-system android-ndk-build-system) + (arguments + `(#:make-flags + (list (string-append "CPPFLAGS=" + ;"-Wno-error " + "-I " + (assoc-ref %build-inputs "android-libselinux") + "/include " + "-I " (assoc-ref %build-inputs "android-libsparse") + "/include " + "-I " (assoc-ref %build-inputs "android-libcutils") + "/include " + "-I " (assoc-ref %build-inputs "android-liblog") "/include " + "-I ../core/include") + "CFLAGS=-Wno-error" + "install-libext4_utils_host.a" + (string-append "prefix=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-core + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "core") + (with-directory-excursion "core" + (invoke "tar" "axf" (assoc-ref inputs "android-core") + "--strip-components=1")) + #t)) + (add-after 'unpack-core 'enter-source + (lambda _ (chdir "ext4_utils") #t)) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (copy-recursively "." (string-append out "/include"))) + #t))))) + (inputs + `(("android-libcutils" ,android-libcutils) + ("android-liblog" ,android-liblog) + ("android-libselinux" ,android-libselinux) + ("android-libsparse" ,android-libsparse) + ("zlib" ,zlib))) + (native-inputs + `(("android-core" ,(android-platform-system-core version)))) + (home-page "https://developer.android.com/") + (synopsis "Android ext4 filesystem utils") + (description "@code{android-ext4-utils} is a library in common use by the +Android core.") + (license license:asl2.0))) + +(define-public android-f2fs-utils + (package + (name "android-f2fs-utils") + (version (android-platform-version)) + (source (android-platform-system-extras version)) + (build-system android-ndk-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "f2fs_utils") #t)) + (add-after 'install 'install-headers + (lambda* (#:key inputs outputs #:allow-other-keys) + (copy-recursively "." (string-append (assoc-ref outputs "out") + "/include")) + #t)) + (add-after 'install 'install-shell-scripts + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (patch-shebang "mkf2fsuserimg.sh") + (substitute* "mkf2fsuserimg.sh" + (("make_f2fs") (string-append bin "/make_f2fs"))) + (install-file "mkf2fsuserimg.sh" bin) + #t)))))) + (inputs + `(("f2fs-tools" ,f2fs-tools-1.7) + ("android-libselinux" ,android-libselinux) + ("android-libsparse" ,android-libsparse) + ("android-libcutils" ,android-libcutils) + ("zlib" ,zlib))) + (home-page "https://developer.android.com/") + (synopsis "Android f2fs utils") + (description "@code{android-f2fs-utils} is a library in common use by the +Android core. It allows the user to create images for the @code{f2fs} Flash +file system.") + (license license:asl2.0))) + +(define-public android-libutils + (package + (name "android-libutils") + (version (android-platform-version)) + (source (android-platform-system-core version)) + (build-system android-ndk-build-system) + (arguments + `(#:tests? #f ; TODO + #:make-flags '("CXXFLAGS=-std=gnu++11 -Wno-error") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "libutils") #t)) + + (add-after 'install 'install-headers + (lambda* (#:key inputs outputs #:allow-other-keys) + (copy-recursively "../include/utils" (string-append (assoc-ref outputs "out") "/include/utils"))))))) + (inputs + `(("android-safe-iop" ,android-safe-iop) + ("android-libcutils" ,android-libcutils))) + (native-inputs + `(("android-bionic-uapi" ,android-bionic-uapi) + ("android-liblog" ,android-liblog))) + (home-page "https://developer.android.com/") + (synopsis "Android utility library") + (description "@code{android-libutils} provides utilities for Android NDK developers.") + (license license:asl2.0))) + +(define-public fastboot + (package + (name "fastboot") + (version (android-platform-version)) + (source (android-platform-system-core version)) + (build-system android-ndk-build-system) + (arguments + `(#:make-flags (list "CXXFLAGS=-std=gnu++11") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ + (chdir "fastboot") + #t)) + (add-after 'enter-source 'patch-source + (lambda _ + (substitute* "Android.mk" + (("libext4_utils_host") "libext4_utils_host libselinux libpcre")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (bin (string-append out "/bin"))) + (install-file "fastboot" bin) + #t)))))) + (inputs + `(("adb" ,adb) + ("android-safe-iop" ,android-safe-iop) + ("android-ext4-utils" ,android-ext4-utils) + ("android-f2fs-utils" ,android-f2fs-utils) + ("android-libbase" ,android-libbase) + ("android-libcutils" ,android-libcutils) + ("android-liblog" ,android-liblog) + ("android-libutils" ,android-libutils) + ("android-libsparse" ,android-libsparse) + ("android-libziparchive" ,android-libziparchive) + ("android-libselinux" ,android-libselinux) + ("pcre" ,pcre) + ("mkbootimg" ,mkbootimg) + ("zlib" ,zlib))) + (native-inputs + `(("xz" ,xz))) + (home-page "https://developer.android.com/studio/command-line/") + (synopsis "Android image flasher") + (description + "This package provides @command{fastboot}, a tool to upload file system images to Android devices.") + (license license:asl2.0))) + (define-public android-udev-rules (package (name "android-udev-rules") @@ -360,7 +663,8 @@ Images.") (use-modules (guix build utils)) (let ((source (assoc-ref %build-inputs "source"))) (install-file (string-append source "/51-android.rules") - (string-append %output "/lib/udev/rules.d")))))) + (string-append %output "/lib/udev/rules.d")) + #t)))) (home-page "https://github.com/M0Rf30/android-udev-rules") (synopsis "udev rules for Android devices") (description "Provides a set of udev rules to allow using Android devices diff --git a/gnu/packages/apr.scm b/gnu/packages/apr.scm index 62af24f0c7..8ccec08fa2 100644 --- a/gnu/packages/apr.scm +++ b/gnu/packages/apr.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -87,11 +87,10 @@ around or take advantage of platform-specific deficiencies or features.") (apr (assoc-ref inputs "apr")) (expat (assoc-ref inputs "expat"))) (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out) - (string-append "--with-apr=" apr) - (string-append "--with-expat=" expat))))))) + (invoke "./configure" + (string-append "--prefix=" out) + (string-append "--with-apr=" apr) + (string-append "--with-expat=" expat)))))) ;; There are race conditions during 'make check'. Typically, the ;; 'testall' executable is not built yet by the time 'make check' tries diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index e1fe3db755..1e2149cd2c 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -55,7 +55,8 @@ "/bin/aspell"))) (wrap-program bin/aspell '("ASPELL_CONF" "" = - ("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}"))))))))) + ("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}"))) + #t)))))) (inputs `(("perl" ,perl))) (native-search-paths @@ -101,7 +102,7 @@ dictionaries, including personal ones.") (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* "./configure")))))) + (invoke "./configure"))))) #:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "dictdir=" out "/lib/aspell") diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index d682ddd033..763d183cf9 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -60,7 +60,7 @@ #t)) (add-after 'install 'install-info (lambda _ - (zero? (system* "make" "install_doc"))))))) + (invoke "make" "install_doc")))))) (home-page "http://www.nasm.us/") (synopsis "80x86 and x86-64 assembler") (description diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 8cf9d9e4a5..8129da832d 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -35,7 +35,7 @@ (define-public cfitsio (package (name "cfitsio") - (version "3.420") + (version "3.450") (source (origin (method url-fetch) @@ -43,7 +43,7 @@ "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/" name (string-replace-substring version "." "") ".tar.gz")) (sha256 - (base32 "1f0nmki45h9kw7vxpxiav9cb6vs3qqi6zrp2lpci5yhqc5isl43c")))) + (base32 "0bmrkw6w65zb0k3mszaaqy1f4zjm2hl7njww74nb5v38wvdi4q5z")))) (build-system gnu-build-system) ;; XXX Building with curl currently breaks wcslib. It doesn't use ;; pkg-config and hence won't link with -lcurl. @@ -81,12 +81,17 @@ in FITS files.") `(("cfitsio" ,cfitsio))) (build-system gnu-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (add-before 'configure 'patch-/bin/sh - (lambda _ - (substitute* "makedefs.in" - (("/bin/sh") "sh")) - #t))))) + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-/bin/sh + (lambda _ + (substitute* "makedefs.in" + (("/bin/sh") "sh")) + #t)) + (delete 'install-license-files)) ; installed by ‘make install’ + ;; Both the build and tests fail randomly when run in parallel. + #:parallel-build? #f + #:parallel-tests? #f)) (home-page "https://www.atnf.csiro.au/people/mcalabre/WCS") (synopsis "Library which implements the FITS WCS standard") (description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard @@ -98,7 +103,7 @@ header.") (define-public gnuastro (package (name "gnuastro") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) @@ -106,12 +111,14 @@ header.") version ".tar.gz")) (sha256 (base32 - "10lxzxyrf30hj3bqdgprvaj9phzdi816khjmr0vmjf8pmsr8bqqr")))) + "16a212j9ghdirm11d25s5q5qw32bkjrxsh3rblfyyv29djch34w6")))) (inputs `(("cfitsio" ,cfitsio) ("gsl" ,gsl) ("libjpeg" ,libjpeg) - ("wcslib" ,wcslib))) + ("libtiff" ,libtiff) + ("wcslib" ,wcslib) + ("zlib" ,zlib))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/gnuastro/") (synopsis "Astronomy utilities") diff --git a/gnu/packages/attr.scm b/gnu/packages/attr.scm index fe102d211c..ff0a07aa67 100644 --- a/gnu/packages/attr.scm +++ b/gnu/packages/attr.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2012, 2013, 2016 Ludovic Courtès +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,13 +43,14 @@ (modify-phases %standard-phases (add-after 'configure 'patch-makefile-SHELL (lambda _ - (patch-makefile-SHELL "include/buildmacros"))) + (patch-makefile-SHELL "include/buildmacros") + #t)) (replace 'install (lambda _ - (zero? (system* "make" - "install" - "install-lib" - "install-dev")))) + (invoke "make" + "install" + "install-lib" + "install-dev"))) (replace 'check (lambda* (#:key target #:allow-other-keys) ;; Use the right shell. @@ -57,11 +59,14 @@ (which "sh"))) ;; When building natively, run the tests. + ;; + ;; Note that we use system* and unconditionally return #t here + ;; to ignore the test result, because the tests will fail when + ;; the build is performed on a file system without support for + ;; extended attributes, and we wish to allow Guix to be built + ;; on such systems. (unless target (system* "make" "tests" "-C" "test")) - - ;; XXX: Ignore the test result since this is - ;; dependent on the underlying file system. #t))))) (inputs ;; Perl is needed to run tests; remove it from cross builds. diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 61e8fa3392..d8dc1e3134 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2015, 2016 Mark H Weaver -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Alex Griffin ;;; Copyright © 2016 Nils Gillmann ;;; Copyright © 2016 Lukas Gradl @@ -12,6 +12,7 @@ ;;; Copyright © 2018 Oleg Pykhalov ;;; Copyright © 2018 okapi ;;; Copyright © 2018 Maxim Cournoyer +;;; Copyright © 2018 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -212,7 +213,8 @@ streams from live audio.") "libs/ardour/revision.cc" (lambda (port) (format port ,(string-append "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"" version "\" ; }"))))) +namespace ARDOUR { const char* revision = \"" version "\" ; }")) + #t))) (sha256 (base32 "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr")) @@ -514,7 +516,9 @@ tools (analyzer, mono/stereo tools, crossovers).") (modules '((guix build utils))) (snippet ;; remove prebuilt binaries - '(delete-file-recursively "linux_32bit")))) + '(begin + (delete-file-recursively "linux_32bit") + #t)))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) @@ -569,16 +573,7 @@ based on human speech recordings.") (modify-phases %standard-phases (add-after 'unpack 'remove-compiler-flags (lambda _ - (substitute* '("src/casynth/CMakeLists.txt" - "src/cheapdist/CMakeLists.txt" - "src/duffer/CMakeLists.txt" - "src/envfollower/CMakeLists.txt" - "src/ewham/CMakeLists.txt" - "src/hip2b/CMakeLists.txt" - "src/lushlife/CMakeLists.txt" - "src/powercut/CMakeLists.txt" - "src/powerup/CMakeLists.txt" - "src/stuck/CMakeLists.txt") + (substitute* (find-files "." "CMakeLists.txt") (("-msse2 -mfpmath=sse") "")) #t))))) (inputs @@ -1034,7 +1029,7 @@ follower.") (define-public fluidsynth (package (name "fluidsynth") - (version "1.1.10") + (version "1.1.11") (source (origin (method git-fetch) (uri (git-reference @@ -1043,7 +1038,7 @@ follower.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "04jlgq1d1hd8r9cnmkl3lgf1fgm7kgy4hh9nfddap41fm1wp121p")))) + "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check target @@ -1095,10 +1090,10 @@ also play midifiles using a Soundfont.") (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (substitute* "bootstrap" (("\r\n") "\n")) - (zero? (system* "sh" "bootstrap"))))))) + (invoke "sh" "bootstrap")))))) (home-page "http://www.audiocoding.com/faad2.html") (synopsis "MPEG-4 and MPEG-2 AAC decoder") (description @@ -1202,14 +1197,15 @@ PS, and DAB+.") (setenv "PATH" (string-append (assoc-ref %build-inputs "bzip2") "/bin:" (assoc-ref %build-inputs "tar") "/bin")) - (system* "tar" "xvf" (assoc-ref %build-inputs "source")) + (invoke "tar" "xvf" (assoc-ref %build-inputs "source")) (chdir "freepats") ;; Use absolute pattern references (substitute* "freepats.cfg" (("Tone_000") (string-append out "/Tone_000")) (("Drum_000") (string-append out "/Drum_000"))) (mkdir-p out) - (copy-recursively "." out))))) + (copy-recursively "." out) + #t)))) (native-inputs `(("tar" ,tar) ("bzip2" ,bzip2))) @@ -1730,7 +1726,8 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.") (lambda* (#:key outputs #:allow-other-keys) (setenv "LDFLAGS" (string-append "-Wl,-rpath=" - (assoc-ref outputs "out") "/lib"))))))) + (assoc-ref outputs "out") "/lib")) + #t))))) ;; required by lilv-0.pc (propagated-inputs `(("serd" ,serd) @@ -1997,14 +1994,14 @@ and ALSA.") (define-public qjackctl (package (name "qjackctl") - (version "0.5.0") + (version "0.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" version "/qjackctl-" version ".tar.gz")) (sha256 (base32 - "0lx81dfwanc10vrny1vzi0wx73ph82dlz99ffjzsigj3cqzz6x4s")))) + "0jw1s4qh4qjxnysddjv3j2lchwlslj9p4iisv9i89d3m7pf1svs4")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no check target @@ -2041,9 +2038,9 @@ into various outputs and to start, stop and configure jackd") (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs #:allow-other-keys) - (zero? (system* "qmake" - (string-append "PREFIX=" - (assoc-ref outputs "out"))))))))) + (invoke "qmake" + (string-append "PREFIX=" + (assoc-ref outputs "out")))))))) (native-inputs `(("qtbase" ,qtbase))) ; for qmake (inputs @@ -2073,6 +2070,7 @@ background file post-processing.") (build-system cmake-build-system) (arguments `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on" + "-DSC_QT=off" "-DSC_EL=off") ;scel is packaged individually as ;emacs-scel. #:modules ((guix build utils) @@ -2133,8 +2131,7 @@ set(YAMLCPP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/\ external_libraries/yaml-cpp/include)")) #t))))) (native-inputs - `(("pkg-config" ,pkg-config) - ("qttools" ,qttools))) + `(("pkg-config" ,pkg-config))) (inputs `(("jack" ,jack-1) ("libsndfile" ,libsndfile) @@ -2147,12 +2144,7 @@ external_libraries/yaml-cpp/include)")) ("icu4c" ,icu4c) ("boost" ,boost) ("boost-sync" ,boost-sync) - ("yaml-cpp" ,yaml-cpp) - ("qtbase" ,qtbase) ;IDE support - ("qtwebkit" ,qtwebkit) - ("qtsensors" ,qtsensors) - ("qtdeclarative" ,qtdeclarative) - ("qtlocation" ,qtlocation))) + ("yaml-cpp" ,yaml-cpp))) (home-page "https://github.com/supercollider/supercollider") (synopsis "Synthesis engine and programming language") (description "SuperCollider is a synthesis engine (@code{scsynth} or @@ -2595,12 +2587,6 @@ Tracker 3 S3M and Impulse Tracker IT files.") ("automake" ,automake) ("libtool" ,libtool) ("file" ,file))) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "sh" "bootstrap"))))))) (home-page "http://www.surina.net/soundtouch/") (synopsis "Audio processing library for changing tempo, pitch and playback rate") @@ -2750,7 +2736,7 @@ interface.") (define-public qsynth (package (name "qsynth") - (version "0.5.0") + (version "0.5.1") (source (origin (method url-fetch) @@ -2758,7 +2744,7 @@ interface.") "/qsynth-" version ".tar.gz")) (sha256 (base32 - "1sr6vrz8z9r99j9xcix86lgcqldragb2ajmq1bnhr58d99sda584")))) + "0kpk1rnhbifbvm4xvw8i0d4ksk78pf505qvg08k89kqkg32494ap")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" phase @@ -2863,8 +2849,10 @@ result.") version ".tar.bz2")) (snippet ;; Don't optimize for a specific processor architecture. - '(substitute* "libs/Makefile" - (("^CXXFLAGS \\+= -march=native") ""))) + '(begin + (substitute* "libs/Makefile" + (("^CXXFLAGS \\+= -march=native") "")) + #t)) (modules '((guix build utils))) (sha256 (base32 @@ -2908,8 +2896,10 @@ engine.") version ".tar.bz2")) (snippet ;; Don't optimize for a specific processor architecture. - '(substitute* '("apps/Makefile" "libs/Makefile") - (("^CXXFLAGS \\+= -march=native") ""))) + '(begin + (substitute* '("apps/Makefile" "libs/Makefile") + (("^CXXFLAGS \\+= -march=native") "")) + #t)) (modules '((guix build utils))) (sha256 (base32 @@ -3003,12 +2993,6 @@ point audio data.") "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4")))) (build-system gnu-build-system) ;; The source tarball is not bootstrapped. - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) - ;; Bootstrapping tools (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -3137,7 +3121,7 @@ code, used in @code{libtoxcore}.") (define-public gsm (package (name "gsm") - (version "1.0.17") + (version "1.0.18") (source (origin (method url-fetch) @@ -3146,7 +3130,7 @@ code, used in @code{libtoxcore}.") "-" version ".tar.gz")) (sha256 (base32 - "00bns0d4wwrvc60lj2w7wz4yk49q1f6rpdrwqzrxsha9d78mfnl5")))) + "041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4")))) (build-system gnu-build-system) (arguments `(#:test-target "tst" @@ -3172,7 +3156,7 @@ code, used in @code{libtoxcore}.") (mkdir-p (string-append out "/include/gsm")) (copy-recursively "inc" (string-append out "/include/gsm"))))) - (delete 'configure)))) + (delete 'configure)))) ; no configure script (synopsis "GSM 06.10 lossy speech compression library") (description "This C library provides an encoder and a decoder for the GSM 06.10 RPE-LTP lossy speech compression algorithm.") @@ -3221,12 +3205,6 @@ mixers.") (base32 "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -3266,7 +3244,7 @@ on the ALSA software PCM plugin.") "1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp")))) (build-system glib-or-gtk-build-system) (arguments - '(#:tests? #f ; no tests + `(#:tests? #f ; no tests #:out-of-source? #f ; for the 'install-doc' phase #:configure-flags (let* ((out (assoc-ref %outputs "out")) @@ -3278,13 +3256,13 @@ on the ALSA software PCM plugin.") (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (docdir (string-append out "/share/doc/snd"))) - (mkdir-p docdir) + (doc (string-append out "/share/doc/" + ,name "-" ,version))) (for-each (lambda (f) - (install-file f docdir)) + (install-file f doc)) (find-files "." "\\.html$|COPYING")) - (copy-recursively "pix" (string-append docdir "/pix")) + (copy-recursively "pix" (string-append doc "/pix")) #t)))))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -3418,7 +3396,7 @@ representations.") (define-public cava (package (name "cava") - (version "0.6.0") + (version "0.6.1") (source (origin (method url-fetch) (uri (string-append @@ -3427,7 +3405,7 @@ representations.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1p24lz3h4d0h82ffylqr7mq8a8x1c66flm2r2bsv1liw51n1rma2")))) + "13d72swnjs894llf0paandmhf1lf90dz6ygkcdw4bv84wzkq1f4q")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -3446,7 +3424,7 @@ representations.") (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib))) #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda* (#:key outputs #:allow-other-keys) (setenv "HOME" (getcwd)) (invoke "sh" "autogen.sh"))) @@ -3492,7 +3470,8 @@ using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.") (let ((file (assoc-ref %build-inputs "source")) (out (string-append %output "/share/soundfonts"))) (mkdir-p out) - (copy-file file (string-append out "/FluidR3Mono_GM.sf3")))))) + (copy-file file (string-append out "/FluidR3Mono_GM.sf3")) + #t)))) (home-page "https://github.com/musescore/MuseScore/tree/master/share/sound") (synopsis "Pro-quality GM soundfont") (description "Fluid-3 is Frank Wen's pro-quality GM soundfont.") diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index fd307a181a..7998dea504 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -3,11 +3,12 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2015 Mathieu Lirzin ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis -;;; Copyright © 2015, 2017 Mark H Weaver +;;; Copyright © 2015, 2017, 2018 Mark H Weaver ;;; Copyright © 2016 David Thompson ;;; Copyright © 2017 Nils Gillmann ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -120,9 +121,9 @@ know anything about Autoconf or M4.") (out (assoc-ref outputs "out"))) (setenv "CONFIG_SHELL" bash) (setenv "SHELL" bash) - (zero? (system* bash "./configure" - (string-append "--prefix=" out) - (string-append "--build=" build))))))))))) + (invoke bash "./configure" + (string-append "--prefix=" out) + (string-append "--build=" build)))))))))) (define (make-autoconf-wrapper autoconf) @@ -192,7 +193,8 @@ exec ~a --no-auto-compile \"$0\" \"$@\" (patch-shebang "configure")) (exit (status:exit-val result)))) port))) - (chmod (string-append bin "/autoconf") #o555))))) + (chmod (string-append bin "/autoconf") #o555) + #t)))) ;; Do not show it in the UI since it's meant for internal use. (properties '((hidden? . #t))))) @@ -248,14 +250,14 @@ output is indexed in many ways to simplify browsing.") (define-public automake (package (name "automake") - (version "1.15.1") + (version "1.16.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/automake/automake-" version ".tar.xz")) (sha256 (base32 - "1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg")) + "08g979ficj18i1w6w5219bgmns7czr03iadf20mk3lrzl8wbn1ax")) (patches (search-patches "automake-skip-amhello-tests.patch")))) (build-system gnu-build-system) @@ -287,32 +289,33 @@ output is indexed in many ways to simplify browsing.") (setenv "CONFIG_SHELL" sh) #t))) - ;; Files like `install-sh', `mdate.sh', etc. must use - ;; #!/bin/sh, otherwise users could leak erroneous shebangs - ;; in the wild. See for an - ;; example. - (add-after 'install 'unpatch-shebangs - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (dir (string-append out "/share"))) - (define (starts-with-shebang? file) - (equal? (call-with-input-file file - (lambda (p) - (list (get-u8 p) (get-u8 p)))) - (map char->integer '(#\# #\!)))) + ;; Files like `install-sh', `mdate.sh', etc. must use + ;; #!/bin/sh, otherwise users could leak erroneous shebangs + ;; in the wild. See for an + ;; example. + (add-after 'install 'unpatch-shebangs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/share"))) + (define (starts-with-shebang? file) + (equal? (call-with-input-file file + (lambda (p) + (list (get-u8 p) (get-u8 p)))) + (map char->integer '(#\# #\!)))) - (for-each (lambda (file) - (when (and (starts-with-shebang? file) - (executable-file? file)) - (format #t "restoring shebang on `~a'~%" - file) - (substitute* file - (("^#!.*/bin/sh") - "#!/bin/sh") - (("^#!.*/bin/env(.*)$" _ args) - (string-append "#!/usr/bin/env" - args))))) - (find-files dir ".*")))))))) + (for-each (lambda (file) + (when (and (starts-with-shebang? file) + (executable-file? file)) + (format #t "restoring shebang on `~a'~%" + file) + (substitute* file + (("^#!.*/bin/sh") + "#!/bin/sh") + (("^#!.*/bin/env(.*)$" _ args) + (string-append "#!/usr/bin/env" + args))))) + (find-files dir ".*")) + #t)))))) (home-page "https://www.gnu.org/software/automake/") (synopsis "Making GNU standards-compliant Makefiles") (description @@ -322,21 +325,6 @@ intuitive format and then Automake works with Autoconf to produce a robust Makefile, simplifying the entire process for the developer.") (license gpl2+))) ; some files are under GPLv3+ -(define-public automake-1.16 - ;; Make this the default on the next rebuild cycle. - (package - (inherit automake) - (version "1.16.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/automake/automake-" - version ".tar.xz")) - (sha256 - (base32 - "08g979ficj18i1w6w5219bgmns7czr03iadf20mk3lrzl8wbn1ax")) - (patches - (search-patches "automake-skip-amhello-tests.patch")))))) - (define-public libtool (package (name "libtool") @@ -353,6 +341,9 @@ Makefile, simplifying the entire process for the developer.") (propagated-inputs `(("m4" ,m4))) (native-inputs `(("m4" ,m4) ("perl" ,perl) + ;; XXX: this shouldn't be necessary, but without it test + ;; 102 fails because it cannot find ltdl/libltdl.la. + ("libltdl" ,libltdl) ("help2man" ,help2man) ;because we modify ltmain.sh ("automake" ,automake) ;some tests rely on 'aclocal' ("autoconf" ,autoconf-wrapper))) ;others on 'autom4te' diff --git a/gnu/packages/aux-files/linux-libre/4.16-arm.conf b/gnu/packages/aux-files/linux-libre/4.17-arm.conf similarity index 97% rename from gnu/packages/aux-files/linux-libre/4.16-arm.conf rename to gnu/packages/aux-files/linux-libre/4.17-arm.conf index 484242917d..e078503d5b 100644 --- a/gnu/packages/aux-files/linux-libre/4.16-arm.conf +++ b/gnu/packages/aux-files/linux-libre/4.17-arm.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.16.0-gnu Kernel Configuration +# Linux/arm 4.17.0-gnu Kernel Configuration # CONFIG_ARM=y CONFIG_ARM_HAS_SG_CHAIN=y @@ -115,7 +115,6 @@ CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y -# CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_BUILD_BIN2C=y @@ -196,7 +195,6 @@ CONFIG_MEMBARRIER=y CONFIG_CHECKPOINT_RESTORE=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y # CONFIG_BPF_JIT_ALWAYS_ON is not set @@ -230,7 +228,6 @@ CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_UPROBES=y -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_KRETPROBES=y @@ -242,6 +239,7 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y @@ -261,7 +259,6 @@ CONFIG_HAVE_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_REGULAR is not set CONFIG_CC_STACKPROTECTOR_STRONG=y # CONFIG_CC_STACKPROTECTOR_AUTO is not set -CONFIG_THIN_ARCHIVES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y @@ -273,13 +270,9 @@ CONFIG_HAVE_EXIT_THREAD=y CONFIG_ARCH_MMAP_RND_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_BITS_MAX=16 CONFIG_ARCH_MMAP_RND_BITS=8 -# CONFIG_HAVE_ARCH_HASH is not set -# CONFIG_ISA_BUS_API is not set CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y -# CONFIG_CPU_NO_EFFICIENT_FFS is not set -# CONFIG_HAVE_ARCH_VMAP_STACK is not set CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y @@ -412,17 +405,7 @@ CONFIG_ARCH_MULTIPLATFORM=y # CONFIG_ARCH_MULTI_V6 is not set CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_MULTI_V6_V7=y -# CONFIG_ARCH_MULTI_CPU_AUTO is not set CONFIG_ARCH_VIRT=y -CONFIG_ARCH_MVEBU=y -CONFIG_MACH_MVEBU_ANY=y -CONFIG_MACH_MVEBU_V7=y -CONFIG_MACH_ARMADA_370=y -CONFIG_MACH_ARMADA_375=y -CONFIG_MACH_ARMADA_38X=y -CONFIG_MACH_ARMADA_39X=y -CONFIG_MACH_ARMADA_XP=y -# CONFIG_MACH_DOVE is not set # CONFIG_ARCH_ACTIONS is not set # CONFIG_ARCH_ALPINE is not set # CONFIG_ARCH_ARTPEC is not set @@ -453,10 +436,41 @@ CONFIG_ARCH_BCM2835=y # CONFIG_ARCH_BRCMSTB is not set # CONFIG_ARCH_BERLIN is not set # CONFIG_ARCH_DIGICOLOR is not set +CONFIG_ARCH_EXYNOS=y +CONFIG_S5P_DEV_MFC=y +# CONFIG_ARCH_EXYNOS3 is not set +CONFIG_ARCH_EXYNOS4=y +CONFIG_ARCH_EXYNOS5=y + +# +# EXYNOS SoCs +# +CONFIG_CPU_EXYNOS4210=y +CONFIG_SOC_EXYNOS4412=y +CONFIG_SOC_EXYNOS5250=y +CONFIG_SOC_EXYNOS5260=y +CONFIG_SOC_EXYNOS5410=y +CONFIG_SOC_EXYNOS5420=y +CONFIG_SOC_EXYNOS5440=y +CONFIG_SOC_EXYNOS5800=y +CONFIG_EXYNOS5420_MCPM=y +CONFIG_EXYNOS_CPU_SUSPEND=y +CONFIG_PLAT_SAMSUNG=y + +# +# Samsung Common options +# + +# +# Boot options +# + +# +# Power management +# +# CONFIG_SAMSUNG_PM_CHECK is not set CONFIG_ARCH_HIGHBANK=y # CONFIG_ARCH_HISI is not set -# CONFIG_ARCH_KEYSTONE is not set -# CONFIG_ARCH_MESON is not set CONFIG_ARCH_MXC=y CONFIG_MXC_TZIC=y CONFIG_HAVE_IMX_ANATOP=y @@ -478,6 +492,7 @@ CONFIG_SOC_IMX53=y CONFIG_SOC_IMX6=y CONFIG_SOC_IMX6Q=y # CONFIG_SOC_IMX6SL is not set +# CONFIG_SOC_IMX6SLL is not set # CONFIG_SOC_IMX6SX is not set # CONFIG_SOC_IMX6UL is not set # CONFIG_SOC_IMX7D is not set @@ -487,7 +502,20 @@ CONFIG_SOC_IMX6Q=y # Cortex-A/Cortex-M asymmetric multiprocessing platforms # # CONFIG_SOC_VF610 is not set +# CONFIG_ARCH_KEYSTONE is not set # CONFIG_ARCH_MEDIATEK is not set +# CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MMP is not set +CONFIG_ARCH_MVEBU=y +CONFIG_MACH_MVEBU_ANY=y +CONFIG_MACH_MVEBU_V7=y +CONFIG_MACH_ARMADA_370=y +CONFIG_MACH_ARMADA_375=y +CONFIG_MACH_ARMADA_38X=y +CONFIG_MACH_ARMADA_39X=y +CONFIG_MACH_ARMADA_XP=y +# CONFIG_MACH_DOVE is not set +# CONFIG_ARCH_NPCM is not set CONFIG_ARCH_OMAP=y # @@ -502,7 +530,6 @@ CONFIG_POWER_AVS_OMAP_CLASS3=y CONFIG_OMAP_RESET_CLOCKS=y CONFIG_OMAP_32K_TIMER=y # CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set -CONFIG_OMAP_DM_TIMER=y CONFIG_OMAP_PM_NOOP=y CONFIG_MACH_OMAP_GENERIC=y @@ -535,50 +562,17 @@ CONFIG_MACH_OMAP3517EVM=y CONFIG_MACH_OMAP3_PANDORA=y # CONFIG_OMAP3_SDRC_AC_TIMING is not set # CONFIG_OMAP5_ERRATA_801819 is not set -# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_SIRF is not set # CONFIG_ARCH_QCOM is not set # CONFIG_ARCH_REALVIEW is not set CONFIG_ARCH_ROCKCHIP=y +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_RENESAS is not set CONFIG_ARCH_SOCFPGA=y # CONFIG_SOCFPGA_SUSPEND is not set # CONFIG_PLAT_SPEAR is not set # CONFIG_ARCH_STI is not set -# CONFIG_ARCH_S5PV210 is not set -CONFIG_ARCH_EXYNOS=y -CONFIG_S5P_DEV_MFC=y -# CONFIG_ARCH_EXYNOS3 is not set -CONFIG_ARCH_EXYNOS4=y -CONFIG_ARCH_EXYNOS5=y - -# -# EXYNOS SoCs -# -CONFIG_CPU_EXYNOS4210=y -CONFIG_SOC_EXYNOS4412=y -CONFIG_SOC_EXYNOS5250=y -CONFIG_SOC_EXYNOS5260=y -CONFIG_SOC_EXYNOS5410=y -CONFIG_SOC_EXYNOS5420=y -CONFIG_SOC_EXYNOS5440=y -CONFIG_SOC_EXYNOS5800=y -CONFIG_EXYNOS5420_MCPM=y -CONFIG_EXYNOS_CPU_SUSPEND=y -CONFIG_PLAT_SAMSUNG=y - -# -# Samsung Common options -# - -# -# Boot options -# -# CONFIG_SAMSUNG_ATAGS is not set - -# -# Power management -# -# CONFIG_SAMSUNG_PM_CHECK is not set -# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_STM32 is not set CONFIG_ARCH_SUNXI=y CONFIG_MACH_SUN4I=y CONFIG_MACH_SUN5I=y @@ -586,7 +580,7 @@ CONFIG_MACH_SUN6I=y CONFIG_MACH_SUN7I=y CONFIG_MACH_SUN8I=y CONFIG_MACH_SUN9I=y -# CONFIG_ARCH_SIRF is not set +CONFIG_ARCH_SUNXI_MC_SMP=y # CONFIG_ARCH_TANGO is not set CONFIG_ARCH_TEGRA=y # CONFIG_ARCH_UNIPHIER is not set @@ -632,7 +626,6 @@ CONFIG_CPU_CP15_MMU=y # Processor Features # # CONFIG_ARM_LPAE is not set -# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_ARM_THUMB=y CONFIG_ARM_THUMBEE=y @@ -791,8 +784,6 @@ CONFIG_ARM_PATCH_IDIV=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_HIGHMEM=y CONFIG_HIGHPTE=y @@ -805,18 +796,15 @@ CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_HAVE_MEMBLOCK=y CONFIG_NO_BOOTMEM=y CONFIG_MEMORY_ISOLATION=y -# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_MEMORY_BALLOON=y CONFIG_BALLOON_COMPACTION=y CONFIG_COMPACTION=y CONFIG_MIGRATION=y -# CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_BOUNCE=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_ARCH_WANTS_THP_SWAP is not set # CONFIG_CLEANCACHE is not set CONFIG_FRONTSWAP=y CONFIG_CMA=y @@ -901,8 +889,8 @@ CONFIG_ARM_ARMADA_37XX_CPUFREQ=m CONFIG_ARM_EXYNOS5440_CPUFREQ=y CONFIG_ARM_HIGHBANK_CPUFREQ=m CONFIG_ARM_IMX6Q_CPUFREQ=m -# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set CONFIG_ARM_OMAP2PLUS_CPUFREQ=y +CONFIG_ARM_SCMI_CPUFREQ=m CONFIG_ARM_TEGRA20_CPUFREQ=y CONFIG_ARM_TEGRA124_CPUFREQ=m # CONFIG_ARM_TI_CPUFREQ is not set @@ -935,7 +923,6 @@ CONFIG_ELFCORE=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_BINFMT_SCRIPT=y # CONFIG_BINFMT_FLAT is not set -# CONFIG_HAVE_AOUT is not set CONFIG_BINFMT_MISC=m CONFIG_COREDUMP=y @@ -1003,6 +990,7 @@ CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE_COMMON=y CONFIG_IP_MROUTE=y CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y @@ -1140,8 +1128,8 @@ CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=m CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m -CONFIG_NF_TABLES_INET=m -CONFIG_NF_TABLES_NETDEV=m +# CONFIG_NF_TABLES_INET is not set +# CONFIG_NF_TABLES_NETDEV is not set CONFIG_NFT_EXTHDR=m CONFIG_NFT_META=m # CONFIG_NFT_RT is not set @@ -1161,15 +1149,8 @@ CONFIG_NFT_NAT=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m -CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m -CONFIG_NFT_FIB=m -CONFIG_NFT_FIB_INET=m -CONFIG_NF_DUP_NETDEV=m -CONFIG_NFT_DUP_NETDEV=m -CONFIG_NFT_FWD_NETDEV=m -CONFIG_NFT_FIB_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m @@ -1327,22 +1308,15 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_SOCKET_IPV4=m -CONFIG_NF_TABLES_IPV4=m -CONFIG_NFT_CHAIN_ROUTE_IPV4=m -CONFIG_NFT_REJECT_IPV4=m -CONFIG_NFT_DUP_IPV4=m -CONFIG_NFT_FIB_IPV4=m -CONFIG_NF_TABLES_ARP=m +# CONFIG_NF_TABLES_IPV4 is not set +# CONFIG_NF_TABLES_ARP is not set CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m -CONFIG_NFT_CHAIN_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=m -CONFIG_NFT_MASQ_IPV4=m -CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1375,20 +1349,13 @@ CONFIG_IP_NF_ARP_MANGLE=m CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_NF_SOCKET_IPV6=m -CONFIG_NF_TABLES_IPV6=m -CONFIG_NFT_CHAIN_ROUTE_IPV6=m -CONFIG_NFT_REJECT_IPV6=m -CONFIG_NFT_DUP_IPV6=m -CONFIG_NFT_FIB_IPV6=m +# CONFIG_NF_TABLES_IPV6 is not set CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m -CONFIG_NFT_CHAIN_NAT_IPV6=m CONFIG_NF_NAT_MASQUERADE_IPV6=m -CONFIG_NFT_MASQ_IPV6=m -CONFIG_NFT_REDIR_IPV6=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m @@ -1410,10 +1377,7 @@ CONFIG_IP6_NF_SECURITY=m CONFIG_IP6_NF_NAT=m CONFIG_IP6_NF_TARGET_MASQUERADE=m CONFIG_IP6_NF_TARGET_NPT=m -CONFIG_NF_TABLES_BRIDGE=m -CONFIG_NFT_BRIDGE_META=m -CONFIG_NFT_BRIDGE_REJECT=m -CONFIG_NF_LOG_BRIDGE=m +# CONFIG_NF_TABLES_BRIDGE is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -1465,6 +1429,7 @@ CONFIG_RDS_TCP=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TIPC_DIAG=m CONFIG_ATM=m CONFIG_ATM_CLIP=m # CONFIG_ATM_CLIP_NO_ICMP is not set @@ -1585,6 +1550,7 @@ CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m CONFIG_NET_EMATCH_CANID=m CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_EMATCH_IPT=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m @@ -1733,19 +1699,20 @@ CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIBTSDIO=m # CONFIG_BT_HCIUART is not set # CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set # CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m CONFIG_BT_WILINK=m +CONFIG_BT_HCIRSI=m CONFIG_AF_RXRPC=m CONFIG_AF_RXRPC_IPV6=y # CONFIG_AF_RXRPC_INJECT_LOSS is not set # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=y # CONFIG_AF_KCM is not set -# CONFIG_STREAM_PARSER is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -1848,7 +1815,6 @@ CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_SYS_HYPERVISOR=y -# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_SOC_BUS=y CONFIG_REGMAP=y @@ -1878,10 +1844,7 @@ CONFIG_GENERIC_ARCH_TOPOLOGY=y # CONFIG_ARM_CCI=y CONFIG_ARM_CCI400_COMMON=y -# CONFIG_ARM_CCI400_PMU is not set CONFIG_ARM_CCI400_PORT_CTRL=y -# CONFIG_ARM_CCI5xx_PMU is not set -# CONFIG_ARM_CCN is not set # CONFIG_BRCMSTB_GISB_ARB is not set # CONFIG_IMX_WEIM is not set CONFIG_MVEBU_MBUS=y @@ -1930,13 +1893,8 @@ CONFIG_MTD_SWAP=m CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set CONFIG_MTD_RAM=m # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set @@ -1970,6 +1928,13 @@ CONFIG_MTD_SST25L=m # Disk-On-Chip Device Drivers # # CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_ONENAND=y +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +# CONFIG_MTD_ONENAND_GENERIC is not set +CONFIG_MTD_ONENAND_OMAP2=m +# CONFIG_MTD_ONENAND_SAMSUNG is not set +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_2X_PROGRAM=y CONFIG_MTD_NAND_ECC=y # CONFIG_MTD_NAND_ECC_SMC is not set CONFIG_MTD_NAND=y @@ -1981,12 +1946,10 @@ CONFIG_MTD_SM_COMMON=m # CONFIG_MTD_NAND_GPIO is not set CONFIG_MTD_NAND_OMAP2=m # CONFIG_MTD_NAND_OMAP_BCH is not set -# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set CONFIG_MTD_NAND_RICOH=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_DOCG4 is not set CONFIG_MTD_NAND_CAFE=m -CONFIG_MTD_NAND_PXA3xx=m CONFIG_MTD_NAND_MARVELL=m CONFIG_MTD_NAND_NANDSIM=m CONFIG_MTD_NAND_GPMI_NAND=m @@ -1995,13 +1958,6 @@ CONFIG_MTD_NAND_GPMI_NAND=m CONFIG_MTD_NAND_ORION=m CONFIG_MTD_NAND_MXC=m CONFIG_MTD_NAND_SUNXI=m -CONFIG_MTD_ONENAND=y -CONFIG_MTD_ONENAND_VERIFY_WRITE=y -# CONFIG_MTD_ONENAND_GENERIC is not set -CONFIG_MTD_ONENAND_OMAP2=m -# CONFIG_MTD_ONENAND_SAMSUNG is not set -# CONFIG_MTD_ONENAND_OTP is not set -CONFIG_MTD_ONENAND_2X_PROGRAM=y # # LPDDR & LPDDR2 PCM memory drivers @@ -2037,7 +1993,6 @@ CONFIG_OF_OVERLAY=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_PARPORT=m # CONFIG_PARPORT_PC is not set -# CONFIG_PARPORT_GSC is not set # CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y @@ -2049,7 +2004,6 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set -# CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_CRYPTOLOOP is not set @@ -2173,10 +2127,6 @@ CONFIG_ALTERA_STAPL=m # VOP Driver # # CONFIG_ECHO is not set -# CONFIG_CXL_BASE is not set -# CONFIG_CXL_AFU_DRIVER_OPS is not set -# CONFIG_CXL_LIB is not set -# CONFIG_OCXL_BASE is not set CONFIG_MISC_RTSX_PCI=m CONFIG_MISC_RTSX_USB=m CONFIG_HAVE_IDE=y @@ -2263,7 +2213,6 @@ CONFIG_FCOE=m CONFIG_SCSI_SNIC=m # CONFIG_SCSI_SNIC_DEBUG_FS is not set CONFIG_SCSI_DMX3191D=m -# CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set @@ -2298,7 +2247,6 @@ CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set CONFIG_HAVE_PATA_PLATFORM=y CONFIG_ATA=m -# CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_SATA_PMP=y @@ -2538,6 +2486,7 @@ CONFIG_NET_DSA_MV88E6060=m # CONFIG_MICROCHIP_KSZ is not set CONFIG_NET_DSA_MV88E6XXX=m CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +# CONFIG_NET_DSA_MV88E6XXX_PTP is not set # CONFIG_NET_DSA_QCA8K is not set # CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set # CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set @@ -2561,7 +2510,6 @@ CONFIG_NET_VENDOR_AMAZON=y CONFIG_NET_VENDOR_AMD=y # CONFIG_AMD8111_ETH is not set CONFIG_PCNET32=m -# CONFIG_AMD_XGBE_HAVE_ECC is not set CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_NET_VENDOR_ARC is not set CONFIG_NET_VENDOR_ATHEROS=y @@ -2665,6 +2613,7 @@ CONFIG_IXGBEVF=m CONFIG_I40E=m CONFIG_I40E_DCB=y CONFIG_I40EVF=m +# CONFIG_ICE is not set # CONFIG_FM10K is not set CONFIG_NET_VENDOR_I825XX=y CONFIG_JME=m @@ -2673,7 +2622,6 @@ CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=m # CONFIG_MVNETA_BM_ENABLE is not set CONFIG_MVNETA=m -# CONFIG_MVNETA_BM is not set CONFIG_MVPP2=m CONFIG_SKGE=m # CONFIG_SKGE_DEBUG is not set @@ -2704,6 +2652,7 @@ CONFIG_NET_VENDOR_MICROCHIP=y CONFIG_ENC28J60=m # CONFIG_ENC28J60_WRITEVERIFY is not set # CONFIG_ENCX24J600 is not set +# CONFIG_LAN743X is not set CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m CONFIG_FEALNX=m @@ -2714,6 +2663,7 @@ CONFIG_NET_VENDOR_NETRONOME=y CONFIG_NFP=m # CONFIG_NFP_APP_FLOWER is not set # CONFIG_NFP_DEBUG is not set +CONFIG_NET_VENDOR_NI=y CONFIG_NET_VENDOR_8390=y # CONFIG_AX88796 is not set CONFIG_NE2K_PCI=m @@ -2770,7 +2720,6 @@ CONFIG_SMC91X=m CONFIG_EPIC100=m CONFIG_SMC911X=m CONFIG_SMSC911X=m -# CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_SMSC9420=m CONFIG_NET_VENDOR_SOCIONEXT=y CONFIG_NET_VENDOR_STMICRO=y @@ -3141,6 +3090,7 @@ CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y # CONFIG_RSI_SDIO is not set CONFIG_RSI_USB=m +CONFIG_RSI_COEX=y CONFIG_WLAN_VENDOR_ST=y # CONFIG_CW1200 is not set CONFIG_WLAN_VENDOR_TI=y @@ -3178,6 +3128,7 @@ CONFIG_IEEE802154_CC2520=m CONFIG_IEEE802154_ATUSB=m CONFIG_IEEE802154_ADF7242=m # CONFIG_IEEE802154_CA8210 is not set +# CONFIG_IEEE802154_MCR20A is not set CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_NETDEV_BACKEND=m # CONFIG_VMXNET3 is not set @@ -3547,7 +3498,6 @@ CONFIG_HW_RANDOM_OMAP3_ROM=m CONFIG_HW_RANDOM_VIRTIO=m CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_EXYNOS=m -# CONFIG_NVRAM is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_RAW_DRIVER is not set @@ -3633,7 +3583,6 @@ CONFIG_I2C_OCORES=m CONFIG_I2C_OMAP=y CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA is not set -# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_RK3X=m CONFIG_HAVE_S3C2410_I2C=y CONFIG_I2C_S3C2410=y @@ -3692,7 +3641,6 @@ CONFIG_SPI_TI_QSPI=m CONFIG_SPI_ORION=m CONFIG_SPI_PL022=m # CONFIG_SPI_PXA2XX is not set -# CONFIG_SPI_PXA2XX_PCI is not set CONFIG_SPI_ROCKCHIP=m # CONFIG_SPI_S3C64XX is not set # CONFIG_SPI_SC18IS602 is not set @@ -3797,9 +3745,6 @@ CONFIG_PINCTRL_SUN8I_H3_R=y CONFIG_PINCTRL_SUN8I_V3S=y CONFIG_PINCTRL_SUN9I_A80=y CONFIG_PINCTRL_SUN9I_A80_R=y -# CONFIG_PINCTRL_SUN50I_A64 is not set -# CONFIG_PINCTRL_SUN50I_A64_R is not set -# CONFIG_PINCTRL_SUN50I_H5 is not set CONFIG_PINCTRL_TEGRA=y CONFIG_PINCTRL_TEGRA124=y CONFIG_PINCTRL_TEGRA_XUSB=y @@ -3819,11 +3764,13 @@ CONFIG_GPIO_GENERIC=y # # CONFIG_GPIO_74XX_MMIO is not set # CONFIG_GPIO_ALTERA is not set +CONFIG_GPIO_RASPBERRYPI_EXP=m # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_EXAR is not set # CONFIG_GPIO_FTGPIO010 is not set CONFIG_GPIO_GENERIC_PLATFORM=y # CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_HLWD is not set CONFIG_GPIO_MB86S7X=m # CONFIG_GPIO_MOCKUP is not set # CONFIG_GPIO_MPC8XXX is not set @@ -3952,7 +3899,6 @@ CONFIG_BATTERY_BQ27XXX_HDQ=m CONFIG_CHARGER_AXP20X=m CONFIG_BATTERY_AXP20X=m CONFIG_AXP20X_POWER=m -CONFIG_AXP288_CHARGER=m CONFIG_AXP288_FUEL_GAUGE=m # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set @@ -3998,6 +3944,7 @@ CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m CONFIG_SENSORS_ADT7475=m CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ARM_SCMI=m # CONFIG_SENSORS_ASPEED is not set CONFIG_SENSORS_ATXP1=m CONFIG_SENSORS_DS620=m @@ -4117,6 +4064,7 @@ CONFIG_SENSORS_W83L786NG=m # CONFIG_SENSORS_W83627HF is not set CONFIG_SENSORS_W83627EHF=m CONFIG_THERMAL=y +# CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_OF=y @@ -4354,7 +4302,6 @@ CONFIG_TWL6040_CORE=y # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TMIO is not set # CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set @@ -4372,6 +4319,7 @@ CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_88PG86X is not set CONFIG_REGULATOR_ACT8865=m # CONFIG_REGULATOR_AD5398 is not set CONFIG_REGULATOR_ANATOP=m @@ -4438,10 +4386,12 @@ CONFIG_IR_SANYO_DECODER=m CONFIG_IR_SHARP_DECODER=m CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_XMP_DECODER=m +CONFIG_IR_IMON_DECODER=m CONFIG_RC_DEVICES=y CONFIG_RC_ATI_REMOTE=m # CONFIG_IR_HIX5HD2 is not set CONFIG_IR_IMON=m +CONFIG_IR_IMON_RAW=m CONFIG_IR_MCEUSB=m CONFIG_IR_REDRAT3=m # CONFIG_IR_SPI is not set @@ -4745,7 +4695,6 @@ CONFIG_VIDEO_OMAP3=m # CONFIG_VIDEO_TI_CAL is not set CONFIG_V4L_MEM2MEM_DRIVERS=y # CONFIG_VIDEO_CODA is not set -# CONFIG_VIDEO_IMX_VDOA is not set # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set # CONFIG_VIDEO_SAMSUNG_S5P_G2D is not set # CONFIG_VIDEO_SAMSUNG_S5P_JPEG is not set @@ -4912,6 +4861,11 @@ CONFIG_VIDEO_M52790=m # # Sensors used on soc_camera driver # + +# +# Media SPI Adapters +# +# CONFIG_CXD2880_SPI_DRV is not set CONFIG_MEDIA_TUNER=y CONFIG_MEDIA_TUNER_SIMPLE=y CONFIG_MEDIA_TUNER_TDA18250=m @@ -5087,7 +5041,6 @@ CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_A8293=m -CONFIG_DVB_SP2=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_TDA665x=m @@ -5098,10 +5051,15 @@ CONFIG_DVB_HORUS3A=m CONFIG_DVB_ASCOT2E=m CONFIG_DVB_HELENE=m +# +# Common Interface (EN50221) controller drivers +# +CONFIG_DVB_CXD2099=m +CONFIG_DVB_SP2=m + # # Tools to develop new frontends # -# CONFIG_DVB_DUMMY_FE is not set # # Graphics support @@ -5123,6 +5081,7 @@ CONFIG_DRM_TTM=m CONFIG_DRM_GEM_CMA_HELPER=y CONFIG_DRM_KMS_CMA_HELPER=y CONFIG_DRM_VM=y +CONFIG_DRM_SCHED=m # # I2C encoder or helper chips @@ -5142,7 +5101,6 @@ CONFIG_DRM_I2C_NXP_TDA998X=m # # AMD Library routines # -# CONFIG_CHASH is not set # CONFIG_DRM_NOUVEAU is not set CONFIG_DRM_VGEM=m CONFIG_DRM_EXYNOS=m @@ -5181,6 +5139,7 @@ CONFIG_DRM_UDL=m CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_ARMADA is not set # CONFIG_DRM_RCAR_DW_HDMI is not set +# CONFIG_DRM_RCAR_LVDS is not set # CONFIG_DRM_SUN4I is not set CONFIG_DRM_OMAP=m CONFIG_OMAP2_DSS_INIT=y @@ -5228,6 +5187,7 @@ CONFIG_DRM_PANEL=y # # Display Panels # +CONFIG_DRM_PANEL_ARM_VERSATILE=m # CONFIG_DRM_PANEL_LVDS is not set CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_PANEL_ILITEK_IL9322=m @@ -5238,6 +5198,7 @@ CONFIG_DRM_PANEL_ILITEK_IL9322=m # CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set # CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m +# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set @@ -5292,7 +5253,6 @@ CONFIG_DRM_LEGACY=y CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -# CONFIG_DRM_LIB_RANDOM is not set # # Frame buffer Devices @@ -5302,20 +5262,16 @@ CONFIG_FIRMWARE_EDID=y CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y CONFIG_FB_DDC=m -# CONFIG_FB_BOOT_VESA_SUPPORT is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=y CONFIG_FB_SYS_COPYAREA=y CONFIG_FB_SYS_IMAGEBLIT=y -# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m -# CONFIG_FB_MACMODES is not set CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y @@ -5366,7 +5322,6 @@ CONFIG_FB_PM3=m CONFIG_FB_VT8500=y CONFIG_FB_WM8505=y # CONFIG_FB_WMT_GE_ROPS is not set -# CONFIG_FB_S3C is not set CONFIG_FB_SMSCUFX=m CONFIG_FB_UDL=m # CONFIG_FB_IBM_GXT4500 is not set @@ -5451,7 +5406,6 @@ CONFIG_SND_SEQ_MIDI_EMUL=m CONFIG_SND_MPU401_UART=m CONFIG_SND_OPL3_LIB=m CONFIG_SND_OPL3_LIB_SEQ=m -# CONFIG_SND_OPL4_LIB_SEQ is not set CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y # CONFIG_SND_DUMMY is not set @@ -5494,7 +5448,6 @@ CONFIG_SND_INDIGOIO=m CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGODJX=m -# CONFIG_SND_EMU10K1_SEQ is not set # CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1371 is not set # CONFIG_SND_FM801 is not set @@ -5606,7 +5559,6 @@ CONFIG_SND_SOC_IMX_PCM_FIQ=m # SoC Audio support for Freescale i.MX boards: # CONFIG_SND_SOC_EUKREA_TLV320=m -# CONFIG_SND_SOC_IMX_WM8962 is not set CONFIG_SND_SOC_IMX_ES8328=m CONFIG_SND_SOC_IMX_SGTL5000=m CONFIG_SND_SOC_IMX_SPDIF=m @@ -5676,12 +5628,15 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_ADAU1761_SPI is not set # CONFIG_SND_SOC_ADAU7002 is not set # CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4458 is not set # CONFIG_SND_SOC_AK4554 is not set # CONFIG_SND_SOC_AK4613 is not set # CONFIG_SND_SOC_AK4642 is not set # CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_AK5558 is not set # CONFIG_SND_SOC_ALC5623 is not set CONFIG_SND_SOC_ALC5632=m +# CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set # CONFIG_SND_SOC_CS35L32 is not set # CONFIG_SND_SOC_CS35L33 is not set @@ -5712,11 +5667,13 @@ CONFIG_SND_SOC_ES8328_SPI=m # CONFIG_SND_SOC_INNO_RK3036 is not set CONFIG_SND_SOC_MAX98090=m # CONFIG_SND_SOC_MAX98504 is not set +# CONFIG_SND_SOC_MAX9867 is not set # CONFIG_SND_SOC_MAX98927 is not set # CONFIG_SND_SOC_MAX98373 is not set # CONFIG_SND_SOC_MAX9860 is not set # CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set # CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM1789_I2C is not set # CONFIG_SND_SOC_PCM179X_I2C is not set # CONFIG_SND_SOC_PCM179X_SPI is not set # CONFIG_SND_SOC_PCM186X_I2C is not set @@ -5726,7 +5683,6 @@ CONFIG_SND_SOC_MAX98090=m # CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_SPI is not set CONFIG_SND_SOC_RL6231=m -# CONFIG_SND_SOC_RT5514_SPI_BUILTIN is not set # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5640=m @@ -5747,6 +5703,7 @@ CONFIG_SND_SOC_SGTL5000=m # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set # CONFIG_SND_SOC_TAS6424 is not set +# CONFIG_SND_SOC_TDA7419 is not set # CONFIG_SND_SOC_TFA9879 is not set CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_I2C=m @@ -5782,6 +5739,7 @@ CONFIG_SND_SOC_WM8903=m # CONFIG_SND_SOC_WM8985 is not set CONFIG_SND_SOC_WM9712=m # CONFIG_SND_SOC_ZX_AUD96P22 is not set +# CONFIG_SND_SOC_MAX9759 is not set CONFIG_SND_SOC_MC13783=m # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set @@ -5826,6 +5784,7 @@ CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_DRAGONRISE_FF=y CONFIG_HID_EMS_FF=m +# CONFIG_HID_ELAN is not set CONFIG_HID_ELECOM=m CONFIG_HID_ELO=m CONFIG_HID_EZKEY=m @@ -5833,6 +5792,7 @@ CONFIG_HID_GEMBIRD=m # CONFIG_HID_GFRM is not set CONFIG_HID_HOLTEK=m CONFIG_HOLTEK_FF=y +# CONFIG_HID_GOOGLE_HAMMER is not set # CONFIG_HID_GT683R is not set CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m @@ -5964,7 +5924,6 @@ CONFIG_USB_EHCI_EXYNOS=m CONFIG_USB_EHCI_HCD_PLATFORM=m # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_ISP1362_HCD is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_OHCI_HCD=m @@ -6281,6 +6240,11 @@ CONFIG_TYPEC=m # CONFIG_TYPEC_TCPM is not set CONFIG_TYPEC_UCSI=m # CONFIG_TYPEC_TPS6598X is not set + +# +# USB Type-C Multiplexer/DeMultiplexer Switch support +# +# CONFIG_TYPEC_MUX_PI3USB30532 is not set CONFIG_USB_LED_TRIG=y # CONFIG_USB_ULPI_BUS is not set CONFIG_UWB=m @@ -6328,6 +6292,7 @@ CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_DW=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_EXYNOS=m +# CONFIG_MMC_DW_HI3798CV200 is not set # CONFIG_MMC_DW_K3 is not set # CONFIG_MMC_DW_PCI is not set CONFIG_MMC_DW_ROCKCHIP=m @@ -6407,6 +6372,7 @@ CONFIG_LEDS_TCA6507=m # # CONFIG_LEDS_BLINKM is not set # CONFIG_LEDS_SYSCON is not set +# CONFIG_LEDS_MLXREG is not set # CONFIG_LEDS_USER is not set # @@ -6436,7 +6402,7 @@ CONFIG_A11Y_BRAILLE_CONSOLE=y CONFIG_INFINIBAND=m CONFIG_INFINIBAND_USER_MAD=m CONFIG_INFINIBAND_USER_ACCESS=m -# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set +# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set CONFIG_INFINIBAND_USER_MEM=y CONFIG_INFINIBAND_ON_DEMAND_PAGING=y CONFIG_INFINIBAND_ADDR_TRANS=y @@ -6444,7 +6410,6 @@ CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y CONFIG_INFINIBAND_MTHCA=m CONFIG_INFINIBAND_MTHCA_DEBUG=y CONFIG_INFINIBAND_CXGB3=m -# CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB4=m CONFIG_INFINIBAND_I40IW=m CONFIG_MLX4_INFINIBAND=m @@ -6502,6 +6467,7 @@ CONFIG_RTC_DRV_RK808=y # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_ISL12026 is not set # CONFIG_RTC_DRV_X1205 is not set CONFIG_RTC_DRV_PCF8523=y # CONFIG_RTC_DRV_PCF85063 is not set @@ -6614,6 +6580,7 @@ CONFIG_DMA_BCM2835=y CONFIG_DMA_OMAP=y CONFIG_DMA_SUN4I=y CONFIG_DMA_SUN6I=m +# CONFIG_DW_AXI_DMAC is not set # CONFIG_FSL_EDMA is not set CONFIG_IMX_DMA=y CONFIG_IMX_SDMA=y @@ -6672,7 +6639,6 @@ CONFIG_VIRTIO_MMIO=m # # Microsoft Hyper-V guest support # -# CONFIG_HYPERV_TSCPAGE is not set # # Xen driver support @@ -6695,7 +6661,6 @@ CONFIG_XEN_PRIVCMD=m CONFIG_XEN_EFI=y CONFIG_XEN_AUTO_XLATE=y CONFIG_STAGING=y -# CONFIG_IRDA is not set # CONFIG_IPX is not set CONFIG_NCP_FS=m CONFIG_NCPFS_PACKET_SIGNING=y @@ -6789,10 +6754,6 @@ CONFIG_RTLWIFI_DEBUG_ST=y # CONFIG_AD2S90 is not set # CONFIG_AD2S1200 is not set # CONFIG_AD2S1210 is not set - -# -# Triggers - standalone -# # CONFIG_FB_SM750 is not set # CONFIG_FB_XGI is not set @@ -6836,12 +6797,14 @@ CONFIG_BCM_VIDEOCORE=y # CONFIG_BCM2835_VCHIQ is not set # CONFIG_SND_BCM2835 is not set # CONFIG_VIDEO_BCM2835 is not set -# CONFIG_CRYPTO_DEV_CCREE is not set # # USB Power Delivery and Type-C drivers # CONFIG_PI433=m +CONFIG_MTK_MMC=m +# CONFIG_MTK_AEE_KDUMP is not set +# CONFIG_MTK_MMC_CD_POLL is not set # CONFIG_GOLDFISH is not set CONFIG_CHROME_PLATFORMS=y CONFIG_CROS_EC_CTL=m @@ -6861,8 +6824,10 @@ CONFIG_CLK_VEXPRESS_OSC=y # CONFIG_CLK_HSDK is not set CONFIG_COMMON_CLK_MAX77686=m CONFIG_COMMON_CLK_RK808=m +CONFIG_COMMON_CLK_SCMI=m # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CDCE925 is not set @@ -6870,11 +6835,8 @@ CONFIG_COMMON_CLK_RK808=m CONFIG_COMMON_CLK_S2MPS11=m CONFIG_CLK_TWL6040=m # CONFIG_CLK_QORIQ is not set -# CONFIG_COMMON_CLK_NXP is not set CONFIG_COMMON_CLK_PALMAS=m # CONFIG_COMMON_CLK_PWM is not set -# CONFIG_COMMON_CLK_PXA is not set -# CONFIG_COMMON_CLK_PIC32 is not set # CONFIG_COMMON_CLK_VC5 is not set CONFIG_MVEBU_CLK_COMMON=y CONFIG_MVEBU_CLK_CPU=y @@ -6908,6 +6870,7 @@ CONFIG_COMMON_CLK_TI_ADPLL=y # CONFIG_TIMER_OF=y CONFIG_TIMER_PROBE=y +CONFIG_OMAP_DM_TIMER=y CONFIG_CLKSRC_MMIO=y CONFIG_BCM2835_TIMER=y CONFIG_DW_APB_TIMER=y @@ -6924,13 +6887,8 @@ CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_GLOBAL_TIMER=y CONFIG_ARM_TIMER_SP804=y CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y -# CONFIG_ATMEL_PIT is not set CONFIG_CLKSRC_EXYNOS_MCT=y CONFIG_CLKSRC_SAMSUNG_PWM=y -# CONFIG_SH_TIMER_CMT is not set -# CONFIG_SH_TIMER_MTU2 is not set -# CONFIG_SH_TIMER_TMU is not set -# CONFIG_EM_TIMER_STI is not set CONFIG_CLKSRC_VERSATILE=y CONFIG_CLKSRC_IMX_GPT=y CONFIG_MAILBOX=y @@ -6943,6 +6901,7 @@ CONFIG_OMAP_MBOX_KFIFO_SIZE=256 # CONFIG_ALTERA_MBOX is not set CONFIG_BCM2835_MBOX=y # CONFIG_MAILBOX_TEST is not set +# CONFIG_TEGRA_HSP_MBOX is not set CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -7036,7 +6995,6 @@ CONFIG_EXTCON=y # Extcon Device Drivers # # CONFIG_EXTCON_ADC_JACK is not set -CONFIG_EXTCON_AXP288=m # CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_MAX3355 is not set CONFIG_EXTCON_PALMAS=m @@ -7308,6 +7266,7 @@ CONFIG_HID_SENSOR_PROX=m # CONFIG_JSA1212 is not set # CONFIG_RPR0521 is not set # CONFIG_LTR501 is not set +# CONFIG_LV0104CS is not set # CONFIG_MAX44000 is not set # CONFIG_OPT3001 is not set # CONFIG_PA12203001 is not set @@ -7360,9 +7319,11 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m # # Digital potentiometers # +# CONFIG_AD5272 is not set # CONFIG_DS1803 is not set # CONFIG_MAX5481 is not set # CONFIG_MAX5487 is not set +# CONFIG_MCP4018 is not set # CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set # CONFIG_TPL0102 is not set @@ -7409,6 +7370,7 @@ CONFIG_HID_SENSOR_PRESS=m # CONFIG_MAXIM_THERMOCOUPLE is not set # CONFIG_HID_SENSOR_TEMP is not set # CONFIG_MLX90614 is not set +# CONFIG_MLX90632 is not set # CONFIG_TMP006 is not set # CONFIG_TMP007 is not set # CONFIG_TSYS01 is not set @@ -7454,19 +7416,9 @@ CONFIG_PARTITION_PERCPU=y # CONFIG_IPACK_BUS is not set CONFIG_ARCH_HAS_RESET_CONTROLLER=y CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_ATH79 is not set -# CONFIG_RESET_AXS10X is not set -# CONFIG_RESET_BERLIN is not set -# CONFIG_RESET_IMX7 is not set -# CONFIG_RESET_LANTIQ is not set -# CONFIG_RESET_LPC18XX is not set -# CONFIG_RESET_MESON is not set -# CONFIG_RESET_PISTACHIO is not set CONFIG_RESET_SIMPLE=y CONFIG_RESET_SUNXI=y # CONFIG_RESET_TI_SYSCON is not set -# CONFIG_RESET_ZYNQ is not set -# CONFIG_RESET_TEGRA_BPMP is not set # CONFIG_FMC is not set # @@ -7481,6 +7433,7 @@ CONFIG_PHY_MVEBU_CP110_COMPHY=m # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_CPCAP_USB is not set +# CONFIG_PHY_MAPPHONE_MDM6600 is not set CONFIG_PHY_ROCKCHIP_DP=m CONFIG_PHY_ROCKCHIP_EMMC=m # CONFIG_PHY_ROCKCHIP_INNO_USB2 is not set @@ -7508,6 +7461,9 @@ CONFIG_TWL4030_USB=m # # Performance monitor support # +# CONFIG_ARM_CCI400_PMU is not set +# CONFIG_ARM_CCI5xx_PMU is not set +# CONFIG_ARM_CCN is not set CONFIG_ARM_PMU=y CONFIG_RAS=y @@ -7522,6 +7478,10 @@ CONFIG_NVMEM=y CONFIG_ROCKCHIP_EFUSE=m CONFIG_NVMEM_SUNXI_SID=m # CONFIG_NVMEM_SNVS_LPGPR is not set + +# +# HW tracing support +# # CONFIG_STM is not set # CONFIG_INTEL_TH is not set # CONFIG_FPGA is not set @@ -7535,6 +7495,8 @@ CONFIG_PM_OPP=y # Firmware Drivers # CONFIG_ARM_PSCI_FW=y +CONFIG_ARM_SCMI_PROTOCOL=y +CONFIG_ARM_SCMI_POWER_DOMAIN=m # CONFIG_ARM_SCPI_PROTOCOL is not set # CONFIG_FIRMWARE_MEMMAP is not set CONFIG_DMIID=y @@ -7646,6 +7608,7 @@ CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_REDIRECT_DIR is not set # CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set # CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set # # Caches @@ -7693,7 +7656,6 @@ CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y -# CONFIG_HUGETLB_PAGE is not set CONFIG_CONFIGFS_FS=m CONFIG_EFIVAR_FS=m CONFIG_MISC_FILESYSTEMS=y @@ -7977,13 +7939,15 @@ CONFIG_SCHED_STACK_END_CHECK=y # # Lock Debugging (spinlocks, mutexes, etc...) # +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_LOCK_TORTURE_TEST is not set @@ -8001,8 +7965,6 @@ CONFIG_DEBUG_LIST=y # # RCU Debugging # -# CONFIG_PROVE_RCU is not set -# CONFIG_TORTURE_TEST is not set # CONFIG_RCU_PERF_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=21 @@ -8046,7 +8008,6 @@ CONFIG_TRACER_SNAPSHOT=y # CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set -# CONFIG_PROFILE_ALL_BRANCHES is not set CONFIG_STACK_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y CONFIG_KPROBE_EVENTS=y @@ -8097,7 +8058,6 @@ CONFIG_BUG_ON_DATA_CORRUPTION=y # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set -# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set # CONFIG_UBSAN is not set CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y @@ -8111,7 +8071,6 @@ CONFIG_OLD_MCOUNT=y # CONFIG_DEBUG_LL is not set CONFIG_DEBUG_IMX_UART_PORT=1 CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" -# CONFIG_DEBUG_UART_8250 is not set CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" # CONFIG_ARM_KPROBES_TEST is not set # CONFIG_PID_IN_CONTEXTIDR is not set @@ -8128,7 +8087,6 @@ CONFIG_KEYS=y # CONFIG_KEY_DH_OPERATIONS is not set CONFIG_SECURITY_DMESG_RESTRICT=y CONFIG_SECURITY=y -# CONFIG_SECURITY_WRITABLE_HOOKS is not set CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_INFINIBAND is not set @@ -8139,6 +8097,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HARDENED_USERCOPY=y CONFIG_HARDENED_USERCOPY_FALLBACK=y # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set +CONFIG_FORTIFY_SOURCE=y # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_SELINUX_BOOTPARAM is not set @@ -8246,6 +8205,7 @@ CONFIG_CRYPTO_ECHAINIV=m # Block modes # CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CTR=m CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_ECB=m @@ -8305,6 +8265,8 @@ CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_SPECK=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -8337,7 +8299,6 @@ CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_MARVELL_CESA=m # CONFIG_CRYPTO_DEV_FSL_CAAM is not set -# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set # CONFIG_CRYPTO_DEV_OMAP is not set # CONFIG_CRYPTO_DEV_SAHARA is not set # CONFIG_CRYPTO_DEV_MXC_SCC is not set @@ -8349,6 +8310,7 @@ CONFIG_CRYPTO_DEV_SUN4I_SS=m # CONFIG_CRYPTO_DEV_ROCKCHIP is not set CONFIG_CRYPTO_DEV_CHELSIO=m CONFIG_CRYPTO_DEV_VIRTIO=m +# CONFIG_CRYPTO_DEV_CCREE is not set CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y CONFIG_X509_CERTIFICATE_PARSER=y @@ -8396,7 +8358,6 @@ CONFIG_LIBCRC32C=m CONFIG_CRC8=m CONFIG_XXHASH=m CONFIG_AUDIT_GENERIC=y -# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=m @@ -8434,7 +8395,6 @@ CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_DMA=y CONFIG_SGL_ALLOC=y -# CONFIG_DMA_DIRECT_OPS is not set CONFIG_DMA_VIRT_OPS=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y diff --git a/gnu/packages/aux-files/linux-libre/4.17-arm64.conf b/gnu/packages/aux-files/linux-libre/4.17-arm64.conf new file mode 100644 index 0000000000..3b2b391ad2 --- /dev/null +++ b/gnu/packages/aux-files/linux-libre/4.17-arm64.conf @@ -0,0 +1,8087 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm64 4.17.0-gnu Kernel Configuration +# +CONFIG_ARM64=y +CONFIG_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_MMU=y +CONFIG_ARM64_PAGE_SHIFT=12 +CONFIG_ARM64_CONT_SHIFT=4 +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_BITS_MAX=33 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA32=y +CONFIG_HAVE_GENERIC_GUP=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_SMP=y +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +CONFIG_KERNEL_MODE_NEON=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=4 +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_MULTI_IRQ_HANDLER=y +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set +CONFIG_AUDIT=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUDIT_TREE=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +# CONFIG_NO_HZ is not set +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_CPU_ISOLATION=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +CONFIG_TREE_SRCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +CONFIG_BUILD_BIN2C=y +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_CGROUPS=y +CONFIG_PAGE_COUNTER=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +# CONFIG_MEMCG_SWAP_ENABLED is not set +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_CGROUP_PIDS=y +# CONFIG_CGROUP_RDMA is not set +CONFIG_CGROUP_FREEZER=y +# CONFIG_CGROUP_HUGETLB is not set +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_SOCK_CGROUP_DATA=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_RD_LZ4=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_BPF=y +CONFIG_EXPERT=y +CONFIG_UID16=y +CONFIG_MULTIUSER=y +# CONFIG_SGETMASK_SYSCALL is not set +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_PRINTK_NMI=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_MEMBARRIER=y +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_BPF_SYSCALL=y +# CONFIG_BPF_JIT_ALWAYS_ON is not set +CONFIG_USERFAULTFD=y +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_MEMCG_SYSFS_ON is not set +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLAB_MERGE_DEFAULT=y +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y +CONFIG_SLUB_CPU_PARTIAL=y +CONFIG_SYSTEM_DATA_VERIFICATION=y +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +CONFIG_CRASH_CORE=y +CONFIG_KEXEC_CORE=y +CONFIG_KPROBES=y +CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set +CONFIG_UPROBES=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_KRETPROBES=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_NMI=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_GCC_PLUGINS=y +# CONFIG_GCC_PLUGINS is not set +CONFIG_HAVE_CC_STACKPROTECTOR=y +# CONFIG_CC_STACKPROTECTOR_NONE is not set +# CONFIG_CC_STACKPROTECTOR_REGULAR is not set +CONFIG_CC_STACKPROTECTOR_STRONG=y +# CONFIG_CC_STACKPROTECTOR_AUTO is not set +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_REFCOUNT_FULL=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_COMPRESS is not set +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +CONFIG_BLK_DEV_INTEGRITY=y +# CONFIG_BLK_DEV_ZONED is not set +CONFIG_BLK_DEV_THROTTLING=y +# CONFIG_BLK_DEV_THROTTLING_LOW is not set +# CONFIG_BLK_CMDLINE_PARSER is not set +CONFIG_BLK_WBT=y +# CONFIG_BLK_WBT_SQ is not set +CONFIG_BLK_WBT_MQ=y +CONFIG_BLK_DEBUG_FS=y +CONFIG_BLK_SED_OPAL=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AIX_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +# CONFIG_CMDLINE_PARTITION is not set +CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_MQ_RDMA=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_CFQ_GROUP_IOSCHED=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MQ_IOSCHED_KYBER=m +CONFIG_IOSCHED_BFQ=m +CONFIG_BFQ_GROUP_IOSCHED=y +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PADATA=y +CONFIG_ASN1=y +CONFIG_ARCH_INLINE_READ_LOCK=y +CONFIG_ARCH_INLINE_READ_LOCK_BH=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_READ_UNLOCK=y +CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_INLINE_WRITE_LOCK=y +CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_READ_LOCK=y +CONFIG_INLINE_READ_LOCK_BH=y +CONFIG_INLINE_READ_LOCK_IRQ=y +CONFIG_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_BH=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_WRITE_LOCK=y +CONFIG_INLINE_WRITE_LOCK_BH=y +CONFIG_INLINE_WRITE_LOCK_IRQ=y +CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_BH=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_FREEZER=y + +# +# Platform selection +# +# CONFIG_ARCH_ACTIONS is not set +CONFIG_ARCH_SUNXI=y +# CONFIG_ARCH_ALPINE is not set +CONFIG_ARCH_BCM2835=y +# CONFIG_ARCH_BCM_IPROC is not set +# CONFIG_ARCH_BERLIN is not set +# CONFIG_ARCH_BRCMSTB is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_LAYERSCAPE is not set +# CONFIG_ARCH_LG1K is not set +CONFIG_ARCH_HISI=y +# CONFIG_ARCH_MEDIATEK is not set +CONFIG_ARCH_MESON=y +CONFIG_ARCH_MVEBU=y +CONFIG_ARCH_QCOM=y +# CONFIG_ARCH_REALTEK is not set +CONFIG_ARCH_ROCKCHIP=y +CONFIG_ARCH_SEATTLE=y +CONFIG_ARCH_SYNQUACER=y +# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_STRATIX10 is not set +CONFIG_ARCH_TEGRA=y +# CONFIG_ARCH_SPRD is not set +CONFIG_ARCH_THUNDER=y +CONFIG_ARCH_THUNDER2=y +# CONFIG_ARCH_UNIPHIER is not set +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_XGENE=y +# CONFIG_ARCH_ZX is not set +# CONFIG_ARCH_ZYNQMP is not set + +# +# Bus support +# +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y +CONFIG_PCI_SYSCALL=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_PCIEAER=y +# CONFIG_PCIE_ECRC is not set +CONFIG_PCIEAER_INJECT=m +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +# CONFIG_PCIEASPM_PERFORMANCE is not set +CONFIG_PCIE_PME=y +CONFIG_PCIE_DPC=y +CONFIG_PCIE_PTM=y +CONFIG_PCI_BUS_ADDR_T_64BIT=y +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PCI_QUIRKS=y +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_REALLOC_ENABLE_AUTO=y +CONFIG_PCI_STUB=m +CONFIG_PCI_ATS=y +CONFIG_PCI_ECAM=y +CONFIG_PCI_IOV=y +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_LABEL=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_SHPC=m + +# +# Cadence PCIe controllers support +# +# CONFIG_PCIE_CADENCE_HOST is not set + +# +# DesignWare PCI Core Support +# +CONFIG_PCIE_DW=y +CONFIG_PCIE_DW_HOST=y +# CONFIG_PCIE_DW_PLAT is not set +CONFIG_PCI_HISI=y +CONFIG_PCIE_QCOM=y +CONFIG_PCIE_ARMADA_8K=y +CONFIG_PCIE_KIRIN=y +# CONFIG_PCIE_HISI_STB is not set + +# +# PCI host controller drivers +# +CONFIG_PCI_AARDVARK=y +CONFIG_PCI_TEGRA=y +CONFIG_PCI_HOST_COMMON=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCI_XGENE=y +CONFIG_PCI_XGENE_MSI=y +CONFIG_PCI_HOST_THUNDER_PEM=y +CONFIG_PCI_HOST_THUNDER_ECAM=y +CONFIG_PCIE_ROCKCHIP=y + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set + +# +# Kernel Features +# + +# +# ARM errata workarounds via the alternatives framework +# +CONFIG_ARM64_ERRATUM_826319=y +CONFIG_ARM64_ERRATUM_827319=y +CONFIG_ARM64_ERRATUM_824069=y +CONFIG_ARM64_ERRATUM_819472=y +CONFIG_ARM64_ERRATUM_832075=y +CONFIG_ARM64_ERRATUM_834220=y +CONFIG_ARM64_ERRATUM_845719=y +# CONFIG_ARM64_ERRATUM_843419 is not set +CONFIG_ARM64_ERRATUM_1024718=y +CONFIG_CAVIUM_ERRATUM_22375=y +CONFIG_CAVIUM_ERRATUM_23144=y +CONFIG_CAVIUM_ERRATUM_23154=y +CONFIG_CAVIUM_ERRATUM_27456=y +CONFIG_CAVIUM_ERRATUM_30115=y +CONFIG_QCOM_FALKOR_ERRATUM_1003=y +CONFIG_QCOM_FALKOR_ERRATUM_1009=y +CONFIG_QCOM_QDF2400_ERRATUM_0065=y +CONFIG_SOCIONEXT_SYNQUACER_PREITS=y +CONFIG_HISILICON_ERRATUM_161600802=y +CONFIG_QCOM_FALKOR_ERRATUM_E1041=y +CONFIG_ARM64_4K_PAGES=y +# CONFIG_ARM64_16K_PAGES is not set +# CONFIG_ARM64_64K_PAGES is not set +# CONFIG_ARM64_VA_BITS_39 is not set +CONFIG_ARM64_VA_BITS_48=y +CONFIG_ARM64_VA_BITS=48 +CONFIG_ARM64_PA_BITS_48=y +CONFIG_ARM64_PA_BITS=48 +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_SCHED_MC=y +# CONFIG_SCHED_SMT is not set +CONFIG_NR_CPUS=256 +CONFIG_HOTPLUG_CPU=y +CONFIG_NUMA=y +CONFIG_NODES_SHIFT=2 +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_HOLES_IN_ZONE=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT is not set +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_SCHED_HRTICK=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_NO_BOOTMEM=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_MEMORY_BALLOON=y +CONFIG_BALLOON_COMPACTION=y +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_MMU_NOTIFIER=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_MEMORY_FAILURE=y +CONFIG_HWPOISON_INJECT=m +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_TRANSPARENT_HUGE_PAGECACHE=y +# CONFIG_CLEANCACHE is not set +CONFIG_FRONTSWAP=y +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_AREAS=7 +CONFIG_ZSWAP=y +CONFIG_ZPOOL=y +CONFIG_ZBUD=y +# CONFIG_Z3FOLD is not set +CONFIG_ZSMALLOC=m +# CONFIG_PGTABLE_MAPPING is not set +# CONFIG_ZSMALLOC_STAT is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_FRAME_VECTOR=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_BENCHMARK is not set +CONFIG_SECCOMP=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_KEXEC=y +CONFIG_CRASH_DUMP=y +CONFIG_XEN_DOM0=y +CONFIG_XEN=y +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_UNMAP_KERNEL_AT_EL0=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y +CONFIG_HARDEN_EL2_VECTORS=y +CONFIG_ARMV8_DEPRECATED=y +CONFIG_SWP_EMULATION=y +CONFIG_CP15_BARRIER_EMULATION=y +CONFIG_SETEND_EMULATION=y +# CONFIG_ARM64_SW_TTBR0_PAN is not set + +# +# ARMv8.1 architectural features +# +CONFIG_ARM64_HW_AFDBM=y +CONFIG_ARM64_PAN=y +# CONFIG_ARM64_LSE_ATOMICS is not set +CONFIG_ARM64_VHE=y + +# +# ARMv8.2 architectural features +# +CONFIG_ARM64_UAO=y +CONFIG_ARM64_PMEM=y +CONFIG_ARM64_RAS_EXTN=y +CONFIG_ARM64_SVE=y +CONFIG_ARM64_MODULE_PLTS=y +CONFIG_RELOCATABLE=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_RANDOMIZE_MODULE_REGION_FULL=y + +# +# Boot options +# +CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y +CONFIG_CMDLINE="" +# CONFIG_CMDLINE_FORCE is not set +CONFIG_EFI_STUB=y +CONFIG_EFI=y +CONFIG_DMI=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BINFMT_MISC=m +CONFIG_COREDUMP=y +CONFIG_COMPAT=y +CONFIG_SYSVIPC_COMPAT=y + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=y +CONFIG_PM_DEBUG=y +CONFIG_PM_ADVANCED_DEBUG=y +# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_SLEEP_DEBUG=y +# CONFIG_DPM_WATCHDOG is not set +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_CPU_PM=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y + +# +# CPU Power Management +# + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_DT_IDLE_STATES=y + +# +# ARM CPU Idle Drivers +# +CONFIG_ARM_CPUIDLE=y + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_CPUFREQ_DT=m +CONFIG_CPUFREQ_DT_PLATDEV=y +CONFIG_ACPI_CPPC_CPUFREQ=m +# CONFIG_ARM_ARMADA_37XX_CPUFREQ is not set +# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set +CONFIG_ARM_SCMI_CPUFREQ=m +CONFIG_ARM_TEGRA20_CPUFREQ=y +CONFIG_ARM_TEGRA124_CPUFREQ=m +# CONFIG_ARM_TEGRA186_CPUFREQ is not set +# CONFIG_QORIQ_CPUFREQ is not set +CONFIG_NET=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +CONFIG_NET_INGRESS=y +CONFIG_NET_EGRESS=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m +# CONFIG_TLS is not set +CONFIG_XFRM=y +CONFIG_XFRM_OFFLOAD=y +CONFIG_XFRM_ALGO=m +CONFIG_XFRM_USER=m +CONFIG_XFRM_SUB_POLICY=y +CONFIG_XFRM_MIGRATE=y +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +# CONFIG_SMC is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_FIB_TRIE_STATS=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE_COMMON=y +CONFIG_IP_MROUTE=y +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m +CONFIG_NET_UDP_TUNNEL=m +CONFIG_NET_FOU=m +CONFIG_NET_FOU_IP_TUNNELS=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_ESP_OFFLOAD=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m +# CONFIG_INET_RAW_DIAG is not set +CONFIG_INET_DIAG_DESTROY=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_NV=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_TCP_CONG_DCTCP=m +CONFIG_TCP_CONG_CDG=m +CONFIG_TCP_CONG_BBR=m +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_ESP_OFFLOAD=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_ILA=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_VTI=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m +CONFIG_IPV6_FOU=m +CONFIG_IPV6_FOU_TUNNEL=m +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +CONFIG_IPV6_SEG6_LWTUNNEL=y +CONFIG_IPV6_SEG6_HMAC=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NET_PTP_CLASSIFY=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=m + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_FAMILY_BRIDGE=y +CONFIG_NETFILTER_FAMILY_ARP=y +CONFIG_NETFILTER_NETLINK_ACCT=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_LOG_COMMON=m +CONFIG_NF_LOG_NETDEV=m +CONFIG_NETFILTER_CONNCOUNT=m +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_GLUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=y +CONFIG_NF_NAT_PROTO_UDPLITE=y +CONFIG_NF_NAT_PROTO_SCTP=y +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_REDIRECT=m +CONFIG_NETFILTER_SYNPROXY=m +CONFIG_NF_TABLES=m +# CONFIG_NF_TABLES_INET is not set +# CONFIG_NF_TABLES_NETDEV is not set +CONFIG_NFT_EXTHDR=m +CONFIG_NFT_META=m +CONFIG_NFT_RT=m +CONFIG_NFT_NUMGEN=m +CONFIG_NFT_CT=m +CONFIG_NFT_SET_RBTREE=m +CONFIG_NFT_SET_HASH=m +CONFIG_NFT_SET_BITMAP=m +CONFIG_NFT_COUNTER=m +CONFIG_NFT_LOG=m +CONFIG_NFT_LIMIT=m +CONFIG_NFT_MASQ=m +CONFIG_NFT_REDIR=m +CONFIG_NFT_NAT=m +CONFIG_NFT_OBJREF=m +CONFIG_NFT_QUEUE=m +CONFIG_NFT_QUOTA=m +CONFIG_NFT_REJECT=m +CONFIG_NFT_COMPAT=m +CONFIG_NFT_HASH=m +# CONFIG_NF_FLOW_TABLE is not set +CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_NAT=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CGROUP=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPCOMP=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_L2TP=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPMARK=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_IPMAC=m +CONFIG_IP_SET_HASH_MAC=m +CONFIG_IP_SET_HASH_NETPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETNET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_SCTP=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_FO=m +CONFIG_IP_VS_OVF=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_NFCT=y +CONFIG_IP_VS_PE_SIP=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_SOCKET_IPV4=m +# CONFIG_NF_TABLES_IPV4 is not set +# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_DUP_IPV4=m +CONFIG_NF_LOG_ARP=m +CONFIG_NF_LOG_IPV4=m +CONFIG_NF_REJECT_IPV4=m +CONFIG_NF_NAT_IPV4=m +CONFIG_NF_NAT_MASQUERADE_IPV4=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SYNPROXY=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_SOCKET_IPV6=m +# CONFIG_NF_TABLES_IPV6 is not set +CONFIG_NF_DUP_IPV6=m +CONFIG_NF_REJECT_IPV6=m +CONFIG_NF_LOG_IPV6=m +CONFIG_NF_NAT_IPV6=m +CONFIG_NF_NAT_MASQUERADE_IPV6=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m +CONFIG_IP6_NF_MATCH_RT=m +# CONFIG_IP6_NF_MATCH_SRH is not set +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_TARGET_SYNPROXY=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_IP6_NF_NAT=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m +# CONFIG_NF_TABLES_BRIDGE is not set +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m + +# +# DCCP CCIDs Configuration +# +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=y +# CONFIG_IP_DCCP_CCID3_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=y + +# +# DCCP Kernel Hacking +# +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_OBJCNT is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y +CONFIG_INET_SCTP_DIAG=m +CONFIG_RDS=m +CONFIG_RDS_RDMA=m +CONFIG_RDS_TCP=m +# CONFIG_RDS_DEBUG is not set +CONFIG_TIPC=m +CONFIG_TIPC_MEDIA_IB=y +CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TIPC_DIAG=m +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_DEBUGFS=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_MRP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y +CONFIG_NET_DSA=m +CONFIG_NET_DSA_LEGACY=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +# CONFIG_DECNET is not set +CONFIG_LLC=m +CONFIG_LLC2=m +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +CONFIG_PHONET=m +CONFIG_6LOWPAN=m +# CONFIG_6LOWPAN_DEBUGFS is not set +CONFIG_6LOWPAN_NHC=m +CONFIG_6LOWPAN_NHC_DEST=m +CONFIG_6LOWPAN_NHC_FRAGMENT=m +CONFIG_6LOWPAN_NHC_HOP=m +CONFIG_6LOWPAN_NHC_IPV6=m +CONFIG_6LOWPAN_NHC_MOBILITY=m +CONFIG_6LOWPAN_NHC_ROUTING=m +CONFIG_6LOWPAN_NHC_UDP=m +CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m +CONFIG_6LOWPAN_GHC_UDP=m +CONFIG_6LOWPAN_GHC_ICMPV6=m +CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m +CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m +CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m +CONFIG_IEEE802154=m +# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set +CONFIG_IEEE802154_SOCKET=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_MAC802154=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +# CONFIG_NET_SCH_CBS is not set +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m +CONFIG_NET_SCH_FQ=m +CONFIG_NET_SCH_HHF=m +CONFIG_NET_SCH_PIE=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m +# CONFIG_NET_SCH_DEFAULT is not set + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_CLS_BPF=m +CONFIG_NET_CLS_FLOWER=m +CONFIG_NET_CLS_MATCHALL=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_CANID=m +CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_EMATCH_IPT=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_SAMPLE=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_ACT_VLAN=m +CONFIG_NET_ACT_BPF=m +CONFIG_NET_ACT_CONNMARK=m +CONFIG_NET_ACT_SKBMOD=m +CONFIG_NET_ACT_IFE=m +CONFIG_NET_ACT_TUNNEL_KEY=m +CONFIG_NET_IFE_SKBMARK=m +CONFIG_NET_IFE_SKBPRIO=m +CONFIG_NET_IFE_SKBTCINDEX=m +CONFIG_NET_CLS_IND=y +CONFIG_NET_SCH_FIFO=y +CONFIG_DCB=y +CONFIG_DNS_RESOLVER=m +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_BATMAN_V is not set +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y +CONFIG_BATMAN_ADV_MCAST=y +CONFIG_BATMAN_ADV_DEBUGFS=y +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_OPENVSWITCH_GRE=m +CONFIG_OPENVSWITCH_VXLAN=m +CONFIG_OPENVSWITCH_GENEVE=m +CONFIG_VSOCKETS=m +CONFIG_VSOCKETS_DIAG=m +CONFIG_VIRTIO_VSOCKETS=m +CONFIG_VIRTIO_VSOCKETS_COMMON=m +CONFIG_NETLINK_DIAG=m +CONFIG_MPLS=y +CONFIG_NET_MPLS_GSO=y +CONFIG_MPLS_ROUTING=m +CONFIG_MPLS_IPTUNNEL=m +CONFIG_NET_NSH=m +# CONFIG_HSR is not set +CONFIG_NET_SWITCHDEV=y +CONFIG_NET_L3_MASTER_DEV=y +# CONFIG_QRTR is not set +# CONFIG_NET_NCSI is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +CONFIG_CGROUP_NET_PRIO=y +CONFIG_CGROUP_NET_CLASSID=y +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +CONFIG_BPF_JIT=y +# CONFIG_BPF_STREAM_PARSER is not set +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +CONFIG_NET_DROP_MONITOR=m +# CONFIG_HAMRADIO is not set +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m +CONFIG_CAN_GW=m + +# +# CAN Device Drivers +# +CONFIG_CAN_VCAN=m +# CONFIG_CAN_VXCAN is not set +CONFIG_CAN_SLCAN=m +CONFIG_CAN_DEV=m +CONFIG_CAN_CALC_BITTIMING=y +# CONFIG_CAN_LEDS is not set +# CONFIG_CAN_GRCAN is not set +# CONFIG_CAN_XILINXCAN is not set +# CONFIG_CAN_C_CAN is not set +# CONFIG_CAN_CC770 is not set +# CONFIG_CAN_IFI_CANFD is not set +# CONFIG_CAN_M_CAN is not set +# CONFIG_CAN_PEAK_PCIEFD is not set +CONFIG_CAN_SJA1000=m +CONFIG_CAN_SJA1000_ISA=m +# CONFIG_CAN_SJA1000_PLATFORM is not set +CONFIG_CAN_EMS_PCI=m +CONFIG_CAN_PEAK_PCI=m +CONFIG_CAN_PEAK_PCIEC=y +CONFIG_CAN_KVASER_PCI=m +CONFIG_CAN_PLX_PCI=m +CONFIG_CAN_SOFTING=m + +# +# CAN SPI interfaces +# +# CONFIG_CAN_HI311X is not set +# CONFIG_CAN_MCP251X is not set + +# +# CAN USB interfaces +# +CONFIG_CAN_EMS_USB=m +CONFIG_CAN_ESD_USB2=m +CONFIG_CAN_GS_USB=m +CONFIG_CAN_KVASER_USB=m +CONFIG_CAN_PEAK_USB=m +CONFIG_CAN_8DEV_USB=m +# CONFIG_CAN_MCBA_USB is not set +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_BT=m +CONFIG_BT_BREDR=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +CONFIG_BT_HS=y +CONFIG_BT_LE=y +CONFIG_BT_6LOWPAN=m +CONFIG_BT_LEDS=y +# CONFIG_BT_SELFTEST is not set +CONFIG_BT_DEBUGFS=y + +# +# Bluetooth device drivers +# +CONFIG_BT_INTEL=m +CONFIG_BT_BCM=m +CONFIG_BT_RTL=m +CONFIG_BT_QCA=m +CONFIG_BT_HCIBTUSB=m +# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set +CONFIG_BT_HCIBTUSB_BCM=y +CONFIG_BT_HCIBTUSB_RTL=y +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_SERDEV=y +CONFIG_BT_HCIUART_H4=y +# CONFIG_BT_HCIUART_NOKIA is not set +# CONFIG_BT_HCIUART_BCSP is not set +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIUART_INTEL=y +CONFIG_BT_HCIUART_QCA=y +CONFIG_BT_HCIUART_AG6XX=y +CONFIG_BT_HCIUART_MRVL=y +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m +CONFIG_BT_QCOMSMD=m +CONFIG_BT_HCIRSI=m +CONFIG_AF_RXRPC=m +CONFIG_AF_RXRPC_IPV6=y +# CONFIG_AF_RXRPC_INJECT_LOSS is not set +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=y +# CONFIG_AF_KCM is not set +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +CONFIG_CFG80211_CRDA_SUPPORT=y +CONFIG_CFG80211_WEXT=y +CONFIG_CFG80211_WEXT_EXPORT=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +# CONFIG_MAC80211_RC_MINSTREL_VHT is not set +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_RFKILL=m +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +# CONFIG_RFKILL_GPIO is not set +CONFIG_NET_9P=m +CONFIG_NET_9P_VIRTIO=m +# CONFIG_NET_9P_XEN is not set +CONFIG_NET_9P_RDMA=m +# CONFIG_NET_9P_DEBUG is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +CONFIG_NFC=m +CONFIG_NFC_DIGITAL=m +# CONFIG_NFC_NCI is not set +# CONFIG_NFC_HCI is not set + +# +# Near Field Communication (NFC) devices +# +# CONFIG_NFC_TRF7970A is not set +CONFIG_NFC_SIM=m +CONFIG_NFC_PORT100=m +CONFIG_NFC_PN533=m +CONFIG_NFC_PN533_USB=m +# CONFIG_NFC_PN533_I2C is not set +# CONFIG_NFC_ST95HF is not set +CONFIG_PSAMPLE=m +CONFIG_NET_IFE=m +CONFIG_LWTUNNEL=y +CONFIG_LWTUNNEL_BPF=y +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +CONFIG_NET_DEVLINK=m +CONFIG_MAY_USE_DEVLINK=m +CONFIG_HAVE_EBPF_JIT=y + +# +# Device Drivers +# +CONFIG_ARM_AMBA=y +CONFIG_TEGRA_AHB=y + +# +# Generic Driver Options +# +# CONFIG_UEVENT_HELPER is not set +CONFIG_DEVTMPFS=y +# CONFIG_DEVTMPFS_MOUNT is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set +CONFIG_WANT_DEV_COREDUMP=y +CONFIG_ALLOW_DEV_COREDUMP=y +CONFIG_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_SYS_HYPERVISOR=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_SOC_BUS=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_SPMI=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +CONFIG_DMA_CMA=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=64 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +CONFIG_GENERIC_ARCH_TOPOLOGY=y + +# +# Bus devices +# +# CONFIG_BRCMSTB_GISB_ARB is not set +# CONFIG_HISILICON_LPC is not set +CONFIG_QCOM_EBI2=y +# CONFIG_SIMPLE_PM_BUS is not set +CONFIG_SUNXI_RSB=y +CONFIG_TEGRA_ACONNECT=y +# CONFIG_TEGRA_GMI is not set +CONFIG_VEXPRESS_CONFIG=y +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_MTD=m +# CONFIG_MTD_TESTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_AR7_PARTS=m + +# +# Partition parsers +# + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +# CONFIG_SM_FTL is not set +CONFIG_MTD_OOPS=m +CONFIG_MTD_SWAP=m +# CONFIG_MTD_PARTITIONED_MASTER is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_RAM=m +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_PHYSMAP_OF is not set +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +CONFIG_MTD_DATAFLASH=m +# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set +# CONFIG_MTD_DATAFLASH_OTP is not set +CONFIG_MTD_M25P80=m +# CONFIG_MTD_MCHP23K256 is not set +CONFIG_MTD_SST25L=m +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +# CONFIG_MTD_ONENAND_GENERIC is not set +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_2X_PROGRAM=y +# CONFIG_MTD_NAND is not set + +# +# LPDDR & LPDDR2 PCM memory drivers +# +CONFIG_MTD_LPDDR=m +CONFIG_MTD_QINFO_PROBE=m +CONFIG_MTD_SPI_NOR=m +# CONFIG_MTD_MT81xx_NOR is not set +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +# CONFIG_SPI_CADENCE_QUADSPI is not set +CONFIG_SPI_HISI_SFC=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +CONFIG_MTD_UBI_BLOCK=y +CONFIG_DTC=y +CONFIG_OF=y +# CONFIG_OF_UNITTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_KOBJ=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=m +CONFIG_OF_RESERVED_MEM=y +# CONFIG_OF_OVERLAY is not set +CONFIG_OF_NUMA=y +CONFIG_PARPORT=m +# CONFIG_PARPORT_AX88796 is not set +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +# CONFIG_PNP_DEBUG_MESSAGES is not set + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_NULL_BLK=m +CONFIG_CDROM=m +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +CONFIG_BLK_DEV_DRBD=m +# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SKD=m +# CONFIG_BLK_DEV_SX8 is not set +CONFIG_BLK_DEV_RAM=m +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_CDROM_PKTCDVD is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_XEN_BLKDEV_BACKEND=m +CONFIG_VIRTIO_BLK=m +# CONFIG_VIRTIO_BLK_SCSI is not set +CONFIG_BLK_DEV_RBD=m +# CONFIG_BLK_DEV_RSXX is not set + +# +# NVME Support +# +CONFIG_NVME_CORE=m +CONFIG_BLK_DEV_NVME=m +CONFIG_NVME_MULTIPATH=y +CONFIG_NVME_FABRICS=m +CONFIG_NVME_RDMA=m +CONFIG_NVME_FC=m +CONFIG_NVME_TARGET=m +# CONFIG_NVME_TARGET_LOOP is not set +CONFIG_NVME_TARGET_RDMA=m +CONFIG_NVME_TARGET_FC=m +# CONFIG_NVME_TARGET_FCLOOP is not set + +# +# Misc devices +# +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_AD525X_DPOT=m +CONFIG_AD525X_DPOT_I2C=m +CONFIG_AD525X_DPOT_SPI=m +# CONFIG_DUMMY_IRQ is not set +# CONFIG_PHANTOM is not set +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ICS932S401=m +CONFIG_ENCLOSURE_SERVICES=m +# CONFIG_HP_ILO is not set +CONFIG_QCOM_COINCELL=m +CONFIG_APDS9802ALS=m +CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +CONFIG_SRAM=y +CONFIG_VEXPRESS_SYSCFG=y +# CONFIG_PCI_ENDPOINT_TEST is not set +CONFIG_MISC_RTSX=m +CONFIG_C2PORT=m + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEPROM_93CX6=m +# CONFIG_EEPROM_93XX46 is not set +# CONFIG_EEPROM_IDT_89HPESX is not set +CONFIG_CB710_CORE=m +# CONFIG_CB710_DEBUG is not set +CONFIG_CB710_DEBUG_ASSUMPTIONS=y + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m +CONFIG_ALTERA_STAPL=m + +# +# Intel MIC & related support +# + +# +# Intel MIC Bus Driver +# + +# +# SCIF Bus Driver +# + +# +# VOP Bus Driver +# + +# +# Intel MIC Host Driver +# + +# +# Intel MIC Card Driver +# + +# +# SCIF Driver +# + +# +# Intel MIC Coprocessor State Management (COSM) Drivers +# + +# +# VOP Driver +# +# CONFIG_GENWQE is not set +# CONFIG_ECHO is not set +CONFIG_MISC_RTSX_PCI=m +CONFIG_MISC_RTSX_USB=m + +# +# SCSI device support +# +CONFIG_SCSI_MOD=m +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=m +CONFIG_SCSI_DMA=y +CONFIG_SCSI_NETLINK=y +# CONFIG_SCSI_MQ_DEFAULT is not set +# CONFIG_SCSI_PROC_FS is not set + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m +CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m +CONFIG_BE2ISCSI=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_HISI_SAS=m +CONFIG_SCSI_HISI_SAS_PCI=m +CONFIG_SCSI_MVSAS=m +# CONFIG_SCSI_MVSAS_DEBUG is not set +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m +CONFIG_SCSI_ADVANSYS=m +# CONFIG_SCSI_ARCMSR is not set +CONFIG_SCSI_ESAS2R=m +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +CONFIG_SCSI_MPT2SAS=m +CONFIG_SCSI_SMARTPQI=m +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +# CONFIG_SCSI_UFS_DWC_TC_PCI is not set +# CONFIG_SCSI_UFSHCD_PLATFORM is not set +CONFIG_SCSI_HPTIOP=m +CONFIG_XEN_SCSI_FRONTEND=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_FCOE=m +CONFIG_SCSI_SNIC=m +# CONFIG_SCSI_SNIC_DEBUG_FS is not set +CONFIG_SCSI_DMX3191D=m +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +CONFIG_SCSI_QLA_FC=m +CONFIG_TCM_QLA2XXX=m +# CONFIG_TCM_QLA2XXX_DEBUG is not set +CONFIG_SCSI_QLA_ISCSI=m +# CONFIG_QEDI is not set +# CONFIG_QEDF is not set +CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_AM53C974 is not set +CONFIG_SCSI_WD719X=m +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m +CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_VIRTIO=m +CONFIG_SCSI_CHELSIO_FCOE=m +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_SCSI_DH=y +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_HAVE_PATA_PLATFORM=y +CONFIG_ATA=m +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATA_ACPI=y +CONFIG_SATA_ZPODD=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI=m +CONFIG_SATA_MOBILE_LPM_POLICY=0 +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_AHCI_CEVA is not set +CONFIG_AHCI_MVEBU=m +# CONFIG_AHCI_SUNXI is not set +CONFIG_AHCI_TEGRA=m +CONFIG_AHCI_XGENE=m +# CONFIG_AHCI_QORIQ is not set +CONFIG_SATA_AHCI_SEATTLE=m +# CONFIG_SATA_INIC162X is not set +CONFIG_SATA_ACARD_AHCI=m +CONFIG_SATA_SIL24=m +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SX4=m +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +CONFIG_ATA_PIIX=m +# CONFIG_SATA_DWC is not set +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_SATA_PROMISE=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +CONFIG_PATA_ARTOP=m +# CONFIG_PATA_ATIIXP is not set +CONFIG_PATA_ATP867X=m +CONFIG_PATA_CMD64X=m +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_MARVELL=m +# CONFIG_PATA_NETCELL is not set +CONFIG_PATA_NINJA32=m +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +CONFIG_PATA_RDC=m +CONFIG_PATA_SCH=m +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +CONFIG_PATA_SIS=m +CONFIG_PATA_TOSHIBA=m +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_PLATFORM is not set +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_PATA_ACPI is not set +CONFIG_ATA_GENERIC=m +# CONFIG_PATA_LEGACY is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +# CONFIG_MD_CLUSTER is not set +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_MQ_DEFAULT is not set +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set +CONFIG_DM_BIO_PRISON=m +CONFIG_DM_PERSISTENT_DATA=m +# CONFIG_DM_UNSTRIPED is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_SMQ=m +CONFIG_DM_ERA=m +CONFIG_DM_MIRROR=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_RAID=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_DELAY=m +CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +CONFIG_DM_VERITY=m +# CONFIG_DM_VERITY_FEC is not set +CONFIG_DM_SWITCH=m +CONFIG_DM_LOG_WRITES=m +# CONFIG_DM_INTEGRITY is not set +CONFIG_TARGET_CORE=m +CONFIG_TCM_IBLOCK=m +CONFIG_TCM_FILEIO=m +CONFIG_TCM_PSCSI=m +CONFIG_TCM_USER2=m +CONFIG_LOOPBACK_TARGET=m +CONFIG_TCM_FC=m +CONFIG_ISCSI_TARGET=m +CONFIG_ISCSI_TARGET_CXGB4=m +CONFIG_SBP_TARGET=m +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +# CONFIG_FUSION_LOGGING is not set + +# +# IEEE 1394 (FireWire) support +# +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_SBP2=m +CONFIG_FIREWIRE_NET=m +CONFIG_FIREWIRE_NOSY=m +CONFIG_NETDEVICES=y +CONFIG_MII=m +CONFIG_NET_CORE=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +CONFIG_EQUALIZER=m +# CONFIG_NET_FC is not set +CONFIG_IFB=m +CONFIG_NET_TEAM=m +CONFIG_NET_TEAM_MODE_BROADCAST=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_TEAM_MODE_RANDOM=m +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m +CONFIG_NET_TEAM_MODE_LOADBALANCE=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_IPVLAN=m +CONFIG_IPVTAP=m +CONFIG_VXLAN=m +CONFIG_GENEVE=m +CONFIG_GTP=m +CONFIG_MACSEC=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_TUN=m +CONFIG_TAP=m +# CONFIG_TUN_VNET_CROSS_LE is not set +CONFIG_VETH=m +CONFIG_VIRTIO_NET=m +CONFIG_NLMON=m +CONFIG_NET_VRF=m +# CONFIG_VSOCKMON is not set +# CONFIG_ARCNET is not set +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_DUMMY=m +# CONFIG_ATM_TCP is not set +# CONFIG_ATM_LANAI is not set +# CONFIG_ATM_ENI is not set +CONFIG_ATM_NICSTAR=m +CONFIG_ATM_NICSTAR_USE_SUNI=y +CONFIG_ATM_NICSTAR_USE_IDT77105=y +# CONFIG_ATM_IDT77252 is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +# CONFIG_ATM_HE is not set +CONFIG_ATM_SOLOS=m + +# +# CAIF transport drivers +# + +# +# Distributed Switch Architecture drivers +# +# CONFIG_B53 is not set +# CONFIG_NET_DSA_BCM_SF2 is not set +# CONFIG_NET_DSA_LOOP is not set +# CONFIG_NET_DSA_MT7530 is not set +CONFIG_NET_DSA_MV88E6060=m +# CONFIG_MICROCHIP_KSZ is not set +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +# CONFIG_NET_DSA_MV88E6XXX_PTP is not set +# CONFIG_NET_DSA_QCA8K is not set +# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set +# CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set +CONFIG_ETHERNET=y +CONFIG_MDIO=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NET_VENDOR_AGERE=y +CONFIG_ET131X=m +CONFIG_NET_VENDOR_ALACRITECH=y +# CONFIG_SLICOSS is not set +CONFIG_NET_VENDOR_ALLWINNER=y +# CONFIG_SUN4I_EMAC is not set +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +# CONFIG_ALTERA_TSE is not set +CONFIG_NET_VENDOR_AMAZON=y +CONFIG_NET_VENDOR_AMD=y +# CONFIG_AMD8111_ETH is not set +CONFIG_PCNET32=m +CONFIG_AMD_XGBE=m +# CONFIG_AMD_XGBE_DCB is not set +CONFIG_NET_XGENE=m +CONFIG_NET_XGENE_V2=m +CONFIG_NET_VENDOR_AQUANTIA=y +# CONFIG_NET_VENDOR_ARC is not set +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_ALX=m +# CONFIG_NET_VENDOR_AURORA is not set +CONFIG_NET_CADENCE=y +# CONFIG_MACB is not set +CONFIG_NET_VENDOR_BROADCOM=y +# CONFIG_B44 is not set +# CONFIG_BCMGENET is not set +CONFIG_BNX2=m +CONFIG_CNIC=m +CONFIG_TIGON3=m +CONFIG_TIGON3_HWMON=y +CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y +# CONFIG_SYSTEMPORT is not set +CONFIG_BNXT=m +CONFIG_BNXT_SRIOV=y +CONFIG_BNXT_FLOWER_OFFLOAD=y +# CONFIG_BNXT_DCB is not set +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m +CONFIG_NET_VENDOR_CAVIUM=y +CONFIG_THUNDER_NIC_PF=m +CONFIG_THUNDER_NIC_VF=m +CONFIG_THUNDER_NIC_BGX=m +CONFIG_THUNDER_NIC_RGX=m +CONFIG_CAVIUM_PTP=y +CONFIG_LIQUIDIO=m +# CONFIG_LIQUIDIO_VF is not set +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4_DCB=y +CONFIG_CHELSIO_T4_FCOE=y +CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_LIB=m +CONFIG_NET_VENDOR_CISCO=y +CONFIG_ENIC=m +CONFIG_NET_VENDOR_CORTINA=y +# CONFIG_GEMINI_ETHERNET is not set +# CONFIG_DNET is not set +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_DE2104X_DSL=0 +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_BE2NET=m +CONFIG_BE2NET_HWMON=y +CONFIG_NET_VENDOR_EZCHIP=y +# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set +CONFIG_NET_VENDOR_EXAR=y +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_NET_VENDOR_HISILICON=y +CONFIG_HIX5HD2_GMAC=m +CONFIG_HISI_FEMAC=m +CONFIG_HIP04_ETH=m +CONFIG_HNS_MDIO=m +CONFIG_HNS=m +CONFIG_HNS_DSAF=m +CONFIG_HNS_ENET=m +# CONFIG_HNS3 is not set +CONFIG_NET_VENDOR_HP=y +# CONFIG_HP100 is not set +CONFIG_NET_VENDOR_HUAWEI=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_IGB_HWMON=y +CONFIG_IGBVF=m +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y +CONFIG_IXGBE_DCB=y +CONFIG_IXGBEVF=m +CONFIG_I40E=m +CONFIG_I40E_DCB=y +CONFIG_I40EVF=m +CONFIG_ICE=m +# CONFIG_FM10K is not set +CONFIG_NET_VENDOR_I825XX=y +CONFIG_JME=m +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m +CONFIG_MVNETA=m +CONFIG_MVPP2=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_EN_DCB=y +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_MLX4_CORE_GEN2=y +CONFIG_MLX5_CORE=m +# CONFIG_MLX5_FPGA is not set +CONFIG_MLX5_CORE_EN=y +CONFIG_MLX5_MPFS=y +CONFIG_MLX5_ESWITCH=y +CONFIG_MLX5_CORE_EN_DCB=y +# CONFIG_MLX5_CORE_IPOIB is not set +# CONFIG_MLXSW_CORE is not set +# CONFIG_MLXFW is not set +CONFIG_NET_VENDOR_MICREL=y +# CONFIG_KS8842 is not set +# CONFIG_KS8851 is not set +# CONFIG_KS8851_MLL is not set +CONFIG_KSZ884X_PCI=m +CONFIG_NET_VENDOR_MICROCHIP=y +# CONFIG_ENC28J60 is not set +# CONFIG_ENCX24J600 is not set +# CONFIG_LAN743X is not set +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m +CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NATSEMI=m +CONFIG_NS83820=m +CONFIG_NET_VENDOR_NETRONOME=y +CONFIG_NFP=m +CONFIG_NFP_APP_FLOWER=y +# CONFIG_NFP_DEBUG is not set +CONFIG_NET_VENDOR_NI=y +CONFIG_NET_VENDOR_8390=y +CONFIG_NE2K_PCI=m +CONFIG_NET_VENDOR_NVIDIA=y +# CONFIG_FORCEDETH is not set +CONFIG_NET_VENDOR_OKI=y +# CONFIG_ETHOC is not set +CONFIG_NET_PACKET_ENGINE=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y +CONFIG_QLCNIC_DCB=y +CONFIG_QLCNIC_HWMON=y +CONFIG_QLGE=m +CONFIG_NETXEN_NIC=m +CONFIG_QED=m +CONFIG_QED_LL2=y +CONFIG_QED_SRIOV=y +CONFIG_QEDE=m +CONFIG_QED_RDMA=y +CONFIG_QED_OOO=y +CONFIG_NET_VENDOR_QUALCOMM=y +# CONFIG_QCA7000_SPI is not set +# CONFIG_QCA7000_UART is not set +CONFIG_QCOM_EMAC=m +# CONFIG_RMNET is not set +CONFIG_NET_VENDOR_REALTEK=y +CONFIG_8139CP=m +CONFIG_8139TOO=m +# CONFIG_8139TOO_PIO is not set +CONFIG_8139TOO_TUNE_TWISTER=y +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m +CONFIG_NET_VENDOR_RENESAS=y +CONFIG_NET_VENDOR_RDC=y +CONFIG_R6040=m +CONFIG_NET_VENDOR_ROCKER=y +# CONFIG_ROCKER is not set +CONFIG_NET_VENDOR_SAMSUNG=y +# CONFIG_SXGBE_ETH is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y +# CONFIG_SIS900 is not set +CONFIG_SIS190=m +CONFIG_NET_VENDOR_SOLARFLARE=y +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y +CONFIG_SFC_MCDI_LOGGING=y +CONFIG_SFC_FALCON=m +CONFIG_SFC_FALCON_MTD=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_EPIC100=m +CONFIG_SMSC911X=m +CONFIG_SMSC9420=m +CONFIG_NET_VENDOR_SOCIONEXT=y +CONFIG_SNI_NETSEC=m +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=m +# CONFIG_DWMAC_DWC_QOS_ETH is not set +CONFIG_DWMAC_GENERIC=m +CONFIG_DWMAC_IPQ806X=m +CONFIG_DWMAC_MESON=m +CONFIG_DWMAC_ROCKCHIP=m +CONFIG_DWMAC_SUNXI=m +CONFIG_DWMAC_SUN8I=m +# CONFIG_STMMAC_PCI is not set +CONFIG_NET_VENDOR_SUN=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +CONFIG_CASSINI=m +CONFIG_NIU=m +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_CPSW_ALE is not set +CONFIG_TLAN=m +CONFIG_NET_VENDOR_VIA=y +# CONFIG_VIA_RHINE is not set +CONFIG_VIA_VELOCITY=m +CONFIG_NET_VENDOR_WIZNET=y +# CONFIG_WIZNET_W5100 is not set +# CONFIG_WIZNET_W5300 is not set +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_DWC_XLGMAC is not set +CONFIG_FDDI=y +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_SKFP=m +# CONFIG_HIPPI is not set +# CONFIG_NET_SB1000 is not set +CONFIG_MDIO_DEVICE=m +CONFIG_MDIO_BUS=m +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_BITBANG is not set +CONFIG_MDIO_BUS_MUX=m +# CONFIG_MDIO_BUS_MUX_GPIO is not set +CONFIG_MDIO_BUS_MUX_MMIOREG=m +CONFIG_MDIO_CAVIUM=m +CONFIG_MDIO_HISI_FEMAC=m +# CONFIG_MDIO_OCTEON is not set +# CONFIG_MDIO_SUN4I is not set +CONFIG_MDIO_THUNDER=m +CONFIG_MDIO_XGENE=m +CONFIG_PHYLINK=m +CONFIG_PHYLIB=m +CONFIG_SWPHY=y +# CONFIG_LED_TRIGGER_PHY is not set + +# +# MII PHY device drivers +# +# CONFIG_SFP is not set +CONFIG_AMD_PHY=m +CONFIG_AQUANTIA_PHY=m +CONFIG_AT803X_PHY=m +# CONFIG_BCM7XXX_PHY is not set +CONFIG_BCM87XX_PHY=m +CONFIG_BCM_NET_PHYLIB=m +CONFIG_BROADCOM_PHY=m +CONFIG_CICADA_PHY=m +# CONFIG_CORTINA_PHY is not set +CONFIG_DAVICOM_PHY=m +# CONFIG_DP83822_PHY is not set +CONFIG_DP83848_PHY=m +CONFIG_DP83867_PHY=m +CONFIG_FIXED_PHY=m +CONFIG_ICPLUS_PHY=m +# CONFIG_INTEL_XWAY_PHY is not set +CONFIG_LSI_ET1011C_PHY=m +CONFIG_LXT_PHY=m +CONFIG_MARVELL_PHY=m +CONFIG_MARVELL_10G_PHY=m +CONFIG_MESON_GXL_PHY=m +CONFIG_MICREL_PHY=m +CONFIG_MICROCHIP_PHY=m +CONFIG_MICROSEMI_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_REALTEK_PHY=m +# CONFIG_RENESAS_PHY is not set +# CONFIG_ROCKCHIP_PHY is not set +CONFIG_SMSC_PHY=m +CONFIG_STE10XP=m +CONFIG_TERANETICS_PHY=m +CONFIG_VITESSE_PHY=m +# CONFIG_XILINX_GMII2RGMII is not set +# CONFIG_MICREL_KS8995MA is not set +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y + +# +# Host-side USB support is needed for USB Network Adapter support +# +CONFIG_USB_NET_DRIVERS=m +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_HUAWEI_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SR9700=m +CONFIG_USB_NET_SR9800=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET_ENABLE=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_CDC_PHONET=m +CONFIG_USB_IPHETH=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_USB_NET_CH9200=m +CONFIG_WLAN=y +# CONFIG_WIRELESS_WDS is not set +CONFIG_WLAN_VENDOR_ADMTEK=y +CONFIG_ADM8211=m +CONFIG_ATH_COMMON=m +CONFIG_WLAN_VENDOR_ATH=y +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH5K_PCI=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +# CONFIG_ATH9K_AHB is not set +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_DYNACK is not set +# CONFIG_ATH9K_WOW is not set +CONFIG_ATH9K_RFKILL=y +# CONFIG_ATH9K_CHANNEL_CONTEXT is not set +CONFIG_ATH9K_PCOEM=y +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +# CONFIG_ATH9K_HWRNG is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +CONFIG_ATH6KL=m +CONFIG_ATH6KL_SDIO=m +CONFIG_ATH6KL_USB=m +# CONFIG_ATH6KL_DEBUG is not set +# CONFIG_ATH6KL_TRACING is not set +CONFIG_AR5523=m +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y +CONFIG_WIL6210_TRACING=y +CONFIG_WIL6210_DEBUGFS=y +CONFIG_ATH10K=m +CONFIG_ATH10K_PCI=m +# CONFIG_ATH10K_AHB is not set +# CONFIG_ATH10K_SDIO is not set +# CONFIG_ATH10K_USB is not set +# CONFIG_ATH10K_DEBUG is not set +# CONFIG_ATH10K_DEBUGFS is not set +# CONFIG_ATH10K_TRACING is not set +CONFIG_WCN36XX=m +# CONFIG_WCN36XX_DEBUGFS is not set +CONFIG_WLAN_VENDOR_ATMEL=y +# CONFIG_ATMEL is not set +CONFIG_AT76C50X_USB=m +CONFIG_WLAN_VENDOR_BROADCOM=y +CONFIG_B43=m +CONFIG_B43_BCMA=y +CONFIG_B43_SSB=y +CONFIG_B43_BUSES_BCMA_AND_SSB=y +# CONFIG_B43_BUSES_BCMA is not set +# CONFIG_B43_BUSES_SSB is not set +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_SDIO=y +CONFIG_B43_BCMA_PIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_G=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_PHY_HT=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +CONFIG_B43LEGACY_DEBUG=y +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMSMAC=m +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_PROTO_BCDC=y +CONFIG_BRCMFMAC_PROTO_MSGBUF=y +CONFIG_BRCMFMAC_SDIO=y +CONFIG_BRCMFMAC_USB=y +CONFIG_BRCMFMAC_PCIE=y +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set +CONFIG_WLAN_VENDOR_CISCO=y +CONFIG_WLAN_VENDOR_INTEL=y +# CONFIG_IPW2100 is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLWIFI_LEDS=y +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +CONFIG_IWLWIFI_OPMODE_MODULAR=y +# CONFIG_IWLWIFI_BCAST_FILTERING is not set +# CONFIG_IWLWIFI_PCIE_RTPM is not set + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_WLAN_VENDOR_INTERSIL=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +# CONFIG_HERMES is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +# CONFIG_P54_SPI is not set +CONFIG_P54_LEDS=y +# CONFIG_PRISM54 is not set +CONFIG_WLAN_VENDOR_MARVELL=y +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_SPI is not set +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +# CONFIG_MWIFIEX is not set +CONFIG_MWL8K=m +CONFIG_WLAN_VENDOR_MEDIATEK=y +CONFIG_MT7601U=m +# CONFIG_MT76x2E is not set +CONFIG_WLAN_VENDOR_RALINK=y +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +# CONFIG_RT2800USB_UNKNOWN is not set +CONFIG_RT2800_LIB=m +CONFIG_RT2800_LIB_MMIO=m +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_WLAN_VENDOR_REALTEK=y +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8723BE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192EE=m +CONFIG_RTL8821AE=m +CONFIG_RTL8192CU=m +CONFIG_RTLWIFI=m +CONFIG_RTLWIFI_PCI=m +CONFIG_RTLWIFI_USB=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192C_COMMON=m +CONFIG_RTL8723_COMMON=m +CONFIG_RTLBTCOEXIST=m +CONFIG_RTL8XXXU=m +# CONFIG_RTL8XXXU_UNTESTED is not set +CONFIG_WLAN_VENDOR_RSI=y +CONFIG_RSI_91X=m +CONFIG_RSI_DEBUGFS=y +# CONFIG_RSI_SDIO is not set +CONFIG_RSI_USB=m +CONFIG_RSI_COEX=y +CONFIG_WLAN_VENDOR_ST=y +# CONFIG_CW1200 is not set +CONFIG_WLAN_VENDOR_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SPI=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SPI=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_WLAN_VENDOR_ZYDAS=y +# CONFIG_USB_ZD1201 is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_WLAN_VENDOR_QUANTENNA=y +# CONFIG_QTNFMAC_PEARL_PCIE is not set +CONFIG_MAC80211_HWSIM=m +CONFIG_USB_NET_RNDIS_WLAN=m + +# +# WiMAX Wireless Broadband devices +# +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 +# CONFIG_WAN is not set +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKELB=m +CONFIG_IEEE802154_AT86RF230=m +# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set +CONFIG_IEEE802154_MRF24J40=m +CONFIG_IEEE802154_CC2520=m +CONFIG_IEEE802154_ATUSB=m +CONFIG_IEEE802154_ADF7242=m +# CONFIG_IEEE802154_CA8210 is not set +CONFIG_IEEE802154_MCR20A=m +CONFIG_XEN_NETDEV_FRONTEND=m +CONFIG_XEN_NETDEV_BACKEND=m +# CONFIG_VMXNET3 is not set +# CONFIG_FUJITSU_ES is not set +# CONFIG_NETDEVSIM is not set +# CONFIG_ISDN is not set +# CONFIG_NVM is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_LEDS=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADC is not set +CONFIG_KEYBOARD_ADP5588=m +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT2160=m +# CONFIG_KEYBOARD_DLINK_DIR685 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=m +# CONFIG_KEYBOARD_GPIO_POLLED is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +CONFIG_KEYBOARD_LM8323=m +# CONFIG_KEYBOARD_LM8333 is not set +CONFIG_KEYBOARD_MAX7359=m +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +CONFIG_KEYBOARD_TEGRA=m +CONFIG_KEYBOARD_OPENCORES=m +# CONFIG_KEYBOARD_SAMSUNG is not set +CONFIG_KEYBOARD_STOWAWAY=m +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_SUN4I_LRADC is not set +# CONFIG_KEYBOARD_OMAP4 is not set +# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_CROS_EC is not set +# CONFIG_KEYBOARD_CAP11XX is not set +# CONFIG_KEYBOARD_BCM is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_SENTELIC=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_PS2_FOCALTECH=y +CONFIG_MOUSE_PS2_SMBUS=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_CYAPA is not set +# CONFIG_MOUSE_ELAN_I2C is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TABLET=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_HANWANG=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_USB_PEGASUS=m +CONFIG_TABLET_SERIAL_WACOM4=m +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_ATMEL_CAPTOUCH is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_E3X0_BUTTON is not set +CONFIG_INPUT_PM8941_PWRKEY=m +# CONFIG_INPUT_PM8XXX_VIBRATOR is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_BEEPER is not set +# CONFIG_INPUT_GPIO_DECODER is not set +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +# CONFIG_INPUT_REGULATOR_HAPTIC is not set +CONFIG_INPUT_AXP20X_PEK=m +CONFIG_INPUT_UINPUT=m +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_PWM_BEEPER is not set +# CONFIG_INPUT_PWM_VIBRA is not set +# CONFIG_INPUT_RK805_PWRKEY is not set +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_CMA3000 is not set +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y +# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set +# CONFIG_INPUT_DRV260X_HAPTICS is not set +# CONFIG_INPUT_DRV2665_HAPTICS is not set +# CONFIG_INPUT_DRV2667_HAPTICS is not set +CONFIG_INPUT_HISI_POWERKEY=m +CONFIG_RMI4_CORE=m +# CONFIG_RMI4_I2C is not set +# CONFIG_RMI4_SPI is not set +# CONFIG_RMI4_SMB is not set +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=m +CONFIG_RMI4_2D_SENSOR=y +CONFIG_RMI4_F11=y +CONFIG_RMI4_F12=y +CONFIG_RMI4_F30=y +# CONFIG_RMI4_F34 is not set +# CONFIG_RMI4_F54 is not set +# CONFIG_RMI4_F55 is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_PARKBD is not set +# CONFIG_SERIO_AMBAKMI is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_SUN4I_PS2 is not set +# CONFIG_SERIO_GPIO_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_NOZOMI=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_8250_FINTEK is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +# CONFIG_SERIAL_8250_MANY_PORTS is not set +# CONFIG_SERIAL_8250_ASPEED_VUART is not set +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_RSA is not set +CONFIG_SERIAL_8250_BCM2835AUX=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_RT288X is not set +CONFIG_SERIAL_8250_MOXA=m +CONFIG_SERIAL_OF_PLATFORM=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_AMBA_PL010=y +CONFIG_SERIAL_AMBA_PL010_CONSOLE=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set +CONFIG_SERIAL_MESON=y +CONFIG_SERIAL_MESON_CONSOLE=y +CONFIG_SERIAL_TEGRA=y +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_SERIAL_MSM=y +CONFIG_SERIAL_MSM_CONSOLE=y +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_SERIAL_ARC is not set +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set +CONFIG_SERIAL_MVEBU_UART=y +CONFIG_SERIAL_MVEBU_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=m +CONFIG_TTY_PRINTK=m +# CONFIG_PRINTER is not set +# CONFIG_PPDEV is not set +CONFIG_HVC_DRIVER=y +CONFIG_HVC_IRQ=y +CONFIG_HVC_XEN=y +CONFIG_HVC_XEN_FRONTEND=y +# CONFIG_HVC_DCC is not set +CONFIG_VIRTIO_CONSOLE=m +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_DMI_DECODE=y +CONFIG_IPMI_PROC_INTERFACE=y +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_SSIF=m +# CONFIG_IPMI_WATCHDOG is not set +# CONFIG_IPMI_POWEROFF is not set +CONFIG_HW_RANDOM=m +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_BCM2835=m +# CONFIG_HW_RANDOM_OMAP is not set +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_HW_RANDOM_HISI=m +CONFIG_HW_RANDOM_MSM=m +CONFIG_HW_RANDOM_XGENE=m +CONFIG_HW_RANDOM_MESON=m +CONFIG_HW_RANDOM_CAVIUM=m +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# PCMCIA character devices +# +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +# CONFIG_XILLYBUS is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_ACPI_I2C_OPREGION=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_MUX_GPIO is not set +# CONFIG_I2C_MUX_GPMUX is not set +# CONFIG_I2C_MUX_LTC4306 is not set +# CONFIG_I2C_MUX_PCA9541 is not set +# CONFIG_I2C_MUX_PCA954x is not set +# CONFIG_I2C_MUX_PINCTRL is not set +# CONFIG_I2C_MUX_REG is not set +# CONFIG_I2C_DEMUX_PINCTRL is not set +# CONFIG_I2C_MUX_MLXCPLD is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_HIX5HD2 is not set +# CONFIG_I2C_I801 is not set +CONFIG_I2C_ISCH=m +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# ACPI drivers +# +# CONFIG_I2C_SCMI is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_BCM2835=m +# CONFIG_I2C_CADENCE is not set +# CONFIG_I2C_CBUS_GPIO is not set +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +# CONFIG_I2C_DESIGNWARE_SLAVE is not set +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EMEV2 is not set +# CONFIG_I2C_GPIO is not set +CONFIG_I2C_MESON=m +CONFIG_I2C_MV64XXX=m +# CONFIG_I2C_NOMADIK is not set +CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_PXA=m +# CONFIG_I2C_PXA_SLAVE is not set +CONFIG_I2C_QUP=m +CONFIG_I2C_RK3X=m +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_SYNQUACER=m +CONFIG_I2C_TEGRA=m +CONFIG_I2C_TEGRA_BPMP=y +# CONFIG_I2C_VERSATILE is not set +CONFIG_I2C_THUNDERX=m +# CONFIG_I2C_XILINX is not set +CONFIG_I2C_XLP9XX=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_DIOLAN_U2C=m +# CONFIG_I2C_PARPORT is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +CONFIG_I2C_ROBOTFUZZ_OSIF=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_CROS_EC_TUNNEL=m +CONFIG_I2C_XGENE_SLIMPRO=m +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +CONFIG_SPI_ARMADA_3700=m +# CONFIG_SPI_AXI_SPI_ENGINE is not set +CONFIG_SPI_BCM2835=m +CONFIG_SPI_BCM2835AUX=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_CADENCE is not set +# CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_GPIO is not set +CONFIG_SPI_LM70_LLP=m +# CONFIG_SPI_FSL_SPI is not set +# CONFIG_SPI_MESON_SPICC is not set +CONFIG_SPI_MESON_SPIFC=m +# CONFIG_SPI_OC_TINY is not set +# CONFIG_SPI_ORION is not set +# CONFIG_SPI_PL022 is not set +# CONFIG_SPI_PXA2XX is not set +# CONFIG_SPI_ROCKCHIP is not set +CONFIG_SPI_QUP=m +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_SUN4I is not set +# CONFIG_SPI_SUN6I is not set +CONFIG_SPI_TEGRA114=m +CONFIG_SPI_TEGRA20_SFLASH=m +CONFIG_SPI_TEGRA20_SLINK=m +CONFIG_SPI_THUNDERX=m +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +CONFIG_SPI_XLP=m +# CONFIG_SPI_ZYNQMP_GQSPI is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_LOOPBACK_TEST is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPI_SLAVE is not set +CONFIG_SPMI=y +CONFIG_SPMI_MSM_PMIC_ARB=y +# CONFIG_HSI is not set +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +CONFIG_PPS_CLIENT_LDISC=m +CONFIG_PPS_CLIENT_PARPORT=m +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PINCTRL=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_PINMUX=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +CONFIG_PINCTRL_AXP209=m +CONFIG_PINCTRL_AMD=y +# CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_ROCKCHIP=y +CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_SX150X is not set +CONFIG_PINCTRL_MAX77620=y +# CONFIG_PINCTRL_RK805 is not set +CONFIG_PINCTRL_BCM2835=y +CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_ARMADA_AP806=y +CONFIG_PINCTRL_ARMADA_CP110=y +CONFIG_PINCTRL_ARMADA_37XX=y +CONFIG_PINCTRL_MSM=y +# CONFIG_PINCTRL_APQ8064 is not set +# CONFIG_PINCTRL_APQ8084 is not set +# CONFIG_PINCTRL_IPQ4019 is not set +# CONFIG_PINCTRL_IPQ8064 is not set +# CONFIG_PINCTRL_IPQ8074 is not set +# CONFIG_PINCTRL_MSM8660 is not set +# CONFIG_PINCTRL_MSM8960 is not set +# CONFIG_PINCTRL_MDM9615 is not set +# CONFIG_PINCTRL_MSM8X74 is not set +CONFIG_PINCTRL_MSM8916=y +# CONFIG_PINCTRL_MSM8994 is not set +CONFIG_PINCTRL_MSM8996=y +# CONFIG_PINCTRL_MSM8998 is not set +# CONFIG_PINCTRL_QDF2XXX is not set +CONFIG_PINCTRL_QCOM_SPMI_PMIC=y +CONFIG_PINCTRL_QCOM_SSBI_PMIC=y +# CONFIG_PINCTRL_SDM845 is not set +CONFIG_PINCTRL_SUNXI=y +CONFIG_PINCTRL_SUN8I_H3_R=y +CONFIG_PINCTRL_SUN50I_A64=y +CONFIG_PINCTRL_SUN50I_A64_R=y +CONFIG_PINCTRL_SUN50I_H5=y +CONFIG_PINCTRL_SUN50I_H6=y +CONFIG_PINCTRL_TEGRA=y +CONFIG_PINCTRL_TEGRA124=y +CONFIG_PINCTRL_TEGRA210=y +CONFIG_PINCTRL_TEGRA_XUSB=y +CONFIG_PINCTRL_MESON=y +CONFIG_PINCTRL_MESON_GXBB=y +CONFIG_PINCTRL_MESON_GXL=y +CONFIG_PINCTRL_MESON8_PMX=y +CONFIG_PINCTRL_MESON_AXG=y +CONFIG_PINCTRL_MESON_AXG_PMX=y +CONFIG_GPIOLIB=y +CONFIG_OF_GPIO=y +CONFIG_GPIO_ACPI=y +CONFIG_GPIOLIB_IRQCHIP=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=y + +# +# Memory mapped GPIO drivers +# +# CONFIG_GPIO_74XX_MMIO is not set +# CONFIG_GPIO_ALTERA is not set +# CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_RASPBERRYPI_EXP=m +# CONFIG_GPIO_DWAPB is not set +# CONFIG_GPIO_EXAR is not set +# CONFIG_GPIO_FTGPIO010 is not set +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_HLWD is not set +CONFIG_GPIO_MB86S7X=m +# CONFIG_GPIO_MOCKUP is not set +CONFIG_GPIO_MVEBU=y +CONFIG_GPIO_PL061=y +# CONFIG_GPIO_SYSCON is not set +CONFIG_GPIO_TEGRA=y +# CONFIG_GPIO_THUNDERX is not set +CONFIG_GPIO_XGENE=y +CONFIG_GPIO_XGENE_SB=m +# CONFIG_GPIO_XILINX is not set +CONFIG_GPIO_XLP=y + +# +# I2C GPIO expanders +# +# CONFIG_GPIO_ADP5588 is not set +# CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_TPIC2810 is not set + +# +# MFD GPIO expanders +# +CONFIG_GPIO_MAX77620=y + +# +# PCI GPIO expanders +# +# CONFIG_GPIO_PCI_IDIO_16 is not set +# CONFIG_GPIO_PCIE_IDIO_24 is not set +# CONFIG_GPIO_RDC321X is not set + +# +# SPI GPIO expanders +# +# CONFIG_GPIO_74X164 is not set +# CONFIG_GPIO_MAX3191X is not set +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_PISOSR is not set +# CONFIG_GPIO_XRA1403 is not set + +# +# USB GPIO expanders +# +CONFIG_GPIO_VIPERBOARD=m +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_MATROX is not set +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +# CONFIG_W1_MASTER_DS1WM is not set +CONFIG_W1_MASTER_GPIO=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2405=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m +CONFIG_W1_SLAVE_DS2406=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2805=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +CONFIG_W1_SLAVE_DS2438=m +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m +CONFIG_W1_SLAVE_DS28E17=m +CONFIG_POWER_AVS=y +CONFIG_ROCKCHIP_IODOMAIN=m +CONFIG_POWER_RESET=y +# CONFIG_POWER_RESET_BRCMSTB is not set +# CONFIG_POWER_RESET_GPIO is not set +# CONFIG_POWER_RESET_GPIO_RESTART is not set +CONFIG_POWER_RESET_HISI=y +CONFIG_POWER_RESET_MSM=y +# CONFIG_POWER_RESET_LTC2952 is not set +# CONFIG_POWER_RESET_RESTART is not set +CONFIG_POWER_RESET_VEXPRESS=y +CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +# CONFIG_SYSCON_REBOOT_MODE is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_GENERIC_ADC_BATTERY is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2760 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_LEGO_EV3 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_CHARGER_SBS is not set +# CONFIG_MANAGER_SBS is not set +CONFIG_BATTERY_BQ27XXX=m +# CONFIG_BATTERY_BQ27XXX_I2C is not set +CONFIG_BATTERY_BQ27XXX_HDQ=m +CONFIG_CHARGER_AXP20X=m +CONFIG_BATTERY_AXP20X=m +CONFIG_AXP20X_POWER=m +CONFIG_AXP288_FUEL_GAUGE=m +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_LTC3651 is not set +# CONFIG_CHARGER_DETECTOR_MAX14656 is not set +CONFIG_CHARGER_QCOM_SMBB=m +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_BQ24190 is not set +# CONFIG_CHARGER_BQ24257 is not set +# CONFIG_CHARGER_BQ24735 is not set +# CONFIG_CHARGER_BQ25890 is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_CHARGER_RT9455 is not set +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_AD7314 is not set +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +CONFIG_SENSORS_ADM1029=m +# CONFIG_SENSORS_ADM1031 is not set +CONFIG_SENSORS_ADM9240=m +# CONFIG_SENSORS_ADT7310 is not set +# CONFIG_SENSORS_ADT7410 is not set +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ARM_SCMI=m +# CONFIG_SENSORS_ASPEED is not set +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m +# CONFIG_SENSORS_DS1621 is not set +CONFIG_SENSORS_I5K_AMB=m +# CONFIG_SENSORS_F71805F is not set +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FTSTEUTATES=m +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +CONFIG_SENSORS_G760A=m +# CONFIG_SENSORS_G762 is not set +# CONFIG_SENSORS_GPIO_FAN is not set +# CONFIG_SENSORS_HIH6130 is not set +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +# CONFIG_SENSORS_IIO_HWMON is not set +# CONFIG_SENSORS_IT87 is not set +CONFIG_SENSORS_JC42=m +# CONFIG_SENSORS_POWR1220 is not set +CONFIG_SENSORS_LINEAGE=m +# CONFIG_SENSORS_LTC2945 is not set +# CONFIG_SENSORS_LTC2990 is not set +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +# CONFIG_SENSORS_LTC4222 is not set +CONFIG_SENSORS_LTC4245=m +# CONFIG_SENSORS_LTC4260 is not set +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX16065=m +# CONFIG_SENSORS_MAX1619 is not set +CONFIG_SENSORS_MAX1668=m +# CONFIG_SENSORS_MAX197 is not set +# CONFIG_SENSORS_MAX31722 is not set +# CONFIG_SENSORS_MAX6621 is not set +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +# CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set +# CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_TC654 is not set +CONFIG_SENSORS_ADCXX=m +# CONFIG_SENSORS_LM63 is not set +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM73=m +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +CONFIG_SENSORS_LM93=m +# CONFIG_SENSORS_LM95234 is not set +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +# CONFIG_SENSORS_PC87360 is not set +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_NCT6683=m +CONFIG_SENSORS_NCT6775=m +# CONFIG_SENSORS_NCT7802 is not set +# CONFIG_SENSORS_NCT7904 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_PMBUS is not set +# CONFIG_SENSORS_PWM_FAN is not set +# CONFIG_SENSORS_SHT15 is not set +CONFIG_SENSORS_SHT21=m +# CONFIG_SENSORS_SHT3x is not set +# CONFIG_SENSORS_SHTC1 is not set +# CONFIG_SENSORS_SIS5595 is not set +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m +# CONFIG_SENSORS_SMSC47M1 is not set +CONFIG_SENSORS_SMSC47M192=m +# CONFIG_SENSORS_SMSC47B397 is not set +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +# CONFIG_SENSORS_SCH5636 is not set +# CONFIG_SENSORS_STTS751 is not set +CONFIG_SENSORS_SMM665=m +# CONFIG_SENSORS_ADC128D818 is not set +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_AMC6821=m +# CONFIG_SENSORS_INA209 is not set +# CONFIG_SENSORS_INA2XX is not set +# CONFIG_SENSORS_INA3221 is not set +# CONFIG_SENSORS_TC74 is not set +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +# CONFIG_SENSORS_TMP103 is not set +# CONFIG_SENSORS_TMP108 is not set +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +# CONFIG_SENSORS_VEXPRESS is not set +# CONFIG_SENSORS_VIA686A is not set +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +# CONFIG_SENSORS_W83773G is not set +# CONFIG_SENSORS_W83781D is not set +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +# CONFIG_SENSORS_W83L785TS is not set +CONFIG_SENSORS_W83L786NG=m +# CONFIG_SENSORS_W83627HF is not set +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_XGENE=m + +# +# ACPI drivers +# +# CONFIG_SENSORS_ACPI_POWER is not set +CONFIG_THERMAL=y +# CONFIG_THERMAL_STATISTICS is not set +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_OF=y +# CONFIG_THERMAL_WRITABLE_TRIPS is not set +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +# CONFIG_THERMAL_GOV_BANG_BANG is not set +# CONFIG_THERMAL_GOV_USER_SPACE is not set +# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set +CONFIG_CPU_THERMAL=y +# CONFIG_CLOCK_THERMAL is not set +# CONFIG_DEVFREQ_THERMAL is not set +# CONFIG_THERMAL_EMULATION is not set +CONFIG_HISI_THERMAL=m +# CONFIG_MAX77620_THERMAL is not set +# CONFIG_QORIQ_THERMAL is not set +# CONFIG_ROCKCHIP_THERMAL is not set +CONFIG_ARMADA_THERMAL=m + +# +# ACPI INT340X thermal drivers +# + +# +# Broadcom thermal drivers +# +CONFIG_BCM2835_THERMAL=m + +# +# NVIDIA Tegra thermal drivers +# +CONFIG_TEGRA_SOCTHERM=y +# CONFIG_TEGRA_BPMP_THERMAL is not set +CONFIG_QCOM_SPMI_TEMP_ALARM=m +# CONFIG_GENERIC_ADC_THERMAL is not set + +# +# Qualcomm thermal drivers +# +CONFIG_QCOM_TSENS=m +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y +CONFIG_WATCHDOG_SYSFS=y + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_GPIO_WATCHDOG=m +# CONFIG_WDAT_WDT is not set +# CONFIG_XILINX_WATCHDOG is not set +# CONFIG_ZIIRAVE_WATCHDOG is not set +CONFIG_ARM_SP805_WATCHDOG=m +CONFIG_ARM_SBSA_WATCHDOG=m +# CONFIG_CADENCE_WATCHDOG is not set +CONFIG_DW_WATCHDOG=m +CONFIG_SUNXI_WATCHDOG=m +# CONFIG_MAX63XX_WATCHDOG is not set +# CONFIG_MAX77620_WATCHDOG is not set +CONFIG_TEGRA_WATCHDOG=m +CONFIG_QCOM_WDT=m +CONFIG_MESON_GXBB_WATCHDOG=m +CONFIG_MESON_WATCHDOG=m +# CONFIG_ALIM7101_WDT is not set +# CONFIG_I6300ESB_WDT is not set +CONFIG_BCM2835_WDT=m +# CONFIG_MEN_A21_WDT is not set +CONFIG_XEN_WDT=m + +# +# PCI-based Watchdog Cards +# +# CONFIG_PCIPCWATCHDOG is not set +# CONFIG_WDTPCI is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set + +# +# Watchdog Pretimeout Governors +# +# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB=m +CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y +# CONFIG_SSB_DRIVER_GPIO is not set +CONFIG_BCMA_POSSIBLE=y +CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +CONFIG_BCMA_HOST_PCI=y +# CONFIG_BCMA_HOST_SOC is not set +CONFIG_BCMA_DRIVER_PCI=y +# CONFIG_BCMA_DRIVER_GMAC_CMN is not set +# CONFIG_BCMA_DRIVER_GPIO is not set +# CONFIG_BCMA_DEBUG is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_ACT8945A is not set +# CONFIG_MFD_SUN4I_GPADC is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_AS3722 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_ATMEL_FLEXCOM is not set +# CONFIG_MFD_ATMEL_HLCDC is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set +# CONFIG_MFD_AC100 is not set +CONFIG_MFD_AXP20X=m +# CONFIG_MFD_AXP20X_I2C is not set +CONFIG_MFD_AXP20X_RSB=m +CONFIG_MFD_CROS_EC=y +CONFIG_MFD_CROS_EC_I2C=m +CONFIG_MFD_CROS_EC_SPI=m +# CONFIG_MFD_CROS_EC_CHARDEV is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_HI6421_PMIC is not set +CONFIG_MFD_HI655X_PMIC=m +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_LPC_ICH is not set +CONFIG_LPC_SCH=m +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +CONFIG_MFD_MAX77620=y +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_CPCAP is not set +CONFIG_MFD_VIPERBOARD=m +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +CONFIG_MFD_QCOM_RPM=m +CONFIG_MFD_SPMI_PMIC=m +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RC5T583 is not set +CONFIG_MFD_RK808=m +# CONFIG_MFD_RN5T618 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_SUN6I_PRCM is not set +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_TI_LMU is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS68470 is not set +# CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TI_LP87565 is not set +# CONFIG_MFD_TPS65218 is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +CONFIG_MFD_VEXPRESS_SYSREG=y +# CONFIG_RAVE_SP_CORE is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_88PG86X is not set +# CONFIG_REGULATOR_ACT8865 is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_ANATOP is not set +CONFIG_REGULATOR_AXP20X=m +# CONFIG_REGULATOR_DA9210 is not set +# CONFIG_REGULATOR_DA9211 is not set +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_HI655X=m +# CONFIG_REGULATOR_ISL9305 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_REGULATOR_LP8755 is not set +# CONFIG_REGULATOR_LTC3589 is not set +# CONFIG_REGULATOR_LTC3676 is not set +# CONFIG_REGULATOR_MAX1586 is not set +CONFIG_REGULATOR_MAX77620=m +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8973 is not set +# CONFIG_REGULATOR_MT6311 is not set +# CONFIG_REGULATOR_PFUZE100 is not set +# CONFIG_REGULATOR_PV88060 is not set +# CONFIG_REGULATOR_PV88080 is not set +# CONFIG_REGULATOR_PV88090 is not set +CONFIG_REGULATOR_PWM=m +CONFIG_REGULATOR_QCOM_RPM=m +CONFIG_REGULATOR_QCOM_SMD_RPM=m +CONFIG_REGULATOR_QCOM_SPMI=m +CONFIG_REGULATOR_RK808=m +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_TPS65132 is not set +# CONFIG_REGULATOR_TPS6524X is not set +# CONFIG_REGULATOR_VCTRL is not set +# CONFIG_REGULATOR_VEXPRESS is not set +CONFIG_CEC_CORE=m +CONFIG_RC_CORE=m +CONFIG_RC_MAP=m +CONFIG_LIRC=y +CONFIG_RC_DECODERS=y +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_SHARP_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_IR_XMP_DECODER=m +CONFIG_IR_IMON_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_RC_ATI_REMOTE=m +CONFIG_IR_ENE=m +# CONFIG_IR_HIX5HD2 is not set +CONFIG_IR_IMON=m +CONFIG_IR_IMON_RAW=m +CONFIG_IR_MCEUSB=m +# CONFIG_IR_ITE_CIR is not set +# CONFIG_IR_FINTEK is not set +# CONFIG_IR_MESON is not set +# CONFIG_IR_NUVOTON is not set +CONFIG_IR_REDRAT3=m +# CONFIG_IR_SPI is not set +CONFIG_IR_STREAMZAP=m +CONFIG_IR_IGORPLUGUSB=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_RC_LOOPBACK=m +# CONFIG_IR_GPIO_CIR is not set +# CONFIG_IR_GPIO_TX is not set +# CONFIG_IR_PWM_TX is not set +# CONFIG_IR_SUNXI is not set +# CONFIG_IR_SERIAL is not set +# CONFIG_IR_SIR is not set +CONFIG_MEDIA_SUPPORT=m + +# +# Multimedia core support +# +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_MEDIA_CEC_SUPPORT=y +# CONFIG_MEDIA_CEC_RC is not set +CONFIG_MEDIA_CONTROLLER=y +# CONFIG_MEDIA_CONTROLLER_DVB is not set +CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_V4L2_SUBDEV_API is not set +CONFIG_VIDEO_V4L2=m +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_PCI_SKELETON is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_V4L2_FWNODE=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_DVB_CORE=m +# CONFIG_DVB_MMAP is not set +CONFIG_DVB_NET=y +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=16 +CONFIG_DVB_DYNAMIC_MINORS=y +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set + +# +# Media drivers +# +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_DTCS033=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STK1135=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TOUPTEK=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_VIDEO_USBTV=m + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160_COMMON=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_GO7007=m +CONFIG_VIDEO_GO7007_USB=m +CONFIG_VIDEO_GO7007_LOADER=m +CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_AU0828_RC=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +# CONFIG_VIDEO_TM6000 is not set + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIB3000MC=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +# CONFIG_DVB_USB_ZD1301 is not set +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set +CONFIG_DVB_AS102=m + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_V4L2=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m + +# +# Software defined radio USB devices +# +CONFIG_USB_AIRSPY=m +CONFIG_USB_HACKRF=m +CONFIG_USB_MSI2500=m + +# +# USB HDMI CEC adapters +# +CONFIG_USB_PULSE8_CEC=m +CONFIG_USB_RAINSHADOW_CEC=m +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# +CONFIG_VIDEO_SOLO6X10=m +CONFIG_VIDEO_TW5864=m +CONFIG_VIDEO_TW68=m +CONFIG_VIDEO_TW686X=m + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_DT3155=m + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +# CONFIG_VIDEO_CX25821 is not set +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_ENABLE_VP3054=y +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +# CONFIG_VIDEO_SAA7134_GO7007 is not set +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_AV7110_IR=y +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_PT1=m +CONFIG_DVB_PT3=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NGENE=m +CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set +CONFIG_DVB_SMIPCIE=m +CONFIG_DVB_NETUP_UNIDVB=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_CAFE_CCIC=m +# CONFIG_SOC_CAMERA is not set +CONFIG_V4L_MEM2MEM_DRIVERS=y +# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +# CONFIG_VIDEO_SH_VEU is not set +# CONFIG_VIDEO_ROCKCHIP_RGA is not set +CONFIG_VIDEO_QCOM_VENUS=m +CONFIG_V4L_TEST_DRIVERS=y +CONFIG_VIDEO_VIVID=m +CONFIG_VIDEO_VIVID_CEC=y +CONFIG_VIDEO_VIVID_MAX_DEVS=64 +# CONFIG_VIDEO_VIM2M is not set +# CONFIG_DVB_PLATFORM_DRIVERS is not set +# CONFIG_CEC_PLATFORM_DRIVERS is not set +# CONFIG_SDR_PLATFORM_DRIVERS is not set + +# +# Supported MMC/SDIO adapters +# +CONFIG_SMS_SDIO_DRV=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_TEA575X=m +CONFIG_RADIO_SI470X=y +CONFIG_USB_SI470X=m +# CONFIG_I2C_SI470X is not set +# CONFIG_RADIO_SI4713 is not set +CONFIG_USB_MR800=m +# CONFIG_USB_DSBR is not set +# CONFIG_RADIO_MAXIRADIO is not set +CONFIG_RADIO_SHARK=m +CONFIG_RADIO_SHARK2=m +CONFIG_USB_KEENE=m +CONFIG_USB_RAREMONO=m +CONFIG_USB_MA901=m +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +# CONFIG_RADIO_WL128X is not set + +# +# Supported FireWire (IEEE 1394) Adapters +# +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_MEDIA_COMMON_OPTIONS=y + +# +# common driver options +# +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_V4L2=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF2_DMA_SG=m +CONFIG_VIDEOBUF2_DVB=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set +CONFIG_VIDEO_V4L2_TPG=m + +# +# Media ancillary drivers (tuners, sensors, i2c, spi, frontends) +# +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=m + +# +# Audio decoders, processors and mixers +# +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS3308=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_UDA1342=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_SONY_BTF_MPX=m + +# +# RDS decoders +# +CONFIG_VIDEO_SAA6588=m + +# +# Video decoders +# +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_TW2804=m +CONFIG_VIDEO_TW9903=m +CONFIG_VIDEO_TW9906=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_CX25840=m + +# +# Video encoders +# +CONFIG_VIDEO_SAA7127=m + +# +# Camera sensor devices +# +CONFIG_VIDEO_OV2640=m +CONFIG_VIDEO_OV7640=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_MT9V011=m + +# +# Flash devices +# + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m + +# +# Audio/Video compression chips +# +CONFIG_VIDEO_SAA6752HS=m + +# +# SDR tuner chips +# + +# +# Miscellaneous helper chips +# +CONFIG_VIDEO_M52790=m + +# +# Sensors used on soc_camera driver +# + +# +# Media SPI Adapters +# +CONFIG_CXD2880_SPI_DRV=m +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18250=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MSI001=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_M88RS6000T=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_SI2157=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m +CONFIG_MEDIA_TUNER_MXL301RF=m +CONFIG_MEDIA_TUNER_QM1D1C0042=m + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV0910=m +CONFIG_DVB_STV6110x=m +CONFIG_DVB_STV6111=m +CONFIG_DVB_MXL5XX=m +CONFIG_DVB_M88DS3103=m + +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m +CONFIG_DVB_SI2165=m +CONFIG_DVB_MN88472=m +CONFIG_DVB_MN88473=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24117=m +CONFIG_DVB_CX24120=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_TDA10071=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_CXD2841ER=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m +CONFIG_DVB_RTL2832_SDR=m +CONFIG_DVB_SI2168=m +CONFIG_DVB_AS102_FE=m +CONFIG_DVB_GP8PSK_FE=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT3306A=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m + +# +# ISDB-S (satellite) & ISDB-T (terrestrial) frontends +# +CONFIG_DVB_TC90522=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_DRX39XYJ=m +CONFIG_DVB_LNBH25=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m +CONFIG_DVB_HORUS3A=m +CONFIG_DVB_ASCOT2E=m +CONFIG_DVB_HELENE=m + +# +# Common Interface (EN50221) controller drivers +# +CONFIG_DVB_CXD2099=m +CONFIG_DVB_SP2=m + +# +# Tools to develop new frontends +# + +# +# Graphics support +# +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_TEGRA_HOST1X=m +CONFIG_TEGRA_HOST1X_FIREWALL=y +CONFIG_DRM=m +CONFIG_DRM_MIPI_DSI=y +CONFIG_DRM_DP_AUX_CHARDEV=y +# CONFIG_DRM_DEBUG_MM_SELFTEST is not set +CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_KMS_FB_HELPER=y +CONFIG_DRM_FBDEV_EMULATION=y +CONFIG_DRM_FBDEV_OVERALLOC=100 +CONFIG_DRM_LOAD_EDID_FIRMWARE=y +CONFIG_DRM_TTM=m +CONFIG_DRM_GEM_CMA_HELPER=y +CONFIG_DRM_KMS_CMA_HELPER=y +CONFIG_DRM_VM=y +CONFIG_DRM_SCHED=m + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +# CONFIG_DRM_I2C_NXP_TDA998X is not set +CONFIG_DRM_ARM=y +CONFIG_DRM_HDLCD=m +# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set +CONFIG_DRM_MALI_DISPLAY=m +CONFIG_DRM_RADEON=m +# CONFIG_DRM_RADEON_USERPTR is not set +CONFIG_DRM_AMDGPU=m +CONFIG_DRM_AMDGPU_SI=y +CONFIG_DRM_AMDGPU_CIK=y +CONFIG_DRM_AMDGPU_USERPTR=y +# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set + +# +# ACP (Audio CoProcessor) Configuration +# +# CONFIG_DRM_AMD_ACP is not set + +# +# Display Engine Configuration +# +CONFIG_DRM_AMD_DC=y +# CONFIG_DRM_AMD_DC_PRE_VEGA is not set +# CONFIG_DRM_AMD_DC_FBC is not set +# CONFIG_DEBUG_KERNEL_DC is not set + +# +# AMD Library routines +# +CONFIG_CHASH=m +# CONFIG_CHASH_STATS is not set +# CONFIG_CHASH_SELFTEST is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_NOUVEAU_PLATFORM_DRIVER=y +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +# CONFIG_NOUVEAU_DEBUG_MMU is not set +CONFIG_DRM_NOUVEAU_BACKLIGHT=y +CONFIG_DRM_VGEM=m +CONFIG_DRM_UDL=m +CONFIG_DRM_AST=m +# CONFIG_DRM_MGAG200 is not set +CONFIG_DRM_CIRRUS_QEMU=m +# CONFIG_DRM_RCAR_DW_HDMI is not set +# CONFIG_DRM_RCAR_LVDS is not set +# CONFIG_DRM_SUN4I is not set +CONFIG_DRM_QXL=m +CONFIG_DRM_BOCHS=m +CONFIG_DRM_VIRTIO_GPU=m +CONFIG_DRM_MSM=m +# CONFIG_DRM_MSM_REGISTER_LOGGING is not set +# CONFIG_DRM_MSM_GPU_SUDO is not set +CONFIG_DRM_MSM_HDMI_HDCP=y +CONFIG_DRM_MSM_DSI=y +CONFIG_DRM_MSM_DSI_PLL=y +CONFIG_DRM_MSM_DSI_28NM_PHY=y +CONFIG_DRM_MSM_DSI_20NM_PHY=y +CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y +CONFIG_DRM_MSM_DSI_14NM_PHY=y +CONFIG_DRM_MSM_DSI_10NM_PHY=y +CONFIG_DRM_TEGRA=m +# CONFIG_DRM_TEGRA_DEBUG is not set +CONFIG_DRM_TEGRA_STAGING=y +CONFIG_DRM_PANEL=y + +# +# Display Panels +# +CONFIG_DRM_PANEL_ARM_VERSATILE=m +# CONFIG_DRM_PANEL_LVDS is not set +CONFIG_DRM_PANEL_SIMPLE=m +# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set +# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set +# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_LG_LG4573 is not set +# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set +# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set +# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set +# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set +# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set +# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set +# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y + +# +# Display Interface Bridges +# +# CONFIG_DRM_ANALOGIX_ANX78XX is not set +# CONFIG_DRM_DUMB_VGA_DAC is not set +# CONFIG_DRM_LVDS_ENCODER is not set +# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set +# CONFIG_DRM_NXP_PTN3460 is not set +# CONFIG_DRM_PARADE_PS8622 is not set +# CONFIG_DRM_SIL_SII8620 is not set +# CONFIG_DRM_SII902X is not set +# CONFIG_DRM_SII9234 is not set +# CONFIG_DRM_TOSHIBA_TC358767 is not set +# CONFIG_DRM_TI_TFP410 is not set +CONFIG_DRM_I2C_ADV7511=m +CONFIG_DRM_I2C_ADV7511_AUDIO=y +CONFIG_DRM_I2C_ADV7533=y +CONFIG_DRM_I2C_ADV7511_CEC=y +CONFIG_DRM_DW_HDMI=m +# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set +# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set +# CONFIG_DRM_DW_HDMI_CEC is not set +CONFIG_DRM_VC4=m +# CONFIG_DRM_VC4_HDMI_CEC is not set +# CONFIG_DRM_ARCPGU is not set +CONFIG_DRM_HISI_HIBMC=m +CONFIG_DRM_HISI_KIRIN=m +CONFIG_HISI_KIRIN_DW_DSI=m +# CONFIG_DRM_MXSFB is not set +CONFIG_DRM_MESON=m +CONFIG_DRM_MESON_DW_HDMI=m +# CONFIG_DRM_TINYDRM is not set +# CONFIG_DRM_PL111 is not set +CONFIG_DRM_LEGACY=y +# CONFIG_DRM_TDFX is not set +# CONFIG_DRM_R128 is not set +# CONFIG_DRM_MGA is not set +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y + +# +# Frame buffer Devices +# +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FB_CMDLINE=y +CONFIG_FB_NOTIFY=y +CONFIG_FB_DDC=m +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_SVGALIB=m +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +CONFIG_FB_ARMCLCD=y +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_UVESA is not set +CONFIG_FB_EFI=y +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_3DFX_I2C=y +# CONFIG_FB_VOODOO1 is not set +CONFIG_FB_VT8623=m +# CONFIG_FB_TRIDENT is not set +CONFIG_FB_ARK=m +CONFIG_FB_PM3=m +# CONFIG_FB_CARMINE is not set +CONFIG_FB_SMSCUFX=m +CONFIG_FB_UDL=m +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_VIRTUAL is not set +CONFIG_XEN_FBDEV_FRONTEND=y +# CONFIG_FB_METRONOME is not set +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_FB_MB862XX_I2C=y +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +CONFIG_FB_SIMPLE=y +# CONFIG_FB_SSD1307 is not set +# CONFIG_FB_SM712 is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_PWM=m +# CONFIG_BACKLIGHT_PM8941_WLED is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3630A is not set +# CONFIG_BACKLIGHT_LM3639 is not set +CONFIG_BACKLIGHT_LP855X=m +# CONFIG_BACKLIGHT_GPIO is not set +# CONFIG_BACKLIGHT_LV5207LP is not set +# CONFIG_BACKLIGHT_BD6107 is not set +# CONFIG_BACKLIGHT_ARCXCNN is not set +CONFIG_VGASTATE=m +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_HDMI=y + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +# CONFIG_LOGO is not set +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_PCM_ELD=y +CONFIG_SND_PCM_IEC958=y +CONFIG_SND_DMAENGINE_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_SEQ_DEVICE=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCM_TIMER=y +CONFIG_SND_HRTIMER=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_PROC_FS=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_SEQ_MIDI_EVENT=m +CONFIG_SND_SEQ_MIDI=m +CONFIG_SND_SEQ_MIDI_EMUL=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +# CONFIG_SND_DUMMY is not set +CONFIG_SND_ALOOP=m +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +CONFIG_SND_MTS64=m +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_PCI=y +CONFIG_SND_AD1889=m +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AW2 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INDIGODJX=m +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDSP is not set +CONFIG_SND_HDSPM=m +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +CONFIG_SND_VIRTUOSO=m +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +# +# HD-Audio +# +CONFIG_SND_HDA=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_TEGRA=m +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_CODEC_REALTEK=m +CONFIG_SND_HDA_CODEC_ANALOG=m +CONFIG_SND_HDA_CODEC_SIGMATEL=m +CONFIG_SND_HDA_CODEC_VIA=m +CONFIG_SND_HDA_CODEC_HDMI=m +CONFIG_SND_HDA_CODEC_CIRRUS=m +CONFIG_SND_HDA_CODEC_CONEXANT=m +CONFIG_SND_HDA_CODEC_CA0110=m +CONFIG_SND_HDA_CODEC_CA0132=m +CONFIG_SND_HDA_CODEC_CA0132_DSP=y +CONFIG_SND_HDA_CODEC_CMEDIA=m +CONFIG_SND_HDA_CODEC_SI3054=m +CONFIG_SND_HDA_GENERIC=m +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_CORE=m +CONFIG_SND_HDA_DSP_LOADER=y +CONFIG_SND_HDA_PREALLOC_SIZE=2048 +CONFIG_SND_SPI=y +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_USB_HIFACE=m +CONFIG_SND_BCD2000=m +CONFIG_SND_USB_LINE6=m +CONFIG_SND_USB_POD=m +CONFIG_SND_USB_PODHD=m +CONFIG_SND_USB_TONEPORT=m +CONFIG_SND_USB_VARIAX=m +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_DICE=m +CONFIG_SND_OXFW=m +CONFIG_SND_ISIGHT=m +CONFIG_SND_FIREWORKS=m +CONFIG_SND_BEBOB=m +CONFIG_SND_FIREWIRE_DIGI00X=m +CONFIG_SND_FIREWIRE_TASCAM=m +# CONFIG_SND_FIREWIRE_MOTU is not set +# CONFIG_SND_FIREFACE is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +# CONFIG_SND_SOC_AMD_ACP is not set +# CONFIG_SND_ATMEL_SOC is not set +CONFIG_SND_BCM2835_SOC_I2S=m +# CONFIG_SND_DESIGNWARE_I2S is not set + +# +# SoC Audio for Freescale CPUs +# + +# +# Common SoC Audio options for Freescale CPUs: +# +# CONFIG_SND_SOC_FSL_ASRC is not set +# CONFIG_SND_SOC_FSL_SAI is not set +# CONFIG_SND_SOC_FSL_SSI is not set +# CONFIG_SND_SOC_FSL_SPDIF is not set +# CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_IMX_AUDMUX is not set +CONFIG_SND_I2S_HI6210_I2S=m +# CONFIG_SND_KIRKWOOD_SOC is not set +# CONFIG_SND_SOC_IMG is not set +CONFIG_SND_SOC_QCOM=m +CONFIG_SND_SOC_LPASS_CPU=m +CONFIG_SND_SOC_LPASS_PLATFORM=m +CONFIG_SND_SOC_LPASS_APQ8016=m +# CONFIG_SND_SOC_STORM is not set +CONFIG_SND_SOC_APQ8016_SBC=m +# CONFIG_SND_SOC_ROCKCHIP is not set + +# +# STMicroelectronics STM32 SOC audio support +# + +# +# Allwinner SoC Audio support +# +# CONFIG_SND_SUN4I_CODEC is not set +# CONFIG_SND_SUN8I_CODEC_ANALOG is not set +# CONFIG_SND_SUN4I_I2S is not set +# CONFIG_SND_SUN4I_SPDIF is not set +CONFIG_SND_SOC_TEGRA=m +# CONFIG_SND_SOC_TEGRA20_AC97 is not set +# CONFIG_SND_SOC_TEGRA20_DAS is not set +# CONFIG_SND_SOC_TEGRA20_I2S is not set +CONFIG_SND_SOC_TEGRA20_SPDIF=m +# CONFIG_SND_SOC_TEGRA30_AHUB is not set +# CONFIG_SND_SOC_TEGRA30_I2S is not set +CONFIG_SND_SOC_TEGRA_RT5640=m +CONFIG_SND_SOC_TEGRA_WM8753=m +CONFIG_SND_SOC_TEGRA_WM8903=m +# CONFIG_SND_SOC_TEGRA_WM9712 is not set +CONFIG_SND_SOC_TEGRA_TRIMSLICE=m +CONFIG_SND_SOC_TEGRA_ALC5632=m +CONFIG_SND_SOC_TEGRA_MAX98090=m +CONFIG_SND_SOC_TEGRA_RT5677=m +# CONFIG_SND_SOC_TEGRA_SGTL5000 is not set +# CONFIG_SND_SOC_XTFPGA_I2S is not set +# CONFIG_ZX_TDM is not set +CONFIG_SND_SOC_I2C_AND_SPI=m + +# +# CODEC drivers +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_ADAU1701 is not set +# CONFIG_SND_SOC_ADAU1761_I2C is not set +# CONFIG_SND_SOC_ADAU1761_SPI is not set +# CONFIG_SND_SOC_ADAU7002 is not set +# CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4458 is not set +# CONFIG_SND_SOC_AK4554 is not set +# CONFIG_SND_SOC_AK4613 is not set +# CONFIG_SND_SOC_AK4642 is not set +# CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_AK5558 is not set +# CONFIG_SND_SOC_ALC5623 is not set +CONFIG_SND_SOC_ALC5632=m +# CONFIG_SND_SOC_BD28623 is not set +# CONFIG_SND_SOC_BT_SCO is not set +# CONFIG_SND_SOC_CS35L32 is not set +# CONFIG_SND_SOC_CS35L33 is not set +# CONFIG_SND_SOC_CS35L34 is not set +# CONFIG_SND_SOC_CS35L35 is not set +# CONFIG_SND_SOC_CS42L42 is not set +# CONFIG_SND_SOC_CS42L51_I2C is not set +# CONFIG_SND_SOC_CS42L52 is not set +# CONFIG_SND_SOC_CS42L56 is not set +# CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS4265 is not set +# CONFIG_SND_SOC_CS4270 is not set +# CONFIG_SND_SOC_CS4271_I2C is not set +# CONFIG_SND_SOC_CS4271_SPI is not set +# CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS43130 is not set +# CONFIG_SND_SOC_CS4349 is not set +# CONFIG_SND_SOC_CS53L30 is not set +# CONFIG_SND_SOC_DIO2125 is not set +CONFIG_SND_SOC_HDMI_CODEC=m +# CONFIG_SND_SOC_ES7134 is not set +# CONFIG_SND_SOC_ES8316 is not set +# CONFIG_SND_SOC_ES8328_I2C is not set +# CONFIG_SND_SOC_ES8328_SPI is not set +# CONFIG_SND_SOC_GTM601 is not set +# CONFIG_SND_SOC_INNO_RK3036 is not set +CONFIG_SND_SOC_MAX98090=m +# CONFIG_SND_SOC_MAX98504 is not set +# CONFIG_SND_SOC_MAX9867 is not set +# CONFIG_SND_SOC_MAX98927 is not set +# CONFIG_SND_SOC_MAX98373 is not set +# CONFIG_SND_SOC_MAX9860 is not set +# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set +# CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM1789_I2C is not set +# CONFIG_SND_SOC_PCM179X_I2C is not set +# CONFIG_SND_SOC_PCM179X_SPI is not set +# CONFIG_SND_SOC_PCM186X_I2C is not set +# CONFIG_SND_SOC_PCM186X_SPI is not set +# CONFIG_SND_SOC_PCM3168A_I2C is not set +# CONFIG_SND_SOC_PCM3168A_SPI is not set +# CONFIG_SND_SOC_PCM512x_I2C is not set +# CONFIG_SND_SOC_PCM512x_SPI is not set +CONFIG_SND_SOC_RL6231=m +# CONFIG_SND_SOC_RT5616 is not set +# CONFIG_SND_SOC_RT5631 is not set +CONFIG_SND_SOC_RT5640=m +CONFIG_SND_SOC_RT5677=m +CONFIG_SND_SOC_RT5677_SPI=m +# CONFIG_SND_SOC_SGTL5000 is not set +# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set +# CONFIG_SND_SOC_SPDIF is not set +# CONFIG_SND_SOC_SSM2602_SPI is not set +# CONFIG_SND_SOC_SSM2602_I2C is not set +# CONFIG_SND_SOC_SSM4567 is not set +# CONFIG_SND_SOC_STA32X is not set +# CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set +# CONFIG_SND_SOC_TAS2552 is not set +# CONFIG_SND_SOC_TAS5086 is not set +# CONFIG_SND_SOC_TAS571X is not set +# CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TAS6424 is not set +# CONFIG_SND_SOC_TDA7419 is not set +# CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC23_I2C=m +# CONFIG_SND_SOC_TLV320AIC23_SPI is not set +# CONFIG_SND_SOC_TLV320AIC31XX is not set +# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set +# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set +# CONFIG_SND_SOC_TLV320AIC3X is not set +# CONFIG_SND_SOC_TS3A227E is not set +# CONFIG_SND_SOC_TSCS42XX is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8523 is not set +# CONFIG_SND_SOC_WM8524 is not set +# CONFIG_SND_SOC_WM8580 is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8728 is not set +# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8737 is not set +# CONFIG_SND_SOC_WM8741 is not set +# CONFIG_SND_SOC_WM8750 is not set +CONFIG_SND_SOC_WM8753=m +# CONFIG_SND_SOC_WM8770 is not set +# CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8804_I2C is not set +# CONFIG_SND_SOC_WM8804_SPI is not set +CONFIG_SND_SOC_WM8903=m +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8962 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8978 is not set +# CONFIG_SND_SOC_WM8985 is not set +# CONFIG_SND_SOC_ZX_AUD96P22 is not set +# CONFIG_SND_SOC_MAX9759 is not set +# CONFIG_SND_SOC_NAU8540 is not set +# CONFIG_SND_SOC_NAU8810 is not set +# CONFIG_SND_SOC_NAU8824 is not set +# CONFIG_SND_SOC_TPA6130A2 is not set +# CONFIG_SND_SIMPLE_CARD is not set +# CONFIG_SND_SIMPLE_SCU_CARD is not set +# CONFIG_SND_AUDIO_GRAPH_CARD is not set +# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set +CONFIG_AC97_BUS=m + +# +# HID support +# +CONFIG_HID=m +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HIDRAW=y +CONFIG_UHID=m +CONFIG_HID_GENERIC=m + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=m +# CONFIG_HID_ACCUTOUCH is not set +CONFIG_HID_ACRUX=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_APPLE=m +# CONFIG_HID_APPLEIR is not set +CONFIG_HID_ASUS=m +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=m +CONFIG_HID_BETOP_FF=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CORSAIR=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_CMEDIA=m +CONFIG_HID_CP2112=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_DRAGONRISE_FF=y +CONFIG_HID_EMS_FF=m +# CONFIG_HID_ELAN is not set +CONFIG_HID_ELECOM=m +CONFIG_HID_ELO=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GEMBIRD=m +# CONFIG_HID_GFRM is not set +CONFIG_HID_HOLTEK=m +CONFIG_HOLTEK_FF=y +# CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GT683R is not set +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m +CONFIG_HID_GYRATION=m +CONFIG_HID_ICADE=m +# CONFIG_HID_ITE is not set +# CONFIG_HID_JABRA is not set +CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LED=m +CONFIG_HID_LENOVO=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m +CONFIG_HID_LOGITECH_HIDPP=m +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_HID_MAGICMOUSE=m +# CONFIG_HID_MAYFLASH is not set +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m +# CONFIG_HID_NTI is not set +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PENMOUNT=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PICOLCD_CIR=y +CONFIG_HID_PLANTRONICS=m +CONFIG_HID_PRIMAX=m +# CONFIG_HID_RETRODE is not set +CONFIG_HID_ROCCAT=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SONY=m +CONFIG_SONY_FF=y +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEELSERIES=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_RMI=m +CONFIG_HID_GREENASIA=m +CONFIG_GREENASIA_FF=y +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_THINGM=m +CONFIG_HID_THRUSTMASTER=m +CONFIG_THRUSTMASTER_FF=y +# CONFIG_HID_UDRAW_PS3 is not set +CONFIG_HID_WACOM=m +CONFIG_HID_WIIMOTE=m +CONFIG_HID_XINMO=m +CONFIG_HID_ZEROPLUS=m +CONFIG_ZEROPLUS_FF=y +CONFIG_HID_ZYDACRON=m +CONFIG_HID_SENSOR_HUB=m +CONFIG_HID_SENSOR_CUSTOM_SENSOR=m +CONFIG_HID_ALPS=m + +# +# USB HID support +# +CONFIG_USB_HID=m +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set + +# +# I2C HID support +# +# CONFIG_I2C_HID is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=m +CONFIG_USB_PCI=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +CONFIG_USB_DYNAMIC_MINORS=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_LEDS_TRIGGER_USBPORT=m +CONFIG_USB_MON=m +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_XHCI_HCD=m +# CONFIG_USB_XHCI_DBGCAP is not set +CONFIG_USB_XHCI_PCI=m +CONFIG_USB_XHCI_PLATFORM=m +# CONFIG_USB_XHCI_MVEBU is not set +CONFIG_USB_XHCI_TEGRA=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_PCI=m +CONFIG_USB_EHCI_HCD_ORION=m +CONFIG_USB_EHCI_TEGRA=m +CONFIG_USB_EHCI_HCD_PLATFORM=m +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_MAX3421_HCD is not set +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_HCD_PCI=m +# CONFIG_USB_OHCI_HCD_SSB is not set +CONFIG_USB_OHCI_HCD_PLATFORM=m +# CONFIG_USB_UHCI_HCD is not set +CONFIG_USB_U132_HCD=m +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_HWA_HCD=m +# CONFIG_USB_HCD_BCMA is not set +# CONFIG_USB_HCD_SSB is not set +# CONFIG_USB_HCD_TEST_MODE is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_VHCI_HC_PORTS=15 +CONFIG_USBIP_VHCI_NR_HCS=8 +CONFIG_USBIP_HOST=m +CONFIG_USBIP_VUDC=m +# CONFIG_USBIP_DEBUG is not set +CONFIG_USB_MUSB_HDRC=m +# CONFIG_USB_MUSB_HOST is not set +# CONFIG_USB_MUSB_GADGET is not set +CONFIG_USB_MUSB_DUAL_ROLE=y + +# +# Platform Glue Layer +# +CONFIG_USB_MUSB_SUNXI=m + +# +# MUSB DMA mode +# +# CONFIG_MUSB_PIO_ONLY is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_HOST is not set +# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_DUAL_ROLE=y + +# +# Platform Glue Driver Support +# +CONFIG_USB_DWC3_PCI=m +CONFIG_USB_DWC3_OF_SIMPLE=m +CONFIG_USB_DWC2=m +# CONFIG_USB_DWC2_HOST is not set + +# +# Gadget/Dual-role mode requires USB Gadget support to be enabled +# +# CONFIG_USB_DWC2_PERIPHERAL is not set +CONFIG_USB_DWC2_DUAL_ROLE=y +# CONFIG_USB_DWC2_PCI is not set +# CONFIG_USB_DWC2_DEBUG is not set +# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CHIPIDEA_OF=m +CONFIG_USB_CHIPIDEA_PCI=m +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_ISP1760=m +CONFIG_USB_ISP1760_HCD=y +CONFIG_USB_ISP1761_UDC=y +# CONFIG_USB_ISP1760_HOST_ROLE is not set +# CONFIG_USB_ISP1760_GADGET_ROLE is not set +CONFIG_USB_ISP1760_DUAL_ROLE=y + +# +# USB port drivers +# +# CONFIG_USB_USS720 is not set +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_SIMPLE=m +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_F8153X is not set +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_METRO=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7715_PARPORT=y +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MXUPORT=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_XSENS_MT=m +CONFIG_USB_SERIAL_WISHBONE=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m +# CONFIG_USB_SERIAL_UPD78F0730 is not set +CONFIG_USB_SERIAL_DEBUG=m + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_TEST=m +CONFIG_USB_EHSET_TEST_FIXTURE=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +# CONFIG_USB_HUB_USB251XB is not set +CONFIG_USB_HSIC_USB3503=m +# CONFIG_USB_HSIC_USB4604 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +CONFIG_USB_CHAOSKEY=m +# CONFIG_USB_ATM is not set + +# +# USB Physical Layer drivers +# +CONFIG_USB_PHY=y +CONFIG_NOP_USB_XCEIV=m +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +CONFIG_USB_ULPI=y +CONFIG_USB_ULPI_VIEWPORT=y +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +# CONFIG_U_SERIAL_CONSOLE is not set + +# +# USB Peripheral Controller +# +# CONFIG_USB_FOTG210_UDC is not set +# CONFIG_USB_GR_UDC is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +# CONFIG_USB_SNP_UDC_PLAT is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_BDC_UDC is not set +# CONFIG_USB_AMD5536UDC is not set +# CONFIG_USB_NET2272 is not set +CONFIG_USB_NET2280=m +# CONFIG_USB_GOKU is not set +# CONFIG_USB_EG20T is not set +# CONFIG_USB_GADGET_XILINX is not set +# CONFIG_USB_DUMMY_HCD is not set +CONFIG_USB_LIBCOMPOSITE=m +CONFIG_USB_F_ACM=m +CONFIG_USB_F_SS_LB=m +CONFIG_USB_U_SERIAL=m +CONFIG_USB_U_ETHER=m +CONFIG_USB_U_AUDIO=m +CONFIG_USB_F_SERIAL=m +CONFIG_USB_F_OBEX=m +CONFIG_USB_F_NCM=m +CONFIG_USB_F_ECM=m +CONFIG_USB_F_PHONET=m +CONFIG_USB_F_EEM=m +CONFIG_USB_F_SUBSET=m +CONFIG_USB_F_RNDIS=m +CONFIG_USB_F_MASS_STORAGE=m +CONFIG_USB_F_FS=m +CONFIG_USB_F_UAC1=m +CONFIG_USB_F_UAC2=m +CONFIG_USB_F_UVC=m +CONFIG_USB_F_MIDI=m +CONFIG_USB_F_HID=m +CONFIG_USB_F_PRINTER=m +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_PHONET=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_CONFIGFS_F_UAC1=y +# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set +CONFIG_USB_CONFIGFS_F_UAC2=y +CONFIG_USB_CONFIGFS_F_MIDI=y +CONFIG_USB_CONFIGFS_F_HID=y +CONFIG_USB_CONFIGFS_F_UVC=y +CONFIG_USB_CONFIGFS_F_PRINTER=y +# CONFIG_USB_CONFIGFS_F_TCM is not set +# CONFIG_USB_ZERO is not set +# CONFIG_USB_AUDIO is not set +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_ETH_EEM is not set +# CONFIG_USB_G_NCM is not set +CONFIG_USB_GADGETFS=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_FUNCTIONFS_ETH=y +CONFIG_USB_FUNCTIONFS_RNDIS=y +CONFIG_USB_FUNCTIONFS_GENERIC=y +# CONFIG_USB_MASS_STORAGE is not set +# CONFIG_USB_GADGET_TARGET is not set +CONFIG_USB_G_SERIAL=m +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_NOKIA is not set +# CONFIG_USB_G_ACM_MS is not set +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_G_HID is not set +# CONFIG_USB_G_DBGP is not set +# CONFIG_USB_G_WEBCAM is not set +# CONFIG_TYPEC is not set +CONFIG_USB_LED_TRIG=y +# CONFIG_USB_ULPI_BUS is not set +CONFIG_UWB=m +CONFIG_UWB_HWA=m +CONFIG_UWB_WHCI=m +CONFIG_UWB_I1480U=m +CONFIG_MMC=y +CONFIG_PWRSEQ_EMMC=y +# CONFIG_PWRSEQ_SD8787 is not set +CONFIG_PWRSEQ_SIMPLE=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=256 +CONFIG_SDIO_UART=m +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_ARMMMCI=m +CONFIG_MMC_QCOM_DML=y +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_ACPI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_OF_ARASAN=m +# CONFIG_MMC_SDHCI_OF_AT91 is not set +# CONFIG_MMC_SDHCI_CADENCE is not set +CONFIG_MMC_SDHCI_TEGRA=m +# CONFIG_MMC_SDHCI_PXAV3 is not set +CONFIG_MMC_SDHCI_F_SDH30=m +CONFIG_MMC_SDHCI_IPROC=m +CONFIG_MMC_MESON_GX=m +# CONFIG_MMC_MESON_MX_SDIO is not set +CONFIG_MMC_SDHCI_MSM=m +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SPI=m +CONFIG_MMC_CB710=m +CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_DW=m +CONFIG_MMC_DW_PLTFM=m +# CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_HI3798CV200 is not set +CONFIG_MMC_DW_K3=m +# CONFIG_MMC_DW_PCI is not set +CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m +# CONFIG_MMC_USDHI6ROL0 is not set +CONFIG_MMC_REALTEK_PCI=m +CONFIG_MMC_REALTEK_USB=m +CONFIG_MMC_SUNXI=m +CONFIG_MMC_CQHCI=m +CONFIG_MMC_TOSHIBA_PCI=m +CONFIG_MMC_BCM2835=m +# CONFIG_MMC_MTK is not set +CONFIG_MMC_SDHCI_XENON=m +# CONFIG_MMC_SDHCI_OMAP is not set +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m +# CONFIG_MS_BLOCK is not set + +# +# MemoryStick Host Controller Drivers +# +CONFIG_MEMSTICK_TIFM_MS=m +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m +CONFIG_MEMSTICK_REALTEK_USB=m +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +# CONFIG_LEDS_CLASS_FLASH is not set +CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y + +# +# LED drivers +# +# CONFIG_LEDS_BCM6328 is not set +# CONFIG_LEDS_BCM6358 is not set +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_LM3692X is not set +# CONFIG_LEDS_PCA9532 is not set +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LP3944=m +# CONFIG_LEDS_LP3952 is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_LP5562 is not set +# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_LP8860 is not set +CONFIG_LEDS_PCA955X=m +# CONFIG_LEDS_PCA955X_GPIO is not set +# CONFIG_LEDS_PCA963X is not set +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_PWM=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_LT3593=m +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_TLC591XX is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_IS31FL319X is not set +# CONFIG_LEDS_IS31FL32XX is not set + +# +# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) +# +# CONFIG_LEDS_BLINKM is not set +# CONFIG_LEDS_SYSCON is not set +# CONFIG_LEDS_MLXREG is not set +# CONFIG_LEDS_USER is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m +CONFIG_LEDS_TRIGGER_DISK=y +CONFIG_LEDS_TRIGGER_MTD=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y +# CONFIG_LEDS_TRIGGER_ACTIVITY is not set +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m +CONFIG_LEDS_TRIGGER_PANIC=y +# CONFIG_LEDS_TRIGGER_NETDEV is not set +CONFIG_ACCESSIBILITY=y +CONFIG_A11Y_BRAILLE_CONSOLE=y +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_ON_DEMAND_PAGING=y +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_QIB=m +CONFIG_INFINIBAND_CXGB3=m +CONFIG_INFINIBAND_CXGB4=m +CONFIG_INFINIBAND_I40IW=m +CONFIG_MLX4_INFINIBAND=m +CONFIG_MLX5_INFINIBAND=m +CONFIG_INFINIBAND_NES=m +# CONFIG_INFINIBAND_NES_DEBUG is not set +CONFIG_INFINIBAND_OCRDMA=m +# CONFIG_INFINIBAND_HNS is not set +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_SRPT=m +CONFIG_INFINIBAND_ISER=m +CONFIG_INFINIBAND_ISERT=m +CONFIG_INFINIBAND_RDMAVT=m +CONFIG_RDMA_RXE=m +CONFIG_INFINIBAND_QEDR=m +# CONFIG_INFINIBAND_BNXT_RE is not set +CONFIG_EDAC_SUPPORT=y +CONFIG_EDAC=y +CONFIG_EDAC_LEGACY_SYSFS=y +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_THUNDERX=m +CONFIG_EDAC_XGENE=m +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABX80X is not set +CONFIG_RTC_DRV_DS1307=y +CONFIG_RTC_DRV_DS1307_HWMON=y +# CONFIG_RTC_DRV_DS1307_CENTURY is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_HYM8563 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +CONFIG_RTC_DRV_MAX77686=y +CONFIG_RTC_DRV_RK808=m +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_ISL12026 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF85363 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8010 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV8803 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1302 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1343 is not set +# CONFIG_RTC_DRV_DS1347 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_MAX6916 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RX4581 is not set +# CONFIG_RTC_DRV_RX6110 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_PCF2123 is not set +# CONFIG_RTC_DRV_MCP795 is not set +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1685_FAMILY is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +CONFIG_RTC_DRV_EFI=y +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_DRV_ZYNQMP is not set +# CONFIG_RTC_DRV_CROS_EC is not set + +# +# on-CPU RTC drivers +# +# CONFIG_RTC_DRV_PL030 is not set +CONFIG_RTC_DRV_PL031=y +CONFIG_RTC_DRV_SUN6I=y +CONFIG_RTC_DRV_MV=m +CONFIG_RTC_DRV_ARMADA38X=m +# CONFIG_RTC_DRV_FTRTC010 is not set +CONFIG_RTC_DRV_PM8XXX=m +CONFIG_RTC_DRV_TEGRA=y +# CONFIG_RTC_DRV_SNVS is not set +CONFIG_RTC_DRV_XGENE=y +# CONFIG_RTC_DRV_R7301 is not set + +# +# HID Sensor RTC drivers +# +# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_ACPI=y +CONFIG_DMA_OF=y +# CONFIG_ALTERA_MSGDMA is not set +# CONFIG_AMBA_PL08X is not set +# CONFIG_BCM_SBA_RAID is not set +CONFIG_DMA_BCM2835=y +CONFIG_DMA_SUN6I=m +# CONFIG_DW_AXI_DMAC is not set +# CONFIG_FSL_EDMA is not set +# CONFIG_INTEL_IDMA64 is not set +CONFIG_K3_DMA=m +CONFIG_MV_XOR=y +CONFIG_MV_XOR_V2=y +CONFIG_PL330_DMA=m +CONFIG_TEGRA20_APB_DMA=y +CONFIG_TEGRA210_ADMA=y +CONFIG_XGENE_DMA=m +# CONFIG_XILINX_DMA is not set +# CONFIG_XILINX_ZYNQMP_DMA is not set +CONFIG_QCOM_BAM_DMA=m +CONFIG_QCOM_HIDMA_MGMT=m +CONFIG_QCOM_HIDMA=m +# CONFIG_DW_DMAC is not set +# CONFIG_DW_DMAC_PCI is not set + +# +# DMA Clients +# +CONFIG_ASYNC_TX_DMA=y +# CONFIG_DMATEST is not set +CONFIG_DMA_ENGINE_RAID=y + +# +# DMABUF options +# +CONFIG_SYNC_FILE=y +# CONFIG_SW_SYNC is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_PANEL is not set +CONFIG_UIO=m +CONFIG_UIO_CIF=m +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set +CONFIG_UIO_AEC=m +CONFIG_UIO_SERCOS3=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_NETX=m +# CONFIG_UIO_PRUSS is not set +CONFIG_UIO_MF624=m +CONFIG_VFIO_IOMMU_TYPE1=m +CONFIG_VFIO_VIRQFD=m +CONFIG_VFIO=m +CONFIG_VFIO_NOIOMMU=y +CONFIG_VFIO_PCI=m +CONFIG_VFIO_PCI_MMAP=y +CONFIG_VFIO_PCI_INTX=y +# CONFIG_VFIO_PLATFORM is not set +# CONFIG_VFIO_MDEV is not set +CONFIG_IRQ_BYPASS_MANAGER=y +CONFIG_VIRT_DRIVERS=y +CONFIG_VIRTIO=m +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_INPUT=m +CONFIG_VIRTIO_MMIO=m +# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set + +# +# Microsoft Hyper-V guest support +# + +# +# Xen driver support +# +CONFIG_XEN_BALLOON=y +CONFIG_XEN_SCRUB_PAGES=y +CONFIG_XEN_DEV_EVTCHN=m +CONFIG_XEN_BACKEND=y +CONFIG_XENFS=m +CONFIG_XEN_COMPAT_XENFS=y +CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XEN_XENBUS_FRONTEND=y +CONFIG_XEN_GNTDEV=m +CONFIG_XEN_GRANT_DEV_ALLOC=m +CONFIG_SWIOTLB_XEN=y +# CONFIG_XEN_PVCALLS_FRONTEND is not set +# CONFIG_XEN_PVCALLS_BACKEND is not set +CONFIG_XEN_SCSI_BACKEND=m +CONFIG_XEN_PRIVCMD=m +CONFIG_XEN_EFI=y +CONFIG_XEN_AUTO_XLATE=y +CONFIG_STAGING=y +# CONFIG_IPX is not set +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +# CONFIG_PRISM2_USB is not set +# CONFIG_COMEDI is not set +# CONFIG_RTL8192U is not set +# CONFIG_RTLLIB is not set +CONFIG_RTL8723BS=m +CONFIG_R8712U=m +CONFIG_R8188EU=m +CONFIG_88EU_AP_MODE=y +# CONFIG_R8822BE is not set +# CONFIG_RTS5208 is not set +# CONFIG_VT6655 is not set +# CONFIG_VT6656 is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16203 is not set +# CONFIG_ADIS16209 is not set +# CONFIG_ADIS16240 is not set + +# +# Analog to digital converters +# +# CONFIG_AD7606 is not set +# CONFIG_AD7780 is not set +# CONFIG_AD7816 is not set +# CONFIG_AD7192 is not set +# CONFIG_AD7280 is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# +# CONFIG_AD9832 is not set +# CONFIG_AD9834 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16060 is not set + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_TSL2x7x is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7753 is not set +# CONFIG_ADE7754 is not set +# CONFIG_ADE7758 is not set +# CONFIG_ADE7759 is not set +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# +# CONFIG_AD2S90 is not set +# CONFIG_AD2S1200 is not set +# CONFIG_AD2S1210 is not set +# CONFIG_FB_SM750 is not set +# CONFIG_FB_XGI is not set + +# +# Speakup console speech +# +CONFIG_SPEAKUP=m +CONFIG_SPEAKUP_SYNTH_ACNTSA=m +CONFIG_SPEAKUP_SYNTH_APOLLO=m +CONFIG_SPEAKUP_SYNTH_AUDPTR=m +CONFIG_SPEAKUP_SYNTH_BNS=m +CONFIG_SPEAKUP_SYNTH_DECTLK=m +CONFIG_SPEAKUP_SYNTH_DECEXT=m +CONFIG_SPEAKUP_SYNTH_LTLK=m +CONFIG_SPEAKUP_SYNTH_SOFT=m +CONFIG_SPEAKUP_SYNTH_SPKOUT=m +CONFIG_SPEAKUP_SYNTH_TXPRT=m +CONFIG_SPEAKUP_SYNTH_DUMMY=m +# CONFIG_MFD_NVEC is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_STAGING_BOARD is not set +# CONFIG_LTE_GDM724X is not set +# CONFIG_FIREWIRE_SERIAL is not set +# CONFIG_LNET is not set +# CONFIG_DGNC is not set +# CONFIG_GS_FPGABOOT is not set +# CONFIG_UNISYSSPAR is not set +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set +# CONFIG_FB_TFT is not set +# CONFIG_WILC1000_SDIO is not set +# CONFIG_WILC1000_SPI is not set +# CONFIG_MOST is not set +# CONFIG_KS7010 is not set +# CONFIG_GREYBUS is not set +CONFIG_BCM_VIDEOCORE=y +# CONFIG_BCM2835_VCHIQ is not set +# CONFIG_SND_BCM2835 is not set +# CONFIG_VIDEO_BCM2835 is not set + +# +# USB Power Delivery and Type-C drivers +# +# CONFIG_PI433 is not set +CONFIG_MTK_MMC=m +# CONFIG_MTK_AEE_KDUMP is not set +# CONFIG_MTK_MMC_CD_POLL is not set +# CONFIG_GOLDFISH is not set +CONFIG_CHROME_PLATFORMS=y +CONFIG_CROS_EC_PROTO=y +CONFIG_CROS_KBD_LED_BACKLIGHT=m +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +CONFIG_COMMON_CLK_VERSATILE=y +CONFIG_CLK_SP810=y +CONFIG_CLK_VEXPRESS_OSC=y +# CONFIG_CLK_HSDK is not set +# CONFIG_COMMON_CLK_MAX77686 is not set +CONFIG_COMMON_CLK_RK808=m +CONFIG_COMMON_CLK_HI655X=m +CONFIG_COMMON_CLK_SCMI=m +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI544 is not set +# CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_CDCE925 is not set +# CONFIG_COMMON_CLK_CS2000_CP is not set +# CONFIG_CLK_QORIQ is not set +CONFIG_COMMON_CLK_XGENE=y +# CONFIG_COMMON_CLK_PWM is not set +# CONFIG_COMMON_CLK_VC5 is not set +CONFIG_COMMON_CLK_HI3516CV300=y +CONFIG_COMMON_CLK_HI3519=y +CONFIG_COMMON_CLK_HI3660=y +CONFIG_COMMON_CLK_HI3798CV200=y +CONFIG_COMMON_CLK_HI6220=y +CONFIG_RESET_HISI=y +CONFIG_STUB_CLK_HI6220=y +# CONFIG_STUB_CLK_HI3660 is not set +CONFIG_COMMON_CLK_AMLOGIC=y +CONFIG_COMMON_CLK_REGMAP_MESON=y +CONFIG_COMMON_CLK_GXBB=y +CONFIG_COMMON_CLK_AXG=y +CONFIG_ARMADA_37XX_CLK=y +CONFIG_ARMADA_AP806_SYSCON=y +CONFIG_ARMADA_CP110_SYSCON=y +CONFIG_QCOM_GDSC=y +CONFIG_QCOM_RPMCC=y +CONFIG_COMMON_CLK_QCOM=y +CONFIG_QCOM_A53PLL=y +CONFIG_QCOM_CLK_APCS_MSM8916=m +CONFIG_QCOM_CLK_RPM=m +CONFIG_QCOM_CLK_SMD_RPM=m +# CONFIG_APQ_GCC_8084 is not set +# CONFIG_APQ_MMCC_8084 is not set +# CONFIG_IPQ_GCC_4019 is not set +# CONFIG_IPQ_GCC_806X is not set +# CONFIG_IPQ_LCC_806X is not set +# CONFIG_IPQ_GCC_8074 is not set +# CONFIG_MSM_GCC_8660 is not set +CONFIG_MSM_GCC_8916=y +# CONFIG_MSM_GCC_8960 is not set +# CONFIG_MSM_LCC_8960 is not set +# CONFIG_MDM_GCC_9615 is not set +# CONFIG_MDM_LCC_9615 is not set +# CONFIG_MSM_MMCC_8960 is not set +# CONFIG_MSM_GCC_8974 is not set +# CONFIG_MSM_MMCC_8974 is not set +# CONFIG_MSM_GCC_8994 is not set +CONFIG_MSM_GCC_8996=y +CONFIG_MSM_MMCC_8996=y +# CONFIG_SPMI_PMIC_CLKDIV is not set +CONFIG_SUNXI_CCU=y +CONFIG_SUN50I_A64_CCU=y +CONFIG_SUN50I_H6_CCU=y +# CONFIG_SUN8I_A83T_CCU is not set +CONFIG_SUN8I_H3_CCU=y +CONFIG_SUN8I_DE2_CCU=y +CONFIG_SUN8I_R_CCU=y +CONFIG_CLK_TEGRA_BPMP=y +# CONFIG_HWSPINLOCK is not set + +# +# Clock Source drivers +# +CONFIG_TIMER_OF=y +CONFIG_TIMER_ACPI=y +CONFIG_TIMER_PROBE=y +CONFIG_CLKSRC_MMIO=y +CONFIG_ROCKCHIP_TIMER=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y +CONFIG_FSL_ERRATUM_A008585=y +CONFIG_HISILICON_ERRATUM_161010101=y +CONFIG_ARM64_ERRATUM_858921=y +CONFIG_ARM_TIMER_SP804=y +CONFIG_CLKSRC_VERSATILE=y +CONFIG_MAILBOX=y +# CONFIG_ARM_MHU is not set +# CONFIG_PLATFORM_MHU is not set +# CONFIG_PL320_MBOX is not set +# CONFIG_ROCKCHIP_MBOX is not set +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set +CONFIG_BCM2835_MBOX=y +# CONFIG_HI3660_MBOX is not set +CONFIG_HI6220_MBOX=y +# CONFIG_MAILBOX_TEST is not set +CONFIG_QCOM_APCS_IPC=m +CONFIG_TEGRA_HSP_MBOX=y +CONFIG_XGENE_SLIMPRO_MBOX=m +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y + +# +# Generic IOMMU Pagetable Support +# +CONFIG_IOMMU_IO_PGTABLE=y +CONFIG_IOMMU_IO_PGTABLE_LPAE=y +# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set +# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set +CONFIG_IOMMU_IOVA=y +CONFIG_OF_IOMMU=y +CONFIG_IOMMU_DMA=y +# CONFIG_ROCKCHIP_IOMMU is not set +CONFIG_TEGRA_IOMMU_SMMU=y +CONFIG_ARM_SMMU=y +CONFIG_ARM_SMMU_V3=y +CONFIG_QCOM_IOMMU=y + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set + +# +# Rpmsg drivers +# +CONFIG_RPMSG=m +# CONFIG_RPMSG_CHAR is not set +CONFIG_RPMSG_QCOM_GLINK_NATIVE=m +CONFIG_RPMSG_QCOM_GLINK_RPM=m +# CONFIG_RPMSG_VIRTIO is not set +# CONFIG_SOUNDWIRE is not set + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +CONFIG_MESON_GX_SOCINFO=y +CONFIG_MESON_GX_PM_DOMAINS=y +CONFIG_MESON_MX_SOCINFO=y + +# +# Broadcom SoC drivers +# +CONFIG_RASPBERRYPI_POWER=y +# CONFIG_SOC_BRCMSTB is not set + +# +# i.MX SoC drivers +# + +# +# Qualcomm SoC drivers +# +CONFIG_QCOM_GSBI=m +CONFIG_QCOM_MDT_LOADER=m +# CONFIG_QCOM_RMTFS_MEM is not set +CONFIG_QCOM_SMD_RPM=m +CONFIG_QCOM_WCNSS_CTRL=m +CONFIG_ROCKCHIP_GRF=y +CONFIG_ROCKCHIP_PM_DOMAINS=y +CONFIG_SUNXI_SRAM=y +CONFIG_ARCH_TEGRA_132_SOC=y +CONFIG_ARCH_TEGRA_210_SOC=y +# CONFIG_ARCH_TEGRA_186_SOC is not set +CONFIG_ARCH_TEGRA_194_SOC=y +CONFIG_SOC_TEGRA_FUSE=y +CONFIG_SOC_TEGRA_FLOWCTRL=y +CONFIG_SOC_TEGRA_PMC=y +CONFIG_SOC_TEGRA_POWERGATE_BPMP=y +# CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# CONFIG_XILINX_VCU is not set +CONFIG_PM_DEVFREQ=y + +# +# DEVFREQ Governors +# +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m +# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set +# CONFIG_DEVFREQ_GOV_POWERSAVE is not set +# CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_GOV_PASSIVE is not set + +# +# DEVFREQ Drivers +# +# CONFIG_ARM_RK3399_DMC_DEVFREQ is not set +# CONFIG_PM_DEVFREQ_EVENT is not set +CONFIG_EXTCON=y + +# +# Extcon Device Drivers +# +# CONFIG_EXTCON_ADC_JACK is not set +# CONFIG_EXTCON_GPIO is not set +# CONFIG_EXTCON_MAX3355 is not set +CONFIG_EXTCON_QCOM_SPMI_MISC=m +# CONFIG_EXTCON_RT8973A is not set +# CONFIG_EXTCON_SM5502 is not set +CONFIG_EXTCON_USB_GPIO=m +# CONFIG_EXTCON_USBC_CROS_EC is not set +CONFIG_MEMORY=y +# CONFIG_ARM_PL172_MPMC is not set +CONFIG_TEGRA_MC=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +# CONFIG_IIO_BUFFER_CB is not set +# CONFIG_IIO_BUFFER_HW_CONSUMER is not set +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGERED_BUFFER=m +# CONFIG_IIO_CONFIGFS is not set +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 +# CONFIG_IIO_SW_DEVICE is not set +# CONFIG_IIO_SW_TRIGGER is not set + +# +# Accelerometers +# +# CONFIG_ADXL345_I2C is not set +# CONFIG_ADXL345_SPI is not set +# CONFIG_BMA180 is not set +# CONFIG_BMA220 is not set +# CONFIG_BMC150_ACCEL is not set +# CONFIG_DA280 is not set +# CONFIG_DA311 is not set +# CONFIG_DMARD06 is not set +# CONFIG_DMARD09 is not set +# CONFIG_DMARD10 is not set +CONFIG_HID_SENSOR_ACCEL_3D=m +# CONFIG_IIO_CROS_EC_ACCEL_LEGACY is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set +# CONFIG_KXSD9 is not set +# CONFIG_KXCJK1013 is not set +# CONFIG_MC3230 is not set +# CONFIG_MMA7455_I2C is not set +# CONFIG_MMA7455_SPI is not set +# CONFIG_MMA7660 is not set +# CONFIG_MMA8452 is not set +# CONFIG_MMA9551 is not set +# CONFIG_MMA9553 is not set +# CONFIG_MXC4005 is not set +# CONFIG_MXC6255 is not set +# CONFIG_SCA3000 is not set +# CONFIG_STK8312 is not set +# CONFIG_STK8BA50 is not set + +# +# Analog to digital converters +# +# CONFIG_AD7266 is not set +# CONFIG_AD7291 is not set +# CONFIG_AD7298 is not set +# CONFIG_AD7476 is not set +# CONFIG_AD7766 is not set +# CONFIG_AD7791 is not set +# CONFIG_AD7793 is not set +# CONFIG_AD7887 is not set +# CONFIG_AD7923 is not set +# CONFIG_AD799X is not set +CONFIG_AXP20X_ADC=m +CONFIG_AXP288_ADC=m +# CONFIG_CC10001_ADC is not set +# CONFIG_ENVELOPE_DETECTOR is not set +# CONFIG_HI8435 is not set +# CONFIG_HX711 is not set +# CONFIG_INA2XX_ADC is not set +# CONFIG_LTC2471 is not set +# CONFIG_LTC2485 is not set +# CONFIG_LTC2497 is not set +# CONFIG_MAX1027 is not set +# CONFIG_MAX11100 is not set +# CONFIG_MAX1118 is not set +# CONFIG_MAX1363 is not set +# CONFIG_MAX9611 is not set +# CONFIG_MCP320X is not set +# CONFIG_MCP3422 is not set +CONFIG_MESON_SARADC=m +# CONFIG_NAU7802 is not set +CONFIG_QCOM_VADC_COMMON=m +CONFIG_QCOM_SPMI_IADC=m +CONFIG_QCOM_SPMI_VADC=m +# CONFIG_ROCKCHIP_SARADC is not set +# CONFIG_SD_ADC_MODULATOR is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_TI_ADC0832 is not set +# CONFIG_TI_ADC084S021 is not set +# CONFIG_TI_ADC12138 is not set +# CONFIG_TI_ADC108S102 is not set +# CONFIG_TI_ADC128S052 is not set +# CONFIG_TI_ADC161S626 is not set +# CONFIG_TI_ADS1015 is not set +# CONFIG_TI_ADS7950 is not set +# CONFIG_TI_ADS8688 is not set +# CONFIG_TI_TLC4541 is not set +# CONFIG_VF610_ADC is not set +CONFIG_VIPERBOARD_ADC=m + +# +# Amplifiers +# +# CONFIG_AD8366 is not set + +# +# Chemical Sensors +# +# CONFIG_ATLAS_PH_SENSOR is not set +# CONFIG_CCS811 is not set +# CONFIG_IAQCORE is not set +# CONFIG_VZ89X is not set +# CONFIG_IIO_CROS_EC_SENSORS_CORE is not set + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m + +# +# SSP Sensor Common +# +# CONFIG_IIO_SSP_SENSORHUB is not set + +# +# Counters +# + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5360 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5421 is not set +CONFIG_AD5446=m +# CONFIG_AD5449 is not set +# CONFIG_AD5592R is not set +# CONFIG_AD5593R is not set +# CONFIG_AD5504 is not set +# CONFIG_AD5624R_SPI is not set +# CONFIG_LTC2632 is not set +# CONFIG_AD5686 is not set +# CONFIG_AD5755 is not set +# CONFIG_AD5761 is not set +# CONFIG_AD5764 is not set +# CONFIG_AD5791 is not set +# CONFIG_AD7303 is not set +# CONFIG_AD8801 is not set +# CONFIG_DPOT_DAC is not set +# CONFIG_DS4424 is not set +# CONFIG_M62332 is not set +# CONFIG_MAX517 is not set +# CONFIG_MAX5821 is not set +# CONFIG_MCP4725 is not set +# CONFIG_MCP4922 is not set +# CONFIG_TI_DAC082S085 is not set +# CONFIG_VF610_DAC is not set + +# +# IIO dummy driver +# + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# +# CONFIG_AD9523 is not set + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# +# CONFIG_ADF4350 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16080 is not set +# CONFIG_ADIS16130 is not set +# CONFIG_ADIS16136 is not set +# CONFIG_ADIS16260 is not set +# CONFIG_ADXRS450 is not set +# CONFIG_BMG160 is not set +CONFIG_HID_SENSOR_GYRO_3D=m +# CONFIG_MPU3050_I2C is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Health Sensors +# + +# +# Heart Rate Monitors +# +# CONFIG_AFE4403 is not set +# CONFIG_AFE4404 is not set +# CONFIG_MAX30100 is not set +# CONFIG_MAX30102 is not set + +# +# Humidity sensors +# +# CONFIG_AM2315 is not set +CONFIG_DHT11=m +# CONFIG_HDC100X is not set +# CONFIG_HID_SENSOR_HUMIDITY is not set +# CONFIG_HTS221 is not set +# CONFIG_HTU21 is not set +# CONFIG_SI7005 is not set +# CONFIG_SI7020 is not set + +# +# Inertial measurement units +# +# CONFIG_ADIS16400 is not set +# CONFIG_ADIS16480 is not set +# CONFIG_BMI160_I2C is not set +# CONFIG_BMI160_SPI is not set +# CONFIG_KMX61 is not set +# CONFIG_INV_MPU6050_I2C is not set +# CONFIG_INV_MPU6050_SPI is not set +# CONFIG_IIO_ST_LSM6DSX is not set + +# +# Light sensors +# +CONFIG_ACPI_ALS=m +# CONFIG_ADJD_S311 is not set +# CONFIG_AL3320A is not set +# CONFIG_APDS9300 is not set +# CONFIG_APDS9960 is not set +# CONFIG_BH1750 is not set +CONFIG_BH1780=m +# CONFIG_CM32181 is not set +# CONFIG_CM3232 is not set +# CONFIG_CM3323 is not set +# CONFIG_CM3605 is not set +# CONFIG_CM36651 is not set +# CONFIG_GP2AP020A00F is not set +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_ISL29125 is not set +CONFIG_HID_SENSOR_ALS=m +CONFIG_HID_SENSOR_PROX=m +# CONFIG_JSA1212 is not set +# CONFIG_RPR0521 is not set +# CONFIG_LTR501 is not set +# CONFIG_LV0104CS is not set +# CONFIG_MAX44000 is not set +# CONFIG_OPT3001 is not set +# CONFIG_PA12203001 is not set +# CONFIG_SI1145 is not set +# CONFIG_STK3310 is not set +# CONFIG_ST_UVIS25 is not set +# CONFIG_TCS3414 is not set +# CONFIG_TCS3472 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL4531 is not set +# CONFIG_US5182D is not set +# CONFIG_VCNL4000 is not set +# CONFIG_VEML6070 is not set +# CONFIG_VL6180 is not set +# CONFIG_ZOPT2201 is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8974 is not set +# CONFIG_AK8975 is not set +# CONFIG_AK09911 is not set +# CONFIG_BMC150_MAGN_I2C is not set +# CONFIG_BMC150_MAGN_SPI is not set +# CONFIG_MAG3110 is not set +CONFIG_HID_SENSOR_MAGNETOMETER_3D=m +# CONFIG_MMC35240 is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_SENSORS_HMC5843_I2C is not set +# CONFIG_SENSORS_HMC5843_SPI is not set + +# +# Multiplexers +# +# CONFIG_IIO_MUX is not set + +# +# Inclinometer sensors +# +CONFIG_HID_SENSOR_INCLINOMETER_3D=m +CONFIG_HID_SENSOR_DEVICE_ROTATION=m + +# +# Triggers - standalone +# +# CONFIG_IIO_INTERRUPT_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set + +# +# Digital potentiometers +# +# CONFIG_AD5272 is not set +# CONFIG_DS1803 is not set +# CONFIG_MAX5481 is not set +# CONFIG_MAX5487 is not set +# CONFIG_MCP4018 is not set +# CONFIG_MCP4131 is not set +# CONFIG_MCP4531 is not set +# CONFIG_TPL0102 is not set + +# +# Digital potentiostats +# +# CONFIG_LMP91000 is not set + +# +# Pressure sensors +# +# CONFIG_ABP060MG is not set +# CONFIG_BMP280 is not set +CONFIG_HID_SENSOR_PRESS=m +# CONFIG_HP03 is not set +# CONFIG_MPL115_I2C is not set +# CONFIG_MPL115_SPI is not set +# CONFIG_MPL3115 is not set +# CONFIG_MS5611 is not set +# CONFIG_MS5637 is not set +# CONFIG_IIO_ST_PRESS is not set +# CONFIG_T5403 is not set +# CONFIG_HP206C is not set +# CONFIG_ZPA2326 is not set + +# +# Lightning sensors +# +# CONFIG_AS3935 is not set + +# +# Proximity and distance sensors +# +# CONFIG_LIDAR_LITE_V2 is not set +# CONFIG_RFD77402 is not set +# CONFIG_SRF04 is not set +# CONFIG_SX9500 is not set +# CONFIG_SRF08 is not set + +# +# Temperature sensors +# +# CONFIG_MAXIM_THERMOCOUPLE is not set +# CONFIG_HID_SENSOR_TEMP is not set +# CONFIG_MLX90614 is not set +# CONFIG_MLX90632 is not set +# CONFIG_TMP006 is not set +# CONFIG_TMP007 is not set +# CONFIG_TSYS01 is not set +# CONFIG_TSYS02D is not set +# CONFIG_NTB is not set +# CONFIG_VME_BUS is not set +CONFIG_PWM=y +CONFIG_PWM_SYSFS=y +CONFIG_PWM_BCM2835=m +# CONFIG_PWM_CROS_EC is not set +# CONFIG_PWM_FSL_FTM is not set +# CONFIG_PWM_HIBVT is not set +CONFIG_PWM_MESON=m +# CONFIG_PWM_PCA9685 is not set +CONFIG_PWM_ROCKCHIP=m +CONFIG_PWM_SUN4I=m +CONFIG_PWM_TEGRA=m + +# +# IRQ chip support +# +CONFIG_IRQCHIP=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_MAX_NR=1 +CONFIG_ARM_GIC_V2M=y +CONFIG_ARM_GIC_V3=y +CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_GIC_V3_ITS_PCI=y +CONFIG_HISILICON_IRQ_MBIGEN=y +CONFIG_MVEBU_GICP=y +CONFIG_MVEBU_ICU=y +CONFIG_MVEBU_ODMI=y +CONFIG_MVEBU_PIC=y +CONFIG_PARTITION_PERCPU=y +CONFIG_QCOM_IRQ_COMBINER=y +CONFIG_MESON_IRQ_GPIO=y +# CONFIG_QCOM_PDC is not set +# CONFIG_IPACK_BUS is not set +CONFIG_ARCH_HAS_RESET_CONTROLLER=y +CONFIG_RESET_CONTROLLER=y +CONFIG_RESET_MESON=y +CONFIG_RESET_SIMPLE=y +CONFIG_RESET_SUNXI=y +# CONFIG_RESET_TI_SYSCON is not set +CONFIG_COMMON_RESET_HI3660=y +CONFIG_COMMON_RESET_HI6220=y +CONFIG_RESET_TEGRA_BPMP=y +# CONFIG_FMC is not set + +# +# PHY Subsystem +# +CONFIG_GENERIC_PHY=y +CONFIG_PHY_XGENE=m +CONFIG_PHY_SUN4I_USB=m +# CONFIG_PHY_SUN9I_USB is not set +CONFIG_PHY_MESON8B_USB2=m +CONFIG_PHY_MESON_GXL_USB2=y +CONFIG_PHY_MESON_GXL_USB3=y +# CONFIG_BCM_KONA_USB2_PHY is not set +CONFIG_PHY_HI6220_USB=m +# CONFIG_PHY_HISTB_COMBPHY is not set +# CONFIG_PHY_HISI_INNO_USB2 is not set +CONFIG_PHY_MVEBU_CP110_COMPHY=m +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_CPCAP_USB is not set +# CONFIG_PHY_MAPPHONE_MDM6600 is not set +CONFIG_PHY_QCOM_APQ8064_SATA=m +CONFIG_PHY_QCOM_IPQ806X_SATA=m +CONFIG_PHY_QCOM_QMP=m +CONFIG_PHY_QCOM_QUSB2=m +CONFIG_PHY_QCOM_UFS=m +# CONFIG_PHY_ROCKCHIP_DP is not set +CONFIG_PHY_ROCKCHIP_EMMC=m +CONFIG_PHY_ROCKCHIP_INNO_USB2=m +CONFIG_PHY_ROCKCHIP_PCIE=m +# CONFIG_PHY_ROCKCHIP_TYPEC is not set +# CONFIG_PHY_ROCKCHIP_USB is not set +# CONFIG_PHY_SAMSUNG_USB2 is not set +CONFIG_PHY_TEGRA_XUSB=m +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +# CONFIG_ARM_CCI400_PMU is not set +# CONFIG_ARM_CCI5xx_PMU is not set +# CONFIG_ARM_CCN is not set +CONFIG_ARM_PMU=y +CONFIG_ARM_PMU_ACPI=y +# CONFIG_ARM_DSU_PMU is not set +# CONFIG_HISI_PMU is not set +# CONFIG_QCOM_L2_PMU is not set +# CONFIG_QCOM_L3_PMU is not set +# CONFIG_XGENE_PMU is not set +# CONFIG_ARM_SPE_PMU is not set +CONFIG_RAS=y + +# +# Android +# +# CONFIG_ANDROID is not set +CONFIG_LIBNVDIMM=y +CONFIG_BLK_DEV_PMEM=y +CONFIG_ND_BLK=y +CONFIG_ND_CLAIM=y +CONFIG_ND_BTT=y +CONFIG_BTT=y +CONFIG_OF_PMEM=y +CONFIG_DAX_DRIVER=y +CONFIG_DAX=y +CONFIG_DEV_DAX=m +CONFIG_NVMEM=y +CONFIG_QCOM_QFPROM=m +# CONFIG_ROCKCHIP_EFUSE is not set +CONFIG_NVMEM_SUNXI_SID=m +# CONFIG_MESON_EFUSE is not set +# CONFIG_MESON_MX_EFUSE is not set + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# CONFIG_FPGA is not set +# CONFIG_FSI is not set +CONFIG_TEE=m + +# +# TEE drivers +# +CONFIG_OPTEE=m +CONFIG_PM_OPP=y +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set + +# +# Firmware Drivers +# +CONFIG_ARM_PSCI_FW=y +# CONFIG_ARM_PSCI_CHECKER is not set +CONFIG_ARM_SCMI_PROTOCOL=y +CONFIG_ARM_SCMI_POWER_DOMAIN=m +# CONFIG_ARM_SCPI_PROTOCOL is not set +# CONFIG_ARM_SDE_INTERFACE is not set +# CONFIG_FIRMWARE_MEMMAP is not set +CONFIG_DMIID=y +CONFIG_DMI_SYSFS=y +CONFIG_RASPBERRYPI_FIRMWARE=y +# CONFIG_FW_CFG_SYSFS is not set +CONFIG_QCOM_SCM=y +CONFIG_QCOM_SCM_64=y +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set +CONFIG_HAVE_ARM_SMCCC=y +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_VARS=m +CONFIG_EFI_ESRT=y +CONFIG_EFI_VARS_PSTORE=m +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set +CONFIG_EFI_PARAMS_FROM_FDT=y +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_ARMSTUB=y +# CONFIG_EFI_BOOTLOADER_CONTROL is not set +# CONFIG_EFI_CAPSULE_LOADER is not set +# CONFIG_EFI_TEST is not set +# CONFIG_RESET_ATTACK_MITIGATION is not set +CONFIG_MESON_SM=y + +# +# Tegra firmware driver +# +CONFIG_TEGRA_IVC=y +CONFIG_TEGRA_BPMP=y +CONFIG_ACPI=y +CONFIG_ACPI_GENERIC_GSI=y +CONFIG_ACPI_CCA_REQUIRED=y +# CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_SPCR_TABLE=y +# CONFIG_ACPI_EC_DEBUGFS is not set +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_FAN=y +CONFIG_ACPI_TAD=m +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_MCFG=y +CONFIG_ACPI_CPPC_LIB=y +CONFIG_ACPI_PROCESSOR=y +# CONFIG_ACPI_IPMI is not set +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_NUMA=y +CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y +CONFIG_ACPI_TABLE_UPGRADE=y +# CONFIG_ACPI_DEBUG is not set +# CONFIG_ACPI_PCI_SLOT is not set +CONFIG_ACPI_CONTAINER=y +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_CUSTOM_METHOD is not set +# CONFIG_ACPI_BGRT is not set +CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y +CONFIG_ACPI_NFIT=y +CONFIG_HAVE_ACPI_APEI=y +# CONFIG_ACPI_APEI is not set +# CONFIG_PMIC_OPREGION is not set +# CONFIG_ACPI_CONFIGFS is not set +CONFIG_ACPI_IORT=y +CONFIG_ACPI_GTDT=y + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_FS_IOMAP=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=m +CONFIG_EXT4_USE_FOR_EXT2=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_EXT4_ENCRYPTION=y +CONFIG_EXT4_FS_ENCRYPTION=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=m +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +# CONFIG_XFS_ONLINE_SCRUB is not set +# CONFIG_XFS_WARN is not set +# CONFIG_XFS_DEBUG is not set +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +CONFIG_OCFS2_FS_STATS=y +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_FS_REF_VERIFY is not set +CONFIG_NILFS2_FS=m +CONFIG_F2FS_FS=m +CONFIG_F2FS_STAT_FS=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_POSIX_ACL=y +CONFIG_F2FS_FS_SECURITY=y +# CONFIG_F2FS_CHECK_FS is not set +CONFIG_F2FS_FS_ENCRYPTION=y +# CONFIG_F2FS_IO_TRACE is not set +# CONFIG_F2FS_FAULT_INJECTION is not set +CONFIG_FS_DAX=y +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +CONFIG_EXPORTFS_BLOCK_OPS=y +CONFIG_FILE_LOCKING=y +CONFIG_MANDATORY_FILE_LOCKING=y +CONFIG_FS_ENCRYPTION=m +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_OVERLAY_FS=m +# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set +CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y +# CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set + +# +# Caches +# +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" +CONFIG_FAT_DEFAULT_UTF8=y +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +# CONFIG_NTFS_RW is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_VMCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_CHILDREN=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_CONFIGFS_FS=m +CONFIG_EFIVAR_FS=m +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +CONFIG_ECRYPT_FS=m +CONFIG_ECRYPT_FS_MESSAGING=y +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +# CONFIG_HFSPLUS_FS_POSIX_ACL is not set +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_FS_XATTR=y +CONFIG_JFFS2_FS_POSIX_ACL=y +CONFIG_JFFS2_FS_SECURITY=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +CONFIG_UBIFS_FS=m +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_ATIME_SUPPORT is not set +# CONFIG_UBIFS_FS_ENCRYPTION is not set +CONFIG_UBIFS_FS_SECURITY=y +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_LZ4=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +CONFIG_SQUASHFS_ZSTD=y +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_VXFS_FS=m +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_QNX6FS_FS=m +# CONFIG_QNX6FS_DEBUG is not set +CONFIG_ROMFS_FS=m +# CONFIG_ROMFS_BACKED_BY_BLOCK is not set +# CONFIG_ROMFS_BACKED_BY_MTD is not set +CONFIG_ROMFS_BACKED_BY_BOTH=y +CONFIG_ROMFS_ON_BLOCK=y +CONFIG_ROMFS_ON_MTD=y +CONFIG_PSTORE=y +CONFIG_PSTORE_DEFLATE_COMPRESS=m +# CONFIG_PSTORE_LZO_COMPRESS is not set +# CONFIG_PSTORE_LZ4_COMPRESS is not set +# CONFIG_PSTORE_LZ4HC_COMPRESS is not set +# CONFIG_PSTORE_842_COMPRESS is not set +CONFIG_PSTORE_COMPRESS=y +CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y +CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_PMSG is not set +# CONFIG_PSTORE_FTRACE is not set +CONFIG_PSTORE_RAM=m +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_EXOFS_FS=m +# CONFIG_EXOFS_DEBUG is not set +CONFIG_ORE=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=m +CONFIG_NFS_SWAP=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_FLEXFILE_LAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" +# CONFIG_NFS_V4_1_MIGRATION is not set +CONFIG_NFS_V4_SECURITY_LABEL=y +CONFIG_NFS_FSCACHE=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +CONFIG_NFS_DEBUG=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_PNFS=y +CONFIG_NFSD_BLOCKLAYOUT=y +# CONFIG_NFSD_SCSILAYOUT is not set +# CONFIG_NFSD_FLEXFILELAYOUT is not set +CONFIG_NFSD_V4_SECURITY_LABEL=y +# CONFIG_NFSD_FAULT_INJECTION is not set +CONFIG_GRACE_PERIOD=m +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_BACKCHANNEL=y +CONFIG_SUNRPC_SWAP=y +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_SUNRPC_DEBUG=y +CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_CEPH_FS=m +CONFIG_CEPH_FSCACHE=y +CONFIG_CEPH_FS_POSIX_ACL=y +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +CONFIG_CIFS_ACL=y +CONFIG_CIFS_DEBUG=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set +CONFIG_CIFS_DFS_UPCALL=y +# CONFIG_CIFS_SMB311 is not set +# CONFIG_CIFS_SMB_DIRECT is not set +CONFIG_CIFS_FSCACHE=y +CONFIG_CODA_FS=m +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_AFS_FSCACHE=y +CONFIG_9P_FS=m +CONFIG_9P_FSCACHE=y +CONFIG_9P_FS_POSIX_ACL=y +CONFIG_9P_FS_SECURITY=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +CONFIG_DLM_DEBUG=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_KVM_IRQFD=y +CONFIG_HAVE_KVM_IRQ_ROUTING=y +CONFIG_HAVE_KVM_EVENTFD=y +CONFIG_KVM_MMIO=y +CONFIG_HAVE_KVM_MSI=y +CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y +CONFIG_KVM_VFIO=y +CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y +CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y +CONFIG_KVM_COMPAT=y +CONFIG_HAVE_KVM_IRQ_BYPASS=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=y +CONFIG_KVM_ARM_HOST=y +CONFIG_KVM_ARM_PMU=y +CONFIG_KVM_INDIRECT_VECTORS=y +CONFIG_VHOST_NET=m +CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VSOCK=m +CONFIG_VHOST=m +# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_DYNAMIC_DEBUG=y + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_GDB_SCRIPTS is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=2048 +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_PAGE_OWNER is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_FRAME_POINTER=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_DEBUG_KERNEL=y + +# +# Memory Debugging +# +CONFIG_PAGE_EXTENSION=y +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_PAGE_POISONING=y +CONFIG_PAGE_POISONING_NO_SANITY=y +# CONFIG_PAGE_POISONING_ZERO is not set +# CONFIG_DEBUG_PAGE_REF is not set +# CONFIG_DEBUG_RODATA_TEST is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_HAVE_ARCH_KASAN=y +# CONFIG_KASAN is not set +CONFIG_ARCH_HAS_KCOV=y +# CONFIG_KCOV is not set +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Lockups and Hangs +# +CONFIG_LOCKUP_DETECTOR=y +CONFIG_SOFTLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +CONFIG_SCHED_DEBUG=y +CONFIG_SCHED_INFO=y +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_STACK_END_CHECK=y +# CONFIG_DEBUG_TIMEKEEPING is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_HAVE_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_LIST=y +# CONFIG_DEBUG_PI_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_PERF_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +CONFIG_NOTIFIER_ERROR_INJECTION=m +CONFIG_PM_NOTIFIER_ERROR_INJECT=m +# CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_LATENCYTOP is not set +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_PREEMPTIRQ_EVENTS is not set +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_HWLAT_TRACER is not set +CONFIG_FTRACE_SYSCALLS=y +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_STACK_TRACER=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_KPROBE_EVENTS=y +CONFIG_UPROBE_EVENTS=y +CONFIG_BPF_EVENTS=y +CONFIG_PROBE_EVENTS=y +CONFIG_DYNAMIC_FTRACE=y +# CONFIG_FUNCTION_PROFILER is not set +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_HIST_TRIGGERS is not set +# CONFIG_TRACEPOINT_BENCHMARK is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +# CONFIG_TRACE_EVAL_MAP_FILE is not set +CONFIG_TRACING_EVENTS_GPIO=y +# CONFIG_DMA_API_DEBUG is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_SORT is not set +# CONFIG_KPROBES_SANITY_TEST is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_ASYNC_RAID6_TEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_HASH is not set +# CONFIG_TEST_LKM is not set +CONFIG_TEST_USER_COPY=m +CONFIG_TEST_BPF=m +# CONFIG_FIND_BIT_BENCHMARK is not set +CONFIG_TEST_FIRMWARE=m +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +CONFIG_TEST_STATIC_KEYS=m +# CONFIG_TEST_KMOD is not set +# CONFIG_MEMTEST is not set +CONFIG_BUG_ON_DATA_CORRUPTION=y +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +CONFIG_STRICT_DEVMEM=y +CONFIG_IO_STRICT_DEVMEM=y +# CONFIG_ARM64_PTDUMP_DEBUGFS is not set +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set +# CONFIG_DEBUG_WX is not set +# CONFIG_DEBUG_ALIGN_RODATA is not set +# CONFIG_DEBUG_EFI is not set +# CONFIG_ARM64_RELOC_TEST is not set +# CONFIG_CORESIGHT is not set + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_COMPAT=y +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_BIG_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEY_DH_OPERATIONS is not set +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_INFINIBAND is not set +CONFIG_SECURITY_NETWORK_XFRM=y +CONFIG_SECURITY_PATH=y +CONFIG_LSM_MMAP_MIN_ADDR=32768 +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +CONFIG_HARDENED_USERCOPY=y +CONFIG_HARDENED_USERCOPY_FALLBACK=y +# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set +# CONFIG_FORTIFY_SOURCE is not set +# CONFIG_STATIC_USERMODEHELPER is not set +CONFIG_SECURITY_SELINUX=y +# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set +# CONFIG_SECURITY_SELINUX_DISABLE is not set +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SMACK is not set +CONFIG_SECURITY_TOMOYO=y +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048 +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024 +# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set +CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init" +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init" +CONFIG_SECURITY_APPARMOR=y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 +CONFIG_SECURITY_APPARMOR_HASH=y +CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y +# CONFIG_SECURITY_APPARMOR_DEBUG is not set +# CONFIG_SECURITY_LOADPIN is not set +CONFIG_SECURITY_YAMA=y +CONFIG_INTEGRITY=y +CONFIG_INTEGRITY_SIGNATURE=y +CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y +CONFIG_INTEGRITY_TRUSTED_KEYRING=y +CONFIG_INTEGRITY_AUDIT=y +# CONFIG_IMA is not set +# CONFIG_EVM is not set +# CONFIG_DEFAULT_SECURITY_SELINUX is not set +# CONFIG_DEFAULT_SECURITY_TOMOYO is not set +CONFIG_DEFAULT_SECURITY_APPARMOR=y +# CONFIG_DEFAULT_SECURITY_DAC is not set +CONFIG_DEFAULT_SECURITY="apparmor" +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=m +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=m +CONFIG_CRYPTO_ACOMP2=y +CONFIG_CRYPTO_RSA=y +CONFIG_CRYPTO_DH=m +CONFIG_CRYPTO_ECDH=m +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_NULL2=y +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=m +# CONFIG_CRYPTO_MCRYPTD is not set +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_SIMD=m +CONFIG_CRYPTO_ENGINE=m + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_CHACHA20POLY1305=m +CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_ECHAINIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_CFB=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=m +# CONFIG_CRYPTO_KEYWRAP is not set + +# +# Hash modes +# +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_VMAC=m + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_CRCT10DIF=y +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_POLY1305=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_SHA3=m +# CONFIG_CRYPTO_SM3 is not set +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_CHACHA20=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_SPECK=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_LZO=y +# CONFIG_CRYPTO_842 is not set +CONFIG_CRYPTO_LZ4=m +CONFIG_CRYPTO_LZ4HC=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_DRBG_MENU=m +CONFIG_CRYPTO_DRBG_HMAC=y +# CONFIG_CRYPTO_DRBG_HASH is not set +# CONFIG_CRYPTO_DRBG_CTR is not set +CONFIG_CRYPTO_DRBG=m +CONFIG_CRYPTO_JITTERENTROPY=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_USER_API_RNG=m +CONFIG_CRYPTO_USER_API_AEAD=m +CONFIG_CRYPTO_HASH_INFO=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_MARVELL_CESA=m +# CONFIG_CRYPTO_DEV_CCP is not set +CONFIG_CRYPTO_DEV_CPT=m +CONFIG_CAVIUM_CPT=m +CONFIG_CRYPTO_DEV_NITROX=m +CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set +CONFIG_CRYPTO_DEV_QCE=m +# CONFIG_CRYPTO_DEV_ROCKCHIP is not set +CONFIG_CRYPTO_DEV_CHELSIO=m +# CONFIG_CHELSIO_IPSEC_INLINE is not set +CONFIG_CRYPTO_DEV_VIRTIO=m +CONFIG_CRYPTO_DEV_SAFEXCEL=m +# CONFIG_CRYPTO_DEV_CCREE is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set + +# +# Certificates for signature checking +# +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA256_ARM64=m +# CONFIG_CRYPTO_SHA512_ARM64 is not set +CONFIG_CRYPTO_SHA1_ARM64_CE=m +CONFIG_CRYPTO_SHA2_ARM64_CE=m +# CONFIG_CRYPTO_SHA512_ARM64_CE is not set +# CONFIG_CRYPTO_SHA3_ARM64 is not set +# CONFIG_CRYPTO_SM3_ARM64_CE is not set +CONFIG_CRYPTO_GHASH_ARM64_CE=m +# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set +CONFIG_CRYPTO_CRC32_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64=m +CONFIG_CRYPTO_AES_ARM64_CE=m +CONFIG_CRYPTO_AES_ARM64_CE_CCM=m +CONFIG_CRYPTO_AES_ARM64_CE_BLK=m +# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set +# CONFIG_CRYPTO_CHACHA20_NEON is not set +# CONFIG_CRYPTO_AES_ARM64_BS is not set +CONFIG_CRYPTO_SPECK_NEON=m +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_RAID6_PQ=m +CONFIG_BITREVERSE=y +CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_RATIONAL=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +# CONFIG_INDIRECT_PIO is not set +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC4 is not set +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_CRC8=m +CONFIG_XXHASH=m +CONFIG_AUDIT_GENERIC=y +CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y +CONFIG_AUDIT_COMPAT_GENERIC=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_COMPRESS=m +CONFIG_LZ4HC_COMPRESS=m +CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_COMPRESS=m +CONFIG_ZSTD_DECOMPRESS=m +CONFIG_XZ_DEC=y +# CONFIG_XZ_DEC_X86 is not set +# CONFIG_XZ_DEC_POWERPC is not set +# CONFIG_XZ_DEC_IA64 is not set +# CONFIG_XZ_DEC_ARM is not set +# CONFIG_XZ_DEC_ARMTHUMB is not set +# CONFIG_XZ_DEC_SPARC is not set +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_LZ4=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_ENC8=y +CONFIG_REED_SOLOMON_DEC8=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_BTREE=y +CONFIG_INTERVAL_TREE=y +CONFIG_RADIX_TREE_MULTIORDER=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_SGL_ALLOC=y +CONFIG_DMA_DIRECT_OPS=y +CONFIG_DMA_VIRT_OPS=y +CONFIG_CHECK_SIGNATURE=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_GLOB=y +# CONFIG_GLOB_SELFTEST is not set +CONFIG_NLATTR=y +CONFIG_LRU_CACHE=m +CONFIG_CLZ_TAB=y +CONFIG_CORDIC=m +# CONFIG_DDR is not set +CONFIG_IRQ_POLL=y +CONFIG_MPILIB=y +CONFIG_SIGNATURE=y +CONFIG_LIBFDT=y +CONFIG_OID_REGISTRY=y +CONFIG_UCS2_STRING=y +CONFIG_FONT_SUPPORT=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_SG_POOL=y +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y +CONFIG_SBITMAP=y +# CONFIG_STRING_SELFTEST is not set diff --git a/gnu/packages/aux-files/linux-libre/4.16-i686.conf b/gnu/packages/aux-files/linux-libre/4.17-i686.conf similarity index 97% rename from gnu/packages/aux-files/linux-libre/4.16-i686.conf rename to gnu/packages/aux-files/linux-libre/4.17-i686.conf index b9793d997d..66329038cf 100644 --- a/gnu/packages/aux-files/linux-libre/4.16-i686.conf +++ b/gnu/packages/aux-files/linux-libre/4.17-i686.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.16.0-gnu Kernel Configuration +# Linux/x86 4.17.0-gnu Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -25,6 +25,7 @@ CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_FILTER_PGPROT=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y @@ -134,7 +135,6 @@ CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y -# CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_BUILD_BIN2C=y @@ -220,7 +220,6 @@ CONFIG_MEMBARRIER=y CONFIG_CHECKPOINT_RESTORE=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y -# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y CONFIG_USERFAULTFD=y @@ -259,8 +258,6 @@ CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y -# CONFIG_UPROBES is not set -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_KRETPROBES=y @@ -309,7 +306,6 @@ CONFIG_HAVE_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_REGULAR is not set CONFIG_CC_STACKPROTECTOR_STRONG=y # CONFIG_CC_STACKPROTECTOR_AUTO is not set -CONFIG_THIN_ARCHIVES=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y @@ -321,20 +317,14 @@ CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y CONFIG_ARCH_MMAP_RND_BITS=8 CONFIG_HAVE_COPY_THREAD_TLS=y -# CONFIG_HAVE_ARCH_HASH is not set CONFIG_ISA_BUS_API=y CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y -# CONFIG_CPU_NO_EFFICIENT_FFS is not set -# CONFIG_HAVE_ARCH_VMAP_STACK is not set -# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set -# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y -CONFIG_ARCH_HAS_PHYS_TO_DMA=y CONFIG_ARCH_HAS_REFCOUNT=y CONFIG_REFCOUNT_FULL=y @@ -439,7 +429,6 @@ CONFIG_FREEZER=y CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y -CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set CONFIG_RETPOLINE=y @@ -553,7 +542,6 @@ CONFIG_PERF_EVENTS_INTEL_RAPL=y CONFIG_PERF_EVENTS_INTEL_CSTATE=y CONFIG_PERF_EVENTS_AMD_POWER=m # CONFIG_X86_LEGACY_VM86 is not set -# CONFIG_VM86 is not set CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX32=y # CONFIG_TOSHIBA is not set @@ -577,7 +565,6 @@ CONFIG_X86_PAE=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_ARCH_HAS_MEM_ENCRYPT=y -CONFIG_NEED_NODE_MEMMAP_SIZE=y CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y @@ -593,7 +580,6 @@ CONFIG_HAVE_MEMBLOCK_NODE_MAP=y CONFIG_HAVE_GENERIC_GUP=y CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y -# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_SPARSE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set @@ -613,7 +599,6 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set -# CONFIG_ARCH_WANTS_THP_SWAP is not set CONFIG_TRANSPARENT_HUGE_PAGECACHE=y CONFIG_CLEANCACHE=y CONFIG_FRONTSWAP=y @@ -716,6 +701,7 @@ CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=y +CONFIG_ACPI_TAD=m CONFIG_ACPI_DOCK=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y @@ -726,7 +712,6 @@ CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=y CONFIG_ACPI_CUSTOM_DSDT_FILE="" -# CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set @@ -817,7 +802,6 @@ CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y -# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set CONFIG_INTEL_IDLE=y # @@ -1002,6 +986,7 @@ CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE_COMMON=y CONFIG_IP_MROUTE=y # CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y @@ -1139,8 +1124,8 @@ CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=m CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m -CONFIG_NF_TABLES_INET=m -CONFIG_NF_TABLES_NETDEV=m +# CONFIG_NF_TABLES_INET is not set +# CONFIG_NF_TABLES_NETDEV is not set CONFIG_NFT_EXTHDR=m CONFIG_NFT_META=m CONFIG_NFT_RT=m @@ -1160,15 +1145,8 @@ CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m -CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m -CONFIG_NFT_FIB=m -CONFIG_NFT_FIB_INET=m -CONFIG_NF_DUP_NETDEV=m -CONFIG_NFT_DUP_NETDEV=m -CONFIG_NFT_FWD_NETDEV=m -CONFIG_NFT_FIB_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m @@ -1326,22 +1304,15 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_SOCKET_IPV4=m -CONFIG_NF_TABLES_IPV4=m -CONFIG_NFT_CHAIN_ROUTE_IPV4=m -CONFIG_NFT_REJECT_IPV4=m -CONFIG_NFT_DUP_IPV4=m -CONFIG_NFT_FIB_IPV4=m -CONFIG_NF_TABLES_ARP=m +# CONFIG_NF_TABLES_IPV4 is not set +# CONFIG_NF_TABLES_ARP is not set CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m -CONFIG_NFT_CHAIN_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=m -CONFIG_NFT_MASQ_IPV4=m -CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1374,20 +1345,13 @@ CONFIG_IP_NF_ARP_MANGLE=m CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_NF_SOCKET_IPV6=m -CONFIG_NF_TABLES_IPV6=m -CONFIG_NFT_CHAIN_ROUTE_IPV6=m -CONFIG_NFT_REJECT_IPV6=m -CONFIG_NFT_DUP_IPV6=m -CONFIG_NFT_FIB_IPV6=m +# CONFIG_NF_TABLES_IPV6 is not set CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m -CONFIG_NFT_CHAIN_NAT_IPV6=m CONFIG_NF_NAT_MASQUERADE_IPV6=m -CONFIG_NFT_MASQ_IPV6=m -CONFIG_NFT_REDIR_IPV6=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m @@ -1414,10 +1378,7 @@ CONFIG_IP6_NF_TARGET_NPT=m # DECnet: Netfilter Configuration # CONFIG_DECNET_NF_GRABULATOR=m -CONFIG_NF_TABLES_BRIDGE=m -CONFIG_NFT_BRIDGE_META=m -CONFIG_NFT_BRIDGE_REJECT=m -CONFIG_NF_LOG_BRIDGE=m +# CONFIG_NF_TABLES_BRIDGE is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -1467,6 +1428,7 @@ CONFIG_RDS_TCP=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TIPC_DIAG=m CONFIG_ATM=m CONFIG_ATM_CLIP=m # CONFIG_ATM_CLIP_NO_ICMP is not set @@ -1596,6 +1558,7 @@ CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m CONFIG_NET_EMATCH_CANID=m CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_EMATCH_IPT=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m @@ -1791,12 +1754,12 @@ CONFIG_BT_HCIBFUSB=m CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIBT3C=m CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m CONFIG_BT_WILINK=m +CONFIG_BT_HCIRSI=m CONFIG_AF_RXRPC=m CONFIG_AF_RXRPC_IPV6=y # CONFIG_AF_RXRPC_INJECT_LOSS is not set @@ -1933,7 +1896,6 @@ CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_SYS_HYPERVISOR=y -# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_REGMAP=y @@ -1992,13 +1954,8 @@ CONFIG_MTD_GEN_PROBE=m CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set CONFIG_MTD_CFI_INTELEXT=m CONFIG_MTD_CFI_AMDSTD=m CONFIG_MTD_CFI_STAA=m @@ -2055,6 +2012,11 @@ CONFIG_MTD_BLOCK2MTD=m CONFIG_MTD_DOCG3=m CONFIG_BCH_CONST_M=14 CONFIG_BCH_CONST_T=4 +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_ONENAND_GENERIC=m +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_2X_PROGRAM=y CONFIG_MTD_NAND_ECC=m # CONFIG_MTD_NAND_ECC_SMC is not set CONFIG_MTD_NAND=m @@ -2064,7 +2026,6 @@ CONFIG_MTD_SM_COMMON=m CONFIG_MTD_NAND_DENALI=m CONFIG_MTD_NAND_DENALI_PCI=m CONFIG_MTD_NAND_GPIO=m -# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set CONFIG_MTD_NAND_RICOH=m CONFIG_MTD_NAND_DISKONCHIP=m # CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set @@ -2075,11 +2036,6 @@ CONFIG_MTD_NAND_CAFE=m CONFIG_MTD_NAND_CS553X=m CONFIG_MTD_NAND_NANDSIM=m CONFIG_MTD_NAND_PLATFORM=m -CONFIG_MTD_ONENAND=m -CONFIG_MTD_ONENAND_VERIFY_WRITE=y -CONFIG_MTD_ONENAND_GENERIC=m -# CONFIG_MTD_ONENAND_OTP is not set -CONFIG_MTD_ONENAND_2X_PROGRAM=y # # LPDDR & LPDDR2 PCM memory drivers @@ -2106,7 +2062,6 @@ CONFIG_PARPORT_SERIAL=m CONFIG_PARPORT_PC_FIFO=y # CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=m CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y @@ -2159,7 +2114,6 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set CONFIG_BLK_DEV_DAC960=m CONFIG_BLK_DEV_UMEM=m -# CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m @@ -2294,10 +2248,6 @@ CONFIG_VMWARE_VMCI=m # CONFIG_VHOST_RING=m CONFIG_ECHO=m -# CONFIG_CXL_BASE is not set -# CONFIG_CXL_AFU_DRIVER_OPS is not set -# CONFIG_CXL_LIB is not set -# CONFIG_OCXL_BASE is not set CONFIG_MISC_RTSX_PCI=m CONFIG_MISC_RTSX_USB=m CONFIG_HAVE_IDE=y @@ -2407,11 +2357,6 @@ CONFIG_FCOE_FNIC=m CONFIG_SCSI_SNIC=m # CONFIG_SCSI_SNIC_DEBUG_FS is not set CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_EATA=m -CONFIG_SCSI_EATA_TAGGED_QUEUE=y -CONFIG_SCSI_EATA_LINKED_COMMANDS=y -CONFIG_SCSI_EATA_MAX_TAGS=16 -CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_GDTH=m CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m @@ -2422,7 +2367,6 @@ CONFIG_SCSI_PPA=m CONFIG_SCSI_IMM=m # CONFIG_SCSI_IZIP_EPP16 is not set # CONFIG_SCSI_IZIP_SLOW_CTR is not set -CONFIG_SCSI_NCR53C406A=m CONFIG_SCSI_STEX=m CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 @@ -2443,7 +2387,6 @@ CONFIG_QEDF=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_SIM710=m -CONFIG_SCSI_SYM53C416=m CONFIG_SCSI_DC395x=m CONFIG_SCSI_AM53C974=m CONFIG_SCSI_NSP32=m @@ -2456,7 +2399,6 @@ CONFIG_SCSI_VIRTIO=m CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_NINJA_SCSI=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m @@ -2470,7 +2412,6 @@ CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set CONFIG_ATA=y -# CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_ZPODD=y @@ -2755,6 +2696,7 @@ CONFIG_MICROCHIP_KSZ=m CONFIG_MICROCHIP_KSZ_SPI_DRIVER=m CONFIG_NET_DSA_MV88E6XXX=m CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +# CONFIG_NET_DSA_MV88E6XXX_PTP is not set CONFIG_NET_DSA_QCA8K=m CONFIG_NET_DSA_SMSC_LAN9303=m CONFIG_NET_DSA_SMSC_LAN9303_I2C=m @@ -2885,12 +2827,12 @@ CONFIG_IXGBEVF=m CONFIG_I40E=m CONFIG_I40E_DCB=y CONFIG_I40EVF=m +CONFIG_ICE=m CONFIG_FM10K=m CONFIG_NET_VENDOR_I825XX=y CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=m -# CONFIG_MVNETA_BM is not set CONFIG_SKGE=m # CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y @@ -2929,6 +2871,7 @@ CONFIG_NET_VENDOR_MICROCHIP=y CONFIG_ENC28J60=m # CONFIG_ENC28J60_WRITEVERIFY is not set CONFIG_ENCX24J600=m +CONFIG_LAN743X=m CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m CONFIG_FEALNX=m @@ -2939,6 +2882,7 @@ CONFIG_NET_VENDOR_NETRONOME=y CONFIG_NFP=m # CONFIG_NFP_APP_FLOWER is not set # CONFIG_NFP_DEBUG is not set +CONFIG_NET_VENDOR_NI=y CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=m CONFIG_NE2000=m @@ -3007,7 +2951,6 @@ CONFIG_SMC9194=m CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m CONFIG_SMSC911X=m -# CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_SMSC9420=m # CONFIG_NET_VENDOR_SOCIONEXT is not set CONFIG_NET_VENDOR_STMICRO=y @@ -3392,6 +3335,7 @@ CONFIG_RSI_91X=m # CONFIG_RSI_DEBUGFS is not set CONFIG_RSI_SDIO=m CONFIG_RSI_USB=m +CONFIG_RSI_COEX=y CONFIG_WLAN_VENDOR_ST=y CONFIG_CW1200=m CONFIG_CW1200_WLAN_SDIO=m @@ -3461,6 +3405,7 @@ CONFIG_IEEE802154_ATUSB=m CONFIG_IEEE802154_ADF7242=m CONFIG_IEEE802154_CA8210=m # CONFIG_IEEE802154_CA8210_DEBUGFS is not set +CONFIG_IEEE802154_MCR20A=m CONFIG_XEN_NETDEV_FRONTEND=y CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m @@ -3582,7 +3527,6 @@ CONFIG_ISDN_DIVAS_MAINT=m CONFIG_ISDN_DRV_GIGASET=m # CONFIG_GIGASET_CAPI is not set CONFIG_GIGASET_I4L=y -# CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m @@ -3727,6 +3671,7 @@ CONFIG_JOYSTICK_XPAD_LEDS=y CONFIG_JOYSTICK_WALKERA0701=m CONFIG_JOYSTICK_PSXPAD_SPI=m # CONFIG_JOYSTICK_PSXPAD_SPI_FF is not set +CONFIG_JOYSTICK_PXRC=m CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=m CONFIG_TABLET_USB_AIPTEK=m @@ -3891,6 +3836,7 @@ CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_DRV260X_HAPTICS=m CONFIG_INPUT_DRV2665_HAPTICS=m CONFIG_INPUT_DRV2667_HAPTICS=m +CONFIG_INPUT_RAVE_SP_PWRBUTTON=m CONFIG_RMI4_CORE=m CONFIG_RMI4_I2C=m CONFIG_RMI4_SPI=m @@ -3986,7 +3932,6 @@ CONFIG_SERIAL_8250_HUB6=m CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y -# CONFIG_SERIAL_8250_FSL is not set CONFIG_SERIAL_8250_DW=m CONFIG_SERIAL_8250_RT288X=y CONFIG_SERIAL_8250_LPSS=m @@ -4087,7 +4032,7 @@ CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m CONFIG_TCG_XEN=m -CONFIG_TCG_CRB=m +CONFIG_TCG_CRB=y CONFIG_TCG_VTPM_PROXY=m CONFIG_TCG_TIS_ST33ZP24=m CONFIG_TCG_TIS_ST33ZP24_I2C=m @@ -4168,7 +4113,6 @@ CONFIG_I2C_GPIO=m CONFIG_I2C_KEMPLD=m CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m -# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m CONFIG_I2C_XILINX=m @@ -4664,6 +4608,7 @@ CONFIG_SENSORS_XGENE=m CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y +# CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_WRITABLE_TRIPS=y @@ -4913,7 +4858,6 @@ CONFIG_TWL6040_CORE=y CONFIG_MFD_WL1273_CORE=m CONFIG_MFD_LM3533=m CONFIG_MFD_TIMBERDALE=m -# CONFIG_MFD_TMIO is not set CONFIG_MFD_VX855=m CONFIG_MFD_ARIZONA=y CONFIG_MFD_ARIZONA_I2C=m @@ -4936,6 +4880,7 @@ CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=m CONFIG_REGULATOR_VIRTUAL_CONSUMER=m CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_88PG86X=m CONFIG_REGULATOR_88PM800=m CONFIG_REGULATOR_88PM8607=m CONFIG_REGULATOR_ACT8865=m @@ -5031,10 +4976,12 @@ CONFIG_IR_SANYO_DECODER=m CONFIG_IR_SHARP_DECODER=m CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_XMP_DECODER=m +CONFIG_IR_IMON_DECODER=m CONFIG_RC_DEVICES=y CONFIG_RC_ATI_REMOTE=m CONFIG_IR_ENE=m CONFIG_IR_IMON=m +CONFIG_IR_IMON_RAW=m CONFIG_IR_MCEUSB=m CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m @@ -5536,10 +5483,8 @@ CONFIG_VIDEO_M52790=m # # soc_camera sensor drivers # -CONFIG_SOC_CAMERA_IMX074=m CONFIG_SOC_CAMERA_MT9M001=m CONFIG_SOC_CAMERA_MT9M111=m -CONFIG_SOC_CAMERA_MT9T031=m CONFIG_SOC_CAMERA_MT9T112=m CONFIG_SOC_CAMERA_MT9V022=m CONFIG_SOC_CAMERA_OV5642=m @@ -5548,6 +5493,11 @@ CONFIG_SOC_CAMERA_OV9640=m CONFIG_SOC_CAMERA_OV9740=m CONFIG_SOC_CAMERA_RJ54N1=m CONFIG_SOC_CAMERA_TW9910=m + +# +# Media SPI Adapters +# +CONFIG_CXD2880_SPI_DRV=m CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA18250=m @@ -5724,7 +5674,6 @@ CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_A8293=m -CONFIG_DVB_SP2=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_TDA665x=m @@ -5735,10 +5684,15 @@ CONFIG_DVB_HORUS3A=m CONFIG_DVB_ASCOT2E=m CONFIG_DVB_HELENE=m +# +# Common Interface (EN50221) controller drivers +# +CONFIG_DVB_CXD2099=m +CONFIG_DVB_SP2=m + # # Tools to develop new frontends # -# CONFIG_DVB_DUMMY_FE is not set # # Graphics support @@ -5857,7 +5811,6 @@ CONFIG_DRM_HISI_HIBMC=m # CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_LEGACY is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -# CONFIG_DRM_LIB_RANDOM is not set # # Frame buffer Devices @@ -5871,17 +5824,14 @@ CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m -# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m CONFIG_FB_DEFERRED_IO=y CONFIG_FB_HECUBA=m CONFIG_FB_SVGALIB=m -# CONFIG_FB_MACMODES is not set CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y @@ -6282,6 +6232,7 @@ CONFIG_SND_SOC_COMPRESS=y CONFIG_SND_SOC_TOPOLOGY=y CONFIG_SND_SOC_ACPI=m CONFIG_SND_SOC_AMD_ACP=m +CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m CONFIG_SND_ATMEL_SOC=m CONFIG_SND_DESIGNWARE_I2S=m @@ -6311,8 +6262,9 @@ CONFIG_SND_SOC_INTEL_SST=m CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m CONFIG_SND_SOC_INTEL_HASWELL=m CONFIG_SND_SOC_INTEL_BAYTRAIL=m -CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m CONFIG_SND_SOC_INTEL_SKYLAKE=m CONFIG_SND_SOC_ACPI_INTEL_MATCH=m @@ -6327,6 +6279,7 @@ CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m @@ -6337,6 +6290,7 @@ CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m +CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m # # STMicroelectronics STM32 SOC audio support @@ -6357,11 +6311,14 @@ CONFIG_SND_SOC_ADAU1761_I2C=m CONFIG_SND_SOC_ADAU1761_SPI=m CONFIG_SND_SOC_ADAU7002=m CONFIG_SND_SOC_AK4104=m +CONFIG_SND_SOC_AK4458=m CONFIG_SND_SOC_AK4554=m CONFIG_SND_SOC_AK4613=m CONFIG_SND_SOC_AK4642=m CONFIG_SND_SOC_AK5386=m +CONFIG_SND_SOC_AK5558=m CONFIG_SND_SOC_ALC5623=m +CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m CONFIG_SND_SOC_CS35L32=m CONFIG_SND_SOC_CS35L33=m @@ -6399,12 +6356,15 @@ CONFIG_SND_SOC_INNO_RK3036=m CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98357A=m CONFIG_SND_SOC_MAX98504=m +CONFIG_SND_SOC_MAX9867=m CONFIG_SND_SOC_MAX98927=m CONFIG_SND_SOC_MAX98373=m CONFIG_SND_SOC_MAX9860=m CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m CONFIG_SND_SOC_PCM1681=m +CONFIG_SND_SOC_PCM1789=m +CONFIG_SND_SOC_PCM1789_I2C=m CONFIG_SND_SOC_PCM179X=m CONFIG_SND_SOC_PCM179X_I2C=m CONFIG_SND_SOC_PCM179X_SPI=m @@ -6423,7 +6383,6 @@ CONFIG_SND_SOC_RT286=m CONFIG_SND_SOC_RT298=m CONFIG_SND_SOC_RT5514=m CONFIG_SND_SOC_RT5514_SPI=m -# CONFIG_SND_SOC_RT5514_SPI_BUILTIN is not set CONFIG_SND_SOC_RT5616=m CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5640=m @@ -6452,6 +6411,7 @@ CONFIG_SND_SOC_TAS5086=m CONFIG_SND_SOC_TAS571X=m CONFIG_SND_SOC_TAS5720=m CONFIG_SND_SOC_TAS6424=m +CONFIG_SND_SOC_TDA7419=m CONFIG_SND_SOC_TFA9879=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_I2C=m @@ -6486,6 +6446,7 @@ CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m CONFIG_SND_SOC_ZX_AUD96P22=m +CONFIG_SND_SOC_MAX9759=m CONFIG_SND_SOC_NAU8540=m CONFIG_SND_SOC_NAU8810=m CONFIG_SND_SOC_NAU8824=m @@ -6530,6 +6491,7 @@ CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_DRAGONRISE_FF=y CONFIG_HID_EMS_FF=m +CONFIG_HID_ELAN=m CONFIG_HID_ELECOM=m CONFIG_HID_ELO=m CONFIG_HID_EZKEY=m @@ -6537,6 +6499,7 @@ CONFIG_HID_GEMBIRD=m CONFIG_HID_GFRM=m CONFIG_HID_HOLTEK=m CONFIG_HOLTEK_FF=y +CONFIG_HID_GOOGLE_HAMMER=m CONFIG_HID_GT683R=m CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m @@ -6663,7 +6626,6 @@ CONFIG_USB_EHCI_PCI=y CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m -CONFIG_USB_ISP1362_HCD=m CONFIG_USB_FOTG210_HCD=m CONFIG_USB_MAX3421_HCD=m CONFIG_USB_OHCI_HCD=y @@ -6985,8 +6947,15 @@ CONFIG_TYPEC_FUSB302=m CONFIG_TYPEC_UCSI=m CONFIG_UCSI_ACPI=m CONFIG_TYPEC_TPS6598X=m + +# +# USB Type-C Multiplexer/DeMultiplexer Switch support +# +CONFIG_TYPEC_MUX_PI3USB30532=m +CONFIG_USB_ROLES_INTEL_XHCI=m CONFIG_USB_LED_TRIG=y CONFIG_USB_ULPI_BUS=m +CONFIG_USB_ROLE_SWITCH=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m @@ -7095,6 +7064,8 @@ CONFIG_LEDS_MENF21BMC=m # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # CONFIG_LEDS_BLINKM=m +# CONFIG_LEDS_MLXCPLD is not set +# CONFIG_LEDS_MLXREG is not set CONFIG_LEDS_USER=m CONFIG_LEDS_NIC78BX=m @@ -7124,7 +7095,7 @@ CONFIG_LEDS_TRIGGER_NETDEV=m CONFIG_INFINIBAND=m CONFIG_INFINIBAND_USER_MAD=m CONFIG_INFINIBAND_USER_ACCESS=m -# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set +# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set CONFIG_INFINIBAND_USER_MEM=y CONFIG_INFINIBAND_ON_DEMAND_PAGING=y CONFIG_INFINIBAND_ADDR_TRANS=y @@ -7132,7 +7103,6 @@ CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y CONFIG_INFINIBAND_MTHCA=m # CONFIG_INFINIBAND_MTHCA_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m -# CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB4=m CONFIG_INFINIBAND_I40IW=m CONFIG_MLX4_INFINIBAND=m @@ -7399,7 +7369,6 @@ CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y # Microsoft Hyper-V guest support # CONFIG_HYPERV=m -# CONFIG_HYPERV_TSCPAGE is not set CONFIG_HYPERV_UTILS=m CONFIG_HYPERV_BALLOON=m @@ -7433,63 +7402,6 @@ CONFIG_XEN_ACPI=y CONFIG_XEN_SYMS=y CONFIG_XEN_HAVE_VPMU=y CONFIG_STAGING=y -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -CONFIG_IRDA_ULTRA=y - -# -# IrDA options -# -CONFIG_IRDA_CACHE_LAST_LSAP=y -CONFIG_IRDA_FAST_RR=y -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -CONFIG_DONGLE=y -CONFIG_ESI_DONGLE=m -CONFIG_ACTISYS_DONGLE=m -CONFIG_TEKRAM_DONGLE=m -CONFIG_TOIM3232_DONGLE=m -CONFIG_LITELINK_DONGLE=m -CONFIG_MA600_DONGLE=m -CONFIG_GIRBIL_DONGLE=m -CONFIG_MCP2120_DONGLE=m -CONFIG_OLD_BELKIN_DONGLE=m -CONFIG_ACT200L_DONGLE=m -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_NSC_FIR=m -CONFIG_WINBOND_FIR=m -CONFIG_TOSHIBA_FIR=m -CONFIG_SMC_IRCC_FIR=m -CONFIG_ALI_FIR=m -CONFIG_VLSI_FIR=m -CONFIG_VIA_FIR=m -CONFIG_MCS_FIR=m CONFIG_IPX=m # CONFIG_IPX_INTERN is not set CONFIG_NCP_FS=m @@ -7732,10 +7644,6 @@ CONFIG_ADE7854_SPI=m CONFIG_AD2S90=m CONFIG_AD2S1200=m CONFIG_AD2S1210=m - -# -# Triggers - standalone -# CONFIG_FB_SM750=m CONFIG_FB_XGI=m @@ -7761,7 +7669,8 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m CONFIG_STAGING_MEDIA=y # CONFIG_INTEL_ATOMISP is not set CONFIG_I2C_BCM2048=m -CONFIG_DVB_CXD2099=m +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9T031=m # # Android @@ -7835,6 +7744,9 @@ CONFIG_KS7010=m CONFIG_TYPEC_TCPCI=m CONFIG_DRM_VBOXVIDEO=m # CONFIG_PI433 is not set +CONFIG_MTK_MMC=m +# CONFIG_MTK_AEE_KDUMP is not set +# CONFIG_MTK_MMC_CD_POLL is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACER_WIRELESS=m @@ -7937,15 +7849,13 @@ CONFIG_COMMON_CLK=y # CONFIG_COMMON_CLK_WM831X=m CONFIG_COMMON_CLK_SI5351=m +CONFIG_COMMON_CLK_SI544=m CONFIG_COMMON_CLK_CDCE706=m CONFIG_COMMON_CLK_CS2000_CP=m CONFIG_COMMON_CLK_S2MPS11=m CONFIG_CLK_TWL6040=m -# CONFIG_COMMON_CLK_NXP is not set CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m -# CONFIG_COMMON_CLK_PXA is not set -# CONFIG_COMMON_CLK_PIC32 is not set # CONFIG_HWSPINLOCK is not set # @@ -7956,11 +7866,6 @@ CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y CONFIG_DW_APB_TIMER=y -# CONFIG_ATMEL_PIT is not set -# CONFIG_SH_TIMER_CMT is not set -# CONFIG_SH_TIMER_MTU2 is not set -# CONFIG_SH_TIMER_TMU is not set -# CONFIG_EM_TIMER_STI is not set CONFIG_MAILBOX=y CONFIG_PCC=y CONFIG_ALTERA_MBOX=m @@ -8011,7 +7916,6 @@ CONFIG_RPMSG_VIRTIO=m # # Qualcomm SoC drivers # -# CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y # @@ -8214,7 +8118,6 @@ CONFIG_AD5761=m CONFIG_AD5764=m CONFIG_AD5791=m CONFIG_AD7303=m -CONFIG_CIO_DAC=m CONFIG_AD8801=m CONFIG_DS4424=m CONFIG_M62332=m @@ -8332,6 +8235,7 @@ CONFIG_JSA1212=m CONFIG_RPR0521=m CONFIG_SENSORS_LM3533=m CONFIG_LTR501=m +CONFIG_LV0104CS=m CONFIG_MAX44000=m CONFIG_OPT3001=m CONFIG_PA12203001=m @@ -8390,9 +8294,11 @@ CONFIG_IIO_SYSFS_TRIGGER=m # # Digital potentiometers # +CONFIG_AD5272=m CONFIG_DS1803=m CONFIG_MAX5481=m CONFIG_MAX5487=m +CONFIG_MCP4018=m CONFIG_MCP4131=m CONFIG_MCP4531=m CONFIG_TPL0102=m @@ -8449,6 +8355,7 @@ CONFIG_SRF08=m CONFIG_MAXIM_THERMOCOUPLE=m CONFIG_HID_SENSOR_TEMP=m CONFIG_MLX90614=m +CONFIG_MLX90632=m CONFIG_TMP006=m CONFIG_TMP007=m CONFIG_TSYS01=m @@ -8494,24 +8401,11 @@ CONFIG_PWM_TWL_LED=m # IRQ chip support # CONFIG_ARM_GIC_MAX_NR=1 -# CONFIG_ARM_GIC_V3_ITS is not set CONFIG_IPACK_BUS=m CONFIG_BOARD_TPCI200=m CONFIG_SERIAL_IPOCTAL=m CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_ATH79 is not set -# CONFIG_RESET_AXS10X is not set -# CONFIG_RESET_BERLIN is not set -# CONFIG_RESET_IMX7 is not set -# CONFIG_RESET_LANTIQ is not set -# CONFIG_RESET_LPC18XX is not set -# CONFIG_RESET_MESON is not set -# CONFIG_RESET_PISTACHIO is not set -# CONFIG_RESET_SIMPLE is not set -# CONFIG_RESET_SUNXI is not set CONFIG_RESET_TI_SYSCON=m -# CONFIG_RESET_ZYNQ is not set -# CONFIG_RESET_TEGRA_BPMP is not set CONFIG_FMC=m CONFIG_FMC_FAKEDEV=m CONFIG_FMC_TRIVIAL=m @@ -8529,9 +8423,6 @@ CONFIG_PHY_CPCAP_USB=m CONFIG_PHY_QCOM_USB_HS=m CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_SAMSUNG_USB2=m -# CONFIG_PHY_EXYNOS4210_USB2 is not set -# CONFIG_PHY_EXYNOS4X12_USB2 is not set -# CONFIG_PHY_EXYNOS5250_USB2 is not set CONFIG_PHY_TUSB1210=m CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m @@ -8555,9 +8446,14 @@ CONFIG_ND_BLK=m CONFIG_ND_CLAIM=y CONFIG_ND_BTT=m CONFIG_BTT=y +CONFIG_DAX_DRIVER=y CONFIG_DAX=y CONFIG_DEV_DAX=m CONFIG_NVMEM=y + +# +# HW tracing support +# CONFIG_STM=m CONFIG_STM_DUMMY=m CONFIG_STM_SOURCE_CONSOLE=m @@ -8565,6 +8461,7 @@ CONFIG_STM_SOURCE_HEARTBEAT=m CONFIG_STM_SOURCE_FTRACE=m CONFIG_INTEL_TH=m CONFIG_INTEL_TH_PCI=m +CONFIG_INTEL_TH_ACPI=m CONFIG_INTEL_TH_GTH=m CONFIG_INTEL_TH_STH=m CONFIG_INTEL_TH_MSU=m @@ -8578,7 +8475,6 @@ CONFIG_FPGA_MGR_XILINX_SPI=m CONFIG_FPGA_BRIDGE=m CONFIG_XILINX_PR_DECOUPLER=m CONFIG_FPGA_REGION=m -# CONFIG_FSI is not set CONFIG_PM_OPP=y # CONFIG_SIOX is not set # CONFIG_SLIMBUS is not set @@ -8709,6 +8605,7 @@ CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_REDIRECT_DIR is not set # CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set # CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set # # Caches @@ -8831,9 +8728,14 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y # CONFIG_ROMFS_BACKED_BY_BOTH is not set CONFIG_ROMFS_ON_BLOCK=y CONFIG_PSTORE=y -CONFIG_PSTORE_ZLIB_COMPRESS=y +CONFIG_PSTORE_DEFLATE_COMPRESS=m # CONFIG_PSTORE_LZO_COMPRESS is not set # CONFIG_PSTORE_LZ4_COMPRESS is not set +# CONFIG_PSTORE_LZ4HC_COMPRESS is not set +# CONFIG_PSTORE_842_COMPRESS is not set +CONFIG_PSTORE_COMPRESS=y +CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y +CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" # CONFIG_PSTORE_CONSOLE is not set # CONFIG_PSTORE_PMSG is not set # CONFIG_PSTORE_FTRACE is not set @@ -9032,12 +8934,12 @@ CONFIG_HAVE_DEBUG_STACKOVERFLOW=y # CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HARDLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set @@ -9055,13 +8957,15 @@ CONFIG_SCHED_STACK_END_CHECK=y # # Lock Debugging (spinlocks, mutexes, etc...) # +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_LOCK_TORTURE_TEST=m @@ -9079,7 +8983,6 @@ CONFIG_DEBUG_BUGVERBOSE=y # # RCU Debugging # -# CONFIG_PROVE_RCU is not set CONFIG_TORTURE_TEST=m # CONFIG_RCU_PERF_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set @@ -9190,7 +9093,6 @@ CONFIG_KDB_DEFAULT_ENABLE=0x1 CONFIG_KDB_KEYBOARD=y CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y -# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set # CONFIG_UBSAN is not set CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y @@ -9201,7 +9103,6 @@ CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK_DBGP=y CONFIG_EARLY_PRINTK_EFI=y # CONFIG_EARLY_PRINTK_USB_XDBC is not set -# CONFIG_X86_PTDUMP_CORE is not set # CONFIG_X86_PTDUMP is not set # CONFIG_EFI_PGT_DUMP is not set # CONFIG_DEBUG_WX is not set @@ -9352,7 +9253,6 @@ CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_MCRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_ABLK_HELPER=m CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m CONFIG_CRYPTO_ENGINE=m @@ -9370,6 +9270,7 @@ CONFIG_CRYPTO_ECHAINIV=m # Block modes # CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_ECB=y @@ -9435,6 +9336,8 @@ CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT_SSE2_586=m +CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_SPECK=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -9470,7 +9373,6 @@ CONFIG_CRYPTO_DEV_PADLOCK=y CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m CONFIG_CRYPTO_DEV_GEODE=m -# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set CONFIG_CRYPTO_DEV_CCP=y CONFIG_CRYPTO_DEV_CCP_DD=m CONFIG_CRYPTO_DEV_SP_CCP=y @@ -9484,6 +9386,7 @@ CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_CHELSIO=m # CONFIG_CHELSIO_IPSEC_INLINE is not set +# CONFIG_CRYPTO_DEV_CHELSIO_TLS is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y @@ -9529,7 +9432,6 @@ CONFIG_BINARY_PRINTF=y # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y -# CONFIG_HAVE_ARCH_BITREVERSE is not set CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y @@ -9554,7 +9456,6 @@ CONFIG_LIBCRC32C=m CONFIG_CRC8=m CONFIG_XXHASH=m CONFIG_AUDIT_GENERIC=y -# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set # CONFIG_RANDOM32_SELFTEST is not set CONFIG_842_COMPRESS=m CONFIG_842_DECOMPRESS=m @@ -9601,7 +9502,7 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_SGL_ALLOC=y -# CONFIG_DMA_DIRECT_OPS is not set +CONFIG_DMA_DIRECT_OPS=y CONFIG_DMA_VIRT_OPS=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y @@ -9622,7 +9523,6 @@ CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y -# CONFIG_SG_SPLIT is not set CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_SBITMAP=y diff --git a/gnu/packages/aux-files/linux-libre/4.16-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.17-x86_64.conf similarity index 97% rename from gnu/packages/aux-files/linux-libre/4.16-x86_64.conf rename to gnu/packages/aux-files/linux-libre/4.17-x86_64.conf index e400023497..a4eedfd138 100644 --- a/gnu/packages/aux-files/linux-libre/4.16-x86_64.conf +++ b/gnu/packages/aux-files/linux-libre/4.17-x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.16.0-gnu Kernel Configuration +# Linux/x86 4.17.0-gnu Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -26,6 +26,7 @@ CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_FILTER_PGPROT=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y @@ -139,7 +140,6 @@ CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y -# CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_BUILD_BIN2C=y @@ -269,8 +269,6 @@ CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y -# CONFIG_UPROBES is not set -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_KRETPROBES=y @@ -320,7 +318,6 @@ CONFIG_HAVE_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_REGULAR is not set CONFIG_CC_STACKPROTECTOR_STRONG=y # CONFIG_CC_STACKPROTECTOR_AUTO is not set -CONFIG_THIN_ARCHIVES=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y @@ -342,20 +339,15 @@ CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y CONFIG_HAVE_COPY_THREAD_TLS=y CONFIG_HAVE_STACK_VALIDATION=y CONFIG_HAVE_RELIABLE_STACKTRACE=y -# CONFIG_HAVE_ARCH_HASH is not set -# CONFIG_ISA_BUS_API is not set +CONFIG_ISA_BUS_API=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y -# CONFIG_CPU_NO_EFFICIENT_FFS is not set CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y -# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set -# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y -CONFIG_ARCH_HAS_PHYS_TO_DMA=y CONFIG_ARCH_HAS_REFCOUNT=y CONFIG_REFCOUNT_FULL=y @@ -364,7 +356,6 @@ CONFIG_REFCOUNT_FULL=y # # CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y @@ -452,6 +443,7 @@ CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y CONFIG_FREEZER=y # @@ -460,7 +452,6 @@ CONFIG_FREEZER=y # CONFIG_ZONE_DMA is not set CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y -CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set @@ -552,7 +543,6 @@ CONFIG_PERF_EVENTS_INTEL_UNCORE=y CONFIG_PERF_EVENTS_INTEL_RAPL=y CONFIG_PERF_EVENTS_INTEL_CSTATE=y CONFIG_PERF_EVENTS_AMD_POWER=m -# CONFIG_VM86 is not set CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y @@ -678,6 +668,7 @@ CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_KEXEC_FILE=y +CONFIG_ARCH_HAS_KEXEC_PURGATORY=y CONFIG_KEXEC_VERIFY_SIG=y CONFIG_CRASH_DUMP=y CONFIG_KEXEC_JUMP=y @@ -686,6 +677,7 @@ CONFIG_RELOCATABLE=y CONFIG_RANDOMIZE_BASE=y CONFIG_X86_NEED_RELOCS=y CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_DYNAMIC_MEMORY_LAYOUT=y CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa CONFIG_HOTPLUG_CPU=y @@ -745,6 +737,7 @@ CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=y +CONFIG_ACPI_TAD=m CONFIG_ACPI_DOCK=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y @@ -757,7 +750,6 @@ CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=y CONFIG_ACPI_NUMA=y CONFIG_ACPI_CUSTOM_DSDT_FILE="" -# CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set @@ -830,7 +822,6 @@ CONFIG_X86_SPEEDSTEP_LIB=m CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y -# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set CONFIG_INTEL_IDLE=y # @@ -841,6 +832,7 @@ CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y +CONFIG_MMCONF_FAM10H=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=y @@ -950,7 +942,6 @@ CONFIG_COMPAT_BINFMT_ELF=y CONFIG_ELFCORE=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_BINFMT_SCRIPT=y -# CONFIG_HAVE_AOUT is not set CONFIG_BINFMT_MISC=m CONFIG_COREDUMP=y CONFIG_IA32_EMULATION=y @@ -1002,6 +993,7 @@ CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE_COMMON=y CONFIG_IP_MROUTE=y # CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y @@ -1139,8 +1131,8 @@ CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=m CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m -CONFIG_NF_TABLES_INET=m -CONFIG_NF_TABLES_NETDEV=m +# CONFIG_NF_TABLES_INET is not set +# CONFIG_NF_TABLES_NETDEV is not set CONFIG_NFT_EXTHDR=m CONFIG_NFT_META=m CONFIG_NFT_RT=m @@ -1160,15 +1152,8 @@ CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m -CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m -CONFIG_NFT_FIB=m -CONFIG_NFT_FIB_INET=m -CONFIG_NF_DUP_NETDEV=m -CONFIG_NFT_DUP_NETDEV=m -CONFIG_NFT_FWD_NETDEV=m -CONFIG_NFT_FIB_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m @@ -1326,22 +1311,15 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_SOCKET_IPV4=m -CONFIG_NF_TABLES_IPV4=m -CONFIG_NFT_CHAIN_ROUTE_IPV4=m -CONFIG_NFT_REJECT_IPV4=m -CONFIG_NFT_DUP_IPV4=m -CONFIG_NFT_FIB_IPV4=m -CONFIG_NF_TABLES_ARP=m +# CONFIG_NF_TABLES_IPV4 is not set +# CONFIG_NF_TABLES_ARP is not set CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m -CONFIG_NFT_CHAIN_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=m -CONFIG_NFT_MASQ_IPV4=m -CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1374,20 +1352,13 @@ CONFIG_IP_NF_ARP_MANGLE=m CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_NF_SOCKET_IPV6=m -CONFIG_NF_TABLES_IPV6=m -CONFIG_NFT_CHAIN_ROUTE_IPV6=m -CONFIG_NFT_REJECT_IPV6=m -CONFIG_NFT_DUP_IPV6=m -CONFIG_NFT_FIB_IPV6=m +# CONFIG_NF_TABLES_IPV6 is not set CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m -CONFIG_NFT_CHAIN_NAT_IPV6=m CONFIG_NF_NAT_MASQUERADE_IPV6=m -CONFIG_NFT_MASQ_IPV6=m -CONFIG_NFT_REDIR_IPV6=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m @@ -1414,10 +1385,7 @@ CONFIG_IP6_NF_TARGET_NPT=m # DECnet: Netfilter Configuration # CONFIG_DECNET_NF_GRABULATOR=m -CONFIG_NF_TABLES_BRIDGE=m -CONFIG_NFT_BRIDGE_META=m -CONFIG_NFT_BRIDGE_REJECT=m -CONFIG_NF_LOG_BRIDGE=m +# CONFIG_NF_TABLES_BRIDGE is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -1467,6 +1435,7 @@ CONFIG_RDS_TCP=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TIPC_DIAG=m CONFIG_ATM=m CONFIG_ATM_CLIP=m # CONFIG_ATM_CLIP_NO_ICMP is not set @@ -1592,6 +1561,7 @@ CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m CONFIG_NET_EMATCH_CANID=m CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_EMATCH_IPT=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m @@ -1782,12 +1752,12 @@ CONFIG_BT_HCIBFUSB=m CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIBT3C=m CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m CONFIG_BT_WILINK=m +CONFIG_BT_HCIRSI=m CONFIG_AF_RXRPC=m CONFIG_AF_RXRPC_IPV6=y # CONFIG_AF_RXRPC_INJECT_LOSS is not set @@ -1925,7 +1895,6 @@ CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_SYS_HYPERVISOR=y -# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_REGMAP=y @@ -1984,13 +1953,8 @@ CONFIG_MTD_GEN_PROBE=m CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set CONFIG_MTD_CFI_INTELEXT=m CONFIG_MTD_CFI_AMDSTD=m CONFIG_MTD_CFI_STAA=m @@ -2046,6 +2010,11 @@ CONFIG_MTD_BLOCK2MTD=m CONFIG_MTD_DOCG3=m CONFIG_BCH_CONST_M=14 CONFIG_BCH_CONST_T=4 +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_ONENAND_GENERIC=m +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_2X_PROGRAM=y CONFIG_MTD_NAND_ECC=m # CONFIG_MTD_NAND_ECC_SMC is not set CONFIG_MTD_NAND=m @@ -2055,7 +2024,6 @@ CONFIG_MTD_SM_COMMON=m CONFIG_MTD_NAND_DENALI=m CONFIG_MTD_NAND_DENALI_PCI=m CONFIG_MTD_NAND_GPIO=m -# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set CONFIG_MTD_NAND_RICOH=m CONFIG_MTD_NAND_DISKONCHIP=m # CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set @@ -2065,11 +2033,6 @@ CONFIG_MTD_NAND_DOCG4=m CONFIG_MTD_NAND_CAFE=m CONFIG_MTD_NAND_NANDSIM=m CONFIG_MTD_NAND_PLATFORM=m -CONFIG_MTD_ONENAND=m -CONFIG_MTD_ONENAND_VERIFY_WRITE=y -CONFIG_MTD_ONENAND_GENERIC=m -# CONFIG_MTD_ONENAND_OTP is not set -CONFIG_MTD_ONENAND_2X_PROGRAM=y # # LPDDR & LPDDR2 PCM memory drivers @@ -2096,7 +2059,6 @@ CONFIG_PARPORT_SERIAL=m CONFIG_PARPORT_PC_FIFO=y # CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m -# CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=m CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y @@ -2145,7 +2107,6 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set CONFIG_BLK_DEV_DAC960=m CONFIG_BLK_DEV_UMEM=m -# CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m @@ -2288,10 +2249,6 @@ CONFIG_VHOST_RING=m CONFIG_GENWQE=m CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0 CONFIG_ECHO=m -# CONFIG_CXL_BASE is not set -# CONFIG_CXL_AFU_DRIVER_OPS is not set -# CONFIG_CXL_LIB is not set -# CONFIG_OCXL_BASE is not set CONFIG_MISC_RTSX_PCI=m CONFIG_MISC_RTSX_USB=m CONFIG_HAVE_IDE=y @@ -2398,11 +2355,6 @@ CONFIG_FCOE_FNIC=m CONFIG_SCSI_SNIC=m # CONFIG_SCSI_SNIC_DEBUG_FS is not set CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_EATA=m -CONFIG_SCSI_EATA_TAGGED_QUEUE=y -CONFIG_SCSI_EATA_LINKED_COMMANDS=y -CONFIG_SCSI_EATA_MAX_TAGS=16 -CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_GDTH=m CONFIG_SCSI_ISCI=m CONFIG_SCSI_IPS=m @@ -2441,7 +2393,6 @@ CONFIG_SCSI_VIRTIO=m CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m CONFIG_SCSI_DH=y @@ -2454,7 +2405,6 @@ CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set CONFIG_ATA=y -# CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_ZPODD=y @@ -2730,6 +2680,7 @@ CONFIG_MICROCHIP_KSZ=m CONFIG_MICROCHIP_KSZ_SPI_DRIVER=m CONFIG_NET_DSA_MV88E6XXX=m CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +# CONFIG_NET_DSA_MV88E6XXX_PTP is not set CONFIG_NET_DSA_QCA8K=m CONFIG_NET_DSA_SMSC_LAN9303=m CONFIG_NET_DSA_SMSC_LAN9303_I2C=m @@ -2863,6 +2814,7 @@ CONFIG_IXGBEVF=m CONFIG_I40E=m CONFIG_I40E_DCB=y CONFIG_I40EVF=m +CONFIG_ICE=m CONFIG_FM10K=m CONFIG_NET_VENDOR_I825XX=y CONFIG_JME=m @@ -2906,6 +2858,7 @@ CONFIG_NET_VENDOR_MICROCHIP=y CONFIG_ENC28J60=m # CONFIG_ENC28J60_WRITEVERIFY is not set CONFIG_ENCX24J600=m +CONFIG_LAN743X=m CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y @@ -2917,6 +2870,7 @@ CONFIG_NET_VENDOR_NETRONOME=y CONFIG_NFP=m # CONFIG_NFP_APP_FLOWER is not set # CONFIG_NFP_DEBUG is not set +CONFIG_NET_VENDOR_NI=y CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=m CONFIG_NE2K_PCI=m @@ -2981,7 +2935,6 @@ CONFIG_NET_VENDOR_SMSC=y CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m CONFIG_SMSC911X=m -# CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_SMSC9420=m # CONFIG_NET_VENDOR_SOCIONEXT is not set CONFIG_NET_VENDOR_STMICRO=y @@ -3368,6 +3321,7 @@ CONFIG_RSI_91X=m # CONFIG_RSI_DEBUGFS is not set CONFIG_RSI_SDIO=m CONFIG_RSI_USB=m +CONFIG_RSI_COEX=y CONFIG_WLAN_VENDOR_ST=y CONFIG_CW1200=m CONFIG_CW1200_WLAN_SDIO=m @@ -3431,6 +3385,7 @@ CONFIG_IEEE802154_ATUSB=m CONFIG_IEEE802154_ADF7242=m CONFIG_IEEE802154_CA8210=m # CONFIG_IEEE802154_CA8210_DEBUGFS is not set +CONFIG_IEEE802154_MCR20A=m CONFIG_XEN_NETDEV_FRONTEND=y CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m @@ -3540,7 +3495,6 @@ CONFIG_ISDN_DIVAS_MAINT=m CONFIG_ISDN_DRV_GIGASET=m # CONFIG_GIGASET_CAPI is not set CONFIG_GIGASET_I4L=y -# CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m @@ -3682,6 +3636,7 @@ CONFIG_JOYSTICK_XPAD_LEDS=y CONFIG_JOYSTICK_WALKERA0701=m CONFIG_JOYSTICK_PSXPAD_SPI=m # CONFIG_JOYSTICK_PSXPAD_SPI_FF is not set +CONFIG_JOYSTICK_PXRC=m CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=m CONFIG_TABLET_USB_AIPTEK=m @@ -3844,6 +3799,7 @@ CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_DRV260X_HAPTICS=m CONFIG_INPUT_DRV2665_HAPTICS=m CONFIG_INPUT_DRV2667_HAPTICS=m +CONFIG_INPUT_RAVE_SP_PWRBUTTON=m CONFIG_RMI4_CORE=m CONFIG_RMI4_I2C=m CONFIG_RMI4_SPI=m @@ -3934,7 +3890,6 @@ CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y -# CONFIG_SERIAL_8250_FSL is not set CONFIG_SERIAL_8250_DW=m CONFIG_SERIAL_8250_RT288X=y CONFIG_SERIAL_8250_LPSS=m @@ -4027,7 +3982,7 @@ CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m CONFIG_TCG_XEN=m -CONFIG_TCG_CRB=m +CONFIG_TCG_CRB=y CONFIG_TCG_VTPM_PROXY=m CONFIG_TCG_TIS_ST33ZP24=m CONFIG_TCG_TIS_ST33ZP24_I2C=m @@ -4107,7 +4062,6 @@ CONFIG_I2C_GPIO=m CONFIG_I2C_KEMPLD=m CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m -# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m CONFIG_I2C_XILINX=m @@ -4252,6 +4206,8 @@ CONFIG_GPIO_F7188X=m CONFIG_GPIO_IT87=m CONFIG_GPIO_SCH=m CONFIG_GPIO_SCH311X=m +CONFIG_GPIO_WINBOND=m +CONFIG_GPIO_WS16C48=m # # I2C GPIO expanders @@ -4591,6 +4547,7 @@ CONFIG_SENSORS_XGENE=m CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y +# CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_WRITABLE_TRIPS=y @@ -4650,6 +4607,7 @@ CONFIG_ACQUIRE_WDT=m CONFIG_ADVANTECH_WDT=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_EBC_C384_WDT=m CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_SBC_FITPC2_WATCHDOG=m @@ -4824,7 +4782,6 @@ CONFIG_MFD_TWL4030_AUDIO=y CONFIG_TWL6040_CORE=y CONFIG_MFD_WL1273_CORE=m CONFIG_MFD_LM3533=m -# CONFIG_MFD_TMIO is not set CONFIG_MFD_VX855=m CONFIG_MFD_ARIZONA=y CONFIG_MFD_ARIZONA_I2C=m @@ -4847,6 +4804,7 @@ CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=m CONFIG_REGULATOR_VIRTUAL_CONSUMER=m CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_88PG86X=m CONFIG_REGULATOR_88PM800=m CONFIG_REGULATOR_88PM8607=m CONFIG_REGULATOR_ACT8865=m @@ -4942,10 +4900,12 @@ CONFIG_IR_SANYO_DECODER=m CONFIG_IR_SHARP_DECODER=m CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_XMP_DECODER=m +CONFIG_IR_IMON_DECODER=m CONFIG_RC_DEVICES=y CONFIG_RC_ATI_REMOTE=m CONFIG_IR_ENE=m CONFIG_IR_IMON=m +CONFIG_IR_IMON_RAW=m CONFIG_IR_MCEUSB=m CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m @@ -5432,10 +5392,8 @@ CONFIG_VIDEO_M52790=m # # soc_camera sensor drivers # -CONFIG_SOC_CAMERA_IMX074=m CONFIG_SOC_CAMERA_MT9M001=m CONFIG_SOC_CAMERA_MT9M111=m -CONFIG_SOC_CAMERA_MT9T031=m CONFIG_SOC_CAMERA_MT9T112=m CONFIG_SOC_CAMERA_MT9V022=m CONFIG_SOC_CAMERA_OV5642=m @@ -5444,6 +5402,11 @@ CONFIG_SOC_CAMERA_OV9640=m CONFIG_SOC_CAMERA_OV9740=m CONFIG_SOC_CAMERA_RJ54N1=m CONFIG_SOC_CAMERA_TW9910=m + +# +# Media SPI Adapters +# +CONFIG_CXD2880_SPI_DRV=m CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA18250=m @@ -5620,7 +5583,6 @@ CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_A8293=m -CONFIG_DVB_SP2=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_TDA665x=m @@ -5631,10 +5593,15 @@ CONFIG_DVB_HORUS3A=m CONFIG_DVB_ASCOT2E=m CONFIG_DVB_HELENE=m +# +# Common Interface (EN50221) controller drivers +# +CONFIG_DVB_CXD2099=m +CONFIG_DVB_SP2=m + # # Tools to develop new frontends # -# CONFIG_DVB_DUMMY_FE is not set # # Graphics support @@ -5748,7 +5715,6 @@ CONFIG_DRM_HISI_HIBMC=m # CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_LEGACY is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -# CONFIG_DRM_LIB_RANDOM is not set # # Frame buffer Devices @@ -5762,17 +5728,14 @@ CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m -# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m CONFIG_FB_DEFERRED_IO=y CONFIG_FB_HECUBA=m CONFIG_FB_SVGALIB=m -# CONFIG_FB_MACMODES is not set CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y @@ -5968,7 +5931,6 @@ CONFIG_SND_SEQ_VIRMIDI=m CONFIG_SND_MPU401_UART=m CONFIG_SND_OPL3_LIB=m CONFIG_SND_OPL3_LIB_SEQ=m -# CONFIG_SND_OPL4_LIB_SEQ is not set CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y @@ -6018,7 +5980,6 @@ CONFIG_SND_INDIGOIO=m CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGODJX=m -# CONFIG_SND_EMU10K1_SEQ is not set CONFIG_SND_ENS1370=m CONFIG_SND_ENS1371=m CONFIG_SND_FM801=m @@ -6110,6 +6071,7 @@ CONFIG_SND_SOC_COMPRESS=y CONFIG_SND_SOC_TOPOLOGY=y CONFIG_SND_SOC_ACPI=m CONFIG_SND_SOC_AMD_ACP=m +CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m CONFIG_SND_ATMEL_SOC=m CONFIG_SND_DESIGNWARE_I2S=m @@ -6139,8 +6101,9 @@ CONFIG_SND_SOC_INTEL_SST=m CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m CONFIG_SND_SOC_INTEL_HASWELL=m CONFIG_SND_SOC_INTEL_BAYTRAIL=m -CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m CONFIG_SND_SOC_INTEL_SKYLAKE=m CONFIG_SND_SOC_ACPI_INTEL_MATCH=m @@ -6155,6 +6118,7 @@ CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m @@ -6165,6 +6129,7 @@ CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m +CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m # # STMicroelectronics STM32 SOC audio support @@ -6185,11 +6150,14 @@ CONFIG_SND_SOC_ADAU1761_I2C=m CONFIG_SND_SOC_ADAU1761_SPI=m CONFIG_SND_SOC_ADAU7002=m CONFIG_SND_SOC_AK4104=m +CONFIG_SND_SOC_AK4458=m CONFIG_SND_SOC_AK4554=m CONFIG_SND_SOC_AK4613=m CONFIG_SND_SOC_AK4642=m CONFIG_SND_SOC_AK5386=m +CONFIG_SND_SOC_AK5558=m CONFIG_SND_SOC_ALC5623=m +CONFIG_SND_SOC_BD28623=m CONFIG_SND_SOC_BT_SCO=m CONFIG_SND_SOC_CS35L32=m CONFIG_SND_SOC_CS35L33=m @@ -6227,12 +6195,15 @@ CONFIG_SND_SOC_INNO_RK3036=m CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98357A=m CONFIG_SND_SOC_MAX98504=m +CONFIG_SND_SOC_MAX9867=m CONFIG_SND_SOC_MAX98927=m CONFIG_SND_SOC_MAX98373=m CONFIG_SND_SOC_MAX9860=m CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m CONFIG_SND_SOC_PCM1681=m +CONFIG_SND_SOC_PCM1789=m +CONFIG_SND_SOC_PCM1789_I2C=m CONFIG_SND_SOC_PCM179X=m CONFIG_SND_SOC_PCM179X_I2C=m CONFIG_SND_SOC_PCM179X_SPI=m @@ -6251,7 +6222,6 @@ CONFIG_SND_SOC_RT286=m CONFIG_SND_SOC_RT298=m CONFIG_SND_SOC_RT5514=m CONFIG_SND_SOC_RT5514_SPI=m -# CONFIG_SND_SOC_RT5514_SPI_BUILTIN is not set CONFIG_SND_SOC_RT5616=m CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5640=m @@ -6280,6 +6250,7 @@ CONFIG_SND_SOC_TAS5086=m CONFIG_SND_SOC_TAS571X=m CONFIG_SND_SOC_TAS5720=m CONFIG_SND_SOC_TAS6424=m +CONFIG_SND_SOC_TDA7419=m CONFIG_SND_SOC_TFA9879=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_I2C=m @@ -6314,6 +6285,7 @@ CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m CONFIG_SND_SOC_ZX_AUD96P22=m +CONFIG_SND_SOC_MAX9759=m CONFIG_SND_SOC_NAU8540=m CONFIG_SND_SOC_NAU8810=m CONFIG_SND_SOC_NAU8824=m @@ -6357,6 +6329,7 @@ CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_DRAGONRISE_FF=y CONFIG_HID_EMS_FF=m +CONFIG_HID_ELAN=m CONFIG_HID_ELECOM=m CONFIG_HID_ELO=m CONFIG_HID_EZKEY=m @@ -6364,6 +6337,7 @@ CONFIG_HID_GEMBIRD=m CONFIG_HID_GFRM=m CONFIG_HID_HOLTEK=m CONFIG_HOLTEK_FF=y +CONFIG_HID_GOOGLE_HAMMER=m CONFIG_HID_GT683R=m CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m @@ -6495,7 +6469,6 @@ CONFIG_USB_EHCI_PCI=y CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m -CONFIG_USB_ISP1362_HCD=m CONFIG_USB_FOTG210_HCD=m CONFIG_USB_MAX3421_HCD=m CONFIG_USB_OHCI_HCD=y @@ -6817,8 +6790,15 @@ CONFIG_TYPEC_FUSB302=m CONFIG_TYPEC_UCSI=m CONFIG_UCSI_ACPI=m CONFIG_TYPEC_TPS6598X=m + +# +# USB Type-C Multiplexer/DeMultiplexer Switch support +# +CONFIG_TYPEC_MUX_PI3USB30532=m +CONFIG_USB_ROLES_INTEL_XHCI=m CONFIG_USB_LED_TRIG=y CONFIG_USB_ULPI_BUS=m +CONFIG_USB_ROLE_SWITCH=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m @@ -6925,6 +6905,7 @@ CONFIG_LEDS_MENF21BMC=m # CONFIG_LEDS_BLINKM=m CONFIG_LEDS_MLXCPLD=m +CONFIG_LEDS_MLXREG=m CONFIG_LEDS_USER=m CONFIG_LEDS_NIC78BX=m @@ -6954,7 +6935,7 @@ CONFIG_LEDS_TRIGGER_NETDEV=m CONFIG_INFINIBAND=m CONFIG_INFINIBAND_USER_MAD=m CONFIG_INFINIBAND_USER_ACCESS=m -# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set +# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set CONFIG_INFINIBAND_USER_MEM=y CONFIG_INFINIBAND_ON_DEMAND_PAGING=y CONFIG_INFINIBAND_ADDR_TRANS=y @@ -6964,7 +6945,6 @@ CONFIG_INFINIBAND_MTHCA=m CONFIG_INFINIBAND_QIB=m CONFIG_INFINIBAND_QIB_DCA=y CONFIG_INFINIBAND_CXGB3=m -# CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB4=m CONFIG_INFINIBAND_I40IW=m CONFIG_MLX4_INFINIBAND=m @@ -7271,62 +7251,6 @@ CONFIG_XEN_ACPI=y CONFIG_XEN_SYMS=y CONFIG_XEN_HAVE_VPMU=y CONFIG_STAGING=y -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -CONFIG_IRDA_ULTRA=y - -# -# IrDA options -# -CONFIG_IRDA_CACHE_LAST_LSAP=y -CONFIG_IRDA_FAST_RR=y -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -CONFIG_DONGLE=y -CONFIG_ESI_DONGLE=m -CONFIG_ACTISYS_DONGLE=m -CONFIG_TEKRAM_DONGLE=m -CONFIG_TOIM3232_DONGLE=m -CONFIG_LITELINK_DONGLE=m -CONFIG_MA600_DONGLE=m -CONFIG_GIRBIL_DONGLE=m -CONFIG_MCP2120_DONGLE=m -CONFIG_OLD_BELKIN_DONGLE=m -CONFIG_ACT200L_DONGLE=m -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -CONFIG_NSC_FIR=m -CONFIG_WINBOND_FIR=m -CONFIG_SMC_IRCC_FIR=m -CONFIG_ALI_FIR=m -CONFIG_VLSI_FIR=m -CONFIG_VIA_FIR=m -CONFIG_MCS_FIR=m CONFIG_IPX=m # CONFIG_IPX_INTERN is not set CONFIG_NCP_FS=m @@ -7568,10 +7492,6 @@ CONFIG_ADE7854_SPI=m CONFIG_AD2S90=m CONFIG_AD2S1200=m CONFIG_AD2S1210=m - -# -# Triggers - standalone -# CONFIG_FB_SM750=m CONFIG_FB_XGI=m @@ -7593,7 +7513,8 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m CONFIG_STAGING_MEDIA=y # CONFIG_INTEL_ATOMISP is not set CONFIG_I2C_BCM2048=m -CONFIG_DVB_CXD2099=m +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9T031=m # # Android @@ -7671,6 +7592,9 @@ CONFIG_KS7010=m CONFIG_TYPEC_TCPCI=m CONFIG_DRM_VBOXVIDEO=m # CONFIG_PI433 is not set +CONFIG_MTK_MMC=m +# CONFIG_MTK_AEE_KDUMP is not set +# CONFIG_MTK_MMC_CD_POLL is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACER_WIRELESS=m @@ -7770,15 +7694,13 @@ CONFIG_COMMON_CLK=y # CONFIG_COMMON_CLK_WM831X=m CONFIG_COMMON_CLK_SI5351=m +CONFIG_COMMON_CLK_SI544=m CONFIG_COMMON_CLK_CDCE706=m CONFIG_COMMON_CLK_CS2000_CP=m CONFIG_COMMON_CLK_S2MPS11=m CONFIG_CLK_TWL6040=m -# CONFIG_COMMON_CLK_NXP is not set CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m -# CONFIG_COMMON_CLK_PXA is not set -# CONFIG_COMMON_CLK_PIC32 is not set # CONFIG_HWSPINLOCK is not set # @@ -7787,11 +7709,6 @@ CONFIG_COMMON_CLK_PWM=m CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y -# CONFIG_ATMEL_PIT is not set -# CONFIG_SH_TIMER_CMT is not set -# CONFIG_SH_TIMER_MTU2 is not set -# CONFIG_SH_TIMER_TMU is not set -# CONFIG_EM_TIMER_STI is not set CONFIG_MAILBOX=y CONFIG_PCC=y CONFIG_ALTERA_MBOX=m @@ -7845,7 +7762,6 @@ CONFIG_RPMSG_VIRTIO=m # # Qualcomm SoC drivers # -# CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y # @@ -8165,6 +8081,7 @@ CONFIG_JSA1212=m CONFIG_RPR0521=m CONFIG_SENSORS_LM3533=m CONFIG_LTR501=m +CONFIG_LV0104CS=m CONFIG_MAX44000=m CONFIG_OPT3001=m CONFIG_PA12203001=m @@ -8223,9 +8140,11 @@ CONFIG_IIO_SYSFS_TRIGGER=m # # Digital potentiometers # +CONFIG_AD5272=m CONFIG_DS1803=m CONFIG_MAX5481=m CONFIG_MAX5487=m +CONFIG_MCP4018=m CONFIG_MCP4131=m CONFIG_MCP4531=m CONFIG_TPL0102=m @@ -8282,6 +8201,7 @@ CONFIG_SRF08=m CONFIG_MAXIM_THERMOCOUPLE=m CONFIG_HID_SENSOR_TEMP=m CONFIG_MLX90614=m +CONFIG_MLX90632=m CONFIG_TMP006=m CONFIG_TMP007=m CONFIG_TSYS01=m @@ -8329,24 +8249,11 @@ CONFIG_PWM_TWL_LED=m # IRQ chip support # CONFIG_ARM_GIC_MAX_NR=1 -# CONFIG_ARM_GIC_V3_ITS is not set CONFIG_IPACK_BUS=m CONFIG_BOARD_TPCI200=m CONFIG_SERIAL_IPOCTAL=m CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_ATH79 is not set -# CONFIG_RESET_AXS10X is not set -# CONFIG_RESET_BERLIN is not set -# CONFIG_RESET_IMX7 is not set -# CONFIG_RESET_LANTIQ is not set -# CONFIG_RESET_LPC18XX is not set -# CONFIG_RESET_MESON is not set -# CONFIG_RESET_PISTACHIO is not set -# CONFIG_RESET_SIMPLE is not set -# CONFIG_RESET_SUNXI is not set CONFIG_RESET_TI_SYSCON=m -# CONFIG_RESET_ZYNQ is not set -# CONFIG_RESET_TEGRA_BPMP is not set CONFIG_FMC=m CONFIG_FMC_FAKEDEV=m CONFIG_FMC_TRIVIAL=m @@ -8364,9 +8271,6 @@ CONFIG_PHY_CPCAP_USB=m CONFIG_PHY_QCOM_USB_HS=m CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_SAMSUNG_USB2=m -# CONFIG_PHY_EXYNOS4210_USB2 is not set -# CONFIG_PHY_EXYNOS4X12_USB2 is not set -# CONFIG_PHY_EXYNOS5250_USB2 is not set CONFIG_PHY_TUSB1210=m CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m @@ -8394,10 +8298,15 @@ CONFIG_BTT=y CONFIG_ND_PFN=m CONFIG_NVDIMM_PFN=y CONFIG_NVDIMM_DAX=y +CONFIG_DAX_DRIVER=y CONFIG_DAX=y CONFIG_DEV_DAX=m CONFIG_DEV_DAX_PMEM=m CONFIG_NVMEM=y + +# +# HW tracing support +# CONFIG_STM=m CONFIG_STM_DUMMY=m CONFIG_STM_SOURCE_CONSOLE=m @@ -8405,6 +8314,7 @@ CONFIG_STM_SOURCE_HEARTBEAT=m CONFIG_STM_SOURCE_FTRACE=m CONFIG_INTEL_TH=m CONFIG_INTEL_TH_PCI=m +CONFIG_INTEL_TH_ACPI=m CONFIG_INTEL_TH_GTH=m CONFIG_INTEL_TH_STH=m CONFIG_INTEL_TH_MSU=m @@ -8418,7 +8328,6 @@ CONFIG_FPGA_MGR_XILINX_SPI=m CONFIG_FPGA_BRIDGE=m CONFIG_XILINX_PR_DECOUPLER=m CONFIG_FPGA_REGION=m -# CONFIG_FSI is not set CONFIG_PM_OPP=y CONFIG_UNISYS_VISORBUS=m # CONFIG_SIOX is not set @@ -8551,6 +8460,7 @@ CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_REDIRECT_DIR is not set # CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set # CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set # # Caches @@ -8674,9 +8584,14 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y # CONFIG_ROMFS_BACKED_BY_BOTH is not set CONFIG_ROMFS_ON_BLOCK=y CONFIG_PSTORE=y -CONFIG_PSTORE_ZLIB_COMPRESS=y +CONFIG_PSTORE_DEFLATE_COMPRESS=m # CONFIG_PSTORE_LZO_COMPRESS is not set # CONFIG_PSTORE_LZ4_COMPRESS is not set +# CONFIG_PSTORE_LZ4HC_COMPRESS is not set +# CONFIG_PSTORE_842_COMPRESS is not set +CONFIG_PSTORE_COMPRESS=y +CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y +CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" # CONFIG_PSTORE_CONSOLE is not set # CONFIG_PSTORE_PMSG is not set # CONFIG_PSTORE_FTRACE is not set @@ -8879,13 +8794,13 @@ CONFIG_ARCH_HAS_KCOV=y # CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y CONFIG_HARDLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set @@ -8903,13 +8818,15 @@ CONFIG_SCHED_STACK_END_CHECK=y # # Lock Debugging (spinlocks, mutexes, etc...) # +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_LOCK_TORTURE_TEST=m @@ -8927,7 +8844,6 @@ CONFIG_DEBUG_BUGVERBOSE=y # # RCU Debugging # -# CONFIG_PROVE_RCU is not set CONFIG_TORTURE_TEST=m # CONFIG_RCU_PERF_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set @@ -9038,7 +8954,6 @@ CONFIG_KDB_DEFAULT_ENABLE=0x1 CONFIG_KDB_KEYBOARD=y CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y -# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set # CONFIG_UBSAN is not set CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y @@ -9049,7 +8964,6 @@ CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK_DBGP=y CONFIG_EARLY_PRINTK_EFI=y # CONFIG_EARLY_PRINTK_USB_XDBC is not set -# CONFIG_X86_PTDUMP_CORE is not set # CONFIG_X86_PTDUMP is not set # CONFIG_EFI_PGT_DUMP is not set # CONFIG_DEBUG_WX is not set @@ -9205,7 +9119,6 @@ CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_MCRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_ABLK_HELPER=m CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m CONFIG_CRYPTO_ENGINE=m @@ -9223,6 +9136,7 @@ CONFIG_CRYPTO_ECHAINIV=m # Block modes # CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_ECB=y @@ -9307,6 +9221,8 @@ CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m CONFIG_CRYPTO_SERPENT_AVX_X86_64=m CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m +CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_SPECK=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -9343,7 +9259,6 @@ CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=y CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m -# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set CONFIG_CRYPTO_DEV_CCP=y CONFIG_CRYPTO_DEV_CCP_DD=m CONFIG_CRYPTO_DEV_SP_CCP=y @@ -9360,6 +9275,7 @@ CONFIG_CRYPTO_DEV_NITROX=m CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_CHELSIO=m # CONFIG_CHELSIO_IPSEC_INLINE is not set +# CONFIG_CRYPTO_DEV_CHELSIO_TLS is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y @@ -9407,7 +9323,6 @@ CONFIG_BINARY_PRINTF=y # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y -# CONFIG_HAVE_ARCH_BITREVERSE is not set CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y @@ -9432,7 +9347,6 @@ CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_CRC8=m CONFIG_XXHASH=m -# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set # CONFIG_RANDOM32_SELFTEST is not set CONFIG_842_COMPRESS=m CONFIG_842_DECOMPRESS=m @@ -9479,7 +9393,7 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_SGL_ALLOC=y -# CONFIG_DMA_DIRECT_OPS is not set +CONFIG_DMA_DIRECT_OPS=y CONFIG_DMA_VIRT_OPS=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y @@ -9500,7 +9414,6 @@ CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y -# CONFIG_SG_SPLIT is not set CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y diff --git a/gnu/packages/aux-files/run-in-namespace.c b/gnu/packages/aux-files/run-in-namespace.c new file mode 100644 index 0000000000..f0cff88552 --- /dev/null +++ b/gnu/packages/aux-files/run-in-namespace.c @@ -0,0 +1,313 @@ +/* GNU Guix --- Functional package management for GNU + Copyright (C) 2018 Ludovic Courtès + + 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 . */ + +/* Make the given @WRAPPED_PROGRAM@ relocatable by executing it in a separate + mount namespace where the store is mounted in its right place. + + We would happily do that in Scheme using 'call-with-container'. However, + this very program needs to be relocatable, so it needs to be statically + linked, which complicates things (Guile's modules can hardly be "linked" + into a single executable.) */ + +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Concatenate DIRECTORY, a slash, and FILE. Return the result, which the + caller must eventually free. */ +static char * +concat (const char *directory, const char *file) +{ + char *result = malloc (strlen (directory) + 2 + strlen (file)); + assert (result != NULL); + + strcpy (result, directory); + strcat (result, "/"); + strcat (result, file); + return result; +} + +static void +mkdir_p (const char *directory) +{ + if (strcmp (directory, "/") != 0) + { + char *parent = dirname (strdupa (directory)); + mkdir_p (parent); + int err = mkdir (directory, 0700); + if (err < 0 && errno != EEXIST) + assert_perror (errno); + } +} + +static void +rm_rf (const char *directory) +{ + DIR *stream = opendir (directory); + + for (struct dirent *entry = readdir (stream); + entry != NULL; + entry = readdir (stream)) + { + if (strcmp (entry->d_name, ".") == 0 + || strcmp (entry->d_name, "..") == 0) + continue; + + char *full = concat (directory, entry->d_name); + + int err = unlink (full); + if (err < 0) + { + if (errno == EISDIR) + /* Recurse (we expect a shallow directory structure so there's + little risk of stack overflow.) */ + rm_rf (full); + else + assert_perror (errno); + } + + free (full); + } + + closedir (stream); + + int err = rmdir (directory); + if (err < 0 && errno != ENOENT) + assert_perror (errno); +} + +/* Bind mount all the top-level entries in SOURCE to TARGET. */ +static void +bind_mount (const char *source, const char *target) +{ + DIR *stream = opendir (source); + + for (struct dirent *entry = readdir (stream); + entry != NULL; + entry = readdir (stream)) + { + /* XXX: Some file systems may not report a useful 'd_type'. Ignore them + for now. */ + assert (entry->d_type != DT_UNKNOWN); + + if (strcmp (entry->d_name, ".") == 0 + || strcmp (entry->d_name, "..") == 0) + continue; + + char *abs_source = concat (source, entry->d_name); + char *new_entry = concat (target, entry->d_name); + + if (entry->d_type == DT_LNK) + { + char target[PATH_MAX]; + + ssize_t result = readlink (abs_source, target, sizeof target - 1); + if (result > 0) + { + target[result] = '\0'; + int err = symlink (target, new_entry); + if (err < 0) + assert_perror (errno); + } + } + else + { + /* Create the mount point. */ + if (entry->d_type == DT_DIR) + { + int err = mkdir (new_entry, 0700); + if (err != 0) + assert_perror (errno); + } + else + close (open (new_entry, O_WRONLY | O_CREAT)); + + int err = mount (abs_source, new_entry, "none", + MS_BIND | MS_REC | MS_RDONLY, NULL); + + /* It used to be that only directories could be bind-mounted. Thus, + keep going if we fail to bind-mount a non-directory entry. + That's OK because regular files in the root file system are + usually uninteresting. */ + if (err != 0 && entry->d_type != DT_DIR) + assert_perror (errno); + + free (new_entry); + free (abs_source); + } + } + + closedir (stream); +} + +/* Write the user/group ID map for PID to FILE, mapping ID to itself. See + user_namespaces(7). */ +static void +write_id_map (pid_t pid, const char *file, int id) +{ + char id_map_file[100]; + snprintf (id_map_file, sizeof id_map_file, "/proc/%d/%s", pid, file); + + char id_map[100]; + + /* Map root and the current user. */ + int len = snprintf (id_map, sizeof id_map, "%d %d 1\n", id, id); + int fd = open (id_map_file, O_WRONLY); + if (fd < 0) + assert_perror (errno); + + int n = write (fd, id_map, len); + if (n < 0) + assert_perror (errno); + + close (fd); +} + +/* Disallow setgroups(2) for PID. */ +static void +disallow_setgroups (pid_t pid) +{ + char file[100]; + + snprintf (file, sizeof file, "/proc/%d/setgroups", pid); + + int fd = open (file, O_WRONLY); + if (fd < 0) + assert_perror (errno); + + int err = write (fd, "deny", 5); + if (err < 0) + assert_perror (errno); + + close (fd); +} + + +int +main (int argc, char *argv[]) +{ + ssize_t size; + char self[PATH_MAX]; + size = readlink ("/proc/self/exe", self, sizeof self - 1); + assert (size > 0); + + /* SELF is something like "/home/ludo/.local/gnu/store/…-foo/bin/ls" and we + want to extract "/home/ludo/.local/gnu/store". */ + size_t index = strlen (self) + - strlen ("@WRAPPED_PROGRAM@") + + strlen ("@STORE_DIRECTORY@"); + char *store = strdup (self); + store[index] = '\0'; + + struct stat statbuf; + + /* If STORE is already at the "right" place, we can execute + @WRAPPED_PROGRAM@ right away. This is not just an optimization: it's + needed when running one of these wrappers from within an unshare'd + namespace, because 'unshare' fails with EPERM in that context. */ + if (strcmp (store, "@STORE_DIRECTORY@") != 0 + && lstat ("@WRAPPED_PROGRAM@", &statbuf) != 0) + { + /* Spawn @WRAPPED_PROGRAM@ in a separate namespace where STORE is + bind-mounted in the right place. */ + int err; + char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX")); + char *new_store = concat (new_root, "@STORE_DIRECTORY@"); + char *cwd = get_current_dir_name (); + + /* Create a child with separate namespaces and set up bind-mounts from + there. That way, bind-mounts automatically disappear when the child + exits, which simplifies cleanup for the parent. Note: clone is more + convenient than fork + unshare since the parent can directly write + the child uid_map/gid_map files. */ + pid_t child = syscall (SYS_clone, SIGCHLD | CLONE_NEWNS | CLONE_NEWUSER, + NULL, NULL, NULL); + switch (child) + { + case 0: + /* Note: Due to + we cannot make NEW_ROOT a tmpfs (which would have saved the need + for 'rm_rf'.) */ + bind_mount ("/", new_root); + mkdir_p (new_store); + err = mount (store, new_store, "none", MS_BIND | MS_REC | MS_RDONLY, + NULL); + if (err < 0) + assert_perror (errno); + + chdir (new_root); + err = chroot (new_root); + if (err < 0) + assert_perror (errno); + + /* Change back to where we were before chroot'ing. */ + chdir (cwd); + break; + + case -1: + fprintf (stderr, "%s: error: 'clone' failed: %m\n", argv[0]); + fprintf (stderr, "\ +This may be because \"user namespaces\" are not supported on this system.\n\ +Consequently, we cannot run '@WRAPPED_PROGRAM@',\n\ +unless you move it to the '@STORE_DIRECTORY@' directory.\n\ +\n\ +Please refer to the 'guix pack' documentation for more information.\n"); + return EXIT_FAILURE; + + default: + { + /* Map the current user/group ID in the child's namespace (the + default is to get the "overflow UID", i.e., the UID of + "nobody"). We must first disallow 'setgroups' for that + process. */ + disallow_setgroups (child); + write_id_map (child, "uid_map", getuid ()); + write_id_map (child, "gid_map", getgid ()); + + int status; + waitpid (child, &status, 0); + chdir ("/"); /* avoid EBUSY */ + rm_rf (new_root); + free (new_root); + exit (status); + } + } + } + + /* The executable is available under @STORE_DIRECTORY@, so we can now + execute it. */ + int err = execv ("@WRAPPED_PROGRAM@", argv); + if (err < 0) + assert_perror (errno); + + return EXIT_FAILURE; +} diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index 7734028dc3..df74437631 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -77,7 +77,7 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.") (define-public nss-mdns (package (name "nss-mdns") - (version "0.12") + (version "0.14.1") (home-page "https://github.com/lathiat/nss-mdns") (source (origin (method url-fetch) @@ -85,32 +85,13 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.") name "-" version ".tar.gz")) (sha256 (base32 - "1p2vj9fz4kzrjrj81ipf4qwgnr2n7a8cbzw4bpk18xyqhdx8h775")) - (patches - (list (origin - ;; See - ;; . - (uri (string-append - home-page - "/commit/31ccbec3b4f054e590c7c880d8a8a50cfc97127d.patch")) - (sha256 - (base32 - "0b1jmhnkpsczbph4ala7x3rafwxdg93277s30iaxh37jnvgjnhsd")) - (method url-fetch)))))) + "134wdr0n9cm5ab4g6dwq76lvzqns9dcylr470i2xxjimnw0l22d2")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'set-avahi-socket-name - (lambda _ - ;; The Avahi daemon socket is expected by - ;; src/Makefile.am to be at - ;; "$(localstatedir)/run/avahi-daemon/socket", but - ;; nowadays it lives in /run/avahi-daemon/socket. - ;; Remove the "$(localstatedir)" bit. - (substitute* "src/Makefile.in" - (("\\$\\(localstatedir)/run/avahi-daemon/socket") - "/run/avahi-daemon/socket")) - #t))))) + ;; The Avahi daemon socket is expected by 'configure.ac' to be at + ;; "$(localstatedir)/run/avahi-daemon/socket", but nowadays it lives in + ;; /run/avahi-daemon/socket. Remove the "$(localstatedir)" bit. + '(#:configure-flags '("AVAHI_SOCKET=/run/avahi-daemon/socket"))) (synopsis "Multicast DNS Name Service Switch (@dfn{NSS}) plug-in") (description "Nss-mdns is a plug-in for the GNU C Library's Name Service Switch diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 4c7ebf5a8f..a84b43da6a 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -117,7 +117,7 @@ for use with GCC on Atmel AVR microcontrollers.") (version (package-version avr-gcc)) (source #f) (build-system trivial-build-system) - (arguments '(#:builder (mkdir %output))) + (arguments '(#:builder (begin (mkdir %output) #t))) (propagated-inputs `(("avrdude" ,avrdude) ("binutils" ,avr-binutils) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index a3782e1296..444559ea80 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017 Christopher Allan Webber ;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,7 +64,7 @@ (define-public duplicity (package (name "duplicity") - (version "0.7.12") + (version "0.7.17") (source (origin (method url-fetch) @@ -73,12 +74,13 @@ version ".tar.gz")) (sha256 (base32 - "1rhgrz2lm9vbfdp2raykrih1c6n2lw5jd572z4dsz488m52avjqi")))) + "0jmh3h09680xyf33hzxxxl74bwz66zqhzvjlj7j89r9rz3qwa91p")))) (build-system python-build-system) (native-inputs `(("util-linux" ,util-linux) ;setsid command, for the tests ("par2cmdline" ,par2cmdline) ("python-pexpect" ,python2-pexpect) + ("python-fasteners" ,python2-fasteners) ("mock" ,python2-mock))) (propagated-inputs `(("lockfile" ,python2-lockfile) @@ -203,7 +205,6 @@ backups (called chunks) to allow easy burning to CD/DVD.") (base32 "1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd")))) (build-system gnu-build-system) - ;; TODO: Add -L/path/to/nettle in libarchive.pc. (inputs `(("zlib" ,zlib) ("nettle" ,nettle) @@ -226,12 +227,33 @@ backups (called chunks) to allow easy burning to CD/DVD.") ;; the chroot's /etc/passwd doesn't have it. Turn off those tests. ;; ;; The tests allow one to disable tests matching a globbing pattern. - (and (zero? (system* "make" - "libarchive_test" "bsdcpio_test" "bsdtar_test")) - ;; XXX: This glob disables too much. - (zero? (system* "./libarchive_test" "^test_*_disk*")) - (zero? (system* "./bsdcpio_test" "^test_owner_parse")) - (zero? (system* "./bsdtar_test")))))) + (invoke "make" "libarchive_test" "bsdcpio_test" "bsdtar_test") + ;; XXX: This glob disables too much. + (invoke "./libarchive_test" "^test_*_disk*") + (invoke "./bsdcpio_test" "^test_owner_parse") + (invoke "./bsdtar_test"))) + (add-after 'install 'add--L-in-libarchive-pc + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (nettle (assoc-ref inputs "nettle")) + (libxml2 (assoc-ref inputs "libxml2")) + (xz (assoc-ref inputs "xz")) + (zlib (assoc-ref inputs "zlib")) + (bzip2 (assoc-ref inputs "bzip2"))) + (substitute* (string-append lib "/pkgconfig/libarchive.pc") + (("-lnettle") + (string-append "-L" nettle "/lib -lnettle")) + (("-lxml2") + (string-append "-L" libxml2 "/lib -lxml2")) + (("-llzma") + (string-append "-L" xz "/lib -llzma")) + (("-lz") + (string-append "-L" zlib "/lib -lz")) + (("-lbz2") + (string-append "-L" bzip2 "/lib -lbz2"))) + #t)))) + ;; libarchive/test/test_write_format_gnutar_filenames.c needs to be ;; compiled with C99 or C11 or a gnu variant. #:configure-flags '("CFLAGS=-O2 -g -std=c99"))) @@ -278,9 +300,6 @@ random access nor for in-place modification.") `(#:parallel-build? #f ;race conditions #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "autoreconf"))) (add-before 'build 'qualify-inputs (lambda* (#:key inputs #:allow-other-keys) ;; This script is full of pitfalls. Fix some that particularly @@ -468,7 +487,8 @@ detection, and lossless compression.") ;; Remove bundled shared libraries. (with-directory-excursion "src/borg/algorithms" (for-each delete-file-recursively - (list "blake2" "lz4" "zstd"))))))) + (list "blake2" "lz4" "zstd"))) + #t)))) (build-system python-build-system) (arguments `(#:modules ((srfi srfi-26) ; for cut diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 41b4224e68..4ac11ac3d6 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -2,16 +2,17 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014 Andreas Enge ;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2014, 2015, 2016 Mark H Weaver +;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver ;;; Copyright © 2014 Alex Kost ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Jan Nieuwenhuizen -;;; Copyright © 2016 Alex Vong +;;; Copyright © 2016, 2018 Alex Vong ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Eric Bavier +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. @@ -35,6 +36,7 @@ #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages bash) + #:use-module (gnu packages bison) #:use-module (gnu packages ed) #:use-module (gnu packages guile) #:use-module (gnu packages multiprecision) @@ -126,14 +128,14 @@ including, for example, recursive directory searching.") (define-public sed (package (name "sed") - (version "4.4") + (version "4.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/sed/sed-" version ".tar.xz")) (sha256 (base32 - "0fv88bcnraixc8jvpacvxshi30p5x9m7yb8ns1hfv07hmb2ypmnb")))) + "0h3b2jfj57wmz680vkbyavlsrkak556qhvs7m7fdlawwhg477bbs")))) (build-system gnu-build-system) (synopsis "Stream editor") (arguments @@ -147,15 +149,9 @@ including, for example, recursive directory searching.") (substitute* "Makefile.in" (("^doc/sed\\.1:.*") "doc/sed.1:\n")) - #t)) - (add-before 'patch-source-shebangs 'patch-test-suite - (lambda* (#:key inputs #:allow-other-keys) - (patch-makefile-SHELL "testsuite/Makefile.tests") - (substitute* '("testsuite/bsd.sh" - "testsuite/bug-regex9.c") - (("/bin/sh") - (which "sh"))) #t))))) + (native-inputs + `(("perl" ,perl))) ;for tests (description "Sed is a non-interactive, text stream editor. It receives a text input from a file or from standard input and it then applies a series of text @@ -168,20 +164,20 @@ implementation offers several extensions over the standard utility.") (define-public tar (package (name "tar") - (version "1.29") + (version "1.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/tar/tar-" version ".tar.xz")) (sha256 (base32 - "097hx7sbzp8qirl4m930lw84kn0wmxhmq7v1qpra3mrg0b8cyba0")) - (patches (search-patches "tar-CVE-2016-6321.patch" - "tar-skip-unreliable-tests.patch")))) + "1lyjyk8z8hdddsxw0ikchrsfg3i0x3fsh7l63a8jgaz1n7dr5gzi")) + (patches (search-patches "tar-skip-unreliable-tests.patch" + "tar-remove-wholesparse-check.patch")))) (build-system gnu-build-system) ;; Note: test suite requires ~1GiB of disk space. (arguments - '(#:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (add-before 'build 'set-shell-file-name (lambda* (#:key inputs #:allow-other-keys) ;; Do not use "/bin/sh" to run programs. @@ -189,7 +185,27 @@ implementation offers several extensions over the standard utility.") (substitute* "src/system.c" (("/bin/sh") (string-append bash "/bin/sh"))) - #t)))))) + #t)))) + + ;; Work around a cross-compilation bug whereby libgnu.a would provide + ;; '__mktime_internal', which conflicts with the one in libc.a. + ,@(if (%current-target-system) + `(#:configure-flags '("gl_cv_func_working_mktime=yes")) + '()) + + ;; Test #92 "link mismatch" expects "a/z: Not linked to a/y" but gets + ;; "a/y: Not linked to a/z" and fails, presumably due to differences in + ;; the order in which 'diff' traverses directories. That leads to a + ;; test failure even though conceptually the test passes. Skip it. + ;; Test 117 and 118 are prone to race conditions too, particularly + ;; when cross-compiling, so we skip those as well. All issues have + ;; been fixed upstream in these commits: + ;; + ;; + #:make-flags (list (string-append + "TESTSUITEFLAGS= -k '!link mismatch," + "!directory removed before reading," + "!explicitly named directory removed before reading'")))) ;; When cross-compiling, the 'set-shell-file-name' phase needs to be able ;; to refer to the target Bash. @@ -211,16 +227,22 @@ standard utility.") (define-public patch (package (name "patch") - (version "2.7.5") + (version "2.7.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/patch/patch-" version ".tar.xz")) (sha256 (base32 - "16d2r9kpivaak948mxzc0bai45mqfw73m113wrkmbffnalv1b5gx")) + "1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc")) (patches (search-patches "patch-hurd-path-max.patch")))) (build-system gnu-build-system) + (arguments + ;; Work around a cross-compilation bug whereby libpatch.a would provide + ;; '__mktime_internal', which conflicts with the one in libc.a. + (if (%current-target-system) + `(#:configure-flags '("gl_cv_func_working_mktime=yes")) + '())) (native-inputs `(("ed" ,ed))) (synopsis "Apply differences to originals, with optional backups") (description @@ -304,14 +326,14 @@ used to apply commands with arbitrarily long arguments.") (define-public coreutils (package (name "coreutils") - (version "8.28") + (version "8.29") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/coreutils/coreutils-" version ".tar.xz")) (sha256 (base32 - "0r8c1bgm68kl70j1lgd0rv12iykw6143k4m9a56xip9rc2hv25qi")))) + "0plm1zs9il6bb5mk881qvbghq4glc8ybbgakk2lfzb0w64fgml4j")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) ;bignums in 'expr', yay! @@ -378,13 +400,17 @@ functionality beyond that which is outlined in the POSIX standard.") (sha256 (base32 "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn")) - (patches (search-patches "make-impure-dirs.patch")))) + (patches (search-patches "make-impure-dirs.patch" + "make-glibc-compat.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile (inputs `(("guile" ,guile-2.0))) (outputs '("out" "debug")) (arguments - '(#:phases + '(;; Work around faulty glob detection with glibc 2.27. See + ;; . + #:configure-flags '("make_cv_sys_gnu_glob=yes") + #:phases (modify-phases %standard-phases (add-before 'build 'set-default-shell (lambda* (#:key inputs #:allow-other-keys) @@ -393,7 +419,8 @@ functionality beyond that which is outlined in the POSIX standard.") (substitute* "job.c" (("default_shell =.*$") (format #f "default_shell = \"~a/bin/sh\";\n" - bash))))))))) + bash))) + #t)))))) (synopsis "Remake files automatically") (description "Make is a program that is used to control the production of @@ -408,16 +435,15 @@ change. GNU make offers many powerful extensions over the standard utility.") (define-public binutils (package (name "binutils") - (version "2.28.1") + (version "2.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/binutils/binutils-" version ".tar.bz2")) (sha256 (base32 - "1sj234nd05cdgga1r36zalvvdkvpfbr12g5mir2n8i1dwsdrj939")) - (patches (search-patches "binutils-ld-new-dtags.patch" - "binutils-loongson-workaround.patch")))) + "028cklfqaab24glva1ks2aqa1zxa6w6xmc8q34zs1sb7h22dxspg")) + (patches (search-patches "binutils-loongson-workaround.patch")))) (build-system gnu-build-system) ;; TODO: Add dependency on zlib + those for Gold. @@ -426,6 +452,12 @@ change. GNU make offers many powerful extensions over the standard utility.") ;; on GCC when bootstrapping. "LDFLAGS=-static-libgcc" + ;; Turn on --enable-new-dtags by default to make the + ;; linker set RUNPATH instead of RPATH on binaries. + ;; This is important because RUNPATH can be overriden + ;; using LD_LIBRARY_PATH at runtime. + "--enable-new-dtags" + ;; Don't search under /usr/lib & co. "--with-lib-path=/no-ld-lib-path" @@ -512,7 +544,8 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'." target "-ld") "/bin/ld")))) (chmod ld #o555) - (compile-file ld #:output-file go)))))) + (compile-file ld #:output-file go) + #t))))) (synopsis "The linker wrapper") (description "The linker wrapper (or 'ld-wrapper') wraps the linker to add any @@ -526,38 +559,31 @@ store.") (define-public glibc/linux (package (name "glibc") - ;; Glibc has stable branches that continuously pick fixes for each supported - ;; release. Unfortunately they do not do point-releases, so we are stuck - ;; with copying almost all patches, or use a snapshot of the release branch. - ;; - ;; This version number corresponds to the output of `git describe` and the - ;; archive can be generated by checking out the commit ID and running: - ;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz - ;; See for details. - ;; ;; Note: Always use a dot after the minor version since various places rely ;; on "version-major+minor" to determine where locales are found. - (version "2.26.105-g0890d5379c") - (replacement glibc-2.26-patched) + (version "2.27") (source (origin (method url-fetch) - (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/" - "glibc-" (version-major+minor version) "-" - (caddr (string-split version #\.)) ".tar.xz")) + (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) (sha256 (base32 - "1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g")) + "0wpwq7gsm7sd6ysidv0z575ckqdg13cr2njyfgrbgh4f65adwwji")) (snippet ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so ;; instead of ours. - '(substitute* "sysdeps/unix/sysv/linux/configure" - (("use_ldconfig=yes") - "use_ldconfig=no"))) + '(begin + (substitute* "sysdeps/unix/sysv/linux/configure" + (("use_ldconfig=yes") + "use_ldconfig=no")) + #t)) (modules '((guix build utils))) (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-2.27-git-fixes.patch" + "glibc-hidden-visibility-ldconfig.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch")))) + "glibc-allow-kernel-2.6.32.patch" + "glibc-reinstate-prlimit64-fallback.patch")))) (build-system gnu-build-system) ;; Glibc's refers to , for instance, so glibc @@ -582,8 +608,7 @@ store.") (guix build gnu-build-system)) #:configure-flags - (list "--enable-add-ons" - "--sysconfdir=/etc" + (list "--sysconfdir=/etc" ;; Installing a locale archive with all the locales is to ;; expensive (~100 MiB), so we rely on users to install the @@ -618,10 +643,7 @@ store.") ;; Use our Bash instead of /bin/sh. (string-append "BASH_SHELL=" (assoc-ref %build-inputs "bash") - "/bin/bash") - - ;; XXX: Work around "undefined reference to `__stack_chk_guard'". - "libc_cv_ssp=no" "libc_cv_ssp_strong=no") + "/bin/bash")) #:tests? #f ; XXX #:phases (modify-phases %standard-phases @@ -685,7 +707,9 @@ store.") ;; "bilingual" eval/exec magic at the top of the file. "") (("exec @PERL@") - "exec perl"))))) + "exec perl")) + + #t))) (add-after 'install 'move-static-libs (lambda* (#:key outputs #:allow-other-keys) @@ -732,6 +756,7 @@ store.") ;; install the message catalogs, with 'msgfmt'. (native-inputs `(("texinfo" ,texinfo) ("perl" ,perl) + ("bison" ,bison) ("gettext" ,gettext-minimal))) (native-search-paths @@ -799,14 +824,13 @@ with the Linux kernel.") ;; Force mach/hurd/libpthread subdirs to build first in order to avoid ;; linking errors. ;; See - (let ((-j (list "-j" (number->string (parallel-job-count))))) - (let-syntax ((make (syntax-rules () - ((_ target) - (zero? (apply system* "make" target -j)))))) - (and (make "mach/subdir_lib") - (make "hurd/subdir_lib") - (make "libpthread/subdir_lib") - (zero? (apply system* "make" -j))))))))) + (let ((flags (list "-j" (number->string (parallel-job-count))))) + (define (make target) + (apply invoke "make" target flags)) + (make "mach/subdir_lib") + (make "hurd/subdir_lib") + (make "libpthread/subdir_lib") + (apply invoke "make" flags)))))) ((#:configure-flags original-configure-flags) `(append (list "--host=i586-pc-gnu" @@ -841,13 +865,25 @@ GLIBC/HURD for a Hurd host" ;; Below are old libc versions, which we use mostly to build locale data in ;; the old format (which the new libc cannot cope with.) -(define glibc-2.26-patched +(define-public glibc-2.26 (package (inherit glibc) + ;; This version number corresponds to the output of `git describe` and the + ;; archive can be generated by checking out the commit ID and running: + ;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz + ;; See for why this was necessary. + (version "2.26.105-g0890d5379c") (source (origin (inherit (package-source glibc)) - (patches (cons (search-patch "glibc-allow-kernel-2.6.32.patch") - (origin-patches (package-source glibc)))))))) + (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/" + "glibc-" (version-major+minor version) "-" + (caddr (string-split version #\.)) ".tar.xz")) + (sha256 + (base32 + "1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g")) + (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-versioned-locpath.patch" + "glibc-allow-kernel-2.6.32.patch")))))) (define-public glibc-2.25 (package @@ -862,7 +898,6 @@ GLIBC/HURD for a Hurd host" "1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6")) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2017-1000366-pt1.patch" "glibc-CVE-2017-1000366-pt2.patch" @@ -881,7 +916,6 @@ GLIBC/HURD for a Hurd host" "1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r")) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" "glibc-CVE-2017-1000366-pt1.patch" @@ -901,7 +935,6 @@ GLIBC/HURD for a Hurd host" "1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl")) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" "glibc-CVE-2016-3075.patch" @@ -923,6 +956,7 @@ GLIBC/HURD for a Hurd host" (base32 "0j49682pm2nh4qbdw35bas82p1pgfnz4d2l7iwfyzvrvj0318wzb")) (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-o-largefile.patch" "glibc-vectorized-strcspn-guards.patch" "glibc-CVE-2015-5180.patch" "glibc-CVE-2015-7547.patch" @@ -965,8 +999,8 @@ the 'share/locale' sub-directory of this package.") `(modify-phases ,phases (replace 'build (lambda _ - (zero? (system* "make" "localedata/install-locales" - "-j" (number->string (parallel-job-count)))))) + (invoke "make" "localedata/install-locales" + "-j" (number->string (parallel-job-count))))) (delete 'install) (delete 'move-static-libs))) ((#:configure-flags flags) @@ -987,8 +1021,7 @@ the 'share/locale' sub-directory of this package.") (arguments `(#:modules ((guix build utils)) #:builder (begin - (use-modules (srfi srfi-1) - (guix build utils)) + (use-modules (guix build utils)) (let* ((libc (assoc-ref %build-inputs "glibc")) (gzip (assoc-ref %build-inputs "gzip")) @@ -999,27 +1032,27 @@ the 'share/locale' sub-directory of this package.") (setenv "PATH" (string-append libc "/bin:" gzip "/bin")) (mkdir-p localedir) - (every (lambda (locale) - (define file - ;; Use the "normalized codeset" by - ;; default--e.g., "en_US.utf8". - (string-append localedir "/" locale ".utf8")) + (for-each (lambda (locale) + (define file + ;; Use the "normalized codeset" by + ;; default--e.g., "en_US.utf8". + (string-append localedir "/" locale ".utf8")) - (and (zero? (system* "localedef" "--no-archive" - "--prefix" localedir - "-i" locale - "-f" "UTF-8" file)) - (begin - ;; For backward compatibility with Guix - ;; <= 0.8.3, add "xx_YY.UTF-8". - (symlink (string-append locale ".utf8") - (string-append localedir "/" - locale ".UTF-8")) - #t))) + (invoke "localedef" "--no-archive" + "--prefix" localedir + "-i" locale + "-f" "UTF-8" file) - ;; These are the locales commonly used for - ;; tests---e.g., in Guile's i18n tests. - '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR")))))) + ;; For backward compatibility with Guix + ;; <= 0.8.3, add "xx_YY.UTF-8". + (symlink (string-append locale ".utf8") + (string-append localedir "/" + locale ".UTF-8"))) + + ;; These are the locales commonly used for + ;; tests---e.g., in Guile's i18n tests. + '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR")) + #t)))) (inputs `(("glibc" ,glibc) ("gzip" ,gzip))) (synopsis "Small sample of UTF-8 locales") @@ -1063,30 +1096,26 @@ command.") "--host=i586-pc-gnu" "--enable-obsolete-rpc")) ((#:phases _) - '(alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (and (zero? (system* "make" "install-headers")) + '(modify-phases %standard-phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "make" "install-headers") - ;; Make an empty stubs.h to work around not being able to - ;; produce a valid stubs.h and causing the build to fail. See - ;; . - (let ((out (assoc-ref outputs "out"))) - (close-port - (open-output-file - (string-append out "/include/gnu/stubs.h")))))) - - ;; Nothing to build. - (alist-delete - 'build - - (alist-cons-before - 'configure 'pre-configure - (lambda _ - ;; Use the right 'pwd'. - (substitute* "configure" - (("/bin/pwd") "pwd"))) - %standard-phases)))))))) + ;; Make an empty stubs.h to work around not being able to + ;; produce a valid stubs.h and causing the build to fail. See + ;; . + (let ((out (assoc-ref outputs "out"))) + (close-port + (open-output-file + (string-append out "/include/gnu/stubs.h")))) + #t)) + (delete 'build) ; nothing to build + (add-before 'configure 'patch-configure-script + (lambda _ + ;; Use the right 'pwd'. + (substitute* "configure" + (("/bin/pwd") "pwd")) + #t)))))))) (define-public tzdata (package @@ -1123,8 +1152,8 @@ command.") (modify-phases %standard-phases (replace 'unpack (lambda* (#:key source inputs #:allow-other-keys) - (and (zero? (system* "tar" "xvf" source)) - (zero? (system* "tar" "xvf" (assoc-ref inputs "tzcode")))))) + (invoke "tar" "xvf" source) + (invoke "tar" "xvf" (assoc-ref inputs "tzcode")))) (add-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) ;; Move data in the right place. @@ -1139,7 +1168,8 @@ command.") (copy-recursively (string-append out "/share/zoneinfo-leaps") (string-append out "/share/zoneinfo/right")) (delete-file-recursively - (string-append out "/share/zoneinfo-leaps"))))) + (string-append out "/share/zoneinfo-leaps")) + #t))) (delete 'configure)))) (inputs `(("tzcode" ,(origin (method url-fetch) @@ -1164,63 +1194,7 @@ and daylight-saving rules.") ;;; will typically be obsolete and should never be referred to by a built ;;; package. (define-public tzdata-for-tests - (hidden-package (package (inherit tzdata) - (version "2017c") - (source - (origin - (method url-fetch) - (uri (string-append "https://www.iana.org/time-zones/repository" - "/releases/tzdata" version ".tar.gz")) - (sha256 - (base32 - "02yrrfj0p7ar885ja41ylijzbr8wc6kz6kzlw8c670i9m693ym6n")))) - (arguments - '(#:tests? #f - #:make-flags (let ((out (assoc-ref %outputs "out")) - (tmp (getenv "TMPDIR"))) - (list (string-append "TOPDIR=" out) - (string-append "TZDIR=" out "/share/zoneinfo") - - ;; Discard zic, dump, and tzselect, already - ;; provided by glibc. - (string-append "ETCDIR=" tmp "/etc") - - ;; Likewise for the C library routines. - (string-append "LIBDIR=" tmp "/lib") - (string-append "MANDIR=" tmp "/man") - - "AWK=awk" - "CC=gcc")) - #:modules ((guix build utils) - (guix build gnu-build-system) - (srfi srfi-1)) - #:phases - (modify-phases %standard-phases - (replace 'unpack - (lambda* (#:key source inputs #:allow-other-keys) - (and (zero? (system* "tar" "xvf" source)) - (zero? (system* "tar" "xvf" (assoc-ref inputs "tzcode")))))) - (add-after 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - ;; Move data in the right place. - (let ((out (assoc-ref outputs "out"))) - (symlink (string-append out "/share/zoneinfo") - (string-append out "/share/zoneinfo/posix")) - (delete-file-recursively - (string-append out "/share/zoneinfo-posix")) - (copy-recursively (string-append out "/share/zoneinfo-leaps") - (string-append out "/share/zoneinfo/right")) - (delete-file-recursively - (string-append out "/share/zoneinfo-leaps"))))) - (delete 'configure)))) - (inputs `(("tzcode" ,(origin - (method url-fetch) - (uri (string-append - "http://www.iana.org/time-zones/repository/releases/tzcode" - version ".tar.gz")) - (sha256 - (base32 - "1dvrq0b2hz7cjqdyd7x21wpy4qcng3rvysr61ij0c2g64fyb9s41"))))))))) + (hidden-package tzdata)) (define-public libiconv (package @@ -1237,9 +1211,11 @@ and daylight-saving rules.") (snippet ;; Work around "declared gets" error on glibc systems (fixed by ;; Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348.) - '(substitute* "srclib/stdio.in.h" - (("^#undef gets") "") - (("^_GL_WARN_ON_USE \\(gets.*") ""))))) + '(begin + (substitute* "srclib/stdio.in.h" + (("^#undef gets") "") + (("^_GL_WARN_ON_USE \\(gets.*") "")) + #t)))) (build-system gnu-build-system) (synopsis "Character set conversion library") (description diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index b98ffe1c12..64f7782f58 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2015, 2017 Leo Famulari ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice @@ -72,7 +72,14 @@ (9 "0g1l56kvw61rpw7dqa9fcl9llkl693h73g631hrhxlm030ddssqb") (10 "01lfhrkdsdkdz8ypzapr614ras23x7ckjnr60aa5bzkaqprccrc4") (11 "038p7mhnq9m65g505hi3827jkf9f35nd1cy00w8mwafpyxp44mnx") - (12 "0gh6lbb1rwpk44pvbamm6vzdfi50xnwkqd9v7s8cjwk3pz973hps"))) + (12 "0gh6lbb1rwpk44pvbamm6vzdfi50xnwkqd9v7s8cjwk3pz973hps") + (13 "1djkx0w9v62q78gz3jsvamj1jq53i6hbfrfhhsw86ihwpjnfy98v") + (14 "0z5ikcq9zyxw79d0z36r5p0mspnb5piavbv03jmlan1wnknmrxx7") + (15 "09n307fi1j257abhm295k6ksmnzw47ka2zhnr0i5lbdnpvn04xnk") + (16 "1cgi1y6mifm8hsgv4avj5ih76535js3qba1sqwbfvp7si76927sh") + (17 "0w6jpj2giakji1ir83rpkx1y7n7xqppah3j748m6dm38hywr0gvp") + (18 "1k58h4wxbsg7r4rwhrvzx5hfbapba2nxjysbhh6qp6ki5ys99i2v") + (19 "07n1i5610lbs672x1s8g82qn3qfj06s0ip3z80sri0g8vxp0s5r7"))) (define (download-patches store count) "Download COUNT Bash patches into store. Return a list of @@ -93,9 +100,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." 1)) (define-public bash - (let* ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'" - "-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'" - "-DDEFAULT_PATH_VALUE='\"/no-such-path\"'" + (let* ((cppflags (string-join '("-DDEFAULT_PATH_VALUE='\"/no-such-path\"'" "-DSTANDARD_UTILS_PATH='\"/no-such-path\"'" "-DNON_INTERACTIVE_LOGIN_SHELLS" "-DSSH_SOURCE_BASHRC") @@ -160,7 +165,8 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." ;; Add a `sh' -> `bash' link. (let ((out (assoc-ref outputs "out"))) (with-directory-excursion (string-append out "/bin") - (symlink "bash" "sh"))))) + (symlink "bash" "sh") + #t)))) (add-after 'install 'move-development-files (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index f9fda96bb2..eba30217da 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver -;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2016, 2018 Leo Famulari ;;; Copyright © 2017 Rene Saavedra ;;; ;;; This file is part of GNU Guix. @@ -30,14 +30,14 @@ (define-public libgc (package (name "libgc") - (version "7.6.0") + (version "7.6.4") (source (origin (method url-fetch) (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-" version ".tar.gz")) (sha256 (base32 - "143x7g0d0k6250ai6m2x3l4y352mzizi4wbgrmahxscv2aqjhjm1")))) + "076dzsqqyxd3nlzs0z277vvhqjp8nv5dqi763s0m90zr6ljiyk5r")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -91,7 +91,7 @@ C or C++ programs, though that is not its primary goal.") (define-public libatomic-ops (package (name "libatomic-ops") - (version "7.4.8") + (version "7.6.4") (source (origin (method url-fetch) (uri (string-append @@ -99,13 +99,13 @@ C or C++ programs, though that is not its primary goal.") version "/libatomic_ops-" version ".tar.gz")) (sha256 (base32 - "0sj3plzpbqgxrqpjq3w2zi3zxxqqps71ncdwk5s1k30i9d9da1f4")))) + "0knxncsjhbknlyy6lx7ycxhpzfk3sykhvicgxyp0rmsxd1d3v0jv")))) (build-system gnu-build-system) (outputs '("out" "debug")) (synopsis "Accessing hardware atomic memory update operations") (description "This C library provides semi-portable access to hardware-provided atomic -memory update operations on a number architectures. These might allow you to +memory update operations on a number of architectures. These might allow you to write code that does more interesting things in signal handlers, write lock-free code, experiment with thread programming paradigms, etc.") (home-page "https://github.com/ivmai/libatomic_ops/") diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 76ff773ef1..ed35b4c61a 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2018 Roel Janssen +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,17 +29,49 @@ #:use-module (gnu packages statistics) #:use-module (gnu packages bioinformatics)) +(define-public r-bsgenome-dmelanogaster-ucsc-dm6 + (package + (name "r-bsgenome-dmelanogaster-ucsc-dm6") + (version "1.4.1") + (source (origin + (method url-fetch) + ;; We cannot use bioconductor-uri here because this tarball is + ;; located under "data/annotation/" instead of "bioc/". + (uri (string-append "https://www.bioconductor.org/packages/" + "release/data/annotation/src/contrib/" + "BSgenome.Dmelanogaster.UCSC.dm6_" + version ".tar.gz")) + (sha256 + (base32 + "1bhj0rdgf7lspw4xby9y9mf7v7jxxz8001bc8vw8kf04rjsx6060")))) + (properties + `((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm6"))) + (build-system r-build-system) + ;; As this package provides little more than a very large data file it + ;; doesn't make sense to build substitutes. + (arguments `(#:substitutable? #f)) + (propagated-inputs + `(("r-bsgenome" ,r-bsgenome))) + (home-page + "https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm6/") + (synopsis "Full genome sequences for Fly") + (description + "This package provides full genome sequences for Drosophila +melanogaster (Fly) as provided by UCSC (dm6) and stored in Biostrings +objects.") + (license license:artistic2.0))) + (define-public r-hpar (package (name "r-hpar") - (version "1.20.0") + (version "1.22.2") (source (origin (method url-fetch) (uri (bioconductor-uri "hpar" version)) (sha256 (base32 - "0s5v79mgxdx862v1jrdf5pdap81nz5vjx25ni8s3sl97ldckf6j8")))) + "1b72hvzasf6q739gmx6jblbzzyq22l7crrkbbfkihv3v7s94g388")))) (build-system r-build-system) (home-page "https://bioconductor.org/packages/hpar/") (synopsis "Human Protein Atlas in R") @@ -49,14 +82,14 @@ the Human Protein Atlas project.") (define-public r-regioner (package (name "r-regioner") - (version "1.10.0") + (version "1.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "regioneR" version)) (sha256 (base32 - "1vprp3l929hwzmvgskbhawfgnrymwc9n2rxd16rgagnv1dxnjxfp")))) + "09bzlaqdgy7wmzly3zc9y2da50d07mlixlnpaxdxpiwdk8qmhxsb")))) (properties `((upstream-name . "regioneR"))) (build-system r-build-system) (propagated-inputs @@ -65,7 +98,8 @@ the Human Protein Atlas project.") ("r-bsgenome" ,r-bsgenome) ("r-rtracklayer" ,r-rtracklayer) ("r-genomeinfodb" ,r-genomeinfodb) - ("r-iranges" ,r-iranges))) + ("r-iranges" ,r-iranges) + ("r-s4vectors" ,r-s4vectors))) (home-page "https://bioconductor.org/packages/regioneR/") (synopsis "Association analysis of genomic regions") (description "This package offers a statistical framework based on @@ -76,14 +110,14 @@ region sets and other genomic features.") (define-public r-diffbind (package (name "r-diffbind") - (version "2.6.6") + (version "2.8.0") (source (origin (method url-fetch) (uri (bioconductor-uri "DiffBind" version)) (sha256 (base32 - "1sm5h6nq77hjfis6kr1nqyizcxgfz87dgpqc4fxlfqkmsd9n3vkp")))) + "1w1hybzd732ccg3q8zhirwfilq8sx3frv1x98zfyj3svzw98fish")))) (properties `((upstream-name . "DiffBind"))) (build-system r-build-system) (inputs @@ -95,6 +129,8 @@ region sets and other genomic features.") ("r-dplyr" ,r-dplyr) ("r-edger" ,r-edger) ("r-genomicalignments" ,r-genomicalignments) + ("r-genomicranges" ,r-genomicranges) + ("r-ggplot2" ,r-ggplot2) ("r-ggrepel" ,r-ggrepel) ("r-gplots" ,r-gplots) ("r-iranges" ,r-iranges) @@ -105,6 +141,7 @@ region sets and other genomic features.") ("r-rcpp" ,r-rcpp) ("r-rsamtools" ,r-rsamtools) ("r-s4vectors" ,r-s4vectors) + ("r-summarizedexperiment" ,r-summarizedexperiment) ("r-systempiper" ,r-systempiper) ("r-zlibbioc" ,r-zlibbioc))) (home-page "http://bioconductor.org/packages/DiffBind") @@ -118,14 +155,14 @@ occupancy (overlap) analysis and plotting functions.") (define-public r-ripseeker (package (name "r-ripseeker") - (version "1.18.0") + (version "1.20.0") (source (origin (method url-fetch) (uri (bioconductor-uri "RIPSeeker" version)) (sha256 (base32 - "0bqkzwrncww7il36273chkd3gfxmii7p566ycki9qij419pwr35y")))) + "0y9cvzqslfxj3z9mnp47mknff0pky2g5x8x1z1s5yjcx35q89xfi")))) (properties `((upstream-name . "RIPSeeker"))) (build-system r-build-system) (propagated-inputs @@ -151,14 +188,14 @@ processing to visualization and annotation.") (define-public r-multtest (package (name "r-multtest") - (version "2.34.0") + (version "2.36.0") (source (origin (method url-fetch) (uri (bioconductor-uri "multtest" version)) (sha256 (base32 - "0n11rd49xl2vn3ldmfips7d3yb70l8npjcqsxyswr9ypjhgzkv9j")))) + "11949h2kglw13x8haaj4clg4jim1mwh5n98n9zxp9mmgn01z1lp0")))) (build-system r-build-system) (propagated-inputs `(("r-survival" ,r-survival) @@ -189,23 +226,27 @@ expressed genes in DNA microarray experiments.") (define-public r-chippeakanno (package (name "r-chippeakanno") - (version "3.12.7") + (version "3.14.0") (source (origin (method url-fetch) (uri (bioconductor-uri "ChIPpeakAnno" version)) (sha256 (base32 - "1zab489d7a6bh6ylc68x6yn47gdkmr7p3677grx9l2qafrryjr04")))) + "1kcnc3cnmrhdk1x7q3y6zsz09pgd3xn9xy1hfbxz48cajlb18ad0")))) (properties `((upstream-name . "ChIPpeakAnno"))) (build-system r-build-system) (propagated-inputs `(("r-biocgenerics" ,r-biocgenerics) + ("r-biostrings" ,r-biostrings) + ("r-delayedarray" ,r-delayedarray) ("r-go-db" ,r-go-db) ("r-biomart" ,r-biomart) ("r-bsgenome" ,r-bsgenome) ("r-genomicfeatures" ,r-genomicfeatures) + ("r-genomicranges" ,r-genomicranges) ("r-genomeinfodb" ,r-genomeinfodb) + ("r-iranges" ,r-iranges) ("r-matrixstats" ,r-matrixstats) ("r-annotationdbi" ,r-annotationdbi) ("r-limma" ,r-limma) @@ -217,6 +258,7 @@ expressed genes in DNA microarray experiments.") ("r-dbi" ,r-dbi) ("r-ensembldb" ,r-ensembldb) ("r-biobase" ,r-biobase) + ("r-s4vectors" ,r-s4vectors) ("r-seqinr" ,r-seqinr) ("r-idr" ,r-idr) ("r-genomicalignments" ,r-genomicalignments) @@ -239,16 +281,15 @@ enrichedGO (addGeneIDs).") (define-public r-marray (package (name "r-marray") - (version "1.56.0") + (version "1.58.0") (source (origin (method url-fetch) (uri (bioconductor-uri "marray" version)) (sha256 - (base32 "14c93i86yc7jn4ax8p4l0z6v9xisw1bv7gzb4a0gbxhxn7mddaic")))) + (base32 "0539flh3y1qy5b1bamkfwbskis765c5s33v1y9j51n33mxb9h08d")))) (build-system r-build-system) (propagated-inputs - `(("r-biobase" ,r-biobase) - ("r-limma" ,r-limma))) + `(("r-limma" ,r-limma))) (home-page "http://bioconductor.org/packages/marray") (synopsis "Exploratory analysis for two-color spotted microarray data") (description "This package contains class definitions for two-color spotted @@ -259,12 +300,12 @@ normalization and quality checking.") (define-public r-cghbase (package (name "r-cghbase") - (version "1.38.0") + (version "1.40.0") (source (origin (method url-fetch) (uri (bioconductor-uri "CGHbase" version)) (sha256 - (base32 "0fynvcsjdbgp69i0nxrc8ni58rhb1kx9k5r3nb91n9i8s43gjqlm")))) + (base32 "1hf44vma3kgwr61kjbszvfxkava8bjqnam1mdncqvczbypb2xwaq")))) (properties `((upstream-name . "CGHbase"))) (build-system r-build-system) (propagated-inputs @@ -279,12 +320,12 @@ the @code{arrayCGH} packages.") (define-public r-cghcall (package (name "r-cghcall") - (version "2.40.0") + (version "2.42.0") (source (origin (method url-fetch) (uri (bioconductor-uri "CGHcall" version)) (sha256 - (base32 "11pi6awz3858yb4s0z3qf3kcmsdgp6d4aj41g4lfix1sv5amllch")))) + (base32 "0y71vfxv9x0am3xvv520yr95cb7m7y92dhdx1vkqki80jrmf12dz")))) (properties `((upstream-name . "CGHcall"))) (build-system r-build-system) (propagated-inputs @@ -302,16 +343,17 @@ the @code{arrayCGH} packages.") (define-public r-qdnaseq (package (name "r-qdnaseq") - (version "1.14.0") + (version "1.16.0") (source (origin (method url-fetch) (uri (bioconductor-uri "QDNAseq" version)) (sha256 - (base32 "0lgbv4s0xqgrs7q6ynb3c273sf7pyrp51jnc8ravq1z5g0a2zshy")))) + (base32 "1pj69mfyxwfd0d7h4kls9xq96sdc55y3rv20qpla50hw9libcwwd")))) (properties `((upstream-name . "QDNAseq"))) (build-system r-build-system) (propagated-inputs `(("r-biobase" ,r-biobase) + ("r-biocparallel" ,r-biocparallel) ("r-cghbase" ,r-cghbase) ("r-cghcall" ,r-cghcall) ("r-dnacopy" ,r-dnacopy) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 019c46adbd..e93eeb5069 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -295,9 +295,10 @@ BAM files.") (base32 "1vgw2mwngq20c530zim52zvgmw1lci8rzl33pvh44xqk3xlzvjsa")) (modules '((guix build utils))) - (snippet - ;; Delete bundled htslib. - '(delete-file-recursively "htslib-1.8")))) + (snippet '(begin + ;; Delete bundled htslib. + (delete-file-recursively "htslib-1.8") + #t)))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -1194,10 +1195,12 @@ errors at the end of reads.") "0hwa5r9qbglppb7sz5z79rlmmddr3n51n468jb3wh8rwjgn3yr90")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - ;; replace BUILD_HOST and BUILD_TIME for deterministic build - (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"") - (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))))) + '(begin + (substitute* "Makefile" + ;; replace BUILD_HOST and BUILD_TIME for deterministic build + (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"") + (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")) + #t)))) (build-system gnu-build-system) (inputs `(("perl" ,perl) @@ -1391,10 +1394,12 @@ well as many of the command line options.") "15z2w3bvnc0n4qmb9bd6d8ylc2h2nj883x2w9iixf4x3vki9b22i")) (modules '((guix build utils))) (snippet - '(substitute* "setup.py" - ;; remove dependency on outdated "distribute" module - (("^from distribute_setup import use_setuptools") "") - (("^use_setuptools\\(\\)") ""))))) + '(begin + (substitute* "setup.py" + ;; remove dependency on outdated "distribute" module + (("^from distribute_setup import use_setuptools") "") + (("^use_setuptools\\(\\)") "")) + #t)))) (build-system python-build-system) (arguments `(#:tests? #f ;tests fail because test data are not included @@ -1426,9 +1431,11 @@ multiple sequence alignments.") (base32 "0dzap2axin9cbbl0d825w294bpn00zagfm1sigamm4v2pm5bj9lp")) (modules '((guix build utils))) - (snippet - ;; Drop bundled htslib. TODO: Also remove samtools and bcftools. - '(delete-file-recursively "htslib")))) + (snippet '(begin + ;; Drop bundled htslib. TODO: Also remove samtools + ;; and bcftools. + (delete-file-recursively "htslib") + #t)))) (build-system python-build-system) (arguments `(#:modules ((ice-9 ftw) @@ -1800,9 +1807,10 @@ time.") ;; for download from Sourceforge, but it has not been merged. (patches (search-patches "crossmap-allow-system-pysam.patch")) (modules '((guix build utils))) - ;; remove bundled copy of pysam - (snippet - '(delete-file-recursively "lib/pysam")))) + (snippet '(begin + ;; remove bundled copy of pysam + (delete-file-recursively "lib/pysam") + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 @@ -1911,7 +1919,8 @@ files.") (snippet '(begin ;; Delete bundled libBigWig sources - (delete-file-recursively "libBigWig"))))) + (delete-file-recursively "libBigWig") + #t)))) (build-system python-build-system) (arguments `(#:phases @@ -2079,7 +2088,7 @@ accurately delineate genomic rearrangements throughout the genome.") (define-public diamond (package (name "diamond") - (version "0.9.21") + (version "0.9.22") (source (origin (method url-fetch) (uri (string-append @@ -2088,7 +2097,7 @@ accurately delineate genomic rearrangements throughout the genome.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1cf98vcsiwcv3c4apg50w1240v1mpw0zln1sdw3g692dqa4y041z")))) + "0adp87r9ak63frdrdmrdfhsn6g0jnnyq1lr2wibvqbxcl37iir9m")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no "check" target @@ -3145,6 +3154,8 @@ manipulating HTS data.") #:jdk ,icedtea-8 #:phases (modify-phases %standard-phases + ;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class" + (delete 'generate-jar-indices) (add-after 'unpack 'use-our-htsjdk (lambda* (#:key inputs #:allow-other-keys) (substitute* "build.xml" @@ -3202,6 +3213,8 @@ VCF.") (sxml xpath)) #:phases (modify-phases %standard-phases + ;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class" + (delete 'generate-jar-indices) (add-after 'unpack 'remove-useless-build.xml (lambda _ (delete-file "build.xml") #t)) ;; This is necessary to ensure that htsjdk is found when using @@ -3292,6 +3305,8 @@ VCF.") (list "-Dsamjdk.intel_deflater_so_path=lib/jni/libIntelDeflater.so") #:phases (modify-phases %standard-phases + ;; FIXME: This phase fails. + (delete 'generate-jar-indices) ;; Do not use bundled ant bzip2. (add-after 'unpack 'use-ant-bzip (lambda* (#:key inputs #:allow-other-keys) @@ -3450,6 +3465,42 @@ The main functions of FastQC are: @end itemize\n") (license license:gpl3+))) +(define-public fastp + (package + (name "fastp") + (version "0.14.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenGene/fastp.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1r6ms5zbf5rps4rgp4z73nczadl00b5rqylw8f684isfz27dp0xh")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; there are none + #:make-flags + (list (string-append "BINDIR=" (assoc-ref %outputs "out") "/bin")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'install 'create-target-dir + (lambda* (#:key outputs #:allow-other-keys) + (mkdir-p (string-append (assoc-ref outputs "out") "/bin")) + #t))))) + (inputs + `(("zlib" ,zlib))) + (home-page "https://github.com/OpenGene/fastp/") + (synopsis "All-in-one FastQ preprocessor") + (description + "Fastp is a tool designed to provide fast all-in-one preprocessing for +FastQ files. This tool has multi-threading support to afford high +performance.") + (license license:expat))) + (define-public htslib (package (name "htslib") @@ -3834,9 +3885,11 @@ sequences).") "00fx14vpmgsijwxd1xql3if934l82v8ckqgjjyyhnr36qb9qrskv")) (modules '((guix build utils))) (snippet - ;; Delete bundled kseq. - ;; TODO: Also delete bundled murmurhash and open bloom filter. - '(delete-file "src/mash/kseq.h")))) + '(begin + ;; Delete bundled kseq. + ;; TODO: Also delete bundled murmurhash and open bloom filter. + (delete-file "src/mash/kseq.h") + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests. @@ -4016,18 +4069,19 @@ assembled metagenomic sequence.") (base32 "1z3x0vd8ma7pdrnywj7i3kgwl89sdkwrrn62zl7r5calqaq2hyip")) (modules '((guix build utils))) - (snippet - '(substitute* "setup.py" - ;; Use setuptools, or else the executables are not - ;; installed. - (("distutils.core") "setuptools") - ;; use "gcc" instead of "cc" for compilation - (("^defines") - "cc.set_executables( + (snippet '(begin + (substitute* "setup.py" + ;; Use setuptools, or else the executables are not + ;; installed. + (("distutils.core") "setuptools") + ;; use "gcc" instead of "cc" for compilation + (("^defines") + "cc.set_executables( compiler='gcc', compiler_so='gcc', linker_exe='gcc', -linker_so='gcc -shared'); defines"))))) +linker_so='gcc -shared'); defines")) + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 ; only Python 2 is supported @@ -4828,7 +4882,8 @@ BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.") (("^from distribute_setup import use_setuptools") "") (("^use_setuptools\\(\\)") "") ;; do not use bundled copy of pysam - (("^have_pysam = False") "have_pysam = True")))))) + (("^have_pysam = False") "have_pysam = True")) + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2)) (inputs @@ -4879,9 +4934,9 @@ distribution, coverage uniformity, strand specificity, etc.") "Data2DB" "PCL2Bin"))) (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (replace 'bootstrap (lambda _ - (zero? (system* "bash" "gen_auto")))) + (invoke "bash" "gen_auto"))) (add-after 'build 'build-additional-tools (lambda* (#:key make-flags #:allow-other-keys) (every (lambda (dir) @@ -5384,9 +5439,10 @@ structures, classes for genomic regions, mapped sequencing reads, etc.") (sha256 (base32 "08r684l50pnxjpvmhzjgqq56yv9rfw90k8vx0nsrnrzk8mf9hsdq")) (modules '((guix build utils))) - (snippet - ;; Remove bundled samtools. - '(delete-file-recursively "samtools")))) + (snippet '(begin + ;; Remove bundled samtools. + (delete-file-recursively "samtools") + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target @@ -5591,10 +5647,11 @@ writing files into the .sra format.") (out (assoc-ref %outputs "out")) (doc (assoc-ref %outputs "doc"))) (setenv "PATH" (string-append tar "/bin:" bzip "/bin")) - (system* "tar" "xvf" (assoc-ref %build-inputs "source")) + (invoke "tar" "xvf" (assoc-ref %build-inputs "source")) (chdir (string-append "seqan-library-" ,version)) (copy-recursively "include" (string-append out "/include")) - (copy-recursively "share" (string-append doc "/share")))))) + (copy-recursively "share" (string-append doc "/share")) + #t)))) (native-inputs `(("source" ,source) ("tar" ,tar) @@ -5769,15 +5826,16 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.") (define-public star (package (name "star") - (version "2.6.0a") + (version "2.6.0c") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/alexdobin/STAR/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/alexdobin/STAR.git") + (commit version))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0yci4ymy4407kjh0lqp021nzccp6r31wgrkixkmix5p130cxvc56")) + "04cj6jw8d9q6lk9c78wa4fky6jdlicf1d13plq7182h8vqiz8p59")) (modules '((guix build utils))) (snippet '(begin @@ -6083,20 +6141,20 @@ information as possible.") (define-public r-vegan (package (name "r-vegan") - (version "2.5-1") + (version "2.5-2") (source (origin (method url-fetch) (uri (cran-uri "vegan" version)) (sha256 (base32 - "0pynr02d1xngda6c3va8fc4nxpgfkawhzcnz1ws4dnarp9b1w90r")))) + "13pyqvlpz64qibi8k5d109v7q09j06mbv6ndix3n4cn21mjx391c")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) (propagated-inputs `(("r-cluster" ,r-cluster) - ("r-knitr" ,r-knitr) + ("r-knitr" ,r-knitr) ; needed for vignettes ("r-lattice" ,r-lattice) ("r-mass" ,r-mass) ("r-mgcv" ,r-mgcv) @@ -6113,14 +6171,14 @@ data types as well.") (define-public r-annotate (package (name "r-annotate") - (version "1.56.2") + (version "1.58.0") (source (origin (method url-fetch) (uri (bioconductor-uri "annotate" version)) (sha256 (base32 - "0ybg9k1s289h15nj1kp9821i1rsk1gkn8i8blplmk7gsgpbw1f42")))) + "1qmncyvy147a1ll3iri45p822kcs3s7583jfnq9jf6sz9ilk8cjf")))) (build-system r-build-system) (propagated-inputs `(("r-annotationdbi" ,r-annotationdbi) @@ -6140,13 +6198,13 @@ microarrays.") (define-public r-copynumber (package (name "r-copynumber") - (version "1.18.0") + (version "1.20.0") (source (origin (method url-fetch) (uri (bioconductor-uri "copynumber" version)) (sha256 (base32 - "01kcwzl485yjrkgyg8117b1il957ss0v6rq4bbxf4ksd5fzcjmyx")))) + "0y9nnwb0psphp3ix88wj2f8z5gr45r5znf55w892ysm27isdpmms")))) (build-system r-build-system) (propagated-inputs `(("r-s4vectors" ,r-s4vectors) @@ -6163,14 +6221,14 @@ penalized least squares regression method.") (define-public r-geneplotter (package (name "r-geneplotter") - (version "1.56.0") + (version "1.58.0") (source (origin (method url-fetch) (uri (bioconductor-uri "geneplotter" version)) (sha256 (base32 - "1z3g7frc1iviwrsv2dlm4nqvkc0685h4va0388yfxn102ln8wwma")))) + "055g28xgiazl4l0gkg8xiamks64f5yckjjyvw1abd6d6qjavwx0g")))) (build-system r-build-system) (propagated-inputs `(("r-annotate" ,r-annotate) @@ -6188,14 +6246,14 @@ penalized least squares regression method.") (define-public r-genefilter (package (name "r-genefilter") - (version "1.60.0") + (version "1.62.0") (source (origin (method url-fetch) (uri (bioconductor-uri "genefilter" version)) (sha256 (base32 - "173swlg6gj4kdllbqvyiw5dggbcxiwlwpqmllsv4dxzn7h25i3g7")))) + "14l0ff02spmjwxj0m1czhg5vlkgwcfi73cym8m2n9vn6i7bjdaqi")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) @@ -6215,14 +6273,14 @@ high-throughput sequencing experiments.") (define-public r-deseq2 (package (name "r-deseq2") - (version "1.18.1") + (version "1.20.0") (source (origin (method url-fetch) (uri (bioconductor-uri "DESeq2" version)) (sha256 (base32 - "1iyimg1s0x5pdmvl8x08s8h0v019y0nhjzs50chagbpk2x91fsmv")))) + "1wjnfpb41a9mmf9a22bz4zh7r1d4id50vpdc1mn5vfzrz7li9qik")))) (properties `((upstream-name . "DESeq2"))) (build-system r-build-system) (propagated-inputs @@ -6252,14 +6310,14 @@ distribution.") (define-public r-dexseq (package (name "r-dexseq") - (version "1.24.4") + (version "1.26.0") (source (origin (method url-fetch) (uri (bioconductor-uri "DEXSeq" version)) (sha256 (base32 - "1a80yv742fx5c7qav7imsdybphf0d5bixsqyf8w5zng7fk8j16d5")))) + "1mqb3mdxcsi3largsl7k27bvqrgps9ixv806xvmf29pw0xn05sg1")))) (properties `((upstream-name . "DEXSeq"))) (build-system r-build-system) (propagated-inputs @@ -6295,14 +6353,14 @@ exploration of the results.") (define-public r-annotationforge (package (name "r-annotationforge") - (version "1.20.0") + (version "1.22.0") (source (origin (method url-fetch) (uri (bioconductor-uri "AnnotationForge" version)) (sha256 (base32 - "01vbrf76vqfvxh6vpfxkjwccxggnha3byqzj333glqz2b6kwx5q1")))) + "12ffj7h95adiya5mzyjxazqn1qgr434ajpabfcyhrj5v83s4vk65")))) (properties `((upstream-name . "AnnotationForge"))) (build-system r-build-system) @@ -6325,14 +6383,14 @@ databases. Packages produced are intended to be used with AnnotationDbi.") (define-public r-rbgl (package (name "r-rbgl") - (version "1.54.0") + (version "1.56.0") (source (origin (method url-fetch) (uri (bioconductor-uri "RBGL" version)) (sha256 (base32 - "18jad23i3899ypv4bg3l47cvvs3qnj1pqis2p9x0135yv5y6wnv7")))) + "0hj972mmqpyi5fx1rq33kysavdyz4nspi6gcffzi3rv339m0anhf")))) (properties `((upstream-name . "RBGL"))) (build-system r-build-system) (propagated-inputs `(("r-graph" ,r-graph))) @@ -6346,14 +6404,14 @@ the graph algorithms contained in the Boost library.") (define-public r-gseabase (package (name "r-gseabase") - (version "1.40.1") + (version "1.42.0") (source (origin (method url-fetch) (uri (bioconductor-uri "GSEABase" version)) (sha256 (base32 - "10cmjxahg2plwacfan6g0k8cwyzya96ypc7m1r79gwqkyykxw5fz")))) + "11bv92svik399q677jv96b71i4bq68xxyxn1yijpdik2lq4hgl7a")))) (properties `((upstream-name . "GSEABase"))) (build-system r-build-system) (propagated-inputs @@ -6373,14 +6431,14 @@ Enrichment Analysis} (GSEA).") (define-public r-category (package (name "r-category") - (version "2.44.0") + (version "2.46.0") (source (origin (method url-fetch) (uri (bioconductor-uri "Category" version)) (sha256 (base32 - "0mkav04vbla0xfa0dssxdd0rjs589sxi83xklf5iq5hj3dm8y0i8")))) + "03wfqa8d1dgwsm327zl2mpkq7dq3mzhq12598qz3ylfhrwplbgx0")))) (properties `((upstream-name . "Category"))) (build-system r-build-system) (propagated-inputs @@ -6404,14 +6462,14 @@ analysis.") (define-public r-gostats (package (name "r-gostats") - (version "2.44.0") + (version "2.46.0") (source (origin (method url-fetch) (uri (bioconductor-uri "GOstats" version)) (sha256 (base32 - "04gqfdlx9fxf97qf0l28x4aaqvl10n6v58qiz5fiaw05sbj1pf1i")))) + "1i5mydz5d95w2k28qr9j01hmbnl2id55jq94jvcpcyp1pvinkdq0")))) (properties `((upstream-name . "GOstats"))) (build-system r-build-system) (propagated-inputs @@ -6435,14 +6493,14 @@ testing and other simple calculations.") (define-public r-shortread (package (name "r-shortread") - (version "1.36.1") + (version "1.38.0") (source (origin (method url-fetch) (uri (bioconductor-uri "ShortRead" version)) (sha256 (base32 - "1cyv47632m9ljkxfsvnvmd19sb607ys5kz8fwh6v39dnw16g0a6m")))) + "038z3z7qaw5bpgjzy91sjkybsny6jwjjsrnnq4gdqdw9ss1qy1fb")))) (properties `((upstream-name . "ShortRead"))) (build-system r-build-system) (inputs @@ -6477,14 +6535,14 @@ ungapped alignment formats.") (define-public r-systempiper (package (name "r-systempiper") - (version "1.12.0") + (version "1.14.0") (source (origin (method url-fetch) (uri (bioconductor-uri "systemPipeR" version)) (sha256 (base32 - "11mj8pjq5vj25768vmagpzv74fvi3p3kdk5zdlznqyiaggri04cv")))) + "1550pd63mmky0vgkmpni7zf14kqz1741wv63nfaw29kcmhh3m5lm")))) (properties `((upstream-name . "systemPipeR"))) (build-system r-build-system) (propagated-inputs @@ -6523,14 +6581,14 @@ annotation infrastructure.") (define-public r-grohmm (package (name "r-grohmm") - (version "1.12.0") + (version "1.14.0") (source (origin (method url-fetch) (uri (bioconductor-uri "groHMM" version)) (sha256 (base32 - "0cjkj0ypyc4dfi9s8dh88kh6q4xlpnc0wal7njg4b4gqj0l2hva7")))) + "1kjb14apyly44qdlx2ld6gr69wlazd4mbhs58l35hir12aphgrzp")))) (properties `((upstream-name . "groHMM"))) (build-system r-build-system) (propagated-inputs @@ -6842,13 +6900,13 @@ barplots or heatmaps.") (define-public r-biocgenerics (package (name "r-biocgenerics") - (version "0.24.0") + (version "0.26.0") (source (origin (method url-fetch) (uri (bioconductor-uri "BiocGenerics" version)) (sha256 (base32 - "03wxvhxyrhipbgcg83lqlfn7p9gbzzrnl48y0dq7303xgp232zai")))) + "19qxhy2cd3pykkhzbb5q3crgaxf65cpzf2mkfsz16gqhi8flj72p")))) (properties `((upstream-name . "BiocGenerics"))) (build-system r-build-system) @@ -6862,13 +6920,13 @@ packages.") (define-public r-biocinstaller (package (name "r-biocinstaller") - (version "1.28.0") + (version "1.30.0") (source (origin (method url-fetch) (uri (bioconductor-uri "BiocInstaller" version)) (sha256 (base32 - "19fga27bv6q9v5mpil74y76lahmnwvpg2h33rdx1r79nvljkd19d")))) + "1xg1gi1hf5vflp71ji21gnmr4kcjpx8a6c47cllpc7yqnjv5nfg0")))) (properties `((upstream-name . "BiocInstaller"))) (build-system r-build-system) @@ -6881,13 +6939,13 @@ Bioconductor, CRAN, and Github.") (define-public r-biocviews (package (name "r-biocviews") - (version "1.46.0") + (version "1.48.0") (source (origin (method url-fetch) (uri (bioconductor-uri "biocViews" version)) (sha256 (base32 - "09zyqj1kqc089lmh9sliy0acanx9zimcasvp71dsrg2bqm08r1md")))) + "1yx2lir67ny0j150wyfqca0wsxp84byri8nscbs9qlndkh2jppq9")))) (properties `((upstream-name . "biocViews"))) (build-system r-build-system) @@ -6932,13 +6990,13 @@ authoring books and technical documents with R Markdown.") (define-public r-biocstyle (package (name "r-biocstyle") - (version "2.6.1") + (version "2.8.2") (source (origin (method url-fetch) (uri (bioconductor-uri "BiocStyle" version)) (sha256 (base32 - "03pp04pkcq99kdv2spzr995h2cxsza7l6w3d4gp4112m06prcybm")))) + "17m901ylz00w1a3nq5f910v55zixm1nr6rb3qrsbhqd94qzr0l2p")))) (properties `((upstream-name . "BiocStyle"))) (build-system r-build-system) @@ -6957,13 +7015,13 @@ functionality.") (define-public r-bioccheck (package (name "r-bioccheck") - (version "1.14.0") + (version "1.16.0") (source (origin (method url-fetch) (uri (bioconductor-uri "BiocCheck" version)) (sha256 (base32 - "1nzp8kgw13z9pgf885rplj6k37jcldfhbz0adqclxr2gq0yalmyx")))) + "1srp1g809f1nn0fyqknr7r6dq89bw1xpjvmygr7cw6ffknbc671s")))) (properties `((upstream-name . "BiocCheck"))) (build-system r-build-system) @@ -7048,13 +7106,13 @@ that accept short and long options.") (define-public r-dnacopy (package (name "r-dnacopy") - (version "1.52.0") + (version "1.54.0") (source (origin (method url-fetch) (uri (bioconductor-uri "DNAcopy" version)) (sha256 (base32 - "127il5rlg1hzjlhwhs64x3nm18p00q1pd9ckb2b9ifl0rax95wai")))) + "03hfhmmc5y60r2gcgm367w2fr7qj115l74m9bp3h9qpn5yci0d8n")))) (properties `((upstream-name . "DNAcopy"))) (build-system r-build-system) @@ -7070,13 +7128,13 @@ abnormal copy number.") (define-public r-s4vectors (package (name "r-s4vectors") - (version "0.16.0") + (version "0.18.2") (source (origin (method url-fetch) (uri (bioconductor-uri "S4Vectors" version)) (sha256 (base32 - "03s8vz33nl6mivjb7dbvj702dkypi340lji1sjban03fyyls0hw0")))) + "0qvj2j0zl4djjl7vrwc6xak6h8dxr53iwypfbcvfb3sh7jwhdiz5")))) (properties `((upstream-name . "S4Vectors"))) (build-system r-build-system) @@ -7122,13 +7180,13 @@ utilities for sequence data management under the ACNUC system.") (define-public r-iranges (package (name "r-iranges") - (version "2.12.0") + (version "2.14.10") (source (origin (method url-fetch) (uri (bioconductor-uri "IRanges" version)) (sha256 (base32 - "1vqczb9wlxsmpwpqig6j1dmiblcfpq6mgnq8qwzcrvddm4cp47m5")))) + "10ccw930vfmkskkrzbps14xglqlkxf588623dr7f1a9ckx7yr2p6")))) (properties `((upstream-name . "IRanges"))) (build-system r-build-system) @@ -7174,13 +7232,13 @@ ID and species. It is used by functions in the GenomeInfoDb package.") (define-public r-genomeinfodb (package (name "r-genomeinfodb") - (version "1.14.0") + (version "1.16.0") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomeInfoDb" version)) (sha256 (base32 - "1jhm0imkac4gvchbjxj408aakk39xdv2fyh818d3lk295bz6bnyp")))) + "0yhnqhaydmmq7ihmhj3rbal4afq5p993l2qqrd0n5wmbyg7glg2d")))) (properties `((upstream-name . "GenomeInfoDb"))) (build-system r-build-system) @@ -7202,13 +7260,13 @@ names in their natural, rather than lexicographic, order.") (define-public r-edger (package (name "r-edger") - (version "3.20.9") + (version "3.22.2") (source (origin (method url-fetch) (uri (bioconductor-uri "edgeR" version)) (sha256 (base32 - "0y52snwbz37xzdd7gihdkqczbndlfzmmypv6hri3ymjyfmlx6qaw")))) + "07py2g6vg9jbflwhc1hnzr2silbinrjwxq3mkq30nzjgf0n0hrf3")))) (properties `((upstream-name . "edgeR"))) (build-system r-build-system) (propagated-inputs @@ -7230,13 +7288,13 @@ CAGE.") (define-public r-variantannotation (package (name "r-variantannotation") - (version "1.24.5") + (version "1.26.0") (source (origin (method url-fetch) (uri (bioconductor-uri "VariantAnnotation" version)) (sha256 (base32 - "07ywn3c4w83l3sr76d0z3b1nv9icgdh3phsjlc6cfx7i6nfmvxw2")))) + "06bccdf57vja7m63chmgc4539lwng3q3b8zxn285fj8524l6mcn7")))) (properties `((upstream-name . "VariantAnnotation"))) (inputs @@ -7268,13 +7326,13 @@ coding changes and predict coding outcomes.") (define-public r-limma (package (name "r-limma") - (version "3.34.9") + (version "3.36.1") (source (origin (method url-fetch) (uri (bioconductor-uri "limma" version)) (sha256 (base32 - "1y2fm61g5i0fn0j3l31xvwh9zww9bpkc4nwzb1d0yv1cag20jkdc")))) + "1982g5v35ilfgxm2vkq1p3j1bbir795pjvfzx4nzam2rlqqymbqm")))) (build-system r-build-system) (home-page "http://bioinf.wehi.edu.au/limma") (synopsis "Package for linear models for microarray and RNA-seq data") @@ -7287,13 +7345,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.") (define-public r-xvector (package (name "r-xvector") - (version "0.18.0") + (version "0.20.0") (source (origin (method url-fetch) (uri (bioconductor-uri "XVector" version)) (sha256 (base32 - "1i4i3kdxr78lr1kcxq657p11ybi7kq10c8kyaqyh6gfc8i9rhvmk")))) + "1zjlhh9lsyhg0js1858csyw2389kbrzdqnqnha833wazkwxilp3f")))) (properties `((upstream-name . "XVector"))) (build-system r-build-system) @@ -7323,13 +7381,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.") (define-public r-genomicranges (package (name "r-genomicranges") - (version "1.30.3") + (version "1.32.3") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicRanges" version)) (sha256 (base32 - "07cszc9ri94nzk4dffwnsj247ih6pchnrzrvnb0q4dkk33gwy8n1")))) + "03gmka6rlz18vd4229796l5l3l6446v5cb90sn2nb5knjbp84hni")))) (properties `((upstream-name . "GenomicRanges"))) (build-system r-build-system) @@ -7352,13 +7410,13 @@ manipulating genomic intervals and variables defined along a genome.") (define-public r-biobase (package (name "r-biobase") - (version "2.38.0") + (version "2.40.0") (source (origin (method url-fetch) (uri (bioconductor-uri "Biobase" version)) (sha256 (base32 - "1cgm1ja1kp56zdlzyy9ggbkfn8r2vbsd4hncmz8g4hjd47fg18kg")))) + "1iwds2a5ir29k19dbpynlc7nn836cw2gamchhgpi2jf2xar9m9jz")))) (properties `((upstream-name . "Biobase"))) (build-system r-build-system) @@ -7374,13 +7432,13 @@ on Bioconductor or which replace R functions.") (define-public r-annotationdbi (package (name "r-annotationdbi") - (version "1.40.0") + (version "1.42.1") (source (origin (method url-fetch) (uri (bioconductor-uri "AnnotationDbi" version)) (sha256 (base32 - "1dh4qs1a757n640gs34lf6z2glc96nan86x0sqaw5csadl2rhnlc")))) + "0afkbzli08vq02r2pr9phrz3rxd6ilp1w7yw8y99nbjiz14f8b1c")))) (properties `((upstream-name . "AnnotationDbi"))) (build-system r-build-system) @@ -7401,13 +7459,13 @@ annotation data packages using SQLite data storage.") (define-public r-biomart (package (name "r-biomart") - (version "2.34.2") + (version "2.36.1") (source (origin (method url-fetch) (uri (bioconductor-uri "biomaRt" version)) (sha256 (base32 - "1zlgs2zg0lmnk572p55n7m34nkxka8w10x8f2ndssjkffl2csy79")))) + "0b70s350ffc74v3xz5c3jpazr9zxdb7gjmjfj7aghlsrizrspill")))) (properties `((upstream-name . "biomaRt"))) (build-system r-build-system) @@ -7434,13 +7492,13 @@ powerful online queries from gene annotation to database mining.") (define-public r-biocparallel (package (name "r-biocparallel") - (version "1.12.0") + (version "1.14.1") (source (origin (method url-fetch) (uri (bioconductor-uri "BiocParallel" version)) (sha256 (base32 - "13ng3n2wsgl3fh0v6jnz3vg51k5c1sh44pqdvblcrcd1qyjmmqhd")))) + "00qg1kg2l9qqpyjaw5q910cmf84vwfiw1fhsx3ig784gwinwgj6n")))) (properties `((upstream-name . "BiocParallel"))) (build-system r-build-system) @@ -7459,13 +7517,13 @@ objects.") (define-public r-biostrings (package (name "r-biostrings") - (version "2.46.0") + (version "2.48.0") (source (origin (method url-fetch) (uri (bioconductor-uri "Biostrings" version)) (sha256 (base32 - "0vg50qdlxqcm2d6axjnzg8wh8pr4c5gz03l8bdl0llmwzp0zclzk")))) + "118b490jk87ydigm6ln25ms4kskzkw0akmh77clzznhzpqnxsi6j")))) (properties `((upstream-name . "Biostrings"))) (build-system r-build-system) @@ -7485,13 +7543,13 @@ biological sequences or sets of sequences.") (define-public r-rsamtools (package (name "r-rsamtools") - (version "1.30.0") + (version "1.32.0") (source (origin (method url-fetch) (uri (bioconductor-uri "Rsamtools" version)) (sha256 (base32 - "0pjny5fjvbnfdyhl3bwxin678sha2drvs00sivxh3l772cn6yams")))) + "1s65y5wn4d0x8zsljg2kmhcl6r9884h95kr041j7hp49bmxg3an6")))) (properties `((upstream-name . "Rsamtools"))) (build-system r-build-system) @@ -7529,18 +7587,19 @@ files.") (define-public r-delayedarray (package (name "r-delayedarray") - (version "0.4.1") + (version "0.6.0") (source (origin (method url-fetch) (uri (bioconductor-uri "DelayedArray" version)) (sha256 (base32 - "0s7h2giyvz04cg6248kbbzpwhxdrpnsvl2s8k5c8ricisd9aaz4b")))) + "0n3w57cwy911q812wc8658y0v3xgpmg379sj98kfqdxa80z1mxdf")))) (properties `((upstream-name . "DelayedArray"))) (build-system r-build-system) (propagated-inputs `(("r-biocgenerics" ,r-biocgenerics) + ("r-biocparallel" ,r-biocparallel) ("r-s4vectors" ,r-s4vectors) ("r-iranges" ,r-iranges) ("r-matrixstats" ,r-matrixstats))) @@ -7559,13 +7618,13 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns), (define-public r-summarizedexperiment (package (name "r-summarizedexperiment") - (version "1.8.1") + (version "1.10.1") (source (origin (method url-fetch) (uri (bioconductor-uri "SummarizedExperiment" version)) (sha256 (base32 - "19vlwnby83fqjrilsxvnvgz0gvby7mrxvlmx18nb3p1w591ddfjh")))) + "0v3zxl9cqsv79ag5cnvzlhvgaz5cr8f4rn7flmwnwpqd508cznl1")))) (properties `((upstream-name . "SummarizedExperiment"))) (build-system r-build-system) @@ -7590,13 +7649,13 @@ samples.") (define-public r-genomicalignments (package (name "r-genomicalignments") - (version "1.14.2") + (version "1.16.0") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicAlignments" version)) (sha256 (base32 - "1659nj1xps7vliy5955i51x6hvrf16n1z0dfh10mmpaaswn2d2mv")))) + "00pi2cnkkbj2023fg2x2cmglkdalwzy1vr3glsikwz7ix9yylcaw")))) (properties `((upstream-name . "GenomicAlignments"))) (build-system r-build-system) @@ -7623,13 +7682,13 @@ alignments.") (define-public r-rtracklayer (package (name "r-rtracklayer") - (version "1.38.3") + (version "1.40.3") (source (origin (method url-fetch) (uri (bioconductor-uri "rtracklayer" version)) (sha256 (base32 - "1khzfczm35k5lq9h0jlqrq01192spzjyh8s6is89spj006flwn4k")))) + "0kvsjdaypn1jnxbnsxpycildwdyxwnjkigfq8qm8mlyfc4ahdgy3")))) (build-system r-build-system) (arguments `(#:phases @@ -7641,6 +7700,8 @@ alignments.") (substitute* "NAMESPACE" (("import\\(zlibbioc\\)") "")) #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) (inputs `(("zlib" ,zlib))) (propagated-inputs @@ -7668,13 +7729,13 @@ as well as query and modify the browser state, such as the current viewport.") (define-public r-genomicfeatures (package (name "r-genomicfeatures") - (version "1.30.3") + (version "1.32.0") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicFeatures" version)) (sha256 (base32 - "010vn8hlwbnw12pd1d8pv6m12yp3xwx557gba5rbjq9p4qypnn3z")))) + "1cqcl72q0k5wylw1brn4g4h7xzys1v06piry19cvp0gjcvm5sp7a")))) (properties `((upstream-name . "GenomicFeatures"))) (build-system r-build-system) @@ -7690,7 +7751,6 @@ as well as query and modify the browser state, such as the current viewport.") ("r-iranges" ,r-iranges) ("r-rcurl" ,r-rcurl) ("r-rsqlite" ,r-rsqlite) - ("r-rmysql" ,r-rmysql) ("r-rtracklayer" ,r-rtracklayer) ("r-s4vectors" ,r-s4vectors) ("r-xvector" ,r-xvector))) @@ -7734,13 +7794,13 @@ information about the latest version of the Gene Ontologies.") (define-public r-graph (package (name "r-graph") - (version "1.56.0") + (version "1.58.0") (source (origin (method url-fetch) (uri (bioconductor-uri "graph" version)) (sha256 (base32 - "15aajjp8h2z14p80c8hyd4rrmr9vqsm7bvwb989jxjl4k6g52an1")))) + "1zx445lk36g1s6i5dbhhf00nzzazyklfjxxjfax6q8hnhvgm9759")))) (build-system r-build-system) (propagated-inputs `(("r-biocgenerics" ,r-biocgenerics))) @@ -7753,13 +7813,13 @@ information about the latest version of the Gene Ontologies.") (define-public r-topgo (package (name "r-topgo") - (version "2.30.1") + (version "2.32.0") (source (origin (method url-fetch) (uri (bioconductor-uri "topGO" version)) (sha256 (base32 - "1cgz4knxr328xfqlhl6ypxl6x86rfrlqz748kn94ainxjzz55i6x")))) + "05yxnkid8bgw9lkm90if9fg63djhgvbailfa3qsfqa5c0zjmixw1")))) (properties `((upstream-name . "topGO"))) (build-system r-build-system) @@ -7786,13 +7846,13 @@ dependencies between GO terms can be implemented and applied.") (define-public r-bsgenome (package (name "r-bsgenome") - (version "1.46.0") + (version "1.48.0") (source (origin (method url-fetch) (uri (bioconductor-uri "BSgenome" version)) (sha256 (base32 - "1jbzq7lm2iajajn2bifxnkss0k9fdvgqr30mral17cbhp5f6w4lq")))) + "1rk2piqq5dppkd51ln3r872d7ng3rvq98071mnd0xdv2xwnyn5g8")))) (properties `((upstream-name . "BSgenome"))) (build-system r-build-system) @@ -7847,13 +7907,13 @@ genome data packages and support for efficient SNP representation.") (define-public r-impute (package (name "r-impute") - (version "1.52.0") + (version "1.54.0") (source (origin (method url-fetch) (uri (bioconductor-uri "impute" version)) (sha256 (base32 - "0b8r4swvyx3cjcc2ky8yn0ncpzlbi1pgfsn3wpbjmhh7sqrffm2n")))) + "1d3cpfaqlq2gnb3hsc2yhxwkrnbd7m6ifif32yp0ya0jr5brl4hr")))) (inputs `(("gfortran" ,gfortran))) (build-system r-build-system) @@ -7867,13 +7927,13 @@ microarray data, using nearest neighbor averaging.") (define-public r-seqpattern (package (name "r-seqpattern") - (version "1.10.0") + (version "1.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "seqPattern" version)) (sha256 (base32 - "1kcm5w83q7w0v0vs7nyp4gq5z86c6n6pqy9zmyyhxcrns7f597pm")))) + "0dw0yldfcf0ibvpqxlpx1ijnjf9lma47w9w22siszzhw09i0wp3w")))) (properties `((upstream-name . "seqPattern"))) (build-system r-build-system) @@ -7894,13 +7954,13 @@ reference point and sorted by a user defined feature.") (define-public r-genomation (package (name "r-genomation") - (version "1.11.3") + (version "1.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "genomation" version)) (sha256 (base32 - "1d2g1v6xhrf3gm86pv8ln22df5g6v6k6i4i39v4j82zn4apany6v")))) + "1vdmdyrq0n7pf8cvy2950v7hrcrcbd9zl4fg7dcmyly3iiwdyirp")))) (build-system r-build-system) (propagated-inputs `(("r-biostrings" ,r-biostrings) @@ -8072,14 +8132,14 @@ annotations for the genome of the model mouse Mus musculus.") (define-public r-seqlogo (package (name "r-seqlogo") - (version "1.44.0") + (version "1.46.0") (source (origin (method url-fetch) (uri (bioconductor-uri "seqLogo" version)) (sha256 (base32 - "1ql4q4vx0j61a893dqc3c8zxmgs8sqhy3j1qhyfdvbd01vw9w1kq")))) + "16xvqcdknix9vjm8mrixi6nyfsr45jm844jh1x90m8044lwrsic1")))) (properties `((upstream-name . "seqLogo"))) (build-system r-build-system) (home-page "https://bioconductor.org/packages/seqLogo") @@ -8318,14 +8378,14 @@ Biostrings objects.") (define-public r-motifrg (package (name "r-motifrg") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) (uri (bioconductor-uri "motifRG" version)) (sha256 (base32 - "193zl2rlzwxv9p9q5i7rilj3w05ndqfyp9bdpvagp5s5cin4hf44")))) + "0mxhyidkyd2zqahdbg69y20r550z78lvr1r3pbjymnwfg4hcfq1p")))) (properties `((upstream-name . "motifRG"))) (build-system r-build-system) (propagated-inputs @@ -8370,13 +8430,13 @@ two-dimensional genome scans.") (define-public r-zlibbioc (package (name "r-zlibbioc") - (version "1.24.0") + (version "1.26.0") (source (origin (method url-fetch) (uri (bioconductor-uri "zlibbioc" version)) (sha256 (base32 - "1zr9hbh55hglfpy15cpxwmddxblhyb0an15953l3rbhmlh2vpy92")))) + "1rwr0mci8a712q0isavi4jmhm94gwivc4nr8j7r4kw05flp4g7gz")))) (properties `((upstream-name . "zlibbioc"))) (build-system r-build-system) @@ -8412,14 +8472,14 @@ secondary structure and comparative analysis in R.") (define-public r-rhtslib (package (name "r-rhtslib") - (version "1.10.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (bioconductor-uri "Rhtslib" version)) (sha256 (base32 - "1dw3p44bfr0m7w39ckc2k37sjcp1zz0b9g12mr8am15jaj6v0q2j")))) + "16ywnb8cmr2xabd1i21b92rfziw7xfbv25yv16ipw617p41wa39z")))) (properties `((upstream-name . "Rhtslib"))) (build-system r-build-system) (propagated-inputs @@ -8427,7 +8487,7 @@ secondary structure and comparative analysis in R.") (inputs `(("zlib" ,zlib))) (native-inputs - `(("autoconf" ,autoconf))) + `(("pkg-config" ,pkg-config))) (home-page "https://github.com/nhayden/Rhtslib") (synopsis "High-throughput sequencing library as an R package") (description @@ -8439,14 +8499,14 @@ of other R packages who wish to make use of HTSlib.") (define-public r-bamsignals (package (name "r-bamsignals") - (version "1.10.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (bioconductor-uri "bamsignals" version)) (sha256 (base32 - "15id6mkj95skb4kfafvfs2j7ylydal60c3pspcl7llhwpq6vcqvl")))) + "141q3p4lzwiqk1mfxi8q1q84axjl0gyiqg59xd3sp4viny4jqmgv")))) (build-system r-build-system) (propagated-inputs `(("r-biocgenerics" ,r-biocgenerics) @@ -8469,43 +8529,51 @@ paired-end data.") (define-public r-rcas (package (name "r-rcas") - (version "1.3.4") + (version "1.6.0") (source (origin (method url-fetch) - (uri (string-append "https://github.com/BIMSBbioinfo/RCAS/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (bioconductor-uri "RCAS" version)) (sha256 (base32 - "1qgc7vi6fpzl440yg7jhiycg5q336kd4pxqzx10yx2zcq3bq3msg")))) + "0vmn7a0rm2ban0kaxrf5danhss2r4hfhnwh5889fjcgqy300fdd5")))) (build-system r-build-system) (native-inputs - `(("r-knitr" ,r-knitr) - ("r-testthat" ,r-testthat) + `(("r-testthat" ,r-testthat) ;; During vignette building knitr checks that "pandoc-citeproc" ;; is in the PATH. ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1))) (propagated-inputs - `(("r-data-table" ,r-data-table) + `(("r-biocgenerics" ,r-biocgenerics) ("r-biomart" ,r-biomart) - ("r-org-hs-eg-db" ,r-org-hs-eg-db) - ("r-org-ce-eg-db" ,r-org-ce-eg-db) - ("r-org-dm-eg-db" ,r-org-dm-eg-db) - ("r-org-mm-eg-db" ,r-org-mm-eg-db) + ("r-biostrings" ,r-biostrings) ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19) ("r-bsgenome-mmusculus-ucsc-mm9" ,r-bsgenome-mmusculus-ucsc-mm9) ("r-bsgenome-celegans-ucsc-ce10" ,r-bsgenome-celegans-ucsc-ce10) ("r-bsgenome-dmelanogaster-ucsc-dm3" ,r-bsgenome-dmelanogaster-ucsc-dm3) - ("r-topgo" ,r-topgo) + ("r-cowplot" ,r-cowplot) + ("r-data-table" ,r-data-table) + ("r-dbi" ,r-dbi) ("r-dt" ,r-dt) - ("r-pbapply" ,r-pbapply) - ("r-plotly" ,r-plotly) - ("r-plotrix" ,r-plotrix) - ("r-motifrg" ,r-motifrg) ("r-genomation" ,r-genomation) ("r-genomicfeatures" ,r-genomicfeatures) + ("r-ggplot2" ,r-ggplot2) + ("r-ggseqlogo" ,r-ggseqlogo) + ("r-knitr" ,r-knitr) + ("r-motifrg" ,r-motifrg) + ("r-org-hs-eg-db" ,r-org-hs-eg-db) + ("r-org-ce-eg-db" ,r-org-ce-eg-db) + ("r-org-dm-eg-db" ,r-org-dm-eg-db) + ("r-org-mm-eg-db" ,r-org-mm-eg-db) + ("r-pbapply" ,r-pbapply) + ("r-pheatmap" ,r-pheatmap) + ("r-plotly" ,r-plotly) + ("r-plotrix" ,r-plotrix) + ("r-proxy" ,r-proxy) + ("r-rsqlite" ,r-rsqlite) ("r-rtracklayer" ,r-rtracklayer) - ("r-rmarkdown" ,r-rmarkdown))) + ("r-rmarkdown" ,r-rmarkdown) + ("r-s4vectors" ,r-s4vectors) + ("r-topgo" ,r-topgo))) (synopsis "RNA-centric annotation system") (description "RCAS aims to be a standalone RNA-centric annotation system that provides @@ -8517,7 +8585,7 @@ library implementing most of the pipeline's features.") (define-public rcas-web (package (name "rcas-web") - (version "0.0.4") + (version "0.0.5") (source (origin (method url-fetch) @@ -8526,7 +8594,7 @@ library implementing most of the pipeline's features.") "/rcas-web-" version ".tar.gz")) (sha256 (base32 - "1p16frfys41a8yaa4gkm457nzkqhqs2pc3lkac0ds457w9w5j1gm")))) + "0igz7jpcf7cm9800zcag6p3gd1i649figrhbdba6cjkm8f4gfspr")))) (build-system gnu-build-system) (arguments `(#:phases @@ -8561,18 +8629,19 @@ library implementing most of the pipeline's features.") (define-public r-mutationalpatterns (package (name "r-mutationalpatterns") - (version "1.4.3") + (version "1.6.1") (source (origin (method url-fetch) (uri (bioconductor-uri "MutationalPatterns" version)) (sha256 (base32 - "0ml4gsp5dfv23xqrknxh25q8q65hly1xb1215lcwyc8hj9z8f941")))) + "1yq7351j42mjxn8fd3c5bdxzb2l5s4lvqhjdvv4rwj4f600n6wj9")))) (build-system r-build-system) (propagated-inputs `(("r-biocgenerics" ,r-biocgenerics) ("r-biostrings" ,r-biostrings) + ;; These two packages are suggested packages ("r-bsgenome-hsapiens-1000g" ,r-bsgenome-hsapiens-1000genomes-hs37d5) ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19) ("r-genomicranges" ,r-genomicranges) @@ -8736,13 +8805,13 @@ kernels, including: gkmSVM, kmer-SVM, mismatch kernel and wildcard kernel.") (define-public r-tximport (package (name "r-tximport") - (version "1.6.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (bioconductor-uri "tximport" version)) (sha256 (base32 - "1gyqcm91hxg1kgjqcz2qw1n56yp9pymjzs50rwcpb2893dr8sp2h")))) + "1qjc7ah9dzccpvcjrp9k4qnaz13x6kvy1c1xpdj503km6k528lip")))) (build-system r-build-system) (home-page "https://bioconductor.org/packages/tximport") (synopsis "Import and summarize transcript-level estimates for gene-level analysis") @@ -8758,39 +8827,18 @@ of gene-level counts.") (define-public r-rhdf5 (package (name "r-rhdf5") - (version "2.22.0") + (version "2.24.0") (source (origin (method url-fetch) (uri (bioconductor-uri "rhdf5" version)) (sha256 (base32 - "145858qg1xan6imxcbprzq3yn3mdf532aahdr6cibvdjg47hs4c1")))) + "15cmmchhk8bnp94gxg0zk9qyzdjx5kv16dzpbnb62mkq7ydmifx6")))) (build-system r-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-smallhdf5 - (lambda* (#:key outputs #:allow-other-keys) - (system* "tar" "-xzvf" - "src/hdf5source/hdf5small.tgz" "-C" "src/" ) - (substitute* "src/hdf5/configure" - (("/bin/mv") "mv")) - ;; Remove timestamp and host system information to make - ;; the build reproducible. - (substitute* "src/hdf5/src/libhdf5.settings.in" - (("Configured on: @CONFIG_DATE@") - "Configured on: Guix") - (("Uname information:.*") - "Uname information: Linux\n") - ;; Remove unnecessary store reference. - (("C Compiler:.*") - "C Compiler: GCC\n")) - #t))))) (propagated-inputs - `(("r-zlibbioc" ,r-zlibbioc))) + `(("r-rhdf5lib" ,r-rhdf5lib))) (inputs - `(("perl" ,perl) - ("zlib" ,zlib))) + `(("zlib" ,zlib))) (home-page "https://bioconductor.org/packages/rhdf5") (synopsis "HDF5 interface to R") (description @@ -8806,13 +8854,13 @@ the available RAM.") (define-public r-annotationfilter (package (name "r-annotationfilter") - (version "1.2.0") + (version "1.4.0") (source (origin (method url-fetch) (uri (bioconductor-uri "AnnotationFilter" version)) (sha256 (base32 - "04zf864c1fvdlaay2r5cn30fc1n5i3czh31fs62qlrvs61wjiscs")))) + "1w8ypfdz4g7vnwfrvnhjcpm8waciqyq2cn883ajdwg4vv7a5mj9a")))) (properties `((upstream-name . "AnnotationFilter"))) (build-system r-build-system) @@ -9085,6 +9133,19 @@ replacement for strverscmp.") ("python-numpy" ,python-numpy) ;; MultQC checks for the presence of nose at runtime. ("python-nose" ,python-nose))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "setup.py" + ;; MultiQC 1.5 ‘requires’ a version of python-matplotlib older + ;; than the one in Guix, but should work fine with 2.2.2. + ;; See and + ;; for details. + (("['\"]matplotlib.*?['\"]") + "'matplotlib'")) + #t))))) (home-page "http://multiqc.info") (synopsis "Aggregate bioinformatics analysis reports") (description @@ -9096,14 +9157,14 @@ common bioinformatics tools.") (define-public r-chipseq (package (name "r-chipseq") - (version "1.28.0") + (version "1.30.0") (source (origin (method url-fetch) (uri (bioconductor-uri "chipseq" version)) (sha256 (base32 - "1ymcq77krwjzrkzzcw7i9909cmkqa7c0675z9wzvrrk81hgdssfq")))) + "09f8dgl5ni75qkf7nvvppwr3irpplv4xb3ks59ld7l8i2mplcrx7")))) (build-system r-build-system) (propagated-inputs `(("r-biocgenerics" ,r-biocgenerics) @@ -9148,14 +9209,14 @@ GenomicRanges Bioconductor package.") (define-public r-copywriter (package (name "r-copywriter") - (version "2.10.0") + (version "2.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "CopywriteR" version)) (sha256 (base32 - "17fy2lc5yf3nh6v077kv87h53n263hqz2540lzrl0vjiqrl2plca")))) + "0b7xwq1va2zclb54f07c5ipmmq4iv2hrlph3j93jz5hmyayv50z3")))) (properties `((upstream-name . "CopywriteR"))) (build-system r-build-system) (propagated-inputs @@ -9188,13 +9249,13 @@ number detection tools.") (define-public r-methylkit (package (name "r-methylkit") - (version "1.4.1") + (version "1.6.1") (source (origin (method url-fetch) (uri (bioconductor-uri "methylKit" version)) (sha256 (base32 - "1k0nfn9318sgwm4z963bhnbp4c3zv85v3f9886vc5hgaisr0yvai")))) + "1hr2czi5ybdf7hdmqsv39d17f3mvmw94wa38bc14zzm9mgy9gfy7")))) (properties `((upstream-name . "methylKit"))) (build-system r-build-system) (propagated-inputs @@ -9234,14 +9295,14 @@ TAB-Seq.") (define-public r-sva (package (name "r-sva") - (version "3.26.0") + (version "3.28.0") (source (origin (method url-fetch) (uri (bioconductor-uri "sva" version)) (sha256 (base32 - "0q5xb68wfcnchy8rkv5ma67pmz1i91lsnvmwmj8f1c3w4xan3pgw")))) + "0a3jqbz0jp1jxrnjkqfpmca840yqcdwxprdl608bzzx2zb4jl52s")))) (build-system r-build-system) (propagated-inputs `(("r-genefilter" ,r-genefilter) @@ -9344,14 +9405,14 @@ as allowing spectra with different resolutions.") (define-public r-protgenerics (package (name "r-protgenerics") - (version "1.10.0") + (version "1.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "ProtGenerics" version)) (sha256 (base32 - "16ijp50448wnabp43klx943rhdvh7x45hvy7cnpq1s4dckxhhyni")))) + "05jbadw2aiwy8vi2ia0jxg06cmwhly2cq4dy1ag7kdxf1c5i9ccn")))) (properties `((upstream-name . "ProtGenerics"))) (build-system r-build-system) (home-page "https://github.com/lgatto/ProtGenerics") @@ -9364,14 +9425,14 @@ proteomics packages.") (define-public r-mzr (package (name "r-mzr") - (version "2.12.0") + (version "2.14.0") (source (origin (method url-fetch) (uri (bioconductor-uri "mzR" version)) (sha256 (base32 - "1x3gp30sfxz2v3k3swih9kff9b2rvk7hzhnlkp6ywlnn2wgb0q8c")) + "190m2bq5bqxhljaj4f7vz9wj5h5laaxd8zp5jampnql6xc4zmarg")) (modules '((guix build utils))) (snippet '(begin @@ -9393,12 +9454,14 @@ proteomics packages.") #t))))) (inputs `(("boost" ,boost) ; use this instead of the bundled boost sources - ("netcdf" ,netcdf))) + ("netcdf" ,netcdf) + ("zlib" ,zlib))) (propagated-inputs `(("r-biobase" ,r-biobase) ("r-biocgenerics" ,r-biocgenerics) ("r-protgenerics" ,r-protgenerics) ("r-rcpp" ,r-rcpp) + ("r-rhdf5lib" ,r-rhdf5lib) ("r-zlibbioc" ,r-zlibbioc))) (home-page "https://github.com/sneumann/mzR/") (synopsis "Parser for mass spectrometry data files") @@ -9414,14 +9477,14 @@ previously been used in XCMS.") (define-public r-affyio (package (name "r-affyio") - (version "1.48.0") + (version "1.50.0") (source (origin (method url-fetch) (uri (bioconductor-uri "affyio" version)) (sha256 (base32 - "1pzzp3d3dbmyf34gvivfiprkpscn36rgvhrq853a1d3avcwr5ak9")))) + "0sh5wnnchyfpq5n6rchbqmb27byn7kdzn5rgran6i39c81i5z22n")))) (build-system r-build-system) (propagated-inputs `(("r-zlibbioc" ,r-zlibbioc))) @@ -9438,14 +9501,14 @@ CDF file formats.") (define-public r-affy (package (name "r-affy") - (version "1.56.0") + (version "1.58.0") (source (origin (method url-fetch) (uri (bioconductor-uri "affy" version)) (sha256 (base32 - "0jmbkimma5ffsdkk3xp03g4lpz84gd95nkqakif2nqq6wmx0syrj")))) + "0sxq875sigm21sf3qncrfrwfdz9nqw1vldxn3d3hj6aq64jg1ki6")))) (build-system r-build-system) (propagated-inputs `(("r-affyio" ,r-affyio) @@ -9454,6 +9517,8 @@ CDF file formats.") ("r-biocinstaller" ,r-biocinstaller) ("r-preprocesscore" ,r-preprocesscore) ("r-zlibbioc" ,r-zlibbioc))) + (inputs + `(("zlib" ,zlib))) (home-page "https://bioconductor.org/packages/affy") (synopsis "Methods for affymetrix oligonucleotide arrays") (description @@ -9464,14 +9529,14 @@ analysis.") (define-public r-vsn (package (name "r-vsn") - (version "3.46.0") + (version "3.48.1") (source (origin (method url-fetch) (uri (bioconductor-uri "vsn" version)) (sha256 (base32 - "18y62phzirj75gg6v5l41jwybmk23ia6w7qhch0kxc4bl2rysw6j")))) + "0k6mah3g3zqbfap31xmvig4fn452a18xwwa5y0mfj5mj8588p57h")))) (build-system r-build-system) (propagated-inputs `(("r-affy" ,r-affy) @@ -9498,14 +9563,14 @@ and specific in detecting differential transcription.") (define-public r-mzid (package (name "r-mzid") - (version "1.16.0") + (version "1.18.0") (source (origin (method url-fetch) (uri (bioconductor-uri "mzID" version)) (sha256 (base32 - "0yk70dka56zd8w62f03ggx3mandj91gfa767h9ajj0sd3mjmfqb9")))) + "060k0xlhg8q802c6zsb4b8ps0ccd9ybyaz0gnsvqkxb786i2vk40")))) (properties `((upstream-name . "mzID"))) (build-system r-build-system) (propagated-inputs @@ -9528,14 +9593,14 @@ specific parser.") (define-public r-pcamethods (package (name "r-pcamethods") - (version "1.70.0") + (version "1.72.0") (source (origin (method url-fetch) (uri (bioconductor-uri "pcaMethods" version)) (sha256 (base32 - "0ii235g0x0492kh8cfrf28ni0b6vd6fh7kizkqmczzqggd6b1bk8")))) + "0v99yf8m7ryh6z0r3z0ggpqfnflcq5bn1q1i1cl9b7q4p6b4sa07")))) (properties `((upstream-name . "pcaMethods"))) (build-system r-build-system) (propagated-inputs @@ -9558,14 +9623,14 @@ structure (pcaRes) to provide a common interface to the PCA results.") (define-public r-msnbase (package (name "r-msnbase") - (version "2.4.2") + (version "2.6.1") (source (origin (method url-fetch) (uri (bioconductor-uri "MSnbase" version)) (sha256 (base32 - "1ig64bf881p118dwqfr0ry41m7yhnyv165smv8fdwfv7sb6sagif")))) + "0zrpx9r93q5ca2zdak5rs2m9sjm0wjdra1xfj3d3sx6p5gzfyg6n")))) (properties `((upstream-name . "MSnbase"))) (build-system r-build-system) (propagated-inputs @@ -9579,6 +9644,7 @@ structure (pcaRes) to provide a common interface to the PCA results.") ("r-iranges" ,r-iranges) ("r-lattice" ,r-lattice) ("r-maldiquant" ,r-maldiquant) + ("r-mass" ,r-mass) ("r-mzid" ,r-mzid) ("r-mzr" ,r-mzr) ("r-pcamethods" ,r-pcamethods) @@ -9587,6 +9653,7 @@ structure (pcaRes) to provide a common interface to the PCA results.") ("r-protgenerics" ,r-protgenerics) ("r-rcpp" ,r-rcpp) ("r-s4vectors" ,r-s4vectors) + ("r-scales" ,r-scales) ("r-vsn" ,r-vsn) ("r-xml" ,r-xml))) (home-page "https://github.com/lgatto/MSnbase") @@ -9599,14 +9666,14 @@ of mass spectrometry based proteomics data.") (define-public r-msnid (package (name "r-msnid") - (version "1.12.1") + (version "1.14.0") (source (origin (method url-fetch) (uri (bioconductor-uri "MSnID" version)) (sha256 (base32 - "1zw508kk4f8brg69674wp18gqkpx2kpya5f6x9cl3qng7v4h5pxx")))) + "172q5chi44104iz4y0g42wrimfp7hlhrfa8vzybx6m0ccrkkhl17")))) (properties `((upstream-name . "MSnID"))) (build-system r-build-system) (propagated-inputs @@ -9638,13 +9705,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.") (define-public r-seurat (package (name "r-seurat") - (version "2.3.0") + (version "2.3.1") (source (origin (method url-fetch) (uri (cran-uri "Seurat" version)) (sha256 (base32 - "0kp3lw1s896zkjd6x2wp8qcg7wnm5b40g8vihps13f1m7j4nx7r0")) + "0hi59rgdrr2iqfvx5bq7yq02hbjxkjl1fzidqj14z0ypq0nzbjys")) ;; Delete pre-built jar. (snippet '(begin (delete-file "inst/java/ModularityOptimizer.jar") @@ -9688,7 +9755,6 @@ Main-Class: ModularityOptimizer\n"))) ("r-ggplot2" ,r-ggplot2) ("r-ggridges" ,r-ggridges) ("r-gplots" ,r-gplots) - ("r-gridextra" ,r-gridextra) ("r-hmisc" ,r-hmisc) ("r-ica" ,r-ica) ("r-igraph" ,r-igraph) @@ -9709,6 +9775,7 @@ Main-Class: ModularityOptimizer\n"))) ("r-rcppeigen" ,r-rcppeigen) ("r-rcppprogress" ,r-rcppprogress) ("r-reshape2" ,r-reshape2) + ("r-reticulate" ,r-reticulate) ("r-rocr" ,r-rocr) ("r-rtsne" ,r-rtsne) ("r-sdmtools" ,r-sdmtools) @@ -9731,14 +9798,14 @@ discovery of differentially expressed genes and markers.") (define-public r-aroma-light (package (name "r-aroma-light") - (version "3.8.0") + (version "3.10.0") (source (origin (method url-fetch) (uri (bioconductor-uri "aroma.light" version)) (sha256 (base32 - "0crnk6851jwypqr5l5jcbbay0vi5vvdjyisaf6z2d69c39wmr6sc")))) + "1dxsiwsrwcq9mj573f9vpdzrhagdqzal328ma8076px4gg6khxkn")))) (properties `((upstream-name . "aroma.light"))) (build-system r-build-system) (propagated-inputs @@ -9758,14 +9825,14 @@ classes.") (define-public r-deseq (package (name "r-deseq") - (version "1.30.0") + (version "1.32.0") (source (origin (method url-fetch) (uri (bioconductor-uri "DESeq" version)) (sha256 (base32 - "0mn5w3cy16iwwk8zxs7za6aa6cnrca75z0g45zd5zh1py5d7nfv9")))) + "0ykxw8ksif026xy25wx50j2sdsrp156aqkmhcgfjkpgcw699glnm")))) (properties `((upstream-name . "DESeq"))) (build-system r-build-system) (propagated-inputs @@ -9789,14 +9856,14 @@ distribution.") (define-public r-edaseq (package (name "r-edaseq") - (version "2.12.0") + (version "2.14.0") (source (origin (method url-fetch) (uri (bioconductor-uri "EDASeq" version)) (sha256 (base32 - "07zm89zcivyn2261aq9grqmly8ji482kr9h9dyfknfdfrpv7jpwv")))) + "1832pb3jkim4vrqzb8lajwx9r482bhww5n9nz3s6crvyamlp2dj0")))) (properties `((upstream-name . "EDASeq"))) (build-system r-build-system) (propagated-inputs @@ -9827,14 +9894,14 @@ global-scaling and full-quantile normalization.") (define-public r-interactivedisplaybase (package (name "r-interactivedisplaybase") - (version "1.16.0") + (version "1.18.0") (source (origin (method url-fetch) (uri (bioconductor-uri "interactiveDisplayBase" version)) (sha256 (base32 - "01yb945jqqimwjgriza6yy4dnp303cdirxrhl4hjyprfdlmnz5p5")))) + "05w58z3i9vkma4jd6rhjaxls4yiq4kwrppgcdq9xrr1pxp99k575")))) (properties `((upstream-name . "interactiveDisplayBase"))) (build-system r-build-system) @@ -9851,14 +9918,14 @@ Shiny-based display methods for Bioconductor objects.") (define-public r-annotationhub (package (name "r-annotationhub") - (version "2.10.1") + (version "2.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "AnnotationHub" version)) (sha256 (base32 - "14v8g44a6zg9j2rwn9x9y8509k0wr2cw8yccliz24glplb40wva4")))) + "11gh7qkgazs90czdqgv74gh2hz26xrmdp6wsz9x5pygbxls8xdw3")))) (properties `((upstream-name . "AnnotationHub"))) (build-system r-build-system) (propagated-inputs @@ -9886,14 +9953,14 @@ by the user, helping with quick and reproducible access.") (define-public r-fastseg (package (name "r-fastseg") - (version "1.24.0") + (version "1.26.0") (source (origin (method url-fetch) (uri (bioconductor-uri "fastseg" version)) (sha256 (base32 - "0dd7nr3klwz9ailwshnbynhd62lwb8zbbpj6jf3igpb94yi6x2jp")))) + "1yw6hai6hb8qy7akdm4frfp6h4zy93zb68kdj094sanm7kgqmgik")))) (build-system r-build-system) (propagated-inputs `(("r-biobase" ,r-biobase) @@ -9916,14 +9983,14 @@ microarrays or GRanges for sequencing data.") (define-public r-keggrest (package (name "r-keggrest") - (version "1.18.1") + (version "1.20.0") (source (origin (method url-fetch) (uri (bioconductor-uri "KEGGREST" version)) (sha256 (base32 - "02gwmm79djj55a90dzc80hlgwc6bafl7xd7fnx2q59pk945k3z9c")))) + "1349vidgl9m10l1rbrp3pkwwgi2xcbsw9h9z2xqbvg97lmqc4r8j")))) (properties `((upstream-name . "KEGGREST"))) (build-system r-build-system) (propagated-inputs @@ -9940,14 +10007,14 @@ microarrays or GRanges for sequencing data.") (define-public r-gage (package (name "r-gage") - (version "2.28.2") + (version "2.30.0") (source (origin (method url-fetch) (uri (bioconductor-uri "gage" version)) (sha256 (base32 - "0h0mlhns9j7cpfksvdlvx9jb7szm3r1dwqb3s4s8p8hmkb9byyii")))) + "0j3cqxy97lpf146wkmdfaq9680gicmzxvhp6w5pxq3j7ipiy7262")))) (build-system r-build-system) (propagated-inputs `(("r-annotationdbi" ,r-annotationdbi) @@ -9969,14 +10036,14 @@ analysis using other methods.") (define-public r-genomicfiles (package (name "r-genomicfiles") - (version "1.14.0") + (version "1.16.0") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicFiles" version)) (sha256 (base32 - "0r0wmrs5jycf1kckhnc2sgjmp336srlcjdkpbb1ymm7kazdd0s9n")))) + "0bhsq5czigrjyl9gkb2kpkpl367b3ac5g8s280adkcxggn9g7sxq")))) (properties `((upstream-name . "GenomicFiles"))) (build-system r-build-system) (propagated-inputs @@ -10002,14 +10069,14 @@ provide added flexibility for data combination and manipulation.") (define-public r-complexheatmap (package (name "r-complexheatmap") - (version "1.17.1") + (version "1.18.0") (source (origin (method url-fetch) (uri (bioconductor-uri "ComplexHeatmap" version)) (sha256 (base32 - "1x6kp55iqqsd8bhdl3qch95nfiy2y46ldbbsx1sj1v8f0b0ywwcy")))) + "0z57mrginzd40niy51dvnyqgbrij05ji0dbwqs3x2as80sq28i3q")))) (properties `((upstream-name . "ComplexHeatmap"))) (build-system r-build-system) @@ -10032,14 +10099,14 @@ self-defined annotation graphics.") (define-public r-dirichletmultinomial (package (name "r-dirichletmultinomial") - (version "1.20.0") + (version "1.22.0") (source (origin (method url-fetch) (uri (bioconductor-uri "DirichletMultinomial" version)) (sha256 (base32 - "1c4s6x0qm20556grcd1xys9kkpnlzpasaai474malwcg6qvgi4x1")))) + "0vcyp81b90in4ls5nbadc66cw2g9aydr94aqifq5j4b7diq74yfs")))) (properties `((upstream-name . "DirichletMultinomial"))) (build-system r-build-system) @@ -10061,19 +10128,18 @@ originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2): (define-public r-ensembldb (package (name "r-ensembldb") - (version "2.2.2") + (version "2.4.1") (source (origin (method url-fetch) (uri (bioconductor-uri "ensembldb" version)) (sha256 (base32 - "1yngndkf3588z91z0a2fvkg423p26ajm6xv1p27x0l9mzhhaqq3k")))) + "1l2b4cxiycv05mz4z4f3dhx57r9ksha02psc114h30ldm5rxz8w6")))) (build-system r-build-system) (propagated-inputs `(("r-annotationdbi" ,r-annotationdbi) ("r-annotationfilter" ,r-annotationfilter) - ("r-annotationhub" ,r-annotationhub) ("r-biobase" ,r-biobase) ("r-biocgenerics" ,r-biocgenerics) ("r-biostrings" ,r-biostrings) @@ -10105,14 +10171,14 @@ chromosome region or transcript models of lincRNA genes.") (define-public r-organismdbi (package (name "r-organismdbi") - (version "1.20.0") + (version "1.22.0") (source (origin (method url-fetch) (uri (bioconductor-uri "OrganismDbi" version)) (sha256 (base32 - "0yxvhwn0m53wfwp0zi81x96argdf7cf1lpymc2as51apvfcnjdl8")))) + "0hb9ni41bjfy5s5ryw2qmqs2sx3i7j47w1g0l8g1pvn7ppnxb6cv")))) (properties `((upstream-name . "OrganismDbi"))) (build-system r-build-system) (propagated-inputs @@ -10137,14 +10203,14 @@ the fact that each of these packages implements a select methods.") (define-public r-biovizbase (package (name "r-biovizbase") - (version "1.26.0") + (version "1.28.0") (source (origin (method url-fetch) (uri (bioconductor-uri "biovizBase" version)) (sha256 (base32 - "14l4vhj0a4ssr9m9zdzz3qpd4qw1mhgq5bmxq7jhrq3j9kmd6i2f")))) + "0lkiqdr3ics6hgv47lwkykcy761823bbkhffbn4ykyfzyqwl4p67")))) (properties `((upstream-name . "biovizBase"))) (build-system r-build-system) (propagated-inputs @@ -10178,14 +10244,14 @@ effort and encourages consistency.") (define-public r-ggbio (package (name "r-ggbio") - (version "1.26.1") + (version "1.28.0") (source (origin (method url-fetch) (uri (bioconductor-uri "ggbio" version)) (sha256 (base32 - "1xlmlngn27iwnr21s9di4059kav1a7c1sajx08wja8yn8f7j06hp")))) + "0wszh3w8yia5zw758h837i1q35k99sn444y2hahcxqbdmmlbf7in")))) (build-system r-build-system) (propagated-inputs `(("r-annotationdbi" ,r-annotationdbi) @@ -10254,14 +10320,14 @@ organisms via the @code{g:Profiler} toolkit.") (define-public r-gqtlbase (package (name "r-gqtlbase") - (version "1.10.0") + (version "1.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "gQTLBase" version)) (sha256 (base32 - "1756vfcj2dkkgcmfkkg7qdaig36dv9gfvpypn9rbrky56wm1p035")))) + "1m3ajpqjhw1nwwsn372r44xfxq0a9a0pzsnrprzdjp6mh52p9b5m")))) (properties `((upstream-name . "gQTLBase"))) (build-system r-build-system) (propagated-inputs @@ -10289,14 +10355,14 @@ and more.") (define-public r-snpstats (package (name "r-snpstats") - (version "1.28.0") + (version "1.30.0") (source (origin (method url-fetch) (uri (bioconductor-uri "snpStats" version)) (sha256 (base32 - "1x9qwynh2hwl24vq02naf4mchpch7xi2pkdrlgw896k28kx0lvir")))) + "0iydgfnm053iw860qa1bbh4f6nwzlsf3vhgq92gvl2v4xsz1jbbs")))) (properties `((upstream-name . "snpStats"))) (build-system r-build-system) (inputs `(("zlib" ,zlib))) @@ -10348,24 +10414,26 @@ several related annotation packages.") (define-public r-erma (package (name "r-erma") - (version "0.10.1") + (version "0.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "erma" version)) (sha256 (base32 - "1fi8nc6fbd7i4p9i9hli31xplmdpsxqcdrb8v3nf8fx9klllbdav")))) + "1ka68n18yizlyvb8bpwwcl4hqbsasg8hw8jb3vgy3cd4szji87hh")))) (build-system r-build-system) (propagated-inputs `(("r-annotationdbi" ,r-annotationdbi) ("r-biobase" ,r-biobase) ("r-biocgenerics" ,r-biocgenerics) - ("r-foreach" ,r-foreach) + ("r-biocparallel" ,r-biocparallel) + ("r-genomeinfodb" ,r-genomeinfodb) ("r-genomicfiles" ,r-genomicfiles) ("r-genomicranges" ,r-genomicranges) ("r-ggplot2" ,r-ggplot2) ("r-homo-sapiens" ,r-homo-sapiens) + ("r-iranges" ,r-iranges) ("r-rtracklayer" ,r-rtracklayer) ("r-s4vectors" ,r-s4vectors) ("r-shiny" ,r-shiny) @@ -10384,17 +10452,18 @@ by Ernst and Kellis.") (define-public r-ldblock (package (name "r-ldblock") - (version "1.8.1") + (version "1.10.0") (source (origin (method url-fetch) (uri (bioconductor-uri "ldblock" version)) (sha256 (base32 - "1q8dz8wcq1r7kr635s9q21g36sxkdybk8khhpa4p57qv8r0gppl0")))) + "0c24zvnwsp39d3q0bps13sc441jj9ms2zi34xsb8c392lqmbypvd")))) (build-system r-build-system) (propagated-inputs - `(("r-erma" ,r-erma) + `(("r-biocgenerics" ,r-biocgenerics) + ("r-erma" ,r-erma) ("r-genomeinfodb" ,r-genomeinfodb) ("r-genomicfiles" ,r-genomicfiles) ("r-go-db" ,r-go-db) @@ -10415,14 +10484,14 @@ defining LD blocks.") (define-public r-gqtlstats (package (name "r-gqtlstats") - (version "1.10.1") + (version "1.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "gQTLstats" version)) (sha256 (base32 - "0gvq1sf2zjbkk431x40z6wql3c1rpclnnwa2f1hvykb8mmw70kmq")))) + "19g8qhfgngdc14cw9k4i44cxhs3qva87x56gjzmn25k1yj8qgsp1")))) (properties `((upstream-name . "gQTLstats"))) (build-system r-build-system) (propagated-inputs @@ -10445,8 +10514,8 @@ defining LD blocks.") ("r-ggplot2" ,r-ggplot2) ("r-gqtlbase" ,r-gqtlbase) ("r-hardyweinberg" ,r-hardyweinberg) + ("r-homo-sapiens" ,r-homo-sapiens) ("r-iranges" ,r-iranges) - ("r-ldblock" ,r-ldblock) ("r-limma" ,r-limma) ("r-mgcv" ,r-mgcv) ("r-plotly" ,r-plotly) @@ -10469,14 +10538,14 @@ family of feature/genome hypotheses.") (define-public r-gviz (package (name "r-gviz") - (version "1.22.3") + (version "1.24.0") (source (origin (method url-fetch) (uri (bioconductor-uri "Gviz" version)) (sha256 (base32 - "1grjzrjpzkw572pbvpsvdnfkfgwybl0cnjd7nnk2xdr26wnbsi9a")))) + "1fhli7ahkl5r43j0hc89ib41mfadj6qyrg36i03ncz8zs6iqwpx4")))) (properties `((upstream-name . "Gviz"))) (build-system r-build-system) (propagated-inputs @@ -10515,14 +10584,14 @@ with your data.") (define-public r-gwascat (package (name "r-gwascat") - (version "2.10.0") + (version "2.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "gwascat" version)) (sha256 (base32 - "0n5x5i5v6a8wpn5mxmlpkl34b4kyypmymiwww6g61zch7xqrgywi")))) + "08ba9il4vbjjwlbwmqg4ai6ya1p09js9agn95sw0dhc9gqln42hx")))) (build-system r-build-system) (propagated-inputs `(("r-annotationdbi" ,r-annotationdbi) @@ -10555,13 +10624,13 @@ EMBL-EBI GWAS catalog.") (define-public r-sushi (package (name "r-sushi") - (version "1.16.0") + (version "1.18.0") (source (origin (method url-fetch) (uri (bioconductor-uri "Sushi" version)) (sha256 (base32 - "0axaqm480z8d0b2ldgxwm0swava1p4irc62bpl17p2k8k78g687g")))) + "1m15hmg4k0qhshyn65xfj5hx7xbaf0kxqw70lxisak6pj1w00l41")))) (properties `((upstream-name . "Sushi"))) (build-system r-build-system) (propagated-inputs @@ -10577,13 +10646,13 @@ visualizations for publication-quality multi-panel figures.") (define-public r-fithic (package (name "r-fithic") - (version "1.4.0") + (version "1.6.0") (source (origin (method url-fetch) (uri (bioconductor-uri "FitHiC" version)) (sha256 (base32 - "12ylhrppi051m7nqsgq95kzd9g9wmp34i0zzfi55cjqawlpx7c6n")))) + "06w4q836bi1mvkbl1saghv4r5p4hxpjg8cp7kgad13ls450kqmyd")))) (properties `((upstream-name . "FitHiC"))) (build-system r-build-system) (propagated-inputs @@ -10601,13 +10670,13 @@ assays such as Hi-C.") (define-public r-hitc (package (name "r-hitc") - (version "1.22.1") + (version "1.24.0") (source (origin (method url-fetch) (uri (bioconductor-uri "HiTC" version)) (sha256 (base32 - "0da1jw9my2n2gihs31zyn14wwr23d8v2vij39ll7rm6fma3ydfbl")))) + "0qkk5139f51lwwy1yh7nbkflh5d69prirmhniwam34nlg9rzjm2z")))) (properties `((upstream-name . "HiTC"))) (build-system r-build-system) (propagated-inputs @@ -10630,14 +10699,14 @@ provided.") (define-public r-qvalue (package (name "r-qvalue") - (version "2.10.0") + (version "2.12.0") (source (origin (method url-fetch) (uri (bioconductor-uri "qvalue" version)) (sha256 (base32 - "1rd9rnf16kh8wc076kahd9hsb9rfwsbzmz3kjmp0pj6rbiq0051i")))) + "1ndwkj0hh7v4lwylq1v0fkxqs7mfmbcj8kxbdpj1wkvf131z2ns8")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -10659,14 +10728,14 @@ problems in genomics, brain imaging, astrophysics, and data mining.") (define-public r-hdf5array (package (name "r-hdf5array") - (version "1.6.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (bioconductor-uri "HDF5Array" version)) (sha256 (base32 - "0kcdza41saqv6vlpvqd841awbiwkg84lh0plx6c7fmfgbqv7a0jh")))) + "1l0276qxkhgdxsfck3jmi8jvnsr20g10gjki53g0mqa45wnhm3ck")))) (properties `((upstream-name . "HDF5Array"))) (build-system r-build-system) (propagated-inputs @@ -10685,14 +10754,14 @@ block processing.") (define-public r-rhdf5lib (package (name "r-rhdf5lib") - (version "1.0.0") + (version "1.2.1") (source (origin (method url-fetch) (uri (bioconductor-uri "Rhdf5lib" version)) (sha256 (base32 - "0kkc4rprjbqn2wvbx4d49kk9l91vihccxbl4843qr1wqk6v33r1w")))) + "1y59acac6v8hrhv84gghn9ifsni9xxxacaj177rrl4frmkrz4x3c")))) (properties `((upstream-name . "Rhdf5lib"))) (build-system r-build-system) (arguments @@ -10703,10 +10772,10 @@ block processing.") (for-each delete-file '("configure" "configure.ac")) ;; Do not make other packages link with the proprietary libsz. (substitute* "R/zzz.R" - (("'%s/libhdf5_cpp.a %s/libhdf5.a %s/libsz.a'") - "'%s/libhdf5_cpp.a %s/libhdf5.a %s/libhdf5.a'") - (("'%s/libhdf5.a %s/libsz.a'") - "'%s/libhdf5.a %s/libhdf5.a'")) + (("'%s/libhdf5_cpp.a %s/libhdf5.a %s/libsz.a -lz'") + "'%s/libhdf5_cpp.a %s/libhdf5.a %s/libhdf5.a -lz'") + (("'%s/libhdf5.a %s/libsz.a -lz'") + "'%s/libhdf5.a %s/libhdf5.a -lz'")) (with-directory-excursion "src" (invoke "tar" "xvf" (assoc-ref inputs "hdf5-source")) (rename-file (string-append "hdf5-" ,(package-version hdf5)) @@ -10733,8 +10802,7 @@ block processing.") (("HDF5_INCLUDE=.*") "HDF5_INCLUDE=./hdf5/src\n") ;; szip is non-free software (("cp \\$\\{SZIP_LIB\\}.*") "") - (("PKG_LIBS = \\$\\{HDF5_LIB\\} \\$\\{SZIP_LIB\\}") - "PKG_LIBS = ${HDF5_LIB}\n"))) + (("\\$\\{USER_LIB_DIR\\}libsz.a") ""))) #t))))) (inputs `(("zlib" ,zlib))) @@ -10751,17 +10819,18 @@ packages.") (define-public r-beachmat (package (name "r-beachmat") - (version "1.0.2") + (version "1.2.1") (source (origin (method url-fetch) (uri (bioconductor-uri "beachmat" version)) (sha256 (base32 - "0b6dzja5fbx4dawb7ixj67mlhw4fy62pfp20mfp918fy96zmdwqz")))) + "1w90v0jx1zgrfxzx99gdkk0dz2vi25hr51jml1bvq33i64rj7996")))) (build-system r-build-system) (inputs - `(("hdf5" ,hdf5))) + `(("hdf5" ,hdf5) + ("zlib" ,zlib))) (propagated-inputs `(("r-delayedarray" ,r-delayedarray) ("r-hdf5array" ,r-hdf5array) @@ -10778,14 +10847,14 @@ matrices.") (define-public r-singlecellexperiment (package (name "r-singlecellexperiment") - (version "1.0.0") + (version "1.2.0") (source (origin (method url-fetch) (uri (bioconductor-uri "SingleCellExperiment" version)) (sha256 (base32 - "1r276i97w64a5vdlg6952gkj7bls909p42zl8fn8yz87cdwyaars")))) + "0mz3chia250v8v6q8r5cqv5fc4bpcw1hhrfr3p7l5i4xi85scpka")))) (properties `((upstream-name . "SingleCellExperiment"))) (build-system r-build-system) @@ -10805,27 +10874,27 @@ libraries.") (define-public r-scater (package (name "r-scater") - (version "1.6.3") + (version "1.8.0") (source (origin (method url-fetch) (uri (bioconductor-uri "scater" version)) (sha256 (base32 - "0q3s96gf8saa1dq2fvmpl0jyj7bx3wrdfck3hanb8pxkcir2p7dn")))) + "0bhpikgz3b9f510dawsay4zry9rlp8vjx5n6zvwbcpwrd94p3903")))) (build-system r-build-system) (propagated-inputs `(("r-beachmat" ,r-beachmat) ("r-biobase" ,r-biobase) ("r-biocgenerics" ,r-biocgenerics) - ("r-biomart" ,r-biomart) ("r-data-table" ,r-data-table) + ("r-delayedarray" ,r-delayedarray) + ("r-delayedmatrixstats" ,r-delayedmatrixstats) ("r-dplyr" ,r-dplyr) ("r-edger" ,r-edger) ("r-ggbeeswarm" ,r-ggbeeswarm) ("r-ggplot2" ,r-ggplot2) ("r-limma" ,r-limma) ("r-matrix" ,r-matrix) - ("r-matrixstats" ,r-matrixstats) ("r-plyr" ,r-plyr) ("r-rcpp" ,r-rcpp) ("r-reshape2" ,r-reshape2) @@ -10849,19 +10918,21 @@ quality control.") (define-public r-scran (package (name "r-scran") - (version "1.6.9") + (version "1.8.2") (source (origin (method url-fetch) (uri (bioconductor-uri "scran" version)) (sha256 (base32 - "0cs64cnf0xjcgmawr210y99j3gxs6aqgh8081n9827kkqnx2y5dm")))) + "0nbn5x75gf9d0p18w7vpkbv30cpdqvp5bz8xvila0h7jla7xdyih")))) (build-system r-build-system) (propagated-inputs `(("r-beachmat" ,r-beachmat) ("r-biocgenerics" ,r-biocgenerics) ("r-biocparallel" ,r-biocparallel) + ("r-delayedarray" ,r-delayedarray) + ("r-delayedmatrixstats" ,r-delayedmatrixstats) ("r-dt" ,r-dt) ("r-dynamictreecut" ,r-dynamictreecut) ("r-edger" ,r-edger) @@ -10878,8 +10949,7 @@ quality control.") ("r-singlecellexperiment" ,r-singlecellexperiment) ("r-statmod" ,r-statmod) ("r-summarizedexperiment" ,r-summarizedexperiment) - ("r-viridis" ,r-viridis) - ("r-zoo" ,r-zoo))) + ("r-viridis" ,r-viridis))) (home-page "https://bioconductor.org/packages/scran") (synopsis "Methods for single-cell RNA-Seq data analysis") (description "This package implements a variety of low-level analyses of @@ -10891,14 +10961,14 @@ variable and significantly correlated genes.") (define-public r-delayedmatrixstats (package (name "r-delayedmatrixstats") - (version "1.0.3") + (version "1.2.0") (source (origin (method url-fetch) (uri (bioconductor-uri "DelayedMatrixStats" version)) (sha256 (base32 - "1cxjbjdq9hg9cm95rci0al7a4pk2h73ym276ahw9q4977zbg6381")))) + "1dasghfy8x27zzmd0igag4mc1gxxxbchsl4hpc1050dj3wnw9w3y")))) (properties `((upstream-name . "DelayedMatrixStats"))) (build-system r-build-system) @@ -10994,11 +11064,6 @@ droplet sequencing. It has been particularly tailored for Drop-seq.") (sha256 (base32 "0g38g8s3npr0gjm9fahlbhiskyfws9l5i0x1ml3rakzj7az5l9c9")))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (invoke "autoreconf" "-vif")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -11141,25 +11206,22 @@ with narrow binding events such as transcription factor ChIP-seq.") (define-public trim-galore (package (name "trim-galore") - (version "0.4.2") + (version "0.4.5") (source (origin - (method url-fetch) - (uri (string-append "http://www.bioinformatics.babraham.ac.uk/" - "projects/trim_galore/trim_galore_v" - version ".zip")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/FelixKrueger/TrimGalore.git") + (commit version))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0b9qdxi4521gsrjvbhgky8g7kry9b5nx3byzaxkgxz7p4k8bn1mn")))) + "0x5892l48c816pf00wmnz5vq0zq6170d3xc8zrxncd4jcz7h1p71")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases - ;; The archive contains plain files. - (replace 'unpack - (lambda* (#:key source #:allow-other-keys) - (zero? (system* "unzip" source)))) (delete 'configure) (delete 'build) (add-after 'unpack 'hardcode-tool-references @@ -11540,7 +11602,9 @@ browser.") (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((target (assoc-ref outputs "out")) - (doc (string-append target "/share/doc/f-seq/"))) + (bin (string-append target "/bin")) + (doc (string-append target "/share/doc/f-seq")) + (lib (string-append target "/lib"))) (mkdir-p target) (mkdir-p doc) (substitute* "bin/linux/fseq" @@ -11549,11 +11613,11 @@ browser.") (string-append (assoc-ref inputs "java-commons-cli") "/share/java/commons-cli.jar")) (("REALDIR=.*") - (string-append "REALDIR=" target "/bin\n"))) + (string-append "REALDIR=" bin "\n"))) (install-file "README.txt" doc) - (install-file "bin/linux/fseq" (string-append target "/bin")) - (install-file "build~/fseq.jar" (string-append target "/lib")) - (copy-recursively "lib" (string-append target "/lib")) + (install-file "bin/linux/fseq" bin) + (install-file "build~/fseq.jar" lib) + (copy-recursively "lib" lib) #t)))))) (inputs `(("perl" ,perl) @@ -11571,47 +11635,61 @@ Browser.") (define-public bismark (package (name "bismark") - (version "0.16.3") + (version "0.19.1") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/FelixKrueger/Bismark/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/FelixKrueger/Bismark.git") + (commit version))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1204i0pa02ll2jn5pnxypkclnskvv7a2nwh5nxhagmhxk9wfv9sq")))) + "0yb5l36slwg02fp4b1jdlplgljcsxgqfzvzihzdnphd87dghcc84")) + (snippet + '(begin + ;; highcharts.js is non-free software. The code is available under + ;; CC-BY-NC or proprietary licenses only. + (delete-file "bismark_sitrep/highcharts.js") + #t)))) (build-system perl-build-system) (arguments - `(#:tests? #f ; there are no tests + `(#:tests? #f ; there are no tests #:phases (modify-phases %standard-phases (delete 'configure) (delete 'build) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") - "/bin")) - (docdir (string-append (assoc-ref outputs "out") - "/share/doc/bismark")) - (docs '("Bismark_User_Guide.pdf" - "RELEASE_NOTES.txt")) - (scripts '("bismark" - "bismark_genome_preparation" - "bismark_methylation_extractor" - "bismark2bedGraph" - "bismark2report" - "coverage2cytosine" - "deduplicate_bismark" - "bismark_sitrep.tpl" - "bam2nuc" - "bismark2summary"))) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share/bismark")) + (docdir (string-append out "/share/doc/bismark")) + (docs '("Docs/Bismark_User_Guide.html")) + (scripts '("bismark" + "bismark_genome_preparation" + "bismark_methylation_extractor" + "bismark2bedGraph" + "bismark2report" + "coverage2cytosine" + "deduplicate_bismark" + "filter_non_conversion" + "bam2nuc" + "bismark2summary"))) + (substitute* "bismark2report" + (("\\$RealBin/bismark_sitrep") + (string-append share "/bismark_sitrep"))) + (mkdir-p share) (mkdir-p docdir) (mkdir-p bin) (for-each (lambda (file) (install-file file bin)) scripts) (for-each (lambda (file) (install-file file docdir)) docs) + (copy-recursively "Docs/Images" (string-append docdir "/Images")) + (copy-recursively "bismark_sitrep" + (string-append share "/bismark_sitrep")) + ;; Fix references to gunzip (substitute* (map (lambda (file) (string-append bin "/" file)) @@ -11738,7 +11816,7 @@ accurate as existing quantification tools.") code that is used in the Cufflinks codebase. The goal of this library is to provide this functionality without the necessity of drawing in a heavy-weight dependency like SeqAn.") - (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt")))) + (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt")))) (define-public libdivsufsort (package @@ -11899,7 +11977,8 @@ bytes of memory space, where n is the length of the string.") (snippet '(begin (delete-file-recursively "include/spdlog") (for-each delete-file '("include/xxhash.h" - "src/xxhash.c")))))) + "src/xxhash.c")) + #t)))) ("libdivsufsort" ,libdivsufsort) ("libgff" ,libgff) ("tbb" ,tbb) @@ -12624,7 +12703,8 @@ contains (snippet '(begin (for-each delete-file (find-files "jar/lib" "\\.jar$")) - (delete-file-recursively "3rdParty"))))) + (delete-file-recursively "3rdParty") + #t)))) (build-system ant-build-system) (arguments `(#:tests? #f ; test data are not included @@ -12643,6 +12723,9 @@ contains (guix build ant-build-system)) #:phases (modify-phases %standard-phases + ;; FIXME: fails with "java.io.FileNotFoundException: + ;; /gnu/store/q76y0ximcziplgfpbn26kbw4h3s14f33-dropseq-tools-1.13/share/java/lib/biojava-alignment.jar" + (delete 'generate-jar-indices) ;; All dependencies must be linked to "lib", because that's where ;; they will be searched for when the Class-Path property of the ;; manifest is computed. @@ -12969,7 +13052,7 @@ methylation and segmentation.") (define-public pigx-scrnaseq (package (name "pigx-scrnaseq") - (version "0.0.3") + (version "0.0.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/" @@ -12977,7 +13060,7 @@ methylation and segmentation.") "/pigx_scrnaseq-" version ".tar.gz")) (sha256 (base32 - "12qdq0nj1wdkyighdxj6924bmbpd1a0b3gam6w64l4hiqrv5sijz")))) + "1pvjm6f3mascprs65vflggwwg5v925knvgal7k7a6nnlmw5qndrf")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -13000,7 +13083,7 @@ methylation and segmentation.") ("perl" ,perl) ("dropseq-tools" ,dropseq-tools) ("fastqc" ,fastqc) - ("java-picard" ,java-picard) + ("java-picard" ,java-picard-2.10.3) ; same as for dropseq ("java" ,icedtea-8) ("python-wrapper" ,python-wrapper) ("python-pyyaml" ,python-pyyaml) @@ -13111,3 +13194,54 @@ Extinction), \"QuaSSE\", \"GeoSSE\", and \"BiSSE-ness\" Other included methods include Markov models of discrete and continuous trait evolution and constant rate speciation and extinction.") (license license:gpl2+))) + +(define-public sjcount + ;; There is no tag for version 3.2, nor is there a release archive. + (let ((commit "292d3917cadb3f6834c81e509c30e61cd7ead6e5") + (revision "1")) + (package + (name "sjcount") + (version (git-version "3.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pervouchine/sjcount-full.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0gdgj35j249f04rqgq8ymcc1xg1vi9kzbajnjqpaq2wpbh8bl234")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; requires a 1.4G test file + #:make-flags + (list (string-append "SAMTOOLS_DIR=" + (assoc-ref %build-inputs "samtools") + "/lib/")) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "makefile" + (("-I \\$\\{SAMTOOLS_DIR\\}") + (string-append "-I" (assoc-ref inputs "samtools") + "/include/samtools")) + (("-lz ") "-lz -lpthread ")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (for-each (lambda (tool) + (install-file tool + (string-append (assoc-ref outputs "out") + "/bin"))) + '("j_count" "b_count" "sjcount")) + #t))))) + (inputs + `(("samtools" ,samtools-0.1) + ("zlib" ,zlib))) + (home-page "https://github.com/pervouchine/sjcount-full/") + (synopsis "Annotation-agnostic splice junction counting pipeline") + (description "Sjcount is a utility for fast quantification of splice +junctions in RNA-seq data. It is annotation-agnostic and offset-aware. This +version does count multisplits.") + (license license:gpl3+)))) diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 9df4f097ac..a9d62a5664 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2016, 2018 Leo Famulari ;;; Copyright © 2016, 2017 Leo Famulari -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Tomáš Čech ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Jelle Licht @@ -62,7 +62,7 @@ (define-public transmission (package (name "transmission") - (version "2.93") + (version "2.94") (source (origin (method url-fetch) (uri (string-append @@ -70,7 +70,7 @@ "master/transmission-" version ".tar.xz")) (sha256 (base32 - "02xrp49gsv4jkbzp37qrwlnb9nlja08s92dyvgdbr6a4187945c8")))) + "0zbbj7rlm6m7vb64x68a64cwmijhsrwx9l63hbwqs7zr9742qi1m")))) (build-system glib-or-gtk-build-system) (outputs '("out" ; library and command-line interface "gui")) ; graphical user interface @@ -257,7 +257,7 @@ maintained upstream.") (define-public aria2 (package (name "aria2") - (version "1.33.1") + (version "1.34.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/tatsuhiro-t/aria2/" @@ -265,7 +265,7 @@ maintained upstream.") name "-" version ".tar.xz")) (sha256 (base32 - "06syqxia701dk96rcbhnd4x0arjj6d22gm3aqksz38am9y2f8f95")))) + "18vpgr430vxlwbcc3598rr1srfmwypls6wp1m4wf21hncc1ahi1s")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-libaria2" diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index d347674abb..d00f96de64 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -1,11 +1,13 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2015 Ludovic Courtès ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Arun Isaac +;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2018 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. @@ -41,7 +43,7 @@ (define-public boost (package (name "boost") - (version "1.64.0") + (version "1.66.0") (source (origin (method url-fetch) (uri (string-append @@ -50,7 +52,8 @@ ".tar.bz2")) (sha256 (base32 - "0cikd35xfkpg9nnl76yqqnqxnf3hyfjjww8xjd4akflprsm5rk3v")))) + "1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap")) + (patches (search-patches "boost-fix-icu-build.patch")))) (build-system gnu-build-system) (inputs `(("icu4c" ,icu4c) ("zlib" ,zlib))) @@ -65,22 +68,14 @@ ;; Set the RUNPATH to $libdir so that the libs find each other. (string-append "linkflags=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib") - - ;; Boost's 'context' library is not yet supported on mips64, so - ;; we disable it. The 'coroutine' library depends on 'context', - ;; so we disable that too. - ,@(if (string-prefix? "mips64" (or (%current-target-system) - (%current-system))) - '("--without-context" - "--without-coroutine" "--without-coroutine2") - '())) + (assoc-ref %outputs "out") "/lib")) #:phases (modify-phases %standard-phases - (replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) + (delete 'bootstrap) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((icu (assoc-ref inputs "icu4c")) + (out (assoc-ref outputs "out"))) (substitute* '("libs/config/configure" "libs/spirit/classic/phoenix/test/runtest.sh" "tools/build/doc/bjam.qbk" @@ -92,42 +87,29 @@ (setenv "SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh")) - (zero? (system* "./bootstrap.sh" - (string-append "--prefix=" out) - "--with-toolset=gcc"))))) - (replace - 'build - (lambda* (#:key outputs make-flags #:allow-other-keys) - (zero? (apply system* "./b2" - (format #f "-j~a" (parallel-job-count)) - make-flags)))) - (replace - 'install - (lambda* (#:key outputs make-flags #:allow-other-keys) - (zero? (apply system* "./b2" "install" make-flags))))))) + (invoke "./bootstrap.sh" + (string-append "--prefix=" out) + ;; Auto-detection looks for ICU only in traditional + ;; install locations. + (string-append "--with-icu=" icu) + "--with-toolset=gcc")))) + (replace 'build + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "./b2" + (format #f "-j~a" (parallel-job-count)) + make-flags))) + (replace 'install + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "./b2" "install" make-flags)))))) - (home-page "http://boost.org") + (home-page "https://www.boost.org") (synopsis "Peer-reviewed portable C++ source libraries") (description "A collection of libraries intended to be widely useful, and usable across a broad spectrum of applications.") - (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt" + (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt" "Some components have other similar licences.")))) -(define-public boost-1.66 - (package - (inherit boost) - (version "1.66.0") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/boost/boost/" version "/boost_" - (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) - ".tar.bz2")) - (sha256 - (base32 - "1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap")))))) - (define-public boost-sync (let ((commit "c72891d9b90e2ceb466ec859f640cd012b2d8709") (version "1.55") @@ -158,7 +140,7 @@ across a broad spectrum of applications.") (description "The Boost.Sync library provides mutexes, semaphores, locks and events and other thread related facilities. Boost.Sync originated from Boost.Thread.") - (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"))))) + (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))) (define-public mdds (package diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 0db6ad3f6a..a86c73731e 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -33,6 +33,7 @@ #:use-module (gnu packages disk) #:use-module (gnu packages bison) #:use-module (gnu packages cdrom) + #:use-module (gnu packages check) #:use-module (gnu packages cross-base) #:use-module (gnu packages disk) #:use-module (gnu packages firmware) @@ -49,6 +50,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) + #:use-module (gnu packages sdl) #:use-module (gnu packages swig) #:use-module (gnu packages virtualization) #:use-module (gnu packages web) @@ -338,7 +340,7 @@ tree binary files. These are board description files used by Linux and BSD.") (define u-boot (package (name "u-boot") - (version "2018.01") + (version "2018.05") (source (origin (method url-fetch) (uri (string-append @@ -346,11 +348,15 @@ tree binary files. These are board description files used by Linux and BSD.") "u-boot-" version ".tar.bz2")) (sha256 (base32 - "1nidnnjprgxdhiiz7gmaj8cgcf52l5gbv64cmzjq4gmkjirmk3wk")))) + "0j60p4iskzb4hamxgykc6gd7xchxfka1zwh8hv08r9rrc4m3r8ad")))) (native-inputs `(("bc" ,bc) - ;("dtc" ,dtc) ; they have their own incompatible copy. + ("dtc" ,dtc) + ("openssl" ,openssl) ("python-2" ,python-2) + ("python2-coverage" ,python2-coverage) + ("python2-pytest" ,python2-pytest) + ("sdl" ,sdl) ("swig" ,swig))) (build-system gnu-build-system) (home-page "http://www.denx.de/wiki/U-Boot/") @@ -359,6 +365,80 @@ tree binary files. These are board description files used by Linux and BSD.") also initializes the boards (RAM etc).") (license license:gpl2+))) +(define-public u-boot-tools + (package + (inherit u-boot) + (name "u-boot-tools") + (arguments + `(#:make-flags '("HOSTCC=gcc") + #:test-target "tests" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile" + (("/bin/pwd") (which "pwd")) + (("/bin/false") (which "false"))) + (substitute* "tools/dtoc/fdt_util.py" + (("'cc'") "'gcc'")) + (substitute* "test/run" + ;; Make it easier to find test failures. + (("#!/bin/bash") "#!/bin/bash -x") + ;; pytest doesn't find it otherwise. + (("test/py/tests/test_ofplatdata.py") + "tests/test_ofplatdata.py") + ;; This test would require git. + (("\\./tools/patman/patman") (which "true")) + ;; This test would require internet access. + (("\\./tools/buildman/buildman") (which "true"))) + (substitute* "test/py/tests/test_sandbox_exit.py" + (("def test_ctrl_c") + "@pytest.mark.skip(reason='Guix has problems with SIGINT') +def test_ctrl_c")) + (substitute* "tools/binman/binman.py" + (("100%") "99%")) ; TODO: Find out why that is needed. + #t)) + (replace 'configure + (lambda* (#:key make-flags #:allow-other-keys) + (call-with-output-file "configs/tools_defconfig" + (lambda (port) + (display "CONFIG_SYS_TEXT_BASE=0\n" port))) + (apply invoke "make" "tools_defconfig" make-flags))) + (replace 'build + (lambda* (#:key inputs make-flags #:allow-other-keys) + (apply invoke "make" "tools-only" make-flags) + (apply invoke "make" "envtools" make-flags))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (for-each (lambda (name) + (install-file name bin)) + '("tools/netconsole" + "tools/jtagconsole" + "tools/gen_eth_addr" + "tools/gen_ethaddr_crc" + "tools/img2srec" + "tools/mkenvimage" + "tools/dumpimage" + "tools/mkimage" + "tools/proftool" + "tools/fdtgrep" + "tools/env/fw_printenv")) + #t))) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key make-flags test-target #:allow-other-keys) + (apply invoke "make" "mrproper" make-flags) + (setenv "SDL_VIDEODRIVER" "dummy") + (setenv "PAGER" "cat") + (apply invoke "make" test-target make-flags) + (symlink "build-sandbox_spl" "sandbox") + (invoke "test/image/test-imagetools.sh")))))) + (description "U-Boot is a bootloader used mostly for ARM boards. It +also initializes the boards (RAM etc). This package provides its +board-independent tools."))) + (define (make-u-boot-package board triplet) "Returns a u-boot package for BOARD cross-compiled for TRIPLET." (let ((same-arch? (if (string-prefix? (%current-system) @@ -392,25 +472,29 @@ also initializes the boards (RAM etc).") (if (file-exists? (string-append "configs/" config-name)) (zero? (apply system* "make" `(,@make-flags ,config-name))) (begin - (display "Invalid board name. Valid board names are:") - (let ((suffix-len (string-length "_defconfig"))) - (scandir "configs" - (lambda (file-name) - (when (string-suffix? "_defconfig" file-name) - (format #t - "- ~A\n" - (string-drop-right file-name - suffix-len)))))) + (display "Invalid board name. Valid board names are:" + (current-error-port)) + (let ((suffix-len (string-length "_defconfig")) + (entries (scandir "configs"))) + (for-each (lambda (file-name) + (when (string-suffix? "_defconfig" file-name) + (format (current-error-port) + "- ~A\n" + (string-drop-right file-name + suffix-len)))) + (sort entries string-ci<))) #f))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (libexec (string-append out "/libexec")) (uboot-files (append - (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb)$") + (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$") (find-files "." "^(MLO|SPL)$")))) (mkdir-p libexec) (install-file ".config" libexec) + ;; Useful for "qemu -kernel". + (install-file "u-boot" libexec) (for-each (lambda (file) (let ((target-file (string-append libexec "/" file))) @@ -440,9 +524,10 @@ also initializes the boards (RAM etc).") (let ((bl31 (string-append (assoc-ref inputs "firmware") "/bl31.bin"))) (setenv "BL31" bl31) - ;; This is necessary while we're using the bundled dtc. - (setenv "PATH" (string-append (getenv "PATH") ":" - "scripts/dtc"))) + ;; This is necessary when we're using the bundled dtc. + ;(setenv "PATH" (string-append (getenv "PATH") ":" + ; "scripts/dtc")) + ) #t)))))) (native-inputs `(("firmware" ,arm-trusted-firmware-pine64-plus) @@ -469,6 +554,43 @@ also initializes the boards (RAM etc).") (define-public u-boot-mx6cuboxi (make-u-boot-package "mx6cuboxi" "arm-linux-gnueabihf")) +(define-public u-boot-novena + (make-u-boot-package "novena" "arm-linux-gnueabihf")) + +(define-public u-boot-cubieboard + (make-u-boot-package "Cubieboard" "arm-linux-gnueabihf")) + +(define-public u-boot-puma-rk3399 + (let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu"))) + (package + (inherit base) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'set-environment + (lambda* (#:key inputs #:allow-other-keys) + ;; Need to copy the firmware into u-boot build + ;; directory. + (copy-file (string-append (assoc-ref inputs "firmware") + "/bl31.bin") "bl31-rk3399.bin") + (copy-file (string-append (assoc-ref inputs "firmware-m0") + "/rk3399m0.bin") "rk3399m0.bin") + #t)) + (add-after 'build 'build-itb + (lambda* (#:key make-flags #:allow-other-keys) + ;; The u-boot.itb is not built by default. + (apply invoke "make" `(,@make-flags ,"u-boot.itb")))) + (add-after 'build-itb 'build-rksd + (lambda* (#:key inputs #:allow-other-keys) + ;; Build Rockchip SD card images. + (invoke "./tools/mkimage" "-T" "rksd" "-n" "rk3399" "-d" + "spl/u-boot-spl.bin" "u-boot-spl.rksd"))))))) + (native-inputs + `(("firmware" ,arm-trusted-firmware-puma-rk3399) + ("firmware-m0" ,rk3399-cortex-m0) + ,@(package-native-inputs base)))))) + (define-public vboot-utils (package (name "vboot-utils") diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index b754b1f922..936d6c1a2a 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. @@ -97,10 +97,10 @@ (define* (package-from-tarball name source program-to-test description #:key snippet) "Return a package that correspond to the extraction of SOURCE. -PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to -check whether everything is alright. If SNIPPET is provided, it is -evaluated after extracting SOURCE. SNIPPET should return true if -successful, or false to signal an error." +PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to check +whether everything is alright. If SNIPPET is provided, it is evaluated after +extracting SOURCE. SNIPPET should raise an exception to signal an error; its +return value is ignored." (package (name name) (version "0") @@ -117,14 +117,14 @@ successful, or false to signal an error." (mkdir out) (copy-file tarball "binaries.tar.xz") - (system* xz "-d" "binaries.tar.xz") + (invoke xz "-d" "binaries.tar.xz") (let ((builddir (getcwd))) (with-directory-excursion out - (and (zero? (system* tar "xvf" - (string-append builddir "/binaries.tar"))) - ,@(if snippet (list snippet) '()) - (zero? (system* (string-append "bin/" ,program-to-test) - "--version")))))))) + (invoke tar "xvf" + (string-append builddir "/binaries.tar")) + ,@(if snippet (list snippet) '()) + (invoke (string-append "bin/" ,program-to-test) + "--version")))))) (inputs `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) ("xz" ,(search-bootstrap-binary "xz" (%current-system))) @@ -389,8 +389,7 @@ $out/bin/guile --version~%" (if (not (elf-file? "bin/egrep")) (substitute* '("bin/egrep" "bin/fgrep") (("^exec grep") (string-append (getcwd) "/bin/grep")))) - (chmod "bin" #o555) - #t))) + (chmod "bin" #o555)))) (define %bootstrap-binutils (package-from-tarball "binutils-bootstrap" @@ -445,18 +444,20 @@ $out/bin/guile --version~%" (mkdir out) (copy-file tarball "binaries.tar.xz") - (system* xz "-d" "binaries.tar.xz") + (invoke xz "-d" "binaries.tar.xz") (let ((builddir (getcwd))) (with-directory-excursion out - (system* tar "xvf" - (string-append builddir - "/binaries.tar")) + (invoke tar "xvf" + (string-append builddir + "/binaries.tar")) (chmod "lib" #o755) ;; Patch libc.so so it refers to the right path. (substitute* "lib/libc.so" (("/[^ ]+/lib/(libc|ld)" _ prefix) - (string-append out "/lib/" prefix)))))))) + (string-append out "/lib/" prefix))) + + #t))))) (inputs `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) ("xz" ,(search-bootstrap-binary "xz" (%current-system))) @@ -517,12 +518,12 @@ $out/bin/guile --version~%" (mkdir out) (copy-file tarball "binaries.tar.xz") - (system* xz "-d" "binaries.tar.xz") + (invoke xz "-d" "binaries.tar.xz") (let ((builddir (getcwd)) (bindir (string-append out "/bin"))) (with-directory-excursion out - (system* tar "xvf" - (string-append builddir "/binaries.tar"))) + (invoke tar "xvf" + (string-append builddir "/binaries.tar"))) (with-directory-excursion bindir (chmod "." #o755) @@ -537,7 +538,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ out libc libc libc ,(glibc-dynamic-linker)))) - (chmod "gcc" #o555)))))) + (chmod "gcc" #o555) + #t))))) (inputs `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) ("xz" ,(search-bootstrap-binary "xz" (%current-system))) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index aa4b28c9ca..e693aec4ac 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -87,6 +87,8 @@ makes a few sacrifices to acquire fast full and incremental build times.") (base32 "1m0w0wqnz983l7fpp5p9pdsqr7n3ybrzp8ywjcvn0rihsrzj65j6")))) (build-system cmake-build-system) + (inputs + `(("python" ,python-wrapper))) (home-page "https://github.com/rizsotto/Bear") (synopsis "Tool for generating a compilation database") (description "A JSON compilation database is used in the Clang project to diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index b4e17cb53a..bc6042874b 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016, 2018 Ludovic Courtès ;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; @@ -83,7 +83,7 @@ standard.") (build-system trivial-build-system) (native-inputs '()) (inputs `(("tcc" ,tcc) - ("guile" ,guile-2.0))) + ("guile" ,guile-2.2))) ;; By default TCC does not honor any search path environment variable. ;; This wrapper adds them. diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index b2f6aec83d..79cef99826 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Troy Sankey ;;; Copyright © 2016 Stefan Reichoer +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -95,13 +96,13 @@ data units.") (define-public khal (package (name "khal") - (version "0.9.8") + (version "0.9.9") (source (origin (method url-fetch) (uri (pypi-uri "khal" version)) (sha256 (base32 - "1blx3gxnv7sj302biqphfw7i6ilzl2xlmvzp130n3113scg9w17y")))) + "0dq9aqb9pqjfqrnfg43mhpb7m0szmychxy1ydb3lwzf3500c9rsh")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -110,24 +111,24 @@ data units.") (lambda* (#:key inputs outputs #:allow-other-keys) ;; Make installed package available for running the tests (add-installed-pythonpath inputs outputs) - (and - (zero? (system* "make" "--directory=doc/" "man")) - (install-file - "doc/build/man/khal.1" - (string-append (assoc-ref outputs "out") "/share/man/man1"))))) + (invoke "make" "--directory=doc/" "man") + (install-file + "doc/build/man/khal.1" + (string-append (assoc-ref outputs "out") "/share/man/man1")) + #t)) (replace 'check (lambda* (#:key inputs #:allow-other-keys) ;; The tests require us to choose a timezone. (setenv "TZ" (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo/Zulu")) - (zero? (system* "py.test" "tests" "-k" - (string-append - ;; These tests are known to fail in when not - ;; running in a TTY: - ;; https://github.com/pimutils/khal/issues/683 - "not test_printics_read_from_stdin " - "and not test_import_from_stdin")))))))) + (invoke "py.test" "tests" "-k" + (string-append + ;; These tests are known to fail in when not + ;; running in a TTY: + ;; https://github.com/pimutils/khal/issues/683 + "not test_printics_read_from_stdin " + "and not test_import_from_stdin"))))))) (native-inputs `(("python-pytest" ,python-pytest) ("python-pytest-cov" ,python-pytest-cov) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 5f9117c637..5d45d07288 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -188,9 +188,11 @@ files.") (patches (search-patches "cdparanoia-fpic.patch")) (modules '((guix build utils))) (snippet - ;; Make libraries respect LDFLAGS. - '(substitute* '("paranoia/Makefile.in" "interface/Makefile.in") - (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))))) + '(begin + ;; Make libraries respect LDFLAGS. + (substitute* '("paranoia/Makefile.in" "interface/Makefile.in") + (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there is no check target @@ -449,9 +451,11 @@ the data.") "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("/usr/bin/install") - "install"))))) + '(begin + (substitute* "Makefile" + (("/usr/bin/install") + "install")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -479,11 +483,13 @@ from an audio CD.") "1msm5snyckynbspz54p9krarn7v9izsi7qyyi2z5y4cinw36xv3h")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("/usr/bin/install") - "install") - (("^etcdir = .*$") - (string-append "etcdir = $(prefix)/etc\n")))))) + '(begin + (substitute* "Makefile" + (("/usr/bin/install") + "install") + (("^etcdir = .*$") + (string-append "etcdir = $(prefix)/etc\n"))) + #t)))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index b4c09c7750..3f592cf17b 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -63,7 +63,8 @@ (("crt") "pem")) (mkdir-p bin) (copy-file "certdata2pem.py" - (string-append bin "/certdata2pem.py")))))) + (string-append bin "/certdata2pem.py")) + #t)))) (synopsis "Python script to extract .pem data from certificate collection") (description "certdata2pem.py is a Python script to transform X.509 certificate @@ -121,7 +122,7 @@ (mkdir-p certsdir) (with-directory-excursion "nss/lib/ckfw/builtins/" ;; extract single certificates from blob - (system* "certdata2pem.py" "certdata.txt") + (invoke "certdata2pem.py" "certdata.txt") ;; copy selected .pem files into the output (for-each maybe-install-cert (find-files "." ".*\\.pem"))) @@ -170,10 +171,9 @@ taken from the NSS package and thus ultimately from the Mozilla project.") ;; Create hash symlinks suitable for OpenSSL ('SSL_CERT_DIR' and ;; similar.) (chdir (string-append %output "/etc/ssl/certs")) - (unless (zero? (system* (string-append perl "/bin/perl") - (string-append openssl "/bin/c_rehash") - ".")) - (error "'c_rehash' failed" openssl)))))) + (invoke (string-append perl "/bin/perl") + (string-append openssl "/bin/c_rehash") + "."))))) (native-inputs `(("openssl" ,openssl) ("perl" ,perl))) ;for 'c_rehash' diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index ce46e34bfb..3e959bde92 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -19,12 +19,12 @@ ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2017 Thomas Danckaert -;;; Copyright © 2017 Arun Isaac +;;; Copyright © 2017, 2018 Arun Isaac ;;; Copyright © 2017 Frederick M. Muriithi ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Kei Kebreau ;;; Copyright © 2017 Nils Gillmann -;;; Copyright © 2015, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2016, 2017, 2018 Marius Bakke ;;; Copyright © 2017 Ludovic Courtès ;;; Copyright © 2018 Fis Trivial @@ -104,9 +104,11 @@ source code editors and IDEs.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'autoconf - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + ;; XXX: The "bootstrap" phase detects the "bootstrap" + ;; script, but fails to execute it, so we bootstrap + ;; manually. + (replace 'bootstrap + (lambda _ (invoke "autoreconf" "-vfi")))))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf) @@ -161,6 +163,8 @@ supervised tests.") (base32 "1027cyfx5gsjkdkaf6c2wnjh68882grw8n672018cj3vs9lrhmix")))))) +;; When dependent packages upgraded to use newer version of catch, this one should +;; be removed. (define-public catch-framework (package (name "catch") @@ -185,13 +189,13 @@ supervised tests.") (incdir (string-append output "/include")) (docdir (string-append output "/share/doc/catch-" ,version))) - (begin - (for-each mkdir-p (list incdir docdir)) - (install-file (string-append source - "/single_include/catch.hpp") - incdir) - (copy-recursively (string-append source "/docs") - docdir)))))) + (for-each mkdir-p (list incdir docdir)) + (install-file (string-append source + "/single_include/catch.hpp") + incdir) + (copy-recursively (string-append source "/docs") + docdir) + #t)))) (home-page "http://catch-lib.net/") (synopsis "Automated test framework for C++ and Objective-C") (description @@ -199,6 +203,24 @@ supervised tests.") multi-paradigm automated test framework for C++ and Objective-C.") (license license:boost1.0))) +(define-public catch-framework2 + (package + (name "catch2") + (version "1.12.2") + (home-page "https://github.com/catchorg/Catch2") + (source (origin + (method url-fetch) + (uri (string-append home-page "/archive/v" version ".tar.gz")) + (sha256 + (base32 + "0g2ysxc6adqca5wh7nsicnxb9wkxg75cd5izjsl39rcj0v903gr7")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system cmake-build-system) + (synopsis "Automated test framework for C++ and Objective-C") + (description "Catch2 stands for C++ Automated Test Cases in Headers and is +a multi-paradigm automated test framework for C++ and Objective-C.") + (license license:boost1.0))) + (define-public cmdtest (package (name "cmdtest") @@ -394,6 +416,8 @@ test coverage and has a web user interface that will refresh automatically.") (home-page "https://github.com/smartystreets/goconvey") (license license:expat))) +;; XXX When updating, check whether ZNC's GOOGLETEST-SOURCES can be +;; switched back to simply using (PACKAGE-SOURCE ...). (define-public googletest (package (name "googletest") @@ -595,14 +619,14 @@ standard library.") (define-public python-pytest (package (name "python-pytest") - (version "3.2.3") + (version "3.5.0") (source (origin (method url-fetch) (uri (pypi-uri "pytest" version)) (sha256 (base32 - "0g6w86ks73fnrnsyib9ii2rbyx830vn7aglsjqz9v1n2xwbndyi7")))) + "1q832zd07zak2lyxbycxjydh0jp7y3hvawjqzlvra6aghz8r3r7s")))) (build-system python-build-system) (arguments `(#:phases @@ -620,7 +644,11 @@ standard library.") line))) #t))))) (propagated-inputs - `(("python-py" ,python-py))) + `(("python-attrs" ,python-attrs-bootstrap) + ("python-more-itertools" ,python-more-itertools) + ("python-pluggy" ,python-pluggy) + ("python-py" ,python-py) + ("python-six" ,python-six-bootstrap))) (native-inputs `(;; Tests need the "regular" bash since 'bash-final' lacks `compgen`. ("bash" ,bash) @@ -634,20 +662,33 @@ standard library.") "Pytest is a testing tool that provides auto-discovery of test modules and functions, detailed info on failing assert statements, modular fixtures, and many external plugins.") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-pytest)))))) (define-public python2-pytest - (package-with-python2 python-pytest)) + (let ((pytest (package-with-python2 + (strip-python2-variant python-pytest)))) + (package + (inherit pytest) + (propagated-inputs + `(("python2-funcsigs" ,python2-funcsigs) + ,@(package-propagated-inputs pytest)))))) (define-public python-pytest-bootstrap (package - (inherit python-pytest) + (inherit (strip-python2-variant python-pytest)) (name "python-pytest-bootstrap") (native-inputs `(("python-setuptools-scm" ,python-setuptools-scm))) - (arguments `(#:tests? #f)))) + (arguments `(#:tests? #f)) + (properties `((python2-variant . ,(delay python2-pytest-bootstrap)))))) (define-public python2-pytest-bootstrap - (package-with-python2 python-pytest-bootstrap)) + (let ((pytest (package-with-python2 + (strip-python2-variant python-pytest-bootstrap)))) + (package (inherit pytest) + (propagated-inputs + `(("python2-funcsigs" ,python2-funcsigs-bootstrap) + ,@(package-propagated-inputs pytest)))))) (define-public python-pytest-cov (package @@ -1356,23 +1397,26 @@ normally the case.") (define-public python-hypothesis (package (name "python-hypothesis") - (version "3.1.0") + (version "3.52.0") (source (origin (method url-fetch) (uri (pypi-uri "hypothesis" version)) (sha256 (base32 - "0qyqq9akm4vshhn8cngjc1qykcvsn7cz6dlm6njfsgpbraqrmbbw")))) + "0g54cypfi5qj6cgxfr7l1nb41r1cqhhngx4qxn4ga9h720rcsbr8")))) (build-system python-build-system) (native-inputs `(("python-flake8" ,python-flake8) ("python-pytest" ,python-pytest-bootstrap))) + (propagated-inputs + `(("python-attrs" ,python-attrs-bootstrap) + ("python-coverage" ,python-coverage))) (synopsis "Library for property based testing") (description "Hypothesis is a library for testing your Python code against a much larger range of examples than you would ever want to write by hand. It’s based on the Haskell library, Quickcheck, and is designed to integrate seamlessly into your existing Python unit testing work flow.") - (home-page "https://github.com/DRMacIver/hypothesis") + (home-page "https://github.com/HypothesisWorks/hypothesis-python") (license license:mpl2.0) (properties `((python2-variant . ,(delay python2-hypothesis)))))) diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index bb7767670d..c8e76b8ab4 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -74,8 +74,10 @@ (modules '((guix build utils))) (snippet ;; Fix compilation with glibc >= 2.26, which removed xlocale.h. - '(substitute* "c/expeditor.c" - (("xlocale\\.h") "locale.h"))))) + '(begin + (substitute* "c/expeditor.c" + (("xlocale\\.h") "locale.h")) + #t)))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index 733a8ca83e..ba95dc174b 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -147,9 +147,6 @@ (string-append "--docdir=" %output "/doc/hydra-" ,version))) #:phases (modify-phases %standard-phases - (add-after - 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vfi")))) (add-before 'check 'check-setup (lambda _ (setenv "LOGNAME" "test.log"))) @@ -221,8 +218,6 @@ their dependencies.") (substitute* "build-aux/git-version-gen" (("#!/bin/sh") (string-append "#!" (which "sh")))) #t)) - (add-after 'patch-/bin/sh 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap")))) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) ;; Wrap the 'cuirass' command to refer to the right modules. diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm new file mode 100644 index 0000000000..7cfd04f008 --- /dev/null +++ b/gnu/packages/cluster.scm @@ -0,0 +1,87 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Sou Bunnbu +;;; +;;; 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 cluster) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (gnu packages linux) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages tls)) + +(define-public keepalived + (package + (name "keepalived") + (version "2.0.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.keepalived.org/software/keepalived-" + version ".tar.gz")) + (sha256 + (base32 + "0hp8i56zkf0398bmpi32a85f05cv2fy9wizkdfbxk7gav4z6yx18")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-configure + (lambda _ + ;; XXX: The 'configure' script doesn't handle '-L' flags in the + ;; output of 'pkg-config'. + (substitute* "configure" + (("PKG_CONFIG --libs") "PKG_CONFIG --libs-only-l")) + #t)) + (add-after 'build 'build-info + (lambda _ + (invoke "make" "-C" "doc" "texinfo") + ;; Put images in a subdirectory as recommended by 'texinfo'. + (install-file "doc/build/texinfo/software_design.png" + "doc/build/texinfo/keepalived-figures") + (substitute* "doc/build/texinfo/keepalived.texi" + (("@image\\{software_design,") + "@image{keepalived-figures/software_design,")) + (invoke "make" "-C" "doc/build/texinfo"))) + (add-after 'install 'install-info + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (infodir (string-append out "/share/info"))) + (install-file "doc/build/texinfo/keepalived.info" infodir) + (install-file "doc/build/texinfo/software_design.png" + (string-append infodir "/keepalived-figures")) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python-sphinx" ,python-sphinx) + ("texinfo" ,texinfo))) + (inputs + `(("openssl" ,openssl) + ("libnfnetlink" ,libnfnetlink) + ("libnl" ,libnl))) + (home-page "http://www.keepalived.org/") + (synopsis "Loadbalancing and high-availability frameworks") + (description + "Keepalived provides frameworks for both load balancing and high +availability. The load balancing framework relies on the Linux Virtual +Server (IPVS) kernel module. High availability is achieved by the Virtual +Redundancy Routing Protocol (VRRP). Each Keepalived framework can be used +independently or together to provide resilient infrastructures.") + (license license:gpl2+))) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index e6c5c4e793..06b1cab82c 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017, 2018 Marius Bakke +;;; Copyright © 2018 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system emacs) #:use-module (gnu packages) #:use-module (gnu packages backup) #:use-module (gnu packages compression) @@ -41,57 +43,66 @@ (define-public cmake (package (name "cmake") - (version "3.7.2") + (version "3.11.0") (source (origin - (method url-fetch) - (uri (string-append "https://www.cmake.org/files/v" - (version-major+minor version) - "/cmake-" version ".tar.gz")) - (sha256 - (base32 - "1q6a60695prpzzsmczm2xrgxdb61fyjznb04dr6yls6iwv24c4nw")) - (patches (search-patches "cmake-fix-tests.patch")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Drop bundled software. - (with-directory-excursion "Utilities" - (for-each delete-file-recursively - '("cmbzip2" - ;"cmcompress" - "cmcurl" - "cmexpat" - ;"cmjsoncpp" - ;"cmlibarchive" - "cmliblzma" - "cmlibuv" - "cmzlib")) - #t))))) + (method url-fetch) + (uri (string-append "https://www.cmake.org/files/v" + (version-major+minor version) + "/cmake-" version ".tar.gz")) + (sha256 + (base32 + "0sv5k9q6braa8hhw0y3w19avqn0xn5czv5jf5fz5blnlf7ivw4y3")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Drop bundled software. + (with-directory-excursion "Utilities" + (for-each delete-file-recursively + '("cmbzip2" + ;; "cmcompress" + "cmcurl" + "cmexpat" + ;; "cmjsoncpp" + ;; "cmlibarchive" + "cmliblzma" + ;; "cmlibuv" + "cmzlib")) + #t))))) (build-system gnu-build-system) (arguments `(#:test-target "test" + #:make-flags + (let ((skipped-tests + (list "BundleUtilities" ; This test fails on Guix. + "CTestTestSubdir" ; This test fails to build 2 of the 3 tests. + ;; These tests requires network access. + "CTestCoverageCollectGCOV" + "CTestTestUpload"))) + (list + (string-append + ;; These arguments apply for the tests only. + "ARGS=-j " (number->string (parallel-job-count)) + " --output-on-failure" + " --exclude-regex ^\\(" (string-join skipped-tests "\\|") "\\)$"))) #:phases (modify-phases %standard-phases (add-before 'configure 'patch-bin-sh (lambda _ - ;; Replace "/bin/sh" by the right path in... a lot of - ;; files. - (substitute* - '("Modules/CompilerId/Xcode-3.pbxproj.in" - "Modules/CompilerId/Xcode-1.pbxproj.in" - "Modules/CompilerId/Xcode-2.pbxproj.in" - "Modules/CPack.RuntimeScript.in" - "Source/cmakexbuild.cxx" - "Source/cmGlobalXCodeGenerator.cxx" - "Source/CTest/cmCTestBatchTestHandler.cxx" - "Source/cmLocalUnixMakefileGenerator3.cxx" - "Source/cmExecProgramCommand.cxx" - "Utilities/Release/release_cmake.cmake" - "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c" - "Tests/CMakeLists.txt" - "Tests/RunCMake/File_Generate/RunCMakeTest.cmake") + ;; Replace "/bin/sh" by the right path in... a lot of + ;; files. + (substitute* + '("Modules/CompilerId/Xcode-3.pbxproj.in" + "Modules/CPack.RuntimeScript.in" + "Source/cmakexbuild.cxx" + "Source/cmGlobalXCodeGenerator.cxx" + "Source/cmLocalUnixMakefileGenerator3.cxx" + "Source/cmExecProgramCommand.cxx" + "Utilities/Release/release_cmake.cmake" + "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c" + "Tests/CMakeLists.txt" + "Tests/RunCMake/File_Generate/RunCMakeTest.cmake") (("/bin/sh") (which "sh"))) - #t)) + #t)) (add-before 'configure 'set-paths (lambda _ ;; Help cmake's bootstrap process to find system libraries @@ -102,43 +113,37 @@ (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* - "./configure" - (string-append "--prefix=" out) - "--system-libs" - "--no-system-jsoncpp" ; FIXME: Circular dependency. - ;; By default, the man pages and other docs land - ;; in PREFIX/man and PREFIX/doc, but we want them - ;; in share/{man,doc}. Note that unlike - ;; autoconf-generated configure scripts, cmake's - ;; configure prepends "PREFIX/" to what we pass - ;; to --mandir and --docdir. - "--mandir=share/man" - ,(string-append - "--docdir=share/doc/cmake-" - (version-major+minor version))))))) - (add-before 'check 'set-test-environment - (lambda _ - ;; Get verbose output from failed tests. - (setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE") - ;; Run tests in parallel. - (setenv "CTEST_PARALLEL_LEVEL" - (number->string (parallel-job-count))) - #t))))) + (invoke + "./configure" "--verbose" + (string-append "--parallel=" (number->string (parallel-job-count))) + (string-append "--prefix=" out) + "--system-libs" + "--no-system-jsoncpp" ; FIXME: Circular dependency. + ;; By default, the man pages and other docs land + ;; in PREFIX/man and PREFIX/doc, but we want them + ;; in share/{man,doc}. Note that unlike + ;; autoconf-generated configure scripts, cmake's + ;; configure prepends "PREFIX/" to what we pass + ;; to --mandir and --docdir. + "--mandir=share/man" + ,(string-append + "--docdir=share/doc/cmake-" + (version-major+minor version))))))))) (inputs - `(("file" ,file) - ("curl" ,curl) - ("zlib" ,zlib) - ("expat" ,expat) - ("bzip2" ,bzip2) - ("ncurses" ,ncurses) ; required for ccmake - ("libuv" ,libuv) - ("libarchive" ,libarchive))) + `(("bzip2" ,bzip2) + ("curl" ,curl) + ("expat" ,expat) + ("file" ,file) + ("libarchive" ,libarchive) + ("libuv" ,libuv) + ("ncurses" ,ncurses) ; required for ccmake + ("rhash" ,rhash) + ("zlib" ,zlib))) (native-search-paths (list (search-path-specification - (variable "CMAKE_PREFIX_PATH") - (files '(""))))) - (home-page "https://www.cmake.org/") + (variable "CMAKE_PREFIX_PATH") + (files '(""))))) + (home-page "https://cmake.org/") (synopsis "Cross-platform build system") (description "CMake is a family of tools designed to build, test and package software. @@ -151,58 +156,19 @@ and workspaces that can be used in the compiler environment of your choice.") license:expat ; cmjsoncpp is dual MIT/public domain license:public-domain)))) ; cmlibarchive/archive_getdate.c -;; Recent Ceph requires Boost 1.66, which in turn requires CMake 3.11 for -;; its updated "FindBoost.cmake" facility. -(define-public cmake-3.11 +(define-public emacs-cmake-mode (package (inherit cmake) - (version "3.11.0-rc2") - (source (origin - (inherit (package-source cmake)) - (uri (string-append "https://www.cmake.org/files/v" - (version-major+minor version) - "/cmake-" version ".tar.gz")) - (sha256 - (base32 - "14p6ais19nfcwl914n4n5rbzaqwafv3qkg6nd8jw54ykn6lz6mf3")) - (snippet - '(begin - ;; Drop bundled software. - (with-directory-excursion "Utilities" - (for-each delete-file-recursively - '("cmbzip2" - "cmcurl" - "cmexpat" - "cmliblzma" - "cmzlib")) - #t))))) - (build-system gnu-build-system) + (name "emacs-cmake-mode") + (build-system emacs-build-system) (arguments - (substitute-keyword-arguments (package-arguments cmake) - ((#:make-flags flags ''()) `(cons (string-append - "ARGS=-j " - (number->string (parallel-job-count)) - " --output-on-failure") - ,flags)) - ((#:phases phases) - `(modify-phases ,phases - (replace 'patch-bin-sh - (lambda _ - (substitute* - '("Modules/CompilerId/Xcode-3.pbxproj.in" - "Modules/CPack.RuntimeScript.in" - "Source/cmakexbuild.cxx" - "Source/cmGlobalXCodeGenerator.cxx" - "Source/cmLocalUnixMakefileGenerator3.cxx" - "Source/cmExecProgramCommand.cxx" - "Utilities/Release/release_cmake.cmake" - "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c" - "Tests/CMakeLists.txt" - "Tests/RunCMake/File_Generate/RunCMakeTest.cmake") - (("/bin/sh") (which "sh"))) - #t)) - ;; This is now passed through #:make-flags. - (delete 'set-test-environment))))) - (inputs - `(("rhash" ,rhash) - ,@(package-inputs cmake))))) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir-elisp + ;; Elisp directory is not in root of the source. + (lambda _ + (chdir "Auxiliary")))))) + (synopsis "Emacs major mode for editing Cmake expressions") + (description "@code{cmakeos-mode} provides an Emacs major mode for editing +Cmake files. It supports syntax highlighting, indenting and refilling of +comments."))) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 15fdf9d66f..a8c85fdb5e 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -7,6 +7,10 @@ ;;; Copyright © 2017, 2018 Clément Lassieur ;;; Copyright © 2017 Andy Wingo ;;; Copyright © 2018 Fis Trivial +;;; Copyright © 2018 Pierre Neidhardt +;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2013 Andreas Enge +;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,12 +30,16 @@ (define-module (gnu packages code) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial) #:use-module (gnu packages) + #:use-module (gnu packages autogen) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages databases) @@ -39,15 +47,13 @@ #:use-module (gnu packages gcc) #:use-module (gnu packages graphviz) #:use-module (gnu packages pcre) - #:use-module (gnu packages pkg-config) #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages texinfo) - #:use-module (gnu packages autogen) #:use-module (gnu packages ncurses) - #:use-module (gnu packages autotools) #:use-module (gnu packages llvm) - #:use-module (gnu packages lua) - #:use-module (gnu packages bash)) + #:use-module (gnu packages lua)) ;;; Tools to deal with source code: metrics, cross-references, etc. @@ -414,7 +420,8 @@ functionality such as HTML output.") (let ((files (find-files "." ".*\\.cpp|.*\\.h"))) (substitute* files (("#include ?\"rct/(.*.h)\"" all header) - (string-append "#include ")))))) + (string-append "#include "))) + #t))) (sha256 (base32 "0scjbp1z201q8njvrxqz7lk2m9b6k2rxd5q1shrng6532r7ndif2")))) @@ -492,7 +499,8 @@ importantly we give you proper follow-symbol and find-references support.") (install-files '("AUTHORS" "BUGS" "ChangeLog" "README") doc) (install-files '("colormake" "colormake-short" "clmake" "clmake-short" "colormake.pl") - bin))))) + bin) + #t)))) (home-page "http://bre.klaki.net/programs/colormake/") (synopsis "Wrapper around @command{make} to produce colored output") (description "This package provides a wrapper around @command{make} to @@ -527,3 +535,164 @@ produce colored output.") output is a graphviz-dot file, a Gexf-XML file or a list of the deepest independent targets.") (license license:expat))) + +(define-public uncrustify + (package + (name "uncrustify") + (version "0.67") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/uncrustify/uncrustify/archive/" + "uncrustify-" version ".zip")) + (sha256 + (base32 + "0n13kq0nsm35fxhdp0f275n4x0w88hdv3bdjy0hgvv42x0dx5zyp")))) + (build-system cmake-build-system) + (native-inputs + `(("unzip" ,unzip))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-etc + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Configuration samples are not installed by default. + (let* ((output (assoc-ref outputs "out")) + (etcdir (string-append output "/etc"))) + (for-each (lambda (l) + (install-file l etcdir)) + (find-files "etc" "\\.cfg$"))) + #t))))) + (home-page "http://uncrustify.sourceforge.net/") + (synopsis "Code formatter for C and other related languages") + (description + "Beautify source code in many languages of the C family (C, C++, C#, +Objective@tie{}C, D, Java, Pawn, and Vala). Features: +@itemize +@item Indent and align code. +@item Reformat comments (a little bit). +@item Fix inter-character spacing. +@item Add or remove parens / braces. +@item Supports embedded SQL @code{EXEC SQL} stuff. +@item Highly configurable - More than 600 configurable options. +@end itemize\n") + (license license:gpl2+))) + +(define-public astyle + (package + (name "astyle") + (version "2.05") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20" + version "/astyle_" version "_linux.tar.gz")) + (sha256 + (base32 + "0f9sh9kq5ajp1yz133h00fr9235p1m698x7n3h7zbrhjiwgynd6s")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no tests + #:make-flags (list (string-append "prefix=" %output) + "INSTALL=install" + "all") + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ (chdir "build/gcc") #t)) + (add-after 'install 'install-libs + (lambda* (#:key outputs #:allow-other-keys) + ;; Libraries are not installed by default + (let* ((output (assoc-ref outputs "out")) + (libdir (string-append output "/lib"))) + (begin + (mkdir-p libdir) + (for-each (lambda (l) + (copy-file + l (string-append libdir "/" (basename l)))) + (find-files "bin" "lib*")))) + #t))))) + (home-page "http://astyle.sourceforge.net/") + (synopsis "Source code indenter, formatter, and beautifier") + (description + "Artistic Style is a source code indenter, formatter, and beautifier for +the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.") + (license license:lgpl3+))) + +(define-public indent + (package + (name "indent") + (version "2.2.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/indent/indent-" version + ".tar.gz")) + (sha256 (base32 + "0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-docdir + (lambda _ + ;; Although indent uses a modern autoconf in which docdir + ;; defaults to PREFIX/share/doc, the doc/Makefile.am + ;; overrides this to be in PREFIX/doc. Fix this. + (substitute* "doc/Makefile.in" + (("^docdir = .*$") "docdir = @docdir@\n")) + #t))))) + (synopsis "Code reformatter") + (description + "Indent is a program that makes source code easier to read by +reformatting it in a consistent style. It can change the style to one of +several different styles such as GNU, BSD or K&R. It has some flexibility to +deal with incomplete or malformed syntax. GNU indent offers several +extensions over the standard utility.") + (license license:gpl3+) + (home-page "https://www.gnu.org/software/indent/"))) + +(define-public amalgamate + (let* ((commit "c91f07eea1133aa184f652b8f1398eaf03586208") + (revision "0") + (version (git-version "1.1.1" revision commit))) + (package + (name "amalgamate") + (version version) + (home-page "https://github.com/edlund/amalgamate") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (sha256 + (base32 + "0cllaraw8mxs8q2nr28nhgzkb417gj2wcklqg59w84f4lc78k3yb")) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(substitute* "test.sh" + (("test_command \"cc -Wall -Wextra -o source.out source.c\"" all) + "test_command \"gcc -Wall -Wextra -o source.out source.c\""))))) + (build-system gnu-build-system) + (inputs + `(("python" ,python-wrapper))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "amalgamate.py" bin)))) + (replace 'check + (lambda _ + (invoke "./test.sh")))))) + (synopsis "Tool for amalgamating C source and header files") + ;; The package is indeed a script file, and the term "amalgamate.py" is + ;; used by upstream. + (description "amalgamate.py aims to make it easy to use SQLite-style C +source and header amalgamation in projects.") + (license license:bsd-3)))) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 1026ee8929..e998e9981e 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015, 2017 Mark H Weaver ;;; Copyright © 2017, 2018 Efraim Flashner +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,7 +30,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages gcc) #:use-module (gnu packages m4) - #:use-module (gnu packages indent) + #:use-module (gnu packages code) #:use-module (gnu packages file) #:use-module (gnu packages gawk) #:use-module (gnu packages bison) @@ -90,12 +91,14 @@ `(modify-phases ,phases (replace 'build (lambda _ - (zero? (system* "./build.sh")))) + (invoke "./build.sh") + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) - (install-file "make" bin))))))))) + (install-file "make" bin) + #t)))))))) (native-inputs '()) ; no need for 'pkg-config' (inputs %bootstrap-inputs)))) @@ -183,28 +186,12 @@ ,cf))))) (inputs %boot0-inputs)))) -;; gcc-4.9 was fixed late in the core-update cycle and so this GCC is only -;; needed to prevent a full world rebuild, and can be replaced with gcc-4.9. -(define gcc-for-libstdc++ - (package (inherit gcc-4.9) - (version "4.9.4") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gcc/gcc-" - version "/gcc-" version ".tar.bz2")) - (sha256 - (base32 - "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) - (patches (search-patches "gcc-arm-bug-71399.patch" - "gcc-libvtv-runpath.patch" - "gcc-fix-texi2pod.patch")))))) - (define libstdc++-boot0 ;; GCC's libcc1 is always built as a shared library (the top-level ;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer ;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on ;; C++14 features missing in some of our bootstrap compilers. - (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-for-libstdc++)))) + (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-4.9)))) (package (inherit lib) (name "libstdc++-boot0") @@ -262,42 +249,40 @@ "--(with-system-zlib|enable-languages.*)" <>) ,flags))) ((#:phases phases) - `(alist-cons-after - 'unpack 'unpack-gmp&co - (lambda* (#:key inputs #:allow-other-keys) - (let ((gmp (assoc-ref %build-inputs "gmp-source")) - (mpfr (assoc-ref %build-inputs "mpfr-source")) - (mpc (assoc-ref %build-inputs "mpc-source"))) + `(modify-phases ,phases + (add-after 'unpack 'unpack-gmp&co + (lambda* (#:key inputs #:allow-other-keys) + (let ((gmp (assoc-ref %build-inputs "gmp-source")) + (mpfr (assoc-ref %build-inputs "mpfr-source")) + (mpc (assoc-ref %build-inputs "mpc-source"))) - ;; To reduce the set of pre-built bootstrap inputs, build - ;; GMP & co. from GCC. - (for-each (lambda (source) - (or (zero? (system* "tar" "xvf" source)) - (error "failed to unpack tarball" - source))) - (list gmp mpfr mpc)) + ;; To reduce the set of pre-built bootstrap inputs, build + ;; GMP & co. from GCC. + (for-each (lambda (source) + (invoke "tar" "xvf" source)) + (list gmp mpfr mpc)) - ;; Create symlinks like `gmp' -> `gmp-x.y.z'. - ,@(map (lambda (lib) - ;; Drop trailing letters, as gmp-6.0.0a unpacks - ;; into gmp-6.0.0. - `(symlink ,(string-trim-right - (package-full-name lib) - char-set:letter) - ,(package-name lib))) - (list gmp-6.0 mpfr mpc)))) - (alist-cons-after - 'install 'symlink-libgcc_eh - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "lib"))) - ;; Glibc wants to link against libgcc_eh, so provide - ;; it. - (with-directory-excursion - (string-append out "/lib/gcc/" - ,(boot-triplet) - "/" ,(package-version gcc)) - (symlink "libgcc.a" "libgcc_eh.a")))) - ,phases)))))) + ;; Create symlinks like `gmp' -> `gmp-x.y.z'. + ,@(map (lambda (lib) + ;; Drop trailing letters, as gmp-6.0.0a unpacks + ;; into gmp-6.0.0. + `(symlink ,(string-trim-right + (package-full-name lib "-") + char-set:letter) + ,(package-name lib))) + (list gmp-6.0 mpfr mpc)) + #t))) + (add-after 'install 'symlink-libgcc_eh + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "lib"))) + ;; Glibc wants to link against libgcc_eh, so provide + ;; it. + (with-directory-excursion + (string-append out "/lib/gcc/" + ,(boot-triplet) + "/" ,(package-version gcc)) + (symlink "libgcc.a" "libgcc_eh.a")) + #t)))))))) (inputs `(("gmp-source" ,(package-source gmp-6.0)) ("mpfr-source" ,(package-source mpfr)) @@ -332,7 +317,8 @@ (lambda _ (substitute* "Configure" (("^libswanted=(.*)pthread" _ before) - (string-append "libswanted=" before))))))) + (string-append "libswanted=" before))) + #t)))) ;; Do not configure with '-Dusethreads' since pthread ;; support is missing. ((#:configure-flags configure-flags) @@ -512,32 +498,33 @@ the bootstrap environment." "--enable-obsolete-rpc") ,flags)) ((#:phases phases) - `(alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - ;; Don't clobber CPATH with the bootstrap libc. - (setenv "NATIVE_CPATH" (getenv "CPATH")) - (unsetenv "CPATH") + `(modify-phases ,phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Don't clobber CPATH with the bootstrap libc. + (setenv "NATIVE_CPATH" (getenv "CPATH")) + (unsetenv "CPATH") - ;; Tell 'libpthread' where to find 'libihash' on Hurd systems. - ,@(if (hurd-triplet? (%current-system)) - `((substitute* "libpthread/Makefile" - (("LDLIBS-pthread.so =.*") - (string-append "LDLIBS-pthread.so = " - (assoc-ref %build-inputs "kernel-headers") - "/lib/libihash.a\n")))) - '()) + ;; Tell 'libpthread' where to find 'libihash' on Hurd systems. + ,@(if (hurd-triplet? (%current-system)) + `((substitute* "libpthread/Makefile" + (("LDLIBS-pthread.so =.*") + (string-append "LDLIBS-pthread.so = " + (assoc-ref %build-inputs "kernel-headers") + "/lib/libihash.a\n")))) + '()) - ;; 'rpcgen' needs native libc headers to be built. - (substitute* "sunrpc/Makefile" - (("sunrpc-CPPFLAGS =.*" all) - (string-append "CPATH = $(NATIVE_CPATH)\n" - "export CPATH\n" - all "\n")))) - ,phases))))) + ;; 'rpcgen' needs native libc headers to be built. + (substitute* "sunrpc/Makefile" + (("sunrpc-CPPFLAGS =.*" all) + (string-append "CPATH = $(NATIVE_CPATH)\n" + "export CPATH\n" + all "\n"))) + #t))))))) (propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0)))) (native-inputs - `(("texinfo" ,texinfo-boot0) + `(("bison" ,bison-boot0) + ("texinfo" ,texinfo-boot0) ("perl" ,perl-boot0))) (inputs `(;; The boot inputs. That includes the bootstrap libc. We don't want @@ -599,7 +586,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" triplet "-" tool) tool)) '("ar" "ranlib")) - (for-each wrap-program '("gcc" "g++"))))))) + (for-each wrap-program '("gcc" "g++"))) + + #t)))) (native-inputs `(("binutils" ,binutils) ("gcc" ,gcc) @@ -652,7 +641,8 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ;; Build only the tools. (add-after 'unpack 'chdir (lambda _ - (chdir "gettext-tools"))) + (chdir "gettext-tools") + #t)) ;; Some test programs require pthreads, which we don't have. (add-before 'configure 'no-test-programs @@ -923,14 +913,13 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (define grep-final ;; The final grep. Gzip holds a reference to it (via zgrep), so it must be ;; built before gzip. - (package-with-bootstrap-guile - (package-with-explicit-inputs (package - (inherit grep) - (inputs '()) ;no PCRE support - (native-inputs `(("perl" ,perl-boot0)))) - %boot5-inputs - (current-source-location) - #:guile guile-final))) + (let ((grep (package-with-bootstrap-guile + (package-with-explicit-inputs grep %boot5-inputs + (current-source-location) + #:guile guile-final)))) + (package/inherit grep + (inputs (alist-delete "pcre" (package-inputs grep))) + (native-inputs `(("perl" ,perl-boot0)))))) (define %boot6-inputs ;; Now use the final Coreutils. @@ -938,6 +927,14 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ("grep" ,grep-final) ,@%boot5-inputs)) +(define sed-final + ;; The final sed. + (let ((sed (package-with-bootstrap-guile + (package-with-explicit-inputs sed %boot6-inputs + (current-source-location) + #:guile guile-final)))) + (package/inherit sed (native-inputs `(("perl" ,perl-boot0)))))) + (define-public %final-inputs ;; Final derivations used as implicit inputs by 'gnu-build-system'. We ;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are @@ -956,9 +953,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ("file" ,file) ("diffutils" ,diffutils) ("patch" ,patch) - ("sed" ,sed) ("findutils" ,findutils) ("gawk" ,gawk))) + ("sed" ,sed-final) ("grep" ,grep-final) ("coreutils" ,coreutils-final) ("make" ,gnu-make-final) @@ -1029,7 +1026,8 @@ COREUTILS-FINAL vs. COREUTILS, etc." "libc-debug"))) (union-build (assoc-ref %outputs "static") (list (assoc-ref %build-inputs - "libc-static"))))))) + "libc-static"))) + #t)))) (native-search-paths (package-native-search-paths gcc)) (search-paths (package-search-paths gcc)) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 562a2bf8b7..2984e854ce 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1,10 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015, 2016 Eric Bavier -;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2015, 2017, 2018 Leo Famulari ;;; Copyright © 2015 Jeff Mickey ;;; Copyright © 2015, 2016, 2017 Efraim Flashner @@ -13,7 +13,7 @@ ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 Kei Kebreau -;;; Copyright © 2016 Marius Bakke +;;; Copyright © 2016, 2018 Marius Bakke ;;; Copyright © 2017 Nils Gillmann ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017 Theodoros Foradis @@ -22,6 +22,7 @@ ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2018 Rutger Helling ;;; Copyright © 2018 Joshua Sierles, Nextjournal +;;; Copyright © 2018 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -97,9 +98,8 @@ ,@(if (%current-target-system) `((setenv "CHOST" ,(%current-target-system))) '()) - (zero? - (system* "./configure" - (string-append "--prefix=" out))))))))) + (invoke "./configure" + (string-append "--prefix=" out)))))))) (home-page "https://zlib.net/") (synopsis "Compression library") (description @@ -127,7 +127,7 @@ in compression.") (lambda _ (chdir "contrib/minizip") #t)) (add-after 'enter-source 'autoreconf (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) + (invoke "autoreconf" "-vif")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -184,7 +184,7 @@ utility. Instead of being written in Java, FastJar is written in C.") #:phases (modify-phases %standard-phases (add-after 'unpack 'autoconf - (lambda _ (zero? (system* "sh" "autoreconf" "-vfi"))))))) + (lambda _ (invoke "sh" "autoreconf" "-vfi")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -201,14 +201,14 @@ adding and extracting files to/from a tar archive.") (define-public gzip (package (name "gzip") - (version "1.8") + (version "1.9") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gzip/gzip-" version ".tar.xz")) (sha256 (base32 - "1lxv3p4iyx7833mlihkn5wfwmz4cys5nybwpz3dfawag8kn6f5zz")))) + "16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f")))) (build-system gnu-build-system) (synopsis "General file (de)compression (using lzw)") (arguments @@ -251,35 +251,48 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in (modify-phases %standard-phases (replace 'configure (lambda* (#:key target #:allow-other-keys) - (if ,(%current-target-system) - ;; Cross-compilation: use the cross tools. - (substitute* (find-files "." "Makefile") - (("CC=.*$") - (string-append "CC = " target "-gcc\n")) - (("AR=.*$") - (string-append "AR = " target "-ar\n")) - (("RANLIB=.*$") - (string-append "RANLIB = " target "-ranlib\n")) - (("^all:(.*)test" _ prerequisites) - ;; Remove 'all' -> 'test' dependency. - (string-append "all:" prerequisites "\n"))) - #t))) + (when ,(%current-target-system) + ;; Cross-compilation: use the cross tools. + (substitute* (find-files "." "Makefile") + (("CC=.*$") + (string-append "CC = " target "-gcc\n")) + (("AR=.*$") + (string-append "AR = " target "-ar\n")) + (("RANLIB=.*$") + (string-append "RANLIB = " target "-ranlib\n")) + (("^all:(.*)test" _ prerequisites) + ;; Remove 'all' -> 'test' dependency. + (string-append "all:" prerequisites "\n")))) + #t)) (add-before 'build 'build-shared-lib (lambda* (#:key inputs #:allow-other-keys) (patch-makefile-SHELL "Makefile-libbz2_so") - (zero? (system* "make" "-f" "Makefile-libbz2_so")))) + (invoke "make" "-f" "Makefile-libbz2_so"))) (add-after 'install 'install-shared-lib (lambda* (#:key outputs #:allow-other-keys) + ;; The Makefile above does not have an 'install' target, nor does + ;; it create all the (un)versioned symlinks, so we handle it here. (let* ((out (assoc-ref outputs "out")) - (libdir (string-append out "/lib"))) - (for-each (lambda (file) - (let ((base (basename file))) - (format #t "installing `~a' to `~a'~%" - base libdir) - (copy-file file - (string-append libdir "/" base)))) - (find-files "." "^libbz2\\.so"))) - #t)) + (libdir (string-append out "/lib")) + ;; Find the actual library (e.g. "libbz2.so.1.0.6"). + (lib (string-drop + (car (find-files + "." + (lambda (file stat) + (and (string-prefix? "./libbz2.so" file) + (eq? 'regular (stat:type stat)))))) + 2)) + (soversion (string-drop lib (string-length "libbz2.so.")))) + (install-file lib libdir) + (with-directory-excursion libdir + ;; Create symlinks libbz2.so.1 -> libbz2.so.1.0, etc. + (let loop ((base "libbz2.so") + (numbers (string-split soversion #\.))) + (unless (null? numbers) + (let ((so-file (string-append base "." (car numbers)))) + (symlink so-file base) + (loop so-file (cdr numbers)))))) + #t))) (add-after 'install-shared-lib 'patch-scripts (lambda* (#:key outputs inputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) @@ -476,14 +489,14 @@ some compression ratio).") (define-public lzip (package (name "lzip") - (version "1.19") + (version "1.20") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/lzip/lzip-" version ".tar.gz")) (sha256 (base32 - "1abbch762gv8rjr579q3qyyk6c80plklbv2mw4x0vg71dgsw9bgz")))) + "0319q59kb8g324wnj7xzbr7vvlx5bcs13lr34j0zb3kqlyjq2fy9")))) (build-system gnu-build-system) (home-page "https://www.nongnu.org/lzip/lzip.html") (synopsis "Lossless data compressor based on the LZMA algorithm") @@ -647,7 +660,7 @@ decompression of some loosely related file formats used by Microsoft.") (define-public perl-compress-raw-bzip2 (package (name "perl-compress-raw-bzip2") - (version "2.074") + (version "2.081") (source (origin (method url-fetch) @@ -655,7 +668,7 @@ decompression of some loosely related file formats used by Microsoft.") "Compress-Raw-Bzip2-" version ".tar.gz")) (sha256 (base32 - "0b5jwqf15zr787acnx8sfyy2zavdd7gfkd98n1dgy8fs6r8yb8a4")))) + "081mpkjy688lg48997fqh3d7ja12vazmz02fw84495civg4vb4l6")))) (build-system perl-build-system) ;; TODO: Use our bzip2 package. (home-page "http://search.cpan.org/dist/Compress-Raw-Bzip2") @@ -667,7 +680,7 @@ compression library.") (define-public perl-compress-raw-zlib (package (name "perl-compress-raw-zlib") - (version "2.076") + (version "2.081") (source (origin (method url-fetch) @@ -675,7 +688,7 @@ compression library.") "Compress-Raw-Zlib-" version ".tar.gz")) (sha256 (base32 - "1al2h0i6mspldmlf5c09fy5a4j8swsxd31v6zi8zx9iyqk1lw7in")))) + "06rsm9ahp20xfyvd3jc69sd0k8vqysryxc6apzdbn96jbcsdwmp1")))) (build-system perl-build-system) (inputs `(("zlib" ,zlib))) @@ -702,7 +715,7 @@ compression library.") (define-public perl-io-compress (package (name "perl-io-compress") - (version "2.074") + (version "2.081") (source (origin (method url-fetch) @@ -710,11 +723,11 @@ compression library.") "IO-Compress-" version ".tar.gz")) (sha256 (base32 - "1wlpy2026djfmq0bjync531yq6s695jf7bcnpvjphrasi776igdl")))) + "1na66ns1g3nni0m9q5494ym4swr21hfgpv88mw8wbj2daiswf4aj")))) (build-system perl-build-system) (propagated-inputs - `(("perl-compress-raw-zlib" ,perl-compress-raw-zlib) ; >=2.074 - ("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2))) ; >=2.074 + `(("perl-compress-raw-zlib" ,perl-compress-raw-zlib) ; >=2.081 + ("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2))) ; >=2.081 (home-page "http://search.cpan.org/dist/IO-Compress") (synopsis "IO Interface to compressed files/buffers") (description "IO-Compress provides a Perl interface to allow reading and @@ -742,7 +755,7 @@ writing of compressed data created with the zlib and bzip2 libraries.") (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases (delete 'configure)))) ; no configure script - (home-page "http://www.lz4.org") + (home-page "https://www.lz4.org") (synopsis "Compression algorithm focused on speed") (description "LZ4 is a lossless compression algorithm, providing compression speed at 400 MB/s per core (0.16 Bytes/cycle). It also features an @@ -843,6 +856,23 @@ systems where low overhead is needed. This package allows you to create and extract such file systems.") (license license:gpl2+))) +;; We need this for building squashfs images with symlinks. +(define-public squashfs-tools-next + (let ((commit "fb33dfc32b131a1162dcf0e35bd88254ae10e265") + (revision "1")) + (package (inherit squashfs-tools) + (name "squashfs-tools-next") + (version (string-append "4.3-" revision (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/plougher/squashfs-tools.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1x2skf8hxzfch978nzx5mh46d4hhi6gl22270hiarjszsjk3bnsx"))))))) + (define-public pigz (package (name "pigz") @@ -925,10 +955,11 @@ tarballs.") (base32 "1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n")) (modules '((guix build utils))) - (snippet - ;; This is a recursive submodule that is unnecessary for this - ;; package, so delete it. - '(delete-file-recursively "brotli/terryfy")))) + (snippet '(begin + ;; This is a recursive submodule that is + ;; unnecessary for this package, so delete it. + (delete-file-recursively "brotli/terryfy") + #t)))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -939,7 +970,7 @@ tarballs.") (add-after 'unpack 'autogen (lambda _ (mkdir "m4") - (zero? (system* "autoreconf" "-vfi"))))))) + (invoke "autoreconf" "-vfi")))))) (home-page "https://github.com/bagder/libbrotli/") (synopsis "Implementation of the Brotli compression algorithm") (description @@ -987,7 +1018,9 @@ respectively, based on the reference implementation from Google.") (file-name (string-append name "-" version ".tar.gz")) (snippet ;; This file isn't freely distributable and has no effect on building. - '(delete-file "xdelta3/draft-korn-vcdiff.txt")))) + '(begin + (delete-file "xdelta3/draft-korn-vcdiff.txt") + #t)))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -996,9 +1029,9 @@ respectively, based on the reference implementation from Google.") `(#:phases (modify-phases %standard-phases (add-after 'unpack 'enter-build-directory - (lambda _ (chdir "xdelta3"))) + (lambda _ (chdir "xdelta3") #t)) (add-after 'enter-build-directory 'autoconf - (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) + (lambda _ (invoke "autoreconf" "-vfi")))))) (home-page "http://xdelta.org") (synopsis "Delta encoder for binary files") (description "xdelta encodes only the differences between two binary files @@ -1159,7 +1192,7 @@ install: libbitshuffle.so (add-before 'build 'build-jni (lambda _ ;; Rebuild one of the binaries we removed earlier - (system* "javac" "src/main/java/org/xerial/snappy/OSInfo.java" + (invoke "javac" "src/main/java/org/xerial/snappy/OSInfo.java" "-d" "lib") ;; Link to the dynamic bitshuffle and snappy, not the static ones (substitute* "Makefile.common" @@ -1246,7 +1279,7 @@ compresser/decompresser.") (add-before 'build 'build-jni (lambda _ ;; Rebuild one of the binaries we removed earlier - (system* "javac" "src/main/java/org/xerial/snappy/OSInfo.java" + (invoke "javac" "src/main/java/org/xerial/snappy/OSInfo.java" "-d" "lib") ;; Link to the dynamic snappy, not the static ones (substitute* "Makefile.common" @@ -1263,7 +1296,7 @@ compresser/decompresser.") (("NAME\\): \\$\\(SNAPPY_OBJ\\)") "NAME): $(SNAPPY_OBJ)\n\t@mkdir -p $(@D)")) ;; Finally we can run the Makefile to build the dynamic library. - (zero? (system* "make" "native")))) + (invoke "make" "native"))) ;; Once we have built the shared library, we need to place it in the ;; "build" directory so it can be added to the jar file. (add-after 'build-jni 'copy-jni @@ -1302,16 +1335,15 @@ compresser/decompresser.") (replace 'check (lambda _ (define (test class) - (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") - ":build/classes" - ":build/test-classes") - "-Dtest.resources.dir=src/test/resources" - "org.testng.TestNG" "-testclass" - class))) - (system* "ant" "compile-tests") - (and - (test "org.iq80.snappy.SnappyFramedStreamTest") - (test "org.iq80.snappy.SnappyStreamTest")))) + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") + ":build/classes" + ":build/test-classes") + "-Dtest.resources.dir=src/test/resources" + "org.testng.TestNG" "-testclass" + class)) + (invoke "ant" "compile-tests") + (test "org.iq80.snappy.SnappyFramedStreamTest") + (test "org.iq80.snappy.SnappyStreamTest"))) (add-before 'build 'remove-hadoop-dependency (lambda _ ;; We don't have hadoop @@ -1407,22 +1439,22 @@ It can be used as a replacement for the Apache @code{CBZip2InputStream} / (modify-phases %standard-phases (replace 'configure (lambda* (#:key system outputs #:allow-other-keys) - (zero? (system* "cp" - (let ((system ,(or (%current-target-system) - (%current-system)))) - (cond - ((string-prefix? "x86_64" system) - "makefile.linux_amd64_asm") - ((string-prefix? "i686" system) - "makefile.linux_x86_asm_gcc_4.X") - (else - "makefile.linux_any_cpu_gcc_4.X"))) - "makefile.machine")))) + (invoke "cp" + (let ((system ,(or (%current-target-system) + (%current-system)))) + (cond + ((string-prefix? "x86_64" system) + "makefile.linux_amd64_asm") + ((string-prefix? "i686" system) + "makefile.linux_x86_asm_gcc_4.X") + (else + "makefile.linux_any_cpu_gcc_4.X"))) + "makefile.machine"))) (replace 'check (lambda _ - (and (zero? (system* "make" "test")) - (zero? (system* "make" "test_7z")) - (zero? (system* "make" "test_7zr")))))))) + (invoke "make" "test") + (invoke "make" "test_7z") + (invoke "make" "test_7zr")))))) (inputs (let ((system (or (%current-target-system) (%current-system)))) @@ -1455,7 +1487,9 @@ handles the 7z format which features very high compression ratios.") (modules '((guix build utils))) (snippet ;; Remove pre-compiled object. - '(delete-file "gzstream.o")))) + '(begin + (delete-file "gzstream.o") + #t)))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -1492,7 +1526,9 @@ functionality in a C++ iostream.") (modules '((guix build utils))) (snippet ;; Delete irrelevant pre-compiled binaries. - '(for-each delete-file (find-files "." "\\.exe$"))))) + '(begin + (for-each delete-file (find-files "." "\\.exe$")) + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -1601,7 +1637,7 @@ or junctions, and always follows hard links.") #t)) (replace 'check (lambda _ - (zero? (system* "./run-tests.sh"))))))) + (invoke "./run-tests.sh")))))) (home-page "https://github.com/twogood/unshield") (synopsis "Extract CAB files from InstallShield installers") (description @@ -1667,7 +1703,7 @@ speed.") (delete 'configure) ; no configure script (add-before 'check 'compile-tests (lambda* (#:key make-flags #:allow-other-keys) - (zero? (apply system* "make" "tests" make-flags)))) + (apply invoke "make" "tests" make-flags))) (add-after 'install 'install-documentation (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1711,14 +1747,11 @@ the actual decompression, the other input and output.") (list "-f" "unix/Makefile" (string-append "prefix=" out) (string-append "MANDIR=" out "/share/man/man1"))) - #:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) #:phases (modify-phases %standard-phases (replace 'build (lambda* (#:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" "generic_gcc" make-flags)))) + (apply invoke "make" "generic_gcc" make-flags))) (delete 'configure)))) (home-page "http://www.info-zip.org/Zip.html") (synopsis "Compression and file packing utility") @@ -1740,7 +1773,6 @@ Compression ratios of 2:1 to 3:1 are common for text files.") (define-public unzip (package (inherit zip) (name "unzip") - (replacement unzip/fixed) (version "6.0") (source (origin @@ -1768,13 +1800,20 @@ Compression ratios of 2:1 to 3:1 are common for text files.") (arguments `(#:phases (modify-phases %standard-phases (delete 'configure) + (add-after 'unpack 'fortify + (lambda _ + ;; Mitigate CVE-2018-1000035, an exploitable buffer overflow. + ;; This environment variable is recommended in 'unix/Makefile' + ;; for passing flags to the C compiler. + (setenv "LOCAL_UNZIP" "-D_FORTIFY_SOURCE=1") + #t)) (replace 'build (lambda* (#:key make-flags #:allow-other-keys) - (zero? (apply system* "make" - `("-j" ,(number->string - (parallel-job-count)) - ,@make-flags - "generic_gcc")))))) + (apply invoke "make" + `("-j" ,(number->string + (parallel-job-count)) + ,@make-flags + "generic_gcc"))))) #:make-flags (list "-f" "unix/Makefile" (string-append "prefix=" %output) (string-append "MANDIR=" %output "/share/man/man1")))) @@ -1791,20 +1830,6 @@ recreates the stored directory structure by default.") (license (license:non-copyleft "file://LICENSE" "See LICENSE in the distribution.")))) -(define unzip/fixed - (package/inherit unzip - (arguments - (substitute-keyword-arguments (package-arguments unzip) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'fortify - (lambda _ - ;; Mitigate CVE-2018-1000035, an exploitable buffer overflow. - ;; This environment variable is recommended in 'unix/Makefile' - ;; for passing flags to the C compiler. - (setenv "LOCAL_UNZIP" "-D_FORTIFY_SOURCE=1") - #t)))))))) - (define-public zziplib (package (name "zziplib") @@ -2151,3 +2176,75 @@ with @code{deflate} but offers more dense compression. The specification of the Brotli Compressed Data Format is defined in RFC 7932.") (license license:expat))) + +(define-public ucl + (package + (name "ucl") + (version "1.03") + (source (origin + (method url-fetch) + (uri (string-append "http://www.oberhumer.com/opensource/" + name "/download/" name "-" version ".tar.gz")) + (sha256 + (base32 + "0j036lkwsxvm15gr29n8wn07cqq79dswjs9k54939ms5zngjjrdq")))) + (build-system gnu-build-system) + (home-page "http://www.oberhumer.com/opensource/ucl/") + (synopsis "Portable lossless data compression library") + (description "UCL implements a number of compression algorithms that +achieve an excellent compression ratio while allowing fast decompression. +Decompression requires no additional memory. + +Compared to LZO, the UCL algorithms achieve a better compression ratio but +decompression is a little bit slower.") + (license license:gpl2+))) + +(define-public upx + (package + (name "upx") + (version "3.94") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/upx/upx/releases/download/v" + version "/" name "-" version "-src.tar.xz")) + (sha256 + (base32 + "08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1")))) + (build-system gnu-build-system) + (native-inputs `(("perl" ,perl) + ("ucl" ,ucl))) + (inputs `(("zlib" ,zlib))) + (arguments + `(#:make-flags + (list "all" + ;; CHECK_WHITESPACE does not seem to work. + ;; See https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/upx. + "CHECK_WHITESPACE=true") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (delete 'install) + (add-before 'build 'patch-exec-bin-sh + (lambda _ + (substitute* (find-files "Makefile") + (("/bin/sh") (which "sh"))) + (substitute* "src/Makefile" + (("/bin/sh") (which "sh"))) + #t)) + (add-after 'build 'install-upx + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (mkdir-p bin) + (copy-file "src/upx.out" (string-append bin "/upx"))) + #t)) + ))) + (home-page "https://upx.github.io/") + (synopsis "Compression tool for executables") + (description + "The Ultimate Packer for eXecutables (UPX) is an executable file +compressor. UPX typically reduces the file size of programs and shared +libraries by around 50%--70%, thus reducing disk space, network load times, +download times, and other distribution and storage costs.") + (license license:gpl2+))) diff --git a/gnu/packages/compton.scm b/gnu/packages/compton.scm index 323807091a..dec9a94eba 100644 --- a/gnu/packages/compton.scm +++ b/gnu/packages/compton.scm @@ -67,7 +67,7 @@ ("libdrm" ,libdrm) ("pkg-config" ,pkg-config) ("python" ,python) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (arguments `(#:make-flags (list "CC=gcc" diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm index 7e87cd8968..55dd4a632b 100644 --- a/gnu/packages/connman.scm +++ b/gnu/packages/connman.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017 Ricardo Wurmus -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,7 +43,7 @@ (define-public connman (package (name "connman") - (version "1.35") + (version "1.36") (source (origin (method url-fetch) @@ -51,7 +51,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1apj5j25kj7v1bsfv3nh54aiq873nfrsjfbj85p5qm3ihfwxxmv6")))) + "0x00dq5c2frz06md3g5y0jh5kbcj2hrfl5qjcqga8gs4ri0xp2f7")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 3e9c39df61..cc5375095b 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -29,7 +29,9 @@ #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages check) + #:use-module (gnu packages code) #:use-module (gnu packages compression) + #:use-module (gnu packages llvm) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls)) @@ -124,3 +126,148 @@ unified access to TCP/UDP sockets, serial ports, console, and files streams. It also allows a server application to wait for any activity on any combination of these streams.") (license license:bsd-3))) + +(define-public xsimd + (package + (name "xsimd") + (version "4.1.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/QuantStack/xsimd/archive/" + version ".tar.gz")) + (sha256 + (base32 + "0x05l4xpqr9b66sm6lkf48n6x7999ks921x6k2hzkkg6mh3gqd46")) + (file-name (string-append name "-" version ".tar.gz")))) + (home-page "https://github.com/QuantStack/xsimd") + (build-system cmake-build-system) + (arguments + `(#:test-target "xtest")) + (native-inputs + `(("googletest" ,googletest))) + (synopsis "C++ wrappers for SIMD intrinsics and math implementations") + (description "xsimd provides a unified means for using SIMD features for +library authors. Namely, it enables manipulation of batches of numbers with +the same arithmetic operators as for single values. It also provides +accelerated implementation of common mathematical functions operating on +batches.") + (license license:bsd-3))) + +(define-public fifo-map + (let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9") + (revision "0") + (version (git-version "1.1.1" revision commit))) + (package + (name "fifo-map") + (version version) + (home-page "https://github.com/nlohmann/fifo_map") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (sha256 + (base32 + "0pi77b75kp0l7z454ihcd14nzpi3nc5m4nyjbsgy5f9bw3676196")) + (patches (search-patches "fifo-map-remove-catch.hpp.patch" + "fifo-map-fix-flags-for-gcc.patch")) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet '(delete-file-recursively "./test/thirdparty")))) + (native-inputs + `(("catch2" ,catch-framework2))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "./unit"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (inc (string-append out "/include/fifo_map"))) + (with-directory-excursion + (string-append "../" ,name "-" ,version "-checkout") + (install-file "src/fifo_map.hpp" inc) + #t))))))) + (synopsis "FIFO-ordered associative container for C++") + (description "Fifo_map is a C++ header only library for associative +container which uses the order in which keys were inserted to the container +as ordering relation.") + (license license:expat)))) + +(define-public json-modern-cxx + (package + (name "json-modern-cxx") + (version "3.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/nlohmann/json/archive/v" version ".tar.gz")) + (sha256 + (base32 + "0m5fhdpx2qll933db2nsi30nns3cifavzvijzz6mxhdkpmngmzz8")) + (file-name (string-append name "-" version ".tar.gz")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "./third_party") + (delete-file-recursively "./test/thirdparty") + (delete-file-recursively "./benchmarks/thirdparty") + ;; Splits catch and fifo_map + (with-directory-excursion "test/src" + (let ((files (find-files "." ".*\\.cpp"))) + (substitute* files + (("#include ?\"(catch.hpp)\"" all catch-hpp) + (string-append "#include "))) + (substitute* files + (("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp) + (string-append + "#include "))))))))) + (native-inputs + `(("amalgamate" ,amalgamate))) + (inputs + `(("catch2" ,catch-framework2) + ("fifo-map" ,fifo-map))) + (home-page "https://github.com/nlohmann/json") + (build-system cmake-build-system) + (synopsis "JSON parser and printer library for C++") + (description "JSON for Modern C++ is a C++ JSON library that provides +intutive syntax and trivial integration.") + (license license:expat))) + +(define-public xtl + (package + (name "xtl") + (version "0.4.8") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/QuantStack/xtl/archive/" + version ".tar.gz")) + (sha256 + (base32 + "05bcz9y590b77bxcip0k31rgsapmkwqi1smvsvc84zz7m87d4jvy")) + (file-name (string-append name "-" version ".tar.gz")))) + (native-inputs + `(("googletest" ,googletest) + ("json-modern-cxx" ,json-modern-cxx))) + (arguments + `(#:configure-flags + '("-DBUILD_TESTS=ON") + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* _ + (with-directory-excursion "test" + (invoke "./test_xtl") + #t)))))) + (home-page "https://github.com/QuantStack/xtl") + (build-system cmake-build-system) + (synopsis "C++ template library providing some basic tools") + (description "xtl is a C++ header-only template library providing basic +tools (containers, algorithms) used by other QuantStack packages.") + (license license:bsd-3))) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index bc95fd2aa4..5d4af23227 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -36,7 +36,9 @@ #:use-module (gnu packages mpi) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages statistics) + #:use-module (gnu packages tls) #:use-module (gnu packages web)) (define-public r-tidyverse @@ -167,21 +169,18 @@ such as copy/paste from an R session.") (define-public r-callr (package (name "r-callr") - (version "2.0.3") + (version "2.0.4") (source (origin (method url-fetch) (uri (cran-uri "callr" version)) (sha256 (base32 - "1k3mflgn10hcvy74y4pbigpv74zb66fz1phfd3c8isqmn88xbxzi")))) + "1053qqq632z94pqq2v5dynjpgyv1b1c8zvidmcllw7zn8zha8gqf")))) (build-system r-build-system) (propagated-inputs - `(("r-assertthat" ,r-assertthat) - ("r-crayon" ,r-crayon) - ("r-debugme" ,r-debugme) - ("r-r6" ,r-r6) - ("r-testthat" ,r-testthat))) + `(("r-r6" ,r-r6) + ("r-processx" ,r-processx))) (home-page "https://github.com/r-lib/callr#readme") (synopsis "Call R from R") (description @@ -219,14 +218,14 @@ the embedded @code{RapidXML} C++ library.") (define-public r-modelr (package (name "r-modelr") - (version "0.1.1") + (version "0.1.2") (source (origin (method url-fetch) (uri (cran-uri "modelr" version)) (sha256 (base32 - "1rqw0b583vp107zqp4h3wj51dvv4hb3wszfr1f5f48xassc53f95")))) + "09whg3q5xq6csbqwgwfwav09vda8vgady5j70sk52xcn232k363a")))) (build-system r-build-system) (propagated-inputs `(("r-broom" ,r-broom) @@ -271,13 +270,13 @@ embedded @url{https://github.com/WizardMac/ReadStat,ReadStat} C library.") (define-public r-amap (package (name "r-amap") - (version "0.8-14") + (version "0.8-16") (source (origin (method url-fetch) (uri (cran-uri "amap" version)) (sha256 (base32 - "1dz37z9v4zvyvqrs4xvpfv468jwvpxav60qn2w0049bw8llj6xdl")))) + "1qnl2x98x64iaipkx5126rsddq2sx5ml43h75xyiyn30yvbmlxyk")))) (build-system r-build-system) (inputs `(("gfortran" ,gfortran))) @@ -316,14 +315,14 @@ and several other tools.") (define-public r-abbyyr (package (name "r-abbyyr") - (version "0.5.1") + (version "0.5.4") (source (origin (method url-fetch) (uri (cran-uri "abbyyR" version)) (sha256 (base32 - "1s8zf18sh0s89vk3dl09fzrq50csmmfvmsanf5vfkv9n5lx6pklg")))) + "1jh1c1ad6mgw7brdh2isnza1qpjlfxnqr7jl76yd93axyfl76xjx")))) (properties `((upstream-name . "abbyyR"))) (build-system r-build-system) (propagated-inputs @@ -427,13 +426,13 @@ error stream.") (define-public r-rcpp (package (name "r-rcpp") - (version "0.12.16") + (version "0.12.17") (source (origin (method url-fetch) (uri (cran-uri "Rcpp" version)) (sha256 - (base32 "1rm8hcy72p1jvxikvmkwg20pjqmvmfvqb45lfghmddp2adp67qfl")))) + (base32 "08xg8h3w25sdb3xr18g9pa0x8cirkdgljqapxmw56ss1j9fc89s2")))) (build-system r-build-system) (home-page "http://www.rcpp.org") (synopsis "Seamless R and C++ integration") @@ -653,14 +652,14 @@ rows, dropping names) to see if the modified versions are identical.") (define-public r-dendextend (package (name "r-dendextend") - (version "1.7.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (cran-uri "dendextend" version)) (sha256 (base32 - "1krvqadnnh53xx5ql7bwzxaif6a317jzbs1m00gnc6jnj03rfl5d")))) + "1virn3c232xwcq3d0hhkgjh5gpzl01s39iwii5gxcm9mnsxjzdrh")))) (build-system r-build-system) (propagated-inputs `(("r-fpc" ,r-fpc) @@ -729,14 +728,14 @@ any subsequent lookup as it keeps the hash table in memory.") (define-public r-ff (package (name "r-ff") - (version "2.2-13") + (version "2.2-14") (source (origin (method url-fetch) (uri (cran-uri "ff" version)) (sha256 (base32 - "1nvd6kx46xzyc99a44mgynd94pvd2h495m5a7b1g67k5w2phiywb")))) + "1w724q4jpzbvzpilb2ifviaxkjgk9lzwxz9gksnvicbmfa20fqqw")))) (build-system r-build-system) (propagated-inputs `(("r-bit" ,r-bit))) (home-page "http://ff.r-forge.r-project.org/") @@ -843,23 +842,26 @@ package also provides a C++ API, that works with or without Rcpp.") (define-public r-ggally (package (name "r-ggally") - (version "1.3.2") + (version "1.4.0") (source (origin (method url-fetch) (uri (cran-uri "GGally" version)) (sha256 (base32 - "02px7j28wzbhcgcwm2m0pxb6g7s5zvphl64ix55pkvag4m2ky57l")))) + "1zjmcc5bzagvy7c5cmdcl39xmx07fwi98yrj4i05w7y40kqcsiws")))) (properties `((upstream-name . "GGally"))) (build-system r-build-system) + (inputs + `(("libressl" ,libressl))) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) ("r-gtable" ,r-gtable) ("r-plyr" ,r-plyr) ("r-progress" ,r-progress) ("r-rcolorbrewer" ,r-rcolorbrewer) - ("r-reshape" ,r-reshape))) + ("r-reshape" ,r-reshape) + ("r-rlang" ,r-rlang))) (home-page "https://ggobi.github.io/ggally") (synopsis "Extension to ggplot2") (description @@ -1077,13 +1079,13 @@ by Li, Brown, Huang, and Bickel") (define-public r-inline (package (name "r-inline") - (version "0.3.14") + (version "0.3.15") (source (origin (method url-fetch) (uri (cran-uri "inline" version)) (sha256 (base32 - "0cf9vya9h4znwgp6s1nayqqmh6mwyw7jl0isk1nx4j2ijszxcd7x")))) + "0s4wssvpan189fijahknxq5s22ww9bzmdlmyhnra748r7khky17z")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/inline") (synopsis "Functions to inline C, C++, Fortran function calls from R") @@ -1122,14 +1124,14 @@ classes in the @code{stats4} package.") (define-public r-emdbook (package (name "r-emdbook") - (version "1.3.9") + (version "1.3.10") (source (origin (method url-fetch) (uri (cran-uri "emdbook" version)) (sha256 (base32 - "09xbdyw8a4pvrsg3ryr8drby0njy4avc5wsjj4ffibdaicpchy69")))) + "0880cx6rqm9vgd2zxnd2k0igfl80gy7ak15w36clwlzavab59hmv")))) (build-system r-build-system) (propagated-inputs `(("r-bbmle" ,r-bbmle) @@ -1234,14 +1236,14 @@ data). Weighted versions of MLE, MME and QME are available.") (define-public r-energy (package (name "r-energy") - (version "1.7-2") + (version "1.7-4") (source (origin (method url-fetch) (uri (cran-uri "energy" version)) (sha256 (base32 - "19c7bgjnm4ggf7w5mk64c5shkma3sa9wc8x117iqv7pk1bvvyy3p")))) + "12skvlridfq4jd5mh0yxl79ps0zi2xnlh4hsdgxad0gm7qky8awd")))) (build-system r-build-system) (propagated-inputs `(("r-boot" ,r-boot) @@ -1287,14 +1289,14 @@ George Marsaglia are included.") (define-public r-ksamples (package (name "r-ksamples") - (version "1.2-7") + (version "1.2-8") (source (origin (method url-fetch) (uri (cran-uri "kSamples" version)) (sha256 (base32 - "0f19rjngk0lg6s8c6h5l55qpxp8sl4vxj3kpi05cizzncny9b9bj")))) + "15d5q5vpp4wx5rk5kjxjdxpwc8mkq5sbdz8gi07iscrvhzb5rzfr")))) (properties `((upstream-name . "kSamples"))) (build-system r-build-system) (propagated-inputs @@ -1315,14 +1317,14 @@ samples.") (define-public r-cvst (package (name "r-cvst") - (version "0.2-1") + (version "0.2-2") (source (origin (method url-fetch) (uri (cran-uri "CVST" version)) (sha256 (base32 - "17xacyi8cf37rr2xswx96qy7pwkaqq394awdlswykz3qlyzx4zx2")))) + "05l3yzkfrbds09ah9cdwn2sn4ryhq78lz33ryzrgkv176jc8qjw5")))) (properties `((upstream-name . "CVST"))) (build-system r-build-system) (propagated-inputs @@ -1537,14 +1539,14 @@ Delaunay triangulation and convex hull computation.") (define-public r-ddalpha (package (name "r-ddalpha") - (version "1.3.2") + (version "1.3.3") (source (origin (method url-fetch) (uri (cran-uri "ddalpha" version)) (sha256 (base32 - "1i2zcz20zy9xd42kdz09njbkq07mj2pp6f07z6dnwi5hrmvhbh9r")))) + "0g4iqhrz2gym05q40ih6srilyajw2l2mv46pchn65bc7hw4vkgrk")))) (build-system r-build-system) (propagated-inputs `(("r-bh" ,r-bh) @@ -1774,14 +1776,14 @@ for certain use cases.") (define-public r-ggrepel (package (name "r-ggrepel") - (version "0.7.0") + (version "0.8.0") (source (origin (method url-fetch) (uri (cran-uri "ggrepel" version)) (sha256 (base32 - "0g0qfm6g71rv27423c1x846ipilnj213knyzrcr09vrpxc87l618")))) + "1m3p84d6nh9mzzvxb82vgig3ngcvkz86rjwzl9a66ckdf5p611k3")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -1841,23 +1843,98 @@ can be computed between character vectors while taking proper care of encoding or between integer vectors representing generic sequences.") (license license:gpl3+))) +(define-public r-jomo + (package + (name "r-jomo") + (version "2.6-2") + (source + (origin + (method url-fetch) + (uri (cran-uri "jomo" version)) + (sha256 + (base32 + "0zyqwa2y08asj9xqwnngh6da1b9cqcx8pzc9cxwrmgnxd5nnsjb7")))) + (build-system r-build-system) + (propagated-inputs + `(("r-lme4" ,r-lme4) + ("r-survival" ,r-survival))) + (home-page "https://cran.r-project.org/web/packages/jomo/") + (synopsis "Multilevel Joint Modelling Multiple Imputation") + (description + "Similarly to Schafer's package pan, jomo is a package for multilevel +joint modelling multiple imputation @url{Carpenter and Kenward (2013), +http://doi.org/10.1002/9781119942283}. Novel aspects of jomo are the +possibility of handling binary and categorical data through latent normal +variables, the option to use cluster-specific covariance matrices and to +impute compatibly with the substantive model.") + (license license:gpl2))) + +(define-public r-pan + (package + (name "r-pan") + (version "1.4") + (source + (origin + (method url-fetch) + (uri (cran-uri "pan" version)) + (sha256 + (base32 + "1p3nigmhrnlch86g89hn7l0wvkifx3k9n59g0psi95yck43kza76")))) + (build-system r-build-system) + (native-inputs `(("gfortran" ,gfortran))) + (home-page "https://cran.r-project.org/web/packages/pan/") + (synopsis "Multiple imputation for multivariate panel or clustered data") + (description + "This package implements multiple imputation for multivariate panel or +clustered data.") + (license license:gpl3))) + +(define-public r-mitml + (package + (name "r-mitml") + (version "0.3-5") + (source + (origin + (method url-fetch) + (uri (cran-uri "mitml" version)) + (sha256 + (base32 + "1s888r9y2ri39b48h1iypps6lddqkqv3g31l2sjmi2pvyccfpkwb")))) + (build-system r-build-system) + (propagated-inputs + `(("r-haven" ,r-haven) + ("r-jomo" ,r-jomo) + ("r-pan" ,r-pan))) + (home-page "https://cran.r-project.org/web/packages/mitml/") + (synopsis "Tools for multiple imputation in multilevel modeling") + (description + "This package provides tools for multiple imputation of missing data in +multilevel modeling. It includes a user-friendly interface to the packages +pan and jomo, and several functions for visualization, data management and the +analysis of multiply imputed data sets.") + (license license:gpl2+))) + (define-public r-mice (package (name "r-mice") - (version "2.46.0") + (version "3.0.0") (source (origin (method url-fetch) (uri (cran-uri "mice" version)) (sha256 (base32 - "1gjvlk67zvgipfczsca8zqk97vg3sivv82hblsdwp14s7smhjcax")))) + "1p8a5ham90iaak4w17114pdnw535r2l9sxr402yrkc4gbwfbpdlq")))) (build-system r-build-system) (propagated-inputs - `(("r-lattice" ,r-lattice) + `(("r-broom" ,r-broom) + ("r-dplyr" ,r-dplyr) + ("r-lattice" ,r-lattice) ("r-mass" ,r-mass) + ("r-mitml" ,r-mitml) ("r-nnet" ,r-nnet) ("r-rcpp" ,r-rcpp) + ("r-rlang" ,r-rlang) ("r-rpart" ,r-rpart) ("r-survival" ,r-survival))) (home-page "https://cran.r-project.org/web/packages/mice/") @@ -1923,14 +2000,14 @@ programming} (SQP) based solver).") (define-public r-hardyweinberg (package (name "r-hardyweinberg") - (version "1.5.9") + (version "1.6.1") (source (origin (method url-fetch) (uri (cran-uri "HardyWeinberg" version)) (sha256 (base32 - "0qk3lly5qczn61rj0q9xzscppspvk238yjgr4p71pkzkjhiv40jz")))) + "16n8qanxx0p5ny5zqxafn8hwb1xv94y1wig1iql8as5a5qh8lwcz")))) (properties `((upstream-name . "HardyWeinberg"))) (build-system r-build-system) (propagated-inputs @@ -1955,14 +2032,14 @@ acceptance regions, log-ratio plots and Q-Q plots.") (define-public r-sm (package (name "r-sm") - (version "2.2-5.4") + (version "2.2-5.5") (source (origin (method url-fetch) (uri (cran-uri "sm" version)) (sha256 (base32 - "0hnq5s2fv94gaj0nyqc1vjdjd64vsp9z23nqa8hxvjcaf996rwj9")))) + "1rw2mxygxsmk8mn4wag1ppjgzk0rlvh6zd8q02qrhjrn9jhi5qj3")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) (home-page "http://www.stats.gla.ac.uk/~adrian/sm/") @@ -2146,14 +2223,14 @@ Analysis with R\" by Michael Friendly and David Meyer (2015).") (define-public r-ica (package (name "r-ica") - (version "1.0-1") + (version "1.0-2") (source (origin (method url-fetch) (uri (cran-uri "ica" version)) (sha256 (base32 - "1bkl4a72l0k6gm82l3jxnib898z20cw17zg81jj39l9dn65rlmcq")))) + "0ya1nph1zwhad0bfz4yxs27kl45yk1dhnphdlrq34p8pqrpmj8g7")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/ica/") (synopsis "Independent component analysis") @@ -2166,14 +2243,14 @@ of Eigenmatrices} (JADE).") (define-public r-dtw (package (name "r-dtw") - (version "1.18-1") + (version "1.20-1") (source (origin (method url-fetch) (uri (cran-uri "dtw" version)) (sha256 (base32 - "1b91vahba09cqlb8b1ry4dlv4rbldb4s2p6w52gmyw31vxdv5nnr")))) + "1w301xwizncy5r8v9rwwdxfshydgp3l1pnjla1fjn6n8lx3imjj3")))) (build-system r-build-system) (propagated-inputs `(("r-proxy" ,r-proxy))) (home-page "http://dtw.r-forge.r-project.org/") @@ -2256,14 +2333,14 @@ plots in @code{ggplot2}.") (define-public r-ggjoy (package (name "r-ggjoy") - (version "0.4.0") + (version "0.4.1") (source (origin (method url-fetch) (uri (cran-uri "ggjoy" version)) (sha256 (base32 - "1s24zn7gmk52bvjjhanxby7rxbnc2yfl0nx5nv7x7z0zja8gg7nb")))) + "012md2m0jqfcccb933j423m3ck31v3p0pd41gjxpyg9082y7ixyj")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -2341,20 +2418,20 @@ constants, and control debugging of packages via environment variables.") (define-public r-processx (package (name "r-processx") - (version "2.0.0.1") + (version "3.1.0") (source (origin (method url-fetch) (uri (cran-uri "processx" version)) (sha256 (base32 - "0yw23lp9xjvbpswzghkmjiayw7p19hbvmgv58k3i6b8g5nav4qcg")))) + "0wjr3cqwvnjxbvln25szffmkns5w0xysivdjr6chxap4nh515b0i")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) ("r-crayon" ,r-crayon) - ("r-debugme" ,r-debugme) - ("r-r6" ,r-r6))) + ("r-r6" ,r-r6) + ("r-testthat" ,r-testthat))) (home-page "https://github.com/r-lib/processx3") (synopsis "Execute and control system processes") (description @@ -2370,14 +2447,14 @@ timeout. It can also poll several processes at once.") (define-public r-tsp (package (name "r-tsp") - (version "1.1-5") + (version "1.1-6") (source (origin (method url-fetch) (uri (cran-uri "TSP" version)) (sha256 (base32 - "03xxfr5kk4zhzpb1q1pwncdp0dhchm9b48wzhvvxn2dxf3mnby2w")))) + "1ym97xl2icjpfkrici0wig29w06bb704hp51v7h5liygjlwpkhlc")))) (properties `((upstream-name . "TSP"))) (build-system r-build-system) (propagated-inputs `(("r-foreach" ,r-foreach))) @@ -2489,46 +2566,6 @@ dissimilarity plots, and visual assessment of cluster tendency plots (VAT and iVAT).") (license license:gpl3))) -(define-public r-heatmaply - (package - (name "r-heatmaply") - (version "0.14.1") - (source - (origin - (method url-fetch) - (uri (cran-uri "heatmaply" version)) - (sha256 - (base32 - "03p2caclhfgqgpx3wwck5h06jy3mxgs05gjmwkb7hmwghkjh41jc")))) - (build-system r-build-system) - (propagated-inputs - `(("r-assertthat" ,r-assertthat) - ("r-colorspace" ,r-colorspace) - ("r-dendextend" ,r-dendextend) - ("r-ggplot2" ,r-ggplot2) - ("r-gplots" ,r-gplots) - ("r-htmlwidgets" ,r-htmlwidgets) - ("r-magrittr" ,r-magrittr) - ("r-plotly" ,r-plotly) - ("r-rcolorbrewer" ,r-rcolorbrewer) - ("r-reshape2" ,r-reshape2) - ("r-scales" ,r-scales) - ("r-seriation" ,r-seriation) - ("r-viridis" ,r-viridis) - ("r-webshot" ,r-webshot))) - (home-page "https://cran.r-project.org/package=heatmaply") - (synopsis "Interactive cluster heat maps using plotly") - (description "Heatmaps are used in many fields for visualizing -observations, correlations, missing values patterns, and more. Interactive -heatmaps allow the inspection of specific value by hovering the mouse over a -cell, as well as zooming into a region of the heatmap by dragging a rectangle -around the relevant area. This work is based on the @code{ggplot2} and -@code{plotly.js} engine. It produces similar heatmaps as @code{heatmap.2} or -@code{d3heatmap}, with the advantage of speed, the ability to zoom from the -dendrogram panes, and the placing of factor variables in the sides of the -heatmap.") - (license (list license:gpl2 license:gpl3)))) - (define-public r-xfun (package (name "r-xfun") @@ -2551,14 +2588,14 @@ packages maintained by Yihui Xie.") (define-public r-utf8 (package (name "r-utf8") - (version "1.1.3") + (version "1.1.4") (source (origin (method url-fetch) (uri (cran-uri "utf8" version)) (sha256 (base32 - "03s4j6059q0nly68vpk6wy3p3f5ypakw93fj35kzd82b4z1r9cs3")))) + "0m0ywg8k3blfiahxvh1i4zn9dksrlc937d2lbza5fc38zjnrrnpn")))) (build-system r-build-system) (home-page "https://github.com/patperry/r-utf8") (synopsis "Unicode text processing") @@ -2571,14 +2608,14 @@ display.") (define-public r-pillar (package (name "r-pillar") - (version "1.2.2") + (version "1.2.3") (source (origin (method url-fetch) (uri (cran-uri "pillar" version)) (sha256 (base32 - "1kmqvny3rw4p5kgxz6mhqfpp7j3nnpp22dfai4kjrr2cfmj6wvb7")))) + "1rzhssprqgam1nq3s0f5rzxhxsq02azcghvxf6k8kmsmddf1n7f8")))) (build-system r-build-system) (propagated-inputs `(("r-cli" ,r-cli) @@ -2859,14 +2896,14 @@ financial trading strategies.") (define-public r-tseries (package (name "r-tseries") - (version "0.10-44") + (version "0.10-45") (source (origin (method url-fetch) (uri (cran-uri "tseries" version)) (sha256 (base32 - "0nz6v76hsxcprpgf84al5r0p08sr9qacqal4adndz9wmg604l4ag")))) + "14s1glh5zzdvdl05a2z7ymhgf962svxf8xircghg5sc649lb33n0")))) (build-system r-build-system) (propagated-inputs `(("r-quadprog" ,r-quadprog) @@ -3125,18 +3162,19 @@ creation and manipulation of WAVE audio files.") (define-public r-np (package (name "r-np") - (version "0.60-6") + (version "0.60-8") (source (origin (method url-fetch) (uri (cran-uri "np" version)) (sha256 (base32 - "1y72x5j9j9mcgcy2xizk31gl843hfkngxdn8s4qw7yhw2qj79hsr")))) + "17h67a510wh83800ri6g02wvznrlhigxni8shyijz1iaxcpk8k4j")))) (build-system r-build-system) (propagated-inputs `(("r-boot" ,r-boot) ("r-cubature" ,r-cubature) + ("r-quadprog" ,r-quadprog) ("r-quantreg" ,r-quantreg))) (home-page "https://github.com/JeffreyRacine/R-Package-np") (synopsis "Non-parametric kernel smoothing methods for mixed data types") @@ -3190,6 +3228,7 @@ exponentiation.") ("r-ggplot2" ,r-ggplot2) ("r-gplots" ,r-gplots) ("r-htmlwidgets" ,r-htmlwidgets) + ("r-knitr" ,r-knitr) ; needed for vignettes ("r-magrittr" ,r-magrittr) ("r-plotly" ,r-plotly) ("r-rcolorbrewer" ,r-rcolorbrewer) @@ -3262,18 +3301,19 @@ files.") (define-public r-shinyace (package (name "r-shinyace") - (version "0.2.1") + (version "0.3.1") (source (origin (method url-fetch) (uri (cran-uri "shinyAce" version)) (sha256 (base32 - "0ycka8rsw0178q9klfid97vdn5cbyx3r778nis5s3dqipdyazdm9")))) + "1hqgszbiv99dibhwr21v21ll4s2hjn3ccqdicsm0z3gk77bh8iyb")))) (properties `((upstream-name . "shinyAce"))) (build-system r-build-system) (propagated-inputs - `(("r-shiny" ,r-shiny))) + `(("r-shiny" ,r-shiny) + ("r-jsonlite" ,r-jsonlite))) (home-page "http://cran.r-project.org/web/packages/shinyAce") (synopsis "Ace editor bindings for Shiny") (description @@ -3383,14 +3423,14 @@ It also includes interpolation functions.") (define-public r-psych (package (name "r-psych") - (version "1.8.3.3") + (version "1.8.4") (source (origin (method url-fetch) (uri (cran-uri "psych" version)) (sha256 (base32 - "1zhp8j81nkzd65168zdw9ylypb9n07ajan21x0wqcn8jdbg970sg")))) + "1kzv9nc7rwn1sj1zxd8xrbs6c7qlka7j2c8lsr4f20znkd3qx8gf")))) (build-system r-build-system) (propagated-inputs `(("r-foreign" ,r-foreign) @@ -3765,19 +3805,41 @@ measuring the accuracy of ABC estimates, and to calculate the misclassification probabilities of different models.") (license license:gpl3+))) +(define-public r-zip + (package + (name "r-zip") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "zip" version)) + (sha256 + (base32 + "0rgr9pcdhdq3k8n29h2ircp3ri1ibhrx81gja1y7331v15xyrabg")))) + (build-system r-build-system) + (home-page "https://github.com/gaborcsardi/zip") + (synopsis "Cross-platform Zip compression") + (description + "This package provides a cross-platform Zip compression library for R. +It is a replacement for the @code{zip} function, that does not require any +additional external tools on any platform.") + (license license:cc0))) + (define-public r-openxlsx (package (name "r-openxlsx") - (version "4.0.17") + (version "4.1.0") (source (origin (method url-fetch) (uri (cran-uri "openxlsx" version)) (sha256 (base32 - "1mq4lasp12kc30sxcsmz9gskd114l8s7z7wd6svv2nm8qllrhsqi")))) + "1n7z22pm78xa77fvn77kdn68az6xzxk36y11sqf0w6h6adri4yxb")))) (build-system r-build-system) - (propagated-inputs `(("r-rcpp" ,r-rcpp))) + (propagated-inputs + `(("r-rcpp" ,r-rcpp) + ("r-zip" ,r-zip))) (home-page "https://github.com/awalker89/openxlsx") (synopsis "Read, write and edit XLSX files") (description @@ -3853,14 +3915,14 @@ exchanging spatial objects with other R packages.") (define-public r-later (package (name "r-later") - (version "0.7.1") + (version "0.7.2") (source (origin (method url-fetch) (uri (cran-uri "later" version)) (sha256 (base32 - "0z9jymmclkq9zcg1fd8p6gsnm5z1sn3n9pfz3bs03qjrkbizgrvz")))) + "0l5ln7sjyi2rj7bx8iamxykqlfarv05zb9882ikizppb1cr1hgyw")))) (build-system r-build-system) (propagated-inputs `(("r-bh" ,r-bh) @@ -3973,3 +4035,158 @@ including the ability to summarize or get a high-level view of code, determining dependencies between variables, code improvement suggestions.") ;; Any version of the GPL (license (list license:gpl2+ license:gpl3+)))) + +(define-public r-rappdirs + (package + (name "r-rappdirs") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "rappdirs" version)) + (sha256 + (base32 + "0ji6sg3bdn5gazkq14xmmcq7jnbsyxw4lzmmbgv6526j2vn93n1g")))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/rappdirs/") + (synopsis "Determine where to save data, caches, and logs") + (description + "This package provides an easy way to determine which directories on the +user's computer should be used to save data, caches and logs. It is a port of +Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.") + (license license:expat))) + +(define-public r-learnr + (package + (name "r-learnr") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "learnr" version)) + (sha256 + (base32 + "1z04c1djg7ghsl7p9ypc6k5m7snahnmjy10xmrzqfayx1wkfkn9n")))) + (build-system r-build-system) + (propagated-inputs + `(("r-evaluate" ,r-evaluate) + ("r-htmltools" ,r-htmltools) + ("r-htmlwidgets" ,r-htmlwidgets) + ("r-jsonlite" ,r-jsonlite) + ("r-knitr" ,r-knitr) + ("r-markdown" ,r-markdown) + ("r-rappdirs" ,r-rappdirs) + ("r-rmarkdown" ,r-rmarkdown) + ("r-rprojroot" ,r-rprojroot) + ("r-shiny" ,r-shiny) + ("r-withr" ,r-withr))) + (home-page "https://rstudio.github.io/learnr/") + (synopsis "Interactive tutorials for R") + (description + "This package provides tools to create interactive tutorials using R +Markdown. Use a combination of narrative, figures, videos, exercises, and +quizzes to create self-paced tutorials for learning about R and R packages.") + (license license:asl2.0))) + +(define-public r-analytics + (package + (name "r-analytics") + (version "2.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "analytics" version)) + (sha256 + (base32 + "1jkdjqc3fnvvsgi6x9ncf36rxzq0a55cmgkcv92mfmpcramg2lk6")))) + (build-system r-build-system) + (propagated-inputs + `(("r-car" ,r-car) + ("r-cluster" ,r-cluster) + ("r-fractal" ,r-fractal) + ("r-lmtest" ,r-lmtest) + ("r-mass" ,r-mass) + ("r-np" ,r-np) + ("r-powerplus" ,r-powerplus) + ("r-robust" ,r-robust) + ("r-trend" ,r-trend) + ("r-tsa" ,r-tsa) + ("r-urca" ,r-urca))) + (home-page "https://cran.r-project.org/web/packages/analytics/") + (synopsis "Collection of data analysis tools") + (description + "This package is a collection of data analysis tools. It includes tools +for regression outlier detection in a fitted linear model, stationary +bootstrap using a truncated geometric distribution, a comprehensive test for +weak stationarity, column means by group, weighted biplots, and a heuristic to +obtain a better initial configuration in non-metric MDS.") + (license license:gpl2))) + +(define-public r-reticulate + (package + (name "r-reticulate") + (version "1.7") + (source + (origin + (method url-fetch) + (uri (cran-uri "reticulate" version)) + (sha256 + (base32 + "1ghhc4hbmwpp79ilbdbshynhs61i8sv8z6p1al04jy7ij0lcglxy")))) + (build-system r-build-system) + (inputs `(("python" ,python))) + (propagated-inputs + `(("r-jsonlite" ,r-jsonlite) + ("r-matrix" ,r-matrix) + ("r-rcpp" ,r-rcpp))) + (home-page "https://github.com/rstudio/reticulate") + (synopsis "R interface to Python") + (description + "This package provides an interface from R to Python modules, classes, +and functions. When calling into Python, R data types are automatically +converted to their equivalent Python types. When values are returned from +Python to R they are converted back to R types.") + (license license:asl2.0))) + +(define-public r-bibtex + (package + (name "r-bibtex") + (version "0.4.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "bibtex" version)) + (sha256 + (base32 + "0wl3925ryd54g1nv3ncwllc493d39dpgy5md61940h69c0van1hz")))) + (build-system r-build-system) + (propagated-inputs `(("r-stringr" ,r-stringr))) + (home-page "https://github.com/romainfrancois/bibtex") + (synopsis "Bibtex parser") + (description "This package provides a utility for R to parse a bibtex +file.") + (license license:gpl2+))) + +(define-public r-ggseqlogo + (package + (name "r-ggseqlogo") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "ggseqlogo" version)) + (sha256 + (base32 + "13q6kcpxrqxqbji889fx63p0nsi08lk5yymkchig75r5k1d18ky1")))) + (build-system r-build-system) + (propagated-inputs `(("r-ggplot2" ,r-ggplot2))) + (home-page "https://github.com/omarwagih/ggseqlogo") + (synopsis "ggplot2 extension for drawing genetic sequence logos") + (description + "The range of functions provided by this package makes it possible to +draw highly versatile genomic sequence logos. Features include, but are not +limited to, modifying colour schemes and fonts used to draw the logo, +generating multiple logo plots, and aiding the visualisation with annotations. +Sequence logos can easily be combined with other ggplot2 plots.") + ;; Unspecified version of the LGPL. + (license license:lgpl3+))) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 0f5997951c..bbd779ae4e 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -1,8 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -181,8 +182,10 @@ base compiler and using LIBC (which may be either a libc package or #f.)" (define (cross-gcc-snippet target) "Return GCC snippet needed for TARGET." (cond ((target-mingw? target) - '(copy-recursively "libstdc++-v3/config/os/mingw32-w64" - "libstdc++-v3/config/os/newlib")) + '(begin + (copy-recursively "libstdc++-v3/config/os/mingw32-w64" + "libstdc++-v3/config/os/newlib") + #t)) (else #f))) (define* (cross-gcc target @@ -291,8 +294,8 @@ target that libc." (setenv "ARCH" ,(system->linux-architecture target)) (format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH")) - (and (zero? (system* "make" ,(system->defconfig target))) - (zero? (system* "make" "mrproper" "headers_check")))) + (invoke "make" ,(system->defconfig target)) + (invoke "make" "mrproper" "headers_check")) ,phases)))) (native-inputs `(("cross-gcc" ,xgcc) ("cross-binutils" ,xbinutils) @@ -314,14 +317,14 @@ target that libc." `(#:modules ((guix build gnu-build-system) (guix build utils) (srfi srfi-26)) - #:phases (alist-cons-before - 'configure 'set-cross-headers-path - (lambda* (#:key inputs #:allow-other-keys) - (let* ((mach (assoc-ref inputs "cross-gnumach-headers")) - (cpath (string-append mach "/include"))) - (for-each (cut setenv <> cpath) - ',%gcc-cross-include-paths))) - %standard-phases) + #:phases (modify-phases %standard-phases + (add-before 'configure 'set-cross-headers-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((mach (assoc-ref inputs "cross-gnumach-headers")) + (cpath (string-append mach "/include"))) + (for-each (cut setenv <> cpath) + ',%gcc-cross-include-paths) + #t)))) #:configure-flags (list ,(string-append "--target=" target)) ,@(package-arguments mig))) @@ -352,16 +355,16 @@ target that libc." (srfi srfi-26)) ,@(package-arguments glibc/hurd-headers)) ((#:phases phases) - `(alist-cons-before - 'pre-configure 'set-cross-headers-path - (lambda* (#:key inputs #:allow-other-keys) - (let* ((mach (assoc-ref inputs "gnumach-headers")) - (hurd (assoc-ref inputs "hurd-headers")) - (cpath (string-append mach "/include:" - hurd "/include"))) - (for-each (cut setenv <> cpath) - ',%gcc-cross-include-paths))) - ,phases)))) + `(modify-phases ,phases + (add-before 'pre-configure 'set-cross-headers-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((mach (assoc-ref inputs "gnumach-headers")) + (hurd (assoc-ref inputs "hurd-headers")) + (cpath (string-append mach "/include:" + hurd "/include"))) + (for-each (cut setenv <> cpath) + ',%gcc-cross-include-paths) + #t))))))) (propagated-inputs `(("gnumach-headers" ,xgnumach-headers) ("hurd-headers" ,xhurd-headers))) @@ -382,14 +385,14 @@ target that libc." (srfi srfi-26)) ,@(package-arguments hurd-minimal)) ((#:phases phases) - `(alist-cons-before - 'configure 'set-cross-headers-path - (lambda* (#:key inputs #:allow-other-keys) - (let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers")) - (cpath (string-append glibc-headers "/include"))) - (for-each (cut setenv <> cpath) - ',%gcc-cross-include-paths))) - ,phases)))) + `(modify-phases ,phases + (add-before 'configure 'set-cross-headers-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers")) + (cpath (string-append glibc-headers "/include"))) + (for-each (cut setenv <> cpath) + ',%gcc-cross-include-paths) + #t))))))) (inputs `(("cross-glibc-hurd-headers" ,xglibc/hurd-headers))) @@ -456,17 +459,16 @@ XBINUTILS and the cross tool chain." `(cons ,(string-append "--host=" target) ,flags)) ((#:phases phases) - `(alist-cons-before - 'configure 'set-cross-kernel-headers-path - (lambda* (#:key inputs #:allow-other-keys) - (let* ((kernel (assoc-ref inputs "kernel-headers")) - (cpath (string-append kernel "/include"))) - (for-each (cut setenv <> cpath) - ',%gcc-cross-include-paths) - (setenv "CROSS_LIBRARY_PATH" - (string-append kernel "/lib")) ;for Hurd's libihash - #t)) - ,phases)))) + `(modify-phases ,phases + (add-before 'configure 'set-cross-kernel-headers-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((kernel (assoc-ref inputs "kernel-headers")) + (cpath (string-append kernel "/include"))) + (for-each (cut setenv <> cpath) + ',%gcc-cross-include-paths) + (setenv "CROSS_LIBRARY_PATH" + (string-append kernel "/lib")) ; for Hurd's libihash + #t))))))) ;; Shadow the native "kernel-headers" because glibc's recipe expects the ;; "kernel-headers" input to point to the right thing. diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 9a786def32..929fbb5bc2 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -183,7 +183,8 @@ OpenBSD tool of the same name.") (substitute* "src/crypto.cpp" (("argon2/argon2.h") "argon2.h")) (substitute* "configure.ac" - (("src/argon2/Makefile") "")))) + (("src/argon2/Makefile") "")) + #t)) (sha256 (base32 "09yvkmbqbym3b5md4n96qc1s9sf2n8ji404hagih45rmsj49599x")))) @@ -228,9 +229,11 @@ communication.") "1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837")) (modules '((guix build utils))) ;; Remove bundled dependencies in favour of proper inputs. - (snippet '(for-each delete-file-recursively - (find-files "internal" "^tinyxml2-[0-9]" - #:directories? #t))))) + (snippet '(begin + (for-each delete-file-recursively + (find-files "internal" "^tinyxml2-[0-9]" + #:directories? #t)) + #t)))) (build-system cmake-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -272,8 +275,10 @@ the wrong hands.") "1dmgjcf7mnwc6h72xkvpaqpzxw8vmlnsmzz0s27pg0giwzm3sp0i")) (modules '((guix build utils))) ;; Create relative symbolic links instead of absolute ones to /lib/* - (snippet '(substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/") - "$(LNS) "))))) + (snippet '(begin + (substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/") + "$(LNS) ")) + #t)))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -358,14 +363,14 @@ no man page, refer to the home page for usage details.") (define-public tomb (package (name "tomb") - (version "2.4") + (version "2.5") (source (origin (method url-fetch) (uri (string-append "https://files.dyne.org/tomb/" "Tomb-" version ".tar.gz")) (sha256 (base32 - "1hv1w79as7swqj0n137vz8n8mwvcgwlvd91sdyssz41jarg7f1vr")))) + "12c6qldngaw520gvb02inzkhnxbl4k0dwmddrgnaf7xashy6j0wc")))) (build-system gnu-build-system) (native-inputs `(("sudo" ,sudo))) ;presence needed for 'check' phase (inputs @@ -377,7 +382,8 @@ no man page, refer to the home page for usage details.") ("mlocate" ,mlocate) ("pinentry" ,pinentry) ("qrencode" ,qrencode) - ("steghide" ,steghide))) + ("steghide" ,steghide) + ("util-linux" ,util-linux))) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) ;; TODO: Build and install gtk and qt trays @@ -400,7 +406,7 @@ no man page, refer to the home page for usage details.") (error "program not found:" program))) '("seq" "mkfs.ext4" "pinentry" "sudo" "gpg" "cryptsetup" "gettext" - "qrencode" "steghide"))))) + "qrencode" "steghide" "findmnt"))))) #t))) (delete 'check) (add-after 'wrap 'check @@ -648,12 +654,7 @@ data on your platform, so the seed itself will be as random as possible. ;; fat only checks for Intel optimisations '("--enable-fat") '()) - "--disable-native") ; don't optimise at build time. - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "sh" "autogen.sh")))))) + "--disable-native"))) ;don't optimise at build time (home-page "https://blake2.net/") (synopsis "Library implementing the BLAKE2 family of hash functions") (description @@ -671,7 +672,7 @@ BLAKE.") (define-public rhash (package (name "rhash") - (version "1.3.5") + (version "1.3.6") (source (origin (method url-fetch) @@ -680,32 +681,27 @@ BLAKE.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0bhz3xdl6r06k1bqigdjz42l31iqz2qdpg7zk316i7p2ra56iq4q")))) + "14ngzfgmd1lfp7m78sn49x8ymf2s37nrr67c6p5vas85nrrgjkcn")))) (build-system gnu-build-system) (arguments - `(#:make-flags (list "CC=gcc" - (string-append "PREFIX=" %output)) - #:test-target "test" + `(#:make-flags + ;; The binaries in /bin need some help finding librhash.so.0. + (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) + #:test-target "test" ; ‘make check’ just checks the sources #:phases (modify-phases %standard-phases (replace 'configure + ;; ./configure is not GNU autotools' and doesn't gracefully handle + ;; unrecognized options, so we must call it manually. (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("\\$\\(DESTDIR\\)/etc") - (string-append (assoc-ref outputs "out") "/etc"))) - #t)) - (add-after 'build 'build-library + (invoke "./configure" + (string-append "--prefix=" (assoc-ref outputs "out"))))) + (add-after 'install 'install-library-extras (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "lib-shared" make-flags))) - (add-after 'install 'install-library - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "install-lib-shared" make-flags) (apply invoke - "make" "-C" "librhash" "install-headers" - "install-so-link" make-flags))) - (add-after 'check 'check-library - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "test-shared-lib" make-flags)))))) + "make" "-C" "librhash" + "install-headers" "install-so-link" + make-flags)))))) (home-page "https://sourceforge.net/projects/rhash/") (synopsis "Utility for computing hash sums") (description "RHash is a console utility for calculation and verification diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index d6722702d8..a9cc3acba0 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -50,7 +50,7 @@ (define-public cups-filters (package (name "cups-filters") - (version "1.17.9") + (version "1.20.1") (source(origin (method url-fetch) (uri @@ -58,7 +58,7 @@ "cups-filters-" version ".tar.xz")) (sha256 (base32 - "0i7mvvnq7ayhxn1ajci8h7l3cijzwr9d50p58h0rbsh9hf63zblq")) + "0qix1whz5n4ijnl6d44f1v8nzkpv99wqjyrby8vx6xnpskw5hsxk")) (modules '((guix build utils))) (snippet ;; install backends, banners and filters to cups-filters output @@ -79,7 +79,8 @@ ;; output directory, not CUPS's prefix. (substitute* "configure" (("\\{CUPS_DATADIR\\}/data") - "{prefix}/share/cups/data")))))) + "{prefix}/share/cups/data")) + #t)))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "PREFIX=" %output)) @@ -197,7 +198,8 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") (lambda _ (substitute* "Makedefs.in" (("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@") - (("/bin/sh") (which "sh"))))) + (("/bin/sh") (which "sh"))) + #t)) ;; Make the compressed manpages writable so that the ;; reset-gzip-timestamps phase does not error out. (add-before 'reset-gzip-timestamps 'make-manpages-writable @@ -205,12 +207,14 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") (let* ((out (assoc-ref outputs "out")) (man (string-append out "/share/man"))) (for-each (lambda (file) (chmod file #o644)) - (find-files man "\\.gz"))))) + (find-files man "\\.gz")) + #t))) (add-before 'build 'patch-tests (lambda _ (substitute* "test/ippserver.c" (("# else /\\* HAVE_AVAHI \\*/") - "#elif defined(HAVE_AVAHI)"))))))) + "#elif defined(HAVE_AVAHI)")) + #t))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -248,7 +252,8 @@ device-specific programs to convert and print many types of files.") (lambda _ (substitute* "Makedefs.in" (("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@") - (("/bin/sh") (which "sh"))))) + (("/bin/sh") (which "sh"))) + #t)) (add-before 'check 'patch-tests (lambda _ (let ((filters (assoc-ref %build-inputs "cups-filters")) @@ -306,7 +311,8 @@ device-specific programs to convert and print many types of files.") (("cupsFileFind\\(\"cat\", \"/bin\"") (string-append "cupsFileFind(\"cat\", \"" catpath "\"")) (("cupsFileFind\\(\"cat\", \"/bin:/usr/bin\"") - (string-append "cupsFileFind(\"cat\", \"" catpath "\"")))))) + (string-append "cupsFileFind(\"cat\", \"" catpath "\""))) + #t))) ;; Make the compressed manpages writable so that the ;; reset-gzip-timestamps phase does not error out. (add-before 'reset-gzip-timestamps 'make-manpages-writable @@ -314,7 +320,8 @@ device-specific programs to convert and print many types of files.") (let* ((out (assoc-ref outputs "out")) (man (string-append out "/share/man"))) (for-each (lambda (file) (chmod file #o644)) - (find-files man "\\.gz"))))) + (find-files man "\\.gz")) + #t))) (add-after 'install 'install-cups-filters-symlinks (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) @@ -360,7 +367,9 @@ device-specific programs to convert and print many types of files.") (let ((data "/share/cups/data")) (delete-file-recursively (string-append out data)) (symlink (string-append cups-filters data) - (string-append out data))))))))) + (string-append out data))) + + #t)))))) (inputs `(("avahi" ,avahi) ("gnutls" ,gnutls) @@ -381,8 +390,10 @@ device-specific programs to convert and print many types of files.") (modules '((guix build utils))) (snippet ;; Fix type mismatch. - '(substitute* "prnt/hpcups/genPCLm.cpp" - (("boolean") "bool"))))) + '(begin + (substitute* "prnt/hpcups/genPCLm.cpp" + (("boolean") "bool")) + #t)))) (build-system gnu-build-system) (home-page "http://hplipopensource.com/") (synopsis "HP Printer Drivers") diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index ae8b9600dd..65bc698389 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Efraim Flashner -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Roel Janssen ;;; ;;; This file is part of GNU Guix. @@ -44,20 +44,21 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages ssh) - #:use-module (gnu packages tls)) + #:use-module (gnu packages tls) + #:use-module (gnu packages web)) (define-public curl (package (name "curl") - (version "7.57.0") - (replacement curl-7.59.0) + (version "7.59.0") + (replacement curl-7.60.0) (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" version ".tar.xz")) (sha256 (base32 - "0y3qbjjcxhcvm1yawp3spfssjbskv0g6gyzld6ckif5pf8ygvxpm")))) + "1z310hrjm2vmbcpkyp81dcmj9rk127zkjyawpy2pah0nz6yslkp4")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.2 MiB of man3 pages @@ -66,6 +67,7 @@ ("libidn" ,libidn) ("libssh2" ,libssh2) ("openldap" ,openldap) + ("nghttp2" ,nghttp2 "lib") ("zlib" ,zlib))) (native-inputs `(("perl" ,perl) @@ -125,7 +127,7 @@ ;; The top-level "make check" does "make -C tests quiet-test", which ;; is too quiet. Use the "test" target instead, which is more ;; verbose. - (zero? (system* "make" "-C" "tests" "test"))))))) + (invoke "make" "-C" "tests" "test")))))) (synopsis "Command line tool for transferring data with URL syntax") (description "curl is a command line tool for transferring data with URL syntax, @@ -139,10 +141,10 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define-public curl-7.59.0 +(define-public curl-7.60.0 (package (inherit curl) - (version "7.59.0") + (version "7.60.0") (source (origin (method url-fetch) @@ -150,7 +152,7 @@ tunneling, and so on.") version ".tar.xz")) (sha256 (base32 - "1z310hrjm2vmbcpkyp81dcmj9rk127zkjyawpy2pah0nz6yslkp4")))))) + "1876ck0smbqz3xakm7s6q6gh4zarh9pv3izf4vlzgpc9xn6zydl7")))))) (define-public kurly (package diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 08e97453f9..ab7aad3629 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2013, 2017 Cyril Roelandt ;;; Copyright © 2014, 2016 David Thompson @@ -28,7 +28,7 @@ ;;; Copyright © 2017 Ben Woodcroft ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2017 Pierre Langlois -;;; Copyright © 2015, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2017 Kristofer Buffington ;;; Copyright © 2018 Amirouche Boubekki ;;; Copyright © 2018 Joshua Sierles, Nextjournal @@ -163,14 +163,14 @@ either single machines or networked clusters.") (define-public gdbm (package (name "gdbm") - (version "1.13") + (version "1.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdbm/gdbm-" version ".tar.gz")) (sha256 (base32 - "0lx201q20dvc70f8a3c9s7s18z15inlxvbffph97ngvrgnyjq9cx")))) + "0pxwz3jlwvglq2mrbxvrjgr8pa0aj73p3v9sxmdlj570zw0gzknd")))) (arguments `(#:configure-flags '("--enable-libgdbm-compat"))) (build-system gnu-build-system) (home-page "http://www.gnu.org.ua/software/gdbm") @@ -254,23 +254,22 @@ standard Go idioms.") (("docdir[[:blank:]]*=.*") (string-append "docdir = " doc "/share/doc/bdb"))) - (zero? - (system* "./dist/configure" - (string-append "--prefix=" out) - (string-append "CONFIG_SHELL=" (which "bash")) - (string-append "SHELL=" (which "bash")) + (invoke "./dist/configure" + (string-append "--prefix=" out) + (string-append "CONFIG_SHELL=" (which "bash")) + (string-append "SHELL=" (which "bash")) - ;; Remove 7 MiB of .a files. - "--disable-static" + ;; Remove 7 MiB of .a files. + "--disable-static" - ;; The compatibility mode is needed by some packages, - ;; notably iproute2. - "--enable-compat185" + ;; The compatibility mode is needed by some packages, + ;; notably iproute2. + "--enable-compat185" - ;; The following flag is needed so that the inclusion - ;; of db_cxx.h into C++ files works; it leads to - ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. - "--enable-cxx")))))))) + ;; The following flag is needed so that the inclusion + ;; of db_cxx.h into C++ files works; it leads to + ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. + "--enable-cxx"))))))) (synopsis "Berkeley database") (description "Berkeley DB is an embeddable database allowing developers the choice of @@ -308,28 +307,27 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") (("docdir[[:blank:]]*=.*") (string-append "docdir = " doc "/share/doc/bdb"))) - (zero? - (system* "./dist/configure" - (string-append "--prefix=" out) - (string-append "CONFIG_SHELL=" (which "bash")) - (string-append "SHELL=" (which "bash")) + (invoke "./dist/configure" + (string-append "--prefix=" out) + (string-append "CONFIG_SHELL=" (which "bash")) + (string-append "SHELL=" (which "bash")) - ;; Bdb doesn't recognize aarch64 as an architecture. - ,@(if (string=? "aarch64-linux" (%current-system)) - '("--build=aarch64-unknown-linux-gnu") - '()) + ;; Bdb doesn't recognize aarch64 as an architecture. + ,@(if (string=? "aarch64-linux" (%current-system)) + '("--build=aarch64-unknown-linux-gnu") + '()) - ;; Remove 7 MiB of .a files. - "--disable-static" + ;; Remove 7 MiB of .a files. + "--disable-static" - ;; The compatibility mode is needed by some packages, - ;; notably iproute2. - "--enable-compat185" + ;; The compatibility mode is needed by some packages, + ;; notably iproute2. + "--enable-compat185" - ;; The following flag is needed so that the inclusion - ;; of db_cxx.h into C++ files works; it leads to - ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. - "--enable-cxx")))))))))) + ;; The following flag is needed so that the inclusion + ;; of db_cxx.h into C++ files works; it leads to + ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. + "--enable-cxx"))))))))) (define-public es-dump-restore (package @@ -439,7 +437,8 @@ applications.") (string-append "src/third_party/" dir))) '("pcre-8.41" "scons-2.5.0" "snappy-1.1.3" "valgrind-3.11.0" "wiredtiger" - "yaml-cpp-0.5.3" "zlib-1.2.8")))) + "yaml-cpp-0.5.3" "zlib-1.2.8")) + #t)) (patches (list (search-patch "mongodb-support-unknown-linux-distributions.patch"))))) @@ -596,7 +595,8 @@ RDBMS systems (which are deep in functionality).") (substitute* "cmake/boost.cmake" (("59") ,(match (string-split (package-version boost) #\.) - ((_ minor . _) minor)))))) + ((_ minor . _) minor)))) + #t)) (add-after 'install 'remove-extra-binaries (lambda* (#:key outputs #:allow-other-keys) @@ -627,7 +627,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.1.29") + (version "10.1.33") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.org/f/" @@ -635,7 +635,7 @@ Language.") name "-" version ".tar.gz")) (sha256 (base32 - "1m3ya6c3snnsyscd0waklayqfv0vhws52iizv2j5masj5xhdbfvk")))) + "0bax748j4srsyhw5cs5jvwigndh0zwmf4r2cjvhja31ckx8jqccl")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -682,7 +682,8 @@ Language.") (with-directory-excursion out (for-each delete-file-recursively '("data" "mysql-test" "sql-bench" - "share/man/man1/mysql-test-run.pl.1"))))))))) + "share/man/man1/mysql-test-run.pl.1"))) + #t)))))) (native-inputs `(("bison" ,bison) ("perl" ,perl))) @@ -1007,7 +1008,7 @@ for example from a shell script.") (define-public sqlite (package (name "sqlite") - (version "3.21.0") + (version "3.23.0") (source (origin (method url-fetch) (uri (let ((numeric-version @@ -1019,11 +1020,11 @@ for example from a shell script.") (map (cut string-pad <> 2 #\0) other-digits)) 6 #\0)))))) - (string-append "https://sqlite.org/2017/sqlite-autoconf-" + (string-append "https://sqlite.org/2018/sqlite-autoconf-" numeric-version ".tar.gz"))) (sha256 (base32 - "1qxvzdjwzw6k0kqjfabj86rnq87xdbwbca7laxxdhnh0fmkm3pfp")))) + "0jbf78g3cm5wq77k7sfg8fb6rz44hnp9hs7p5d66fwd000c1lwdp")))) (build-system gnu-build-system) (inputs `(("readline" ,readline))) (arguments @@ -1124,7 +1125,7 @@ extremely small.") (define-public perl-dbix-class (package (name "perl-dbix-class") - (version "0.082840") + (version "0.082841") (source (origin (method url-fetch) @@ -1132,7 +1133,7 @@ extremely small.") "DBIx-Class-" version ".tar.gz")) (sha256 (base32 - "1vw1f756g8m5hq11nqf5dk2cw2y4mqq91ca5p75fn5g3fp8syja0")))) + "1gf3hgv8f9rnr8bl4ljgsqk4aliphmvljhsk4282kvdc4mcgh1fp")))) (build-system perl-build-system) (native-inputs `(("perl-dbd-sqlite" ,perl-dbd-sqlite) @@ -1232,7 +1233,7 @@ introspected and examined.") (define-public perl-dbix-class-schema-loader (package (name "perl-dbix-class-schema-loader") - (version "0.07047") + (version "0.07049") (source (origin (method url-fetch) @@ -1240,7 +1241,7 @@ introspected and examined.") "DBIx-Class-Schema-Loader-" version ".tar.gz")) (sha256 (base32 - "06s2q6xj95600sdlfph57spjk2z1gjs4zwq5b7mz7d5izcxgnwb6")))) + "0r57fv71ypxafb85cpxph1hdqii7ipjwvc19yb6fpkvq2ggcssg8")))) (build-system perl-build-system) (native-inputs `(("perl-config-any" ,perl-config-any) @@ -1486,14 +1487,14 @@ similar to BerkeleyDB, LevelDB, etc.") (define-public redis (package (name "redis") - (version "4.0.2") + (version "4.0.9") (source (origin (method url-fetch) (uri (string-append "http://download.redis.io/releases/redis-" version".tar.gz")) (sha256 (base32 - "04s8cgvwjj1979s3hg8zkwc9pyn3jkjpz5zidp87kfcipifr385i")))) + "0465bv6yxnwmas3wzg07vmrprv2pxhnr56hn5pxrybwf66y76kyz")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; tests related to master/slave and replication fail @@ -1628,12 +1629,7 @@ trees (LSM), for sustained throughput under random insert workloads.") #:configure-flags (list (string-append "--with-libwiredtiger-prefix=" (assoc-ref %build-inputs "wiredtiger"))) - #:make-flags '("GUILE_AUTO_COMPILE=0") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "sh" "bootstrap")))))) + #:make-flags '("GUILE_AUTO_COMPILE=0"))) ;; TODO: Remove microkanren.scm when we have a separate package ;; for it. (native-inputs @@ -1931,20 +1927,22 @@ etc., and an SQL engine for performing simple SQL queries.") (define-public python-lmdb (package (name "python-lmdb") - (version "0.93") + (version "0.94") (source (origin (method url-fetch) (uri (pypi-uri "lmdb" version)) (sha256 (base32 - "0xdpb298fyl68acadbwv5801wcwfpnhc7sm4bnrq1x4bd5dhhsql")) + "1zh38gvkqw1jm5105if6rr7ccbgyxr7k2rm5ygb9ab3bq82pyaww")) (modules '((guix build utils))) (snippet ;; Delete bundled lmdb source files. - '(for-each delete-file (list "lib/lmdb.h" - "lib/mdb.c" - "lib/midl.c" - "lib/midl.h"))))) + '(begin + (for-each delete-file (list "lib/lmdb.h" + "lib/mdb.c" + "lib/midl.c" + "lib/midl.h")) + #t)))) (build-system python-build-system) (inputs `(("lmdb" ,lmdb))) @@ -2063,14 +2061,14 @@ and web services platform functionality.") (define-public r-rmysql (package (name "r-rmysql") - (version "0.10.14") + (version "0.10.15") (source (origin (method url-fetch) (uri (cran-uri "RMySQL" version)) (sha256 (base32 - "01891kn263b02y6addgpy3gn5axg7m10bqbqv7dg9yx9k85am590")))) + "0bmc7w5fnkjaf333sgc0hskiy332m9gmfaxg0yzkjxscpizdw43n")))) (properties `((upstream-name . "RMySQL"))) (build-system r-build-system) (native-inputs diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 01df30c558..e1dd9d1485 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -112,7 +112,7 @@ contains the archive keys used for that.") (define-public debootstrap (package (name "debootstrap") - (version "1.0.95") + (version "1.0.101") (source (origin (method url-fetch) @@ -120,7 +120,7 @@ contains the archive keys used for that.") name "_" version ".tar.gz")) (sha256 (base32 - "1xpd1yblcgwhri64hzgxhalpf5j8gqbmkrsm1fs0pbwiy0wdz0ry")))) + "1p1a81s8hq73byd7256iljdls389x2q7w6srgrgfmx5bl1csnzp3")))) (build-system gnu-build-system) (arguments `(#:phases @@ -129,6 +129,7 @@ contains the archive keys used for that.") (add-after 'unpack 'patch-source (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) + (coreutils (assoc-ref inputs "coreutils")) (wget (assoc-ref inputs "wget")) (debian (assoc-ref inputs "debian-keyring")) (ubuntu (assoc-ref inputs "ubuntu-keyring"))) @@ -141,6 +142,7 @@ contains the archive keys used for that.") (substitute* "scripts/gutsy" (("/usr") ubuntu)) (substitute* "debootstrap" + (("chroot ") (string-append coreutils "/bin/chroot ")) (("=/usr") (string-append "=" out))) (substitute* "functions" (("wget ") (string-append wget "/bin/wget "))) @@ -154,7 +156,8 @@ contains the archive keys used for that.") #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) #:tests? #f)) ; no tests (inputs - `(("debian-keyring" ,debian-archive-keyring) + `(("coreutils" ,coreutils) + ("debian-keyring" ,debian-archive-keyring) ("ubuntu-keyring" ,ubuntu-keyring) ("wget" ,wget))) ;; The following are required for debootstrap to work correctly diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index c12baf4e2b..7cb162918a 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -31,7 +31,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages flex) #:use-module (gnu packages golang) - #:use-module (gnu packages indent) + #:use-module (gnu packages code) #:use-module (gnu packages llvm) #:use-module (gnu packages perl) #:use-module (gnu packages pretty-print) @@ -300,10 +300,7 @@ down the road.") (which "sh")))))) (add-before 'configure 'repack-make (lambda _ - (zero? (system* "tar" "cJf" "./make.tar.xz" ,make-dir)))) - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi")))))))) + (zero? (system* "tar" "cJf" "./make.tar.xz" ,make-dir)))))))) (home-page "https://github.com/losalamos/stress-make") (synopsis "Expose race conditions in Makefiles") (description diff --git a/gnu/packages/dejagnu.scm b/gnu/packages/dejagnu.scm index 05825bad8f..f2aca50f1a 100644 --- a/gnu/packages/dejagnu.scm +++ b/gnu/packages/dejagnu.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès ;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,11 +58,10 @@ ;; The test-suite needs to have a non-empty stdin: ;; . - (zero? - (system "make check < /dev/zero"))) - (begin - (display "test suite cannot be run, skipping\n") - #t)))) + (unless (zero? (system "make check < /dev/zero")) + (error "make check failed"))) + (display "test suite cannot be run, skipping\n")) + #t)) (add-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys) ;; Use the right `expect' binary. @@ -71,7 +71,8 @@ (("^mypath.*$" all) (string-append all "export PATH=" - expect "/bin:$PATH\n"))))))))) + expect "/bin:$PATH\n"))) + #t)))))) (home-page "https://www.gnu.org/software/dejagnu/") (synopsis "GNU software testing framework") diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm index 55f250182d..ec85831d64 100644 --- a/gnu/packages/dictionaries.scm +++ b/gnu/packages/dictionaries.scm @@ -63,7 +63,7 @@ (gz (assoc-ref %build-inputs "gzip")) (texi (assoc-ref %build-inputs "texinfo"))) (setenv "PATH" (string-append gz "/bin")) - (system* (string-append tar "/bin/tar") "xvf" source) + (invoke (string-append tar "/bin/tar") "xvf" source) (chdir (string-append "vera-" ,version)) (mkdir-p info) @@ -71,14 +71,12 @@ ;; XXX: Use '--force' because the document is unhappy ;; with Texinfo 5 (yes, documents can be unhappy.) - (and (zero? - (system* (string-append texi "/bin/makeinfo") - "vera.texi" "--force" "-o" - (string-append info "/vera.info"))) - (zero? - (system* (string-append texi "/bin/makeinfo") - "vera.texi" "--force" "--html" "-o" - (string-append html "/vera.html")))))) + (invoke (string-append texi "/bin/makeinfo") + "vera.texi" "--force" "-o" + (string-append info "/vera.info")) + (invoke (string-append texi "/bin/makeinfo") + "vera.texi" "--force" "--html" "-o" + (string-append html "/vera.html")))) #:modules ((guix build utils)))) (native-inputs `(("texinfo" ,texinfo) ("tar" ,tar) @@ -113,9 +111,9 @@ acronyms distributed as an info document.") (set-path-environment-variable "PATH" '("bin") (list tar xz)) (mkdir-p datadir) - (zero? (system* "tar" "-C" datadir - "--strip-components=1" - "-xvf" src)))) + (invoke "tar" "-C" datadir + "--strip-components=1" + "-xvf" src))) #:modules ((guix build utils)))) (native-inputs `(("tar" ,tar) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index d7bf726830..bdd24a315c 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Stefan Reichör ;;; Copyright © 2018 Vasile Dumitrascu ;;; Copyright © 2018 Eric Bavier +;;; Copyright © 2018 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -53,6 +54,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages compression) #:use-module (gnu packages vim) + #:use-module (gnu packages w3m) #:use-module (gnu packages xml)) (define-public parted @@ -464,15 +466,15 @@ a card with a smaller capacity than stated.") (define-public duperemove (package (name "duperemove") - (version "v0.11.beta4") + (version "0.11") (source (origin (method url-fetch) (uri (string-append - "https://github.com/markfasheh/duperemove/archive/" + "https://github.com/markfasheh/duperemove/archive/v" version ".tar.gz")) (sha256 (base32 - "1h5nk03kflfnzihvn2rvfz1h623x1zpkn9hp29skd7n3f2bc5k7x")) + "0rjmmh42yqw9a5j6sp31cqwxk3s97dsi4xz0wpxpllj7bsp3aiw5")) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (native-inputs @@ -481,11 +483,10 @@ a card with a smaller capacity than stated.") `(("glib" ,glib) ("sqlite" ,sqlite))) (arguments - `(#:tests? #f ;no test suite + `(#:tests? #f ; no test suite #:phases (modify-phases %standard-phases - ;; no configure script - (delete 'configure)) + (delete 'configure)) ; no configure script #:make-flags (list (string-append "PREFIX=" %output) "CC=gcc"))) (home-page "https://github.com/markfasheh/duperemove") @@ -517,12 +518,28 @@ Duperemove can also take input from the @command{fdupes} program.") (base32 "1lnzkrxcnlwnyi3z0v8ybyp8d5rm26qm35rr68kbs2lbs06inha0")))) (build-system python-build-system) + (inputs + `(("w3m" ,w3m))) (native-inputs ;for tests `(("python-pytest" ,python-pytest) ("python-pylint" ,python-pylint) ("python-flake8" ,python-flake8) ("which" ,which))) - (arguments '(#:test-target "test")) + (arguments + '(#:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'configure 'wrap-program + ;; Tell 'ranger' where 'w3mimgdisplay' is. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (ranger (string-append out "/bin/ranger")) + (w3m (assoc-ref inputs "w3m")) + (w3mimgdisplay (string-append w3m + "/libexec/w3m/w3mimgdisplay"))) + (wrap-program ranger + `("W3MIMGDISPLAY_PATH" ":" prefix (,w3mimgdisplay))) + #t)))))) (home-page "https://ranger.github.io/") (synopsis "Console file manager") (description "ranger is a console file manager with Vi key bindings. It diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 6e3d4912de..b0ad3df788 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Sou Bunnbu ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2018 Stefan Stefanović ;;; ;;; This file is part of GNU Guix. ;;; @@ -143,7 +144,8 @@ Qt-style API for Wayland clients.") "sddm-" version ".tar.xz")) (sha256 (base32 - "0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k")))) + "0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k")) + (patches (search-patches "sddm-fix-build-with-qt-5.11-1024.patch")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 5bc18b4cbc..0b8d8be574 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -98,7 +98,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public isc-bind (package (name "bind") - (version "9.12.1") + (version "9.12.1-P2") (source (origin (method url-fetch) (uri (string-append @@ -106,7 +106,7 @@ and BOOTP/TFTP for network booting of diskless machines.") version ".tar.gz")) (sha256 (base32 - "043mjcw405qa0ghm5dkhfsq35gsy279724fz3mjqpr1mbi14dr0n")))) + "0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs @@ -176,7 +176,9 @@ high-volume and high-reliability applications. The name BIND stands for (snippet ;; Delete bundled libltdl. XXX: This package also bundles ;; a modified libevent that cannot currently be removed. - '(delete-file-recursively "libltdl")))) + '(begin + (delete-file-recursively "libltdl") + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -490,14 +492,14 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "2.6.6") + (version "2.6.7") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" name "-" version ".tar.xz")) (sha256 (base32 - "02h8qdkja4kic3br79svws6r2pq1ijz945238v99d998d2jxh6ci")) + "0hr2m664ckjicv3pq2lk16m61pscknywxv2ydnrzfqf10m5h0ahw")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index d56dc49198..1c00e56d6d 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -58,11 +58,12 @@ (dtd (string-append out "/xml/dtd/docbook"))) (mkdir-p dtd) (with-directory-excursion dtd - (system* unzip source)) + (invoke unzip source)) (substitute* (string-append out "/xml/dtd/docbook/catalog.xml") (("uri=\"") (string-append - "uri=\"file://" dtd "/"))))) + "uri=\"file://" dtd "/"))) + #t)) #:modules ((guix build utils)))) (native-inputs `(("unzip" ,unzip))) (home-page "http://docbook.org") @@ -127,7 +128,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (dtd (string-append (assoc-ref %outputs "out") "/xml/dtd/docbook"))) (mkdir-p dtd) - (zero? (system* unzip source "-d" dtd)))))))) + (invoke unzip source "-d" dtd))))))) (define-public docbook-xsl (package @@ -154,7 +155,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (out (assoc-ref %outputs "out")) (xsl (string-append out "/xml/xsl"))) (setenv "PATH" (string-append bzip2 "/bin" ":" xz "/bin")) - (system* (string-append tar "/bin/tar") "xvf" source) + (invoke (string-append tar "/bin/tar") "xvf" source) (mkdir-p xsl) (copy-recursively name-version @@ -163,8 +164,9 @@ by no means limited to these applications.) This package provides XML DTDs.") (substitute* (string-append xsl "/" name-version "/catalog.xml") (("rewritePrefix=\"./") (string-append "rewritePrefix=\"file://" xsl "/" - name-version "/"))))) - #:modules ((guix build utils)))) + name-version "/"))) + #t)) + #:modules ((guix build utils)))) (native-inputs `(("bzip2" ,bzip2) ("xz" ,xz) ("tar" ,tar))) @@ -236,19 +238,19 @@ by no means limited to these applications.) This package provides XML DTDs.") #:use-setuptools? #f #:tests? #f ;no 'test' command #:phases - (alist-cons-after - 'wrap 'set-path - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; dblatex executes helper programs at runtime. - (wrap-program (string-append out "/bin/dblatex") - `("PATH" ":" prefix - ,(map (lambda (input) - (string-append (assoc-ref inputs input) - "/bin")) - '("libxslt" "texlive" - "imagemagick" "inkscape")))))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'wrap 'set-path + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; dblatex executes helper programs at runtime. + (wrap-program (string-append out "/bin/dblatex") + `("PATH" ":" prefix + ,(map (lambda (input) + (string-append (assoc-ref inputs input) + "/bin")) + '("libxslt" "texlive" + "imagemagick" "inkscape")))) + #t)))))) (home-page "http://dblatex.sourceforge.net") (synopsis "DocBook to LaTeX Publishing") (description diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 15f34210ef..f533535f03 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Ludovic Courtès +;;; Copyright © 2014, 2018 Ludovic Courtès ;;; Copyright © 2014, 2016 Andreas Enge ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2016 Roel Janssen @@ -59,7 +59,7 @@ `(#:tests? #f ; no 'check' target #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (invoke "autoconf"))) ;; Some XML-related binaries are required for asciidoc's proper usage. @@ -139,10 +139,23 @@ markup) can be customized and extended by the user.") ("libxml2" ,libxml2) ; provides xmllint for the tests ("python" ,python-2))) ; for creating the documentation (inputs - `(("bash" ,bash-minimal))) + `(("bash" ,bash-minimal) + ,@(if (string-prefix? "armhf-" (%current-system)) + `(("gcc-ice-patch" ,@(search-patches "doxygen-gcc-ice.patch"))) + '()))) (arguments `(#:test-target "tests" #:phases (modify-phases %standard-phases + ;; Work around an ICE that shows up on native compiles for + ;; armhf-linux. + ,@(if (string-prefix? "armhf-" (%current-system)) + `((add-after 'unpack 'apply-gcc-patch + (lambda* (#:key inputs #:allow-other-keys) + (let ((patch (assoc-ref inputs "gcc-ice-patch"))) + (invoke "patch" "-p1" "--force" + "--input" patch))))) + '()) + (add-before 'configure 'patch-sh (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/portable.cpp" diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm index 6df37894da..eaad227747 100644 --- a/gnu/packages/dunst.scm +++ b/gnu/packages/dunst.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2017, 2018 Alex Kost +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +33,7 @@ (define-public dunst (package (name "dunst") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append @@ -41,7 +42,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1mkdp1vqc376z8clwm5s9070jq1g92j8hv2rr231jr2468fnwaga")))) + "12nj8qw3y3nl8sm24wizy2a7k06v1p88bnz1xr9l39h527xyidma")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no check target diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 58f06c3106..15b893c30d 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -3,6 +3,8 @@ ;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017, 2018 Efraim Flashner +;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,27 +24,33 @@ (define-module (gnu packages education) #:use-module (ice-9 regex) #:use-module (gnu packages) - #:use-module (gnu packages qt) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages databases) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages javascript) #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages qt) #:use-module (gnu packages sdl) #:use-module (gnu packages texinfo) #:use-module (gnu packages xml) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix svn-download) #:use-module (guix utils) - #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (srfi srfi-1)) (define-public gcompris @@ -107,7 +115,7 @@ of categories with some of the activities available in that category. (define-public gcompris-qt (package (name "gcompris-qt") - (version "0.90") + (version "0.91") (source (origin (method url-fetch) @@ -116,11 +124,18 @@ of categories with some of the activities available in that category. version ".tar.xz")) (sha256 (base32 - "1i5adxnhig849qxwi3c4v7r84q6agx1zxkd69fh4y7lcmq2qiaza")))) + "09h098w9q79hnzla1pcpqlnnr6dbafm4q6zmdp7wlk11ym8n9kvg")))) (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-for-qt5.11 + (lambda _ + (substitute* "src/core/CMakeLists.txt" + (("qt5_use_modules") "target_link_libraries") + (("Qml Quick Gui Multimedia Network XmlPatterns Svg Xml Sensors Core") + "Qt5::Qml Qt5::Quick Qt5::Gui Qt5::Multimedia Qt5::Core Qt5::Svg Qt5::Xml Qt5::XmlPatterns Qt5::Sensors")) + #t)) (add-after 'install 'wrap-executable (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -209,7 +224,7 @@ Currently available boards include: (substitute* "def/defines.h" (("\"/usr/") (string-append "\"" out "/"))) ;; Recreate Makefile - (zero? (system* "qmake")))))))) + (invoke "qmake"))))))) (inputs `(("qt4" ,qt-4) ("sqlite" ,sqlite))) @@ -224,3 +239,65 @@ Useful support functions and an extensive progress tracker, topical lessons and the ability to create your own practice lessons make learning to type easy.") (license license:gpl2))) + +(define-public snap + (package + (name "snap") + (version "4.1.2.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jmoenig/Snap--Build-Your-Own-Blocks.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0cy3jhqqpmivqnfm9kmlnh3fhf3m3y4xqhikblk8vfjprh6vmcvd")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((source (assoc-ref %build-inputs "source")) + (out (assoc-ref %outputs "out")) + (share (string-append out "/share/snap"))) + (copy-recursively source share) + ;; Replace the sole minified file in the package. + (with-directory-excursion share + (delete-file "FileSaver.min.js") + (symlink (string-append (assoc-ref %build-inputs "js-filesaver") + "/share/javascript/FileSaver.min.js") + "FileSaver.min.js")) + ;; Create a "snap" executable. + (let* ((bin (string-append out "/bin")) + (script (string-append bin "/snap")) + (snap (string-append share "/snap.html")) + (bash (string-append (assoc-ref %build-inputs "bash") + "/bin/sh")) + (xdg-open (string-append (assoc-ref %build-inputs "xdg-utils") + "/bin/xdg-open"))) + (mkdir-p bin) + (call-with-output-file script + (lambda (port) + (format port "#!~a\n~a '~a'" bash xdg-open snap))) + (chmod script #o555))) + #t))) + (inputs + `(("bash" ,bash-minimal) + ("js-filesaver" ,js-filesaver) + ("xdg-utils" ,xdg-utils))) + (home-page "https://snap.berkeley.edu") + (synopsis "Visual, blocks based programming language") + (description "Snap! (formerly BYOB) is a visual, drag-and-drop +programming language. It is an extended reimplementation of Scratch (a +project of the Lifelong Kindergarten Group at the MIT Media Lab) that +allows you to Build Your Own Blocks. It also features first class +lists, first class procedures, and continuations. These added +capabilities make it suitable for a serious introduction to computer +science for high school or college students. + +This package provides a @command{snap} executable calling @command{xdg-open} +to open the application in a web browser, for offline usage.") + (license license:agpl3+))) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index f77a4e1b72..9b120751d2 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -56,6 +56,14 @@ `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) + + ;; Disable tests on MIPS (without changing + ;; the arguments list on other systems). + ,@(if (string-prefix? "mips" (or (%current-target-system) + (%current-system))) + '(#:tests? #f) + '()) + #:phases (modify-phases %standard-phases ;; No reason has been found for this test to reliably fail on aarch64-linux. @@ -98,13 +106,12 @@ Executable and Linkable Format (@dfn{ELF}). This includes @command{ld}, ;; variables passed as arguments. (let ((out (assoc-ref outputs "out"))) (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out) + (invoke "./configure" + (string-append "--prefix=" out) ,@(if (string=? "aarch64-linux" (%current-system)) '("--host=aarch64-unknown-linux-gnu") - '()))))))))) + '())))))))) (home-page "http://www.mr511.de/software/english.html") (synopsis "ELF object file access library") (description "Libelf is a C library to access ELF object files.") diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4738310320..9caa01a0fd 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Alex Kost ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus -;;; Copyright © 2016, 2017 Chris Marusich +;;; Copyright © 2016, 2017, 2018 Chris Marusich ;;; Copyright © 2015, 2016 Christopher Allan Webber ;;; Copyright © 2016 Adriano Peluso ;;; Copyright © 2016, 2017, 2018 Efraim Flashner @@ -18,7 +18,7 @@ ;;; Copyright © 2016, 2017 Alex Vong ;;; Copyright © 2016, 2017, 2018 Arun Isaac ;;; Copyright © 2017 Christopher Baines -;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017, 2018 Mathieu Othacehe ;;; Copyright © 2017, 2018 Clément Lassieur ;;; Copyright © 2017 Vasile Dumitrascu ;;; Copyright © 2017, 2018 Kyle Meyer @@ -34,6 +34,7 @@ ;;; Copyright © 2017, 2018 Maxim Cournoyer ;;; Copyright © 2018 Sohom Bhattacharjee ;;; Copyright © 2018 Mathieu Lirzin +;;; Copyright © 2018 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,6 +66,7 @@ #:use-module (gnu packages) #:use-module (gnu packages audio) #:use-module (gnu packages bash) + #:use-module (gnu packages cmake) #:use-module (gnu packages code) #:use-module (gnu packages databases) #:use-module (gnu packages guile) @@ -104,6 +106,8 @@ #:use-module (gnu packages gd) #:use-module (gnu packages fontutils) #:use-module (gnu packages password-utils) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages shells) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) @@ -111,14 +115,14 @@ (define-public emacs (package (name "emacs") - (version "25.3") + (version "26.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/emacs/emacs-" version ".tar.xz")) (sha256 (base32 - "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5")) + "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w")) (patches (search-patches "emacs-exec-path.patch" "emacs-fix-scheme-indent-function.patch" "emacs-source-date-epoch.patch")) @@ -153,17 +157,20 @@ (list line "\"~/.guix-profile/include\"" "\"/var/guix/profiles/system/profile/include\"") - " "))))))) + " "))) + #t)))) (build-system glib-or-gtk-build-system) (arguments - `(#:phases + `(#:tests? #f ; no check target + #:phases (modify-phases %standard-phases (add-before 'configure 'fix-/bin/pwd (lambda _ ;; Use `pwd', not `/bin/pwd'. (substitute* (find-files "." "^Makefile\\.in$") (("/bin/pwd") - "pwd")))) + "pwd")) + #t)) (add-after 'install 'install-site-start ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages ;; provided by Guix and installed in @@ -241,10 +248,11 @@ languages.") (synopsis "The extensible text editor (used only for byte-compilation)") (build-system gnu-build-system) (arguments - (substitute-keyword-arguments (package-arguments emacs) - ((#:phases phases) - `(modify-phases ,phases - (delete 'install-site-start))))) + `(#:configure-flags (list "--with-gnutls=no") + ,@(substitute-keyword-arguments (package-arguments emacs) + ((#:phases phases) + `(modify-phases ,phases + (delete 'install-site-start)))))) (inputs `(("ncurses" ,ncurses))) (native-inputs @@ -338,7 +346,7 @@ editor (without an X toolkit)" ) "/share/emacs/site-lisp/" "geiser-autoloads.el")) #t))))) - (inputs `(("guile" ,guile-2.0))) + (inputs `(("guile" ,guile-2.2))) (native-inputs `(("emacs" ,emacs-minimal))) (home-page "https://nongnu.org/geiser/") (synopsis "Collection of Emacs modes for Guile and Racket hacking") @@ -428,7 +436,7 @@ on stdout instead of using a socket as the Emacsclient does.") (define-public magit (package (name "magit") - (version "2.11.0") + (version "2.12.1") (source (origin (method url-fetch) (uri (string-append @@ -436,7 +444,7 @@ on stdout instead of using a socket as the Emacsclient does.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "11xly5bma9jc1jhs8fqbqrci8kz1y26yfq7dqjkqfy956wvfg6hz")))) + "1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-minimal))) @@ -445,7 +453,8 @@ on stdout instead of using a socket as the Emacsclient does.") ("perl" ,perl))) (propagated-inputs `(("dash" ,emacs-dash) - ;; XXX Add 'magit-popup' dependency for the next release (after 2.11.0). + ("ghub" ,emacs-ghub) + ("magit-popup" ,emacs-magit-popup) ("with-editor" ,emacs-with-editor))) (arguments `(#:test-target "test" @@ -459,6 +468,14 @@ on stdout instead of using a socket as the Emacsclient does.") (assoc-ref %build-inputs "dash") "/share/emacs/site-lisp/guix.d/dash-" ,(package-version emacs-dash)) + (string-append "GHUB_DIR=" + (assoc-ref %build-inputs "ghub") + "/share/emacs/site-lisp/guix.d/ghub-" + ,(package-version emacs-ghub)) + (string-append "MAGIT_POPUP_DIR=" + (assoc-ref %build-inputs "magit-popup") + "/share/emacs/site-lisp/guix.d/magit-popup-" + ,(package-version emacs-magit-popup)) (string-append "WITH_EDITOR_DIR=" (assoc-ref %build-inputs "with-editor") "/share/emacs/site-lisp/guix.d/with-editor-" @@ -474,7 +491,7 @@ on stdout instead of using a socket as the Emacsclient does.") (substitute* "lisp/magit-sequence.el" (("perl") (string-append perl "/bin/perl"))) #t)))))) - (home-page "http://magit.github.io/") + (home-page "https://magit.vc/") (synopsis "Emacs interface for the Git version control system") (description "With Magit, you can inspect and modify your Git repositories with Emacs. @@ -530,7 +547,7 @@ operations.") (source (assoc-ref %build-inputs "source")) (lisp-dir (string-append %output "/share/emacs/site-lisp"))) (setenv "PATH" PATH) - (system* tar "xvf" source) + (invoke tar "xvf" source) (install-file (string-append ,name "-" ,version "/magit-svn.el") lisp-dir) @@ -540,7 +557,8 @@ operations.") (emacs-generate-autoloads ,name lisp-dir) (setenv "EMACSLOADPATH" (string-append ":" magit ":" dash ":" with-editor)) - (emacs-batch-eval '(byte-compile-file "magit-svn.el")))))))) + (emacs-batch-eval '(byte-compile-file "magit-svn.el")))) + #t)))) (home-page "https://github.com/magit/magit-svn") (synopsis "Git-SVN extension to Magit") (description @@ -581,6 +599,37 @@ these arguments. The prototypical use is for the command to call an external process, passing on the arguments as command line arguments.") (license license:gpl3+))) +(define-public emacs-ghub + (package + (name "emacs-ghub") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/magit/ghub/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1zrb3xk04a228g2ahx0r02d0d3xskj60q73qavvmm2i56r66cxvc")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'make-info + (lambda _ + (zero? (system* "make" "info"))))))) + (native-inputs + `(("texinfo" ,texinfo))) + (home-page "https://github.com/magit/ghub") + (synopsis "Emacs client library for Github API and Gitlab API") + (description + "This package provides 2 files: @file{ghub.el} and @file{glab.el}, +which are the libraries that provide basic support for using the Github and +Gitlab APIs from Emacs packages. It abstracts access to API resources using +only a handful of functions that are not resource-specific.") + (license license:gpl3+))) + (define-public haskell-mode (package (name "haskell-mode") @@ -703,77 +752,91 @@ provides an optional IDE-like error list.") ;;; (define-public emacs-w3m - (package - (name "emacs-w3m") - (version "1.4.538+0.20141022") - (source (origin - (method url-fetch) - (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_" - version ".orig.tar.gz")) - (sha256 - (base32 - "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y")))) - (build-system gnu-build-system) - (native-inputs `(("autoconf" ,autoconf) - ("emacs" ,emacs-minimal))) - (inputs `(("w3m" ,w3m) - ("imagemagick" ,imagemagick))) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (guix build emacs-utils)) - #:imported-modules (,@%gnu-build-system-modules - (guix build emacs-utils)) - #:configure-flags - (let ((out (assoc-ref %outputs "out"))) - (list (string-append "--with-lispdir=" - out "/share/emacs/site-lisp") - (string-append "--with-icondir=" - out "/share/images/emacs-w3m") - ;; Leave .el files uncompressed, otherwise GC can't - ;; identify run-time dependencies. See - ;; - "--without-compress-install")) - #:tests? #f ; no check target - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'autoconf - (lambda _ - (zero? (system* "autoconf")))) - (add-before 'build 'patch-exec-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (w3m (assoc-ref inputs "w3m")) - (imagemagick (assoc-ref inputs "imagemagick")) - (coreutils (assoc-ref inputs "coreutils"))) - (emacs-substitute-variables "w3m.el" - ("w3m-command" (string-append w3m "/bin/w3m")) - ("w3m-touch-command" - (string-append coreutils "/bin/touch")) - ("w3m-image-viewer" - (string-append imagemagick "/bin/display")) - ("w3m-icon-directory" - (string-append out "/share/images/emacs-w3m"))) - (emacs-substitute-variables "w3m-image.el" - ("w3m-imagick-convert-program" - (string-append imagemagick "/bin/convert")) - ("w3m-imagick-identify-program" - (string-append imagemagick "/bin/identify"))) - #t))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (and (zero? (system* "make" "install" "install-icons")) - (with-directory-excursion - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp") - (for-each delete-file '("ChangeLog" "ChangeLog.1")) - (symlink "w3m-load.el" "w3m-autoloads.el") - #t))))))) - (home-page "http://emacs-w3m.namazu.org/") - (synopsis "Simple Web browser for Emacs based on w3m") - (description - "Emacs-w3m is an emacs interface for the w3m web browser.") - (license license:gpl2+))) + ;; Emacs-w3m follows a "rolling release" model from its CVS repo. We could + ;; use CVS, sure, but instead we choose to use this Git mirror described on + ;; the home page as an "unofficial" mirror. + (let ((commit "0dd5691f46d314a84da63f3a7277d721815811a2")) + (package + (name "emacs-w3m") + (version (git-version "1.5" "0" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ecbrown/emacs-w3m") + (commit commit))) + (sha256 + (base32 + "02xalyxbrkgl4n8nj7xxkmsbm6lshhwdc8bzs2l4wz3hkpgkj7x4")))) + (build-system gnu-build-system) + (native-inputs `(("autoconf" ,autoconf) + ("texinfo" ,texinfo) + ("emacs" ,emacs-minimal))) + (inputs `(("w3m" ,w3m) + ("imagemagick" ,imagemagick))) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-utils)) + #:configure-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "--with-lispdir=" + out "/share/emacs/site-lisp") + (string-append "--with-icondir=" + out "/share/images/emacs-w3m") + ;; Leave .el files uncompressed, otherwise GC can't + ;; identify run-time dependencies. See + ;; + "--without-compress-install")) + #:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'autoconf + (lambda _ + (zero? (system* "autoconf")))) + (add-before 'configure 'support-emacs! + (lambda _ + ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is + ;; unsupported. + (substitute* "configure" + (("EMACS_FLAVOR=unsupported") + "EMACS_FLAVOR=emacs")) + #t)) + (add-before 'build 'patch-exec-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (w3m (assoc-ref inputs "w3m")) + (imagemagick (assoc-ref inputs "imagemagick")) + (coreutils (assoc-ref inputs "coreutils"))) + (make-file-writable "w3m.el") + (emacs-substitute-variables "w3m.el" + ("w3m-command" (string-append w3m "/bin/w3m")) + ("w3m-touch-command" + (string-append coreutils "/bin/touch")) + ("w3m-icon-directory" + (string-append out "/share/images/emacs-w3m"))) + (make-file-writable "w3m-image.el") + (emacs-substitute-variables "w3m-image.el" + ("w3m-imagick-convert-program" + (string-append imagemagick "/bin/convert")) + ("w3m-imagick-identify-program" + (string-append imagemagick "/bin/identify"))) + #t))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (and (zero? (system* "make" "install" "install-icons")) + (with-directory-excursion + (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp") + (for-each delete-file '("ChangeLog" "ChangeLog.1")) + (symlink "w3m-load.el" "w3m-autoloads.el") + #t))))))) + (home-page "http://emacs-w3m.namazu.org/") + (synopsis "Simple Web browser for Emacs based on w3m") + (description + "Emacs-w3m is an emacs interface for the w3m web browser.") + (license license:gpl2+)))) (define-public emacs-wget (package @@ -829,36 +892,39 @@ provides an optional IDE-like error list.") (define-public emms (package (name "emacs-emms") - (version "4.4") + (version "5.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz")) (sha256 (base32 - "1b0kalhn81dir26jgsma30i5bbly7d3s1ngqpf01zjjpr7lw5v0h")) + "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("/usr/bin/install-info") - ;; No need to use 'install-info' since it would create a - ;; useless 'dir' file. - "true") - (("^INFODIR=.*") - ;; Install Info files to $out/share/info, not $out/info. - "INFODIR := $(PREFIX)/share/info\n") - (("/site-lisp/emms") - ;; Install directly in share/emacs/site-lisp, not in a - ;; sub-directory. - "/site-lisp") - (("^all: (.*)\n" _ rest) - ;; Build 'emms-print-metadata'. - (string-append "all: " rest " emms-print-metadata\n")))))) + '(begin + (substitute* "Makefile" + (("/usr/bin/install-info") + ;; No need to use 'install-info' since it would create a + ;; useless 'dir' file. + "true") + (("^INFODIR=.*") + ;; Install Info files to $out/share/info, not $out/info. + "INFODIR := $(PREFIX)/share/info\n") + (("/site-lisp/emms") + ;; Install directly in share/emacs/site-lisp, not in a + ;; sub-directory. + "/site-lisp") + (("^all: (.*)\n" _ rest) + ;; Build 'emms-print-metadata'. + (string-append "all: " rest " emms-print-metadata\n"))) + #t)))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) - (guix build emacs-utils)) + (guix build emacs-utils) + (ice-9 ftw)) #:imported-modules (,@%gnu-build-system-modules (guix build emacs-utils)) @@ -921,13 +987,21 @@ provides an optional IDE-like error list.") (man1 (string-append out "/share/man/man1"))) (mkdir-p bin) (mkdir-p man1) + + ;; Ensure that files are not rejected by gzip + (let ((early-1980 315619200)) ; 1980-01-02 UTC + (ftw "." (lambda (file stat flag) + (unless (<= early-1980 (stat:mtime stat)) + (utime file early-1980 early-1980)) + #t))) #t))) (add-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (symlink "emms-auto.el" (string-append out "/share/emacs/site-lisp/" - "emms-autoloads.el")))))) + "emms-autoloads.el"))) + #t))) #:tests? #f)) (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils) ("texinfo" ,texinfo))) @@ -1013,9 +1087,11 @@ within a specified width. It is useful for displaying long track titles.") (modules '((guix build utils))) (snippet ;; We don't want to build and install the PDF. - '(substitute* "doc/Makefile.in" - (("^doc_DATA = .*$") - "doc_DATA =\n"))))) + '(begin + (substitute* "doc/Makefile.in" + (("^doc_DATA = .*$") + "doc_DATA =\n")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -1178,6 +1254,42 @@ or XEmacs.") a set of simplified face specifications and a user-supplied color palette") (license license:gpl3+))) +(define-public emacs-howm + (package + (name "emacs-howm") + (version "1.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "http://howm.sourceforge.jp/a/howm-" + version ".tar.gz")) + (sha256 + (base32 + "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk")))) + (build-system gnu-build-system) + (native-inputs + `(("emacs" ,emacs-minimal))) + (arguments + `(#:configure-flags + (list (string-append "--with-howmdir=" %output + "/share/emacs/site-lisp/guix.d/howm-" ,version)) + #:modules ((guix build gnu-build-system) + ((guix build emacs-build-system) #:prefix emacs:) + (guix build utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-build-system) + (guix build emacs-utils)) + #:phases + (modify-phases %standard-phases + (add-after 'rename-lispdir 'make-autoloads + (assoc-ref emacs:%standard-phases 'make-autoloads))))) + (home-page "http://howm.osdn.jp/") + (synopsis "Note-taking tool for Emacs") + (description "Howm is a note-taking tool for Emacs. Like +code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text +searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.") + (license license:gpl1+))) + (define-public emacs-calfw (package (name "emacs-calfw") @@ -1193,6 +1305,8 @@ a set of simplified face specifications and a user-supplied color palette") (base32 "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l")))) (build-system emacs-build-system) + (propagated-inputs + `(("emacs-howm" ,emacs-howm))) (home-page "https://github.com/kiwanami/emacs-calfw/") (synopsis "Calendar framework for Emacs") (description @@ -1496,16 +1610,16 @@ and stored in memory.") (define-public emacs-dash (package (name "emacs-dash") - (version "2.13.0") + (version "2.14.1") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/magnars/dash.el/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/magnars/dash.el.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb")))) + "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl")))) (build-system emacs-build-system) (arguments `(#:tests? #t @@ -1542,7 +1656,7 @@ type, for example: packages, buffers, files, etc.") (define-public emacs-guix (package (name "emacs-guix") - (version "0.3.4") + (version "0.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/alezost/guix.el" @@ -1550,7 +1664,7 @@ type, for example: packages, buffers, files, etc.") "/emacs-guix-" version ".tar.gz")) (sha256 (base32 - "152zf9vkafmnnf7by5armg165npznb961csgnvr8iwdj3smvivjf")))) + "1nn4b0gd895g0k4fynzrip7z8yb1r3qmvznq9v8a6q7sm84irmqq")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1559,6 +1673,7 @@ type, for example: packages, buffers, files, etc.") (dash (assoc-ref %build-inputs "dash")) (bui (assoc-ref %build-inputs "bui")) (magit-popup (assoc-ref %build-inputs "magit-popup")) + (edit-indirect (assoc-ref %build-inputs "edit-indirect")) (site-lisp "/share/emacs/site-lisp")) (list (string-append "--with-guix-site-dir=" (car (find-files (string-append guix @@ -1582,6 +1697,9 @@ type, for example: packages, buffers, files, etc.") (string-append "--with-bui-lispdir=" bui site-lisp "/guix.d/bui-" ,(package-version emacs-bui)) + (string-append "--with-editindirect-lispdir=" + edit-indirect site-lisp "/guix.d/edit-indirect-" + ,(package-version emacs-edit-indirect)) (string-append "--with-popup-lispdir=" magit-popup site-lisp "/guix.d/magit-popup-" ,(package-version emacs-magit-popup)))))) @@ -1595,6 +1713,7 @@ type, for example: packages, buffers, files, etc.") `(("geiser" ,geiser) ("dash" ,emacs-dash) ("bui" ,emacs-bui) + ("edit-indirect" ,emacs-edit-indirect) ("magit-popup" ,emacs-magit-popup))) (home-page "https://alezost.github.io/guix.el/") (synopsis "Emacs interface for GNU Guix") @@ -1703,6 +1822,7 @@ allows easily move between them.") (build-system emacs-build-system) (arguments `(#:tests? #t + #:emacs ,emacs ; FIXME: tests fail with emacs-minimal #:test-command '("./run-tests.sh"))) (home-page "https://github.com/magnars/s.el") (synopsis "Emacs string manipulation library") @@ -2488,17 +2608,19 @@ framework for Emacs Lisp to be used with @code{ert}.") (arguments `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'set-shell + ;; Setting the SHELL environment variable is required for the tests + ;; to find sh. + (lambda _ + (setenv "SHELL" (which "sh")) + #t)) (add-before 'check 'fix-makefile (lambda _ (substitute* "Makefile" (("\\$\\(CASK\\) exec ") "")) #t))) #:tests? #t - ;; FIXME: Normally we'd run the "test" target but for some reason the - ;; test-deferred target fails when run in the Guix build environment - ;; with the error: (file-error "Searching for program" "No such file or - ;; directory" "/bin/sh"). - #:test-command '("make" "test-concurrent" "test-concurrent-compiled"))) + #:test-command '("make" "test"))) (native-inputs `(("emacs-ert-expectations" ,emacs-ert-expectations) ("emacs-undercover" ,emacs-undercover) @@ -2670,6 +2792,57 @@ implementation in Emacs. To use it just load this file and bind that function to a key in your preferred mode.") (license license:public-domain)))) +(define-public emacs-scel + (let ((version "20170629") + (revision "1") + (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b")) + (package + (name "emacs-scel") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/supercollider/scel.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw")))) + (build-system emacs-build-system) + (arguments + `(#:modules ((guix build emacs-build-system) + ((guix build cmake-build-system) #:prefix cmake:) + (guix build utils)) + #:imported-modules (,@%emacs-build-system-modules + (guix build cmake-build-system)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "el/CMakeLists.txt" + (("share/emacs/site-lisp/SuperCollider") + (string-append + "share/emacs/site-lisp/guix.d/scel-" ,version))) + ((assoc-ref cmake:%standard-phases 'configure) + #:outputs outputs + #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF")))) + (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path + (lambda _ + (setenv "EMACSLOADPATH" + (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH"))) + #t)) + (replace 'install (assoc-ref cmake:%standard-phases 'install))))) + (inputs + `(("supercollider" ,supercollider))) + (native-inputs + `(("cmake" ,cmake))) + (home-page "https://github.com/supercollider/scel") + (synopsis "SuperCollider Emacs interface") + (description "@code{emacs-scel} is an Emacs interface to SuperCollider. +SuperCollider is a platform for audio synthesis and algorithmic composition.") + (license license:gpl2+)))) + (define-public emacs-mit-scheme-doc (package (name "emacs-mit-scheme-doc") @@ -2682,7 +2855,8 @@ to a key in your preferred mode.") '(begin (for-each delete-file '("dot-emacs.el" "Makefile")) (install-file "6.945-config/mit-scheme-doc.el" ".") - (delete-file-recursively "6.945-config"))) + (delete-file-recursively "6.945-config") + #t)) (file-name (string-append name "-" version ".tar.bz2")) (method url-fetch) (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/" @@ -3469,6 +3643,35 @@ splitting the input text by spaces and re-building it into a regular expression.") (license license:gpl3+))) +(define-public emacs-ivy-yasnippet + (let ((commit "59b32cf8cfb63df906822a17f6f5e8545dac38d4")) + (package + (name "emacs-ivy-yasnippet") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mkcms/ivy-yasnippet.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0hghdlxkfwrglvc1nql2ikgp6jj0qdbfwc3yvpb19mrf26hwgp13")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-ivy" ,emacs-ivy) + ("emacs-yasnippet" ,emacs-yasnippet) + ("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/mkcms/ivy-yasnippet") + (synopsis "Preview @code{yasnippets} with @code{ivy}") + (description "This package allows you to select @code{yasnippet} +snippets using @code{ivy} completion. When current selection changes in the +minibuffer, the snippet contents are temporarily expanded in the buffer. To +use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled +@code{yas-minor-mode} first).") + (license license:gpl3+)))) + (define-public emacs-avy (package (name "emacs-avy") @@ -3573,7 +3776,7 @@ navigate code in a tree-like fashion.") (define-public emacs-lispy ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits ;; since. - (let ((commit "a7e1cf742e72199cc75aa5e1e686991ba4a23bc4") + (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80") (revision "0")) (package (name "emacs-lispy") @@ -3584,7 +3787,7 @@ navigate code in a tree-like fashion.") (uri (git-reference (url home-page) (commit commit))) (sha256 (base32 - "0qg85gz5akayvhb5fmn1qx7s9847gry4g20xcnq8llr839lq28dl")) + "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs @@ -3859,7 +4062,8 @@ programming language.") (substitute* "lisp/Makefile" (("^\tjulia-mode.elc\\\\\n") "") (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el") - "all: $(ELC) ess-custom.el")))))) + "all: $(ELC) ess-custom.el")) + #t)))) (build-system gnu-build-system) (arguments (let ((base-directory "/share/emacs/site-lisp/guix.d/ess")) @@ -4014,7 +4218,7 @@ If you want to mark a folder manually as a project just create an empty (define-public emacs-elfeed (package (name "emacs-elfeed") - (version "2.3.0") + (version "3.0.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/skeeto/elfeed/archive/" @@ -4022,7 +4226,7 @@ If you want to mark a folder manually as a project just create an empty (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1fd1mx0q1qb9vgdzls5ppxfriyid48blg8smgjspiazp7kxakzxv")))) + "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn")))) (build-system emacs-build-system) (arguments `(#:tests? #t @@ -4590,6 +4794,29 @@ used for reverse direction.") distribution, primarily targeting Clojure users") (license license:gpl3+))) +(define-public emacs-orgalist + (package + (name "emacs-orgalist") + (version "1.7") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "orgalist-" version ".el")) + (sha256 + (base32 + "13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/orgalist.html") + (synopsis "Manage Org-like lists in non-Org buffers") + (description "Write Org mode's plain lists in non-Org buffers. More +specifically, Orgalist supports the syntax of Org mode for numbered, +unnumbered, description items, checkboxes, and counter cookies. + +The library also implements radio lists, i.e., lists written in Org +syntax later translated into the host format, e.g., LaTeX or HTML.") + (license license:gpl3+))) + (define-public emacs-writegood-mode (package (name "emacs-writegood-mode") @@ -4636,35 +4863,35 @@ passive voice.") (name "emacs-org") ;; emacs-org-contrib inherits from this package. Please update its sha256 ;; checksum as well. - (version "9.1.11") + (version "9.1.13") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "0i27g5qbkfqbxhgiz917pjwkxg3rwid99d0ickwx43bzq0zi7c1m")))) + "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr")))) (build-system emacs-build-system) (home-page "https://orgmode.org/") (synopsis "Outline-based notes management and organizer") (description "Org is an Emacs mode for keeping notes, maintaining TODO -lists, and project planning with a fast and effective plain-text system. It -also is an authoring system with unique support for literate programming and -reproducible research.") +lists, and project planning with a fast and effective lightweight markup +language. It also is an authoring system with unique support for literate +programming and reproducible research.") (license license:gpl3+))) (define-public emacs-org-contrib (package (inherit emacs-org) (name "emacs-org-contrib") - (version "20180423") + (version "20180507") (source (origin (method url-fetch) (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-" version ".tar")) (sha256 (base32 - "1aggvdy74q8p79xyc19zring5gjvlzp6lbsq8ar319zkmcjrapqd")))) + "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d")))) (arguments `(#:modules ((guix build emacs-build-system) (guix build utils) @@ -4689,7 +4916,8 @@ reproducible research.") (for-each delete-file duplicates)) #t)))))) (propagated-inputs - `(("emacs-org" ,emacs-org))) + `(("emacs-org" ,emacs-org) + ("emacs-scel" ,emacs-scel))) (synopsis "Contributed packages to Org mode") (description "Org is an Emacs mode for keeping notes, maintaining TODO lists, and project planning with a fast and effective plain-text system. @@ -5128,7 +5356,8 @@ mode-line.") ;; warnings about a missing directory. (substitute* "yasnippet.el" (("^ +'yas-installed-snippets-dir\\)\\)\n") - "))\n")))))) + "))\n")) + #t)))) (build-system emacs-build-system) (home-page "https://github.com/joaotavora/yasnippet") (synopsis "Yet another snippet extension for Emacs") @@ -5172,7 +5401,8 @@ abbreviation and automatically expand it into function templates.") dir))) (scandir "." (lambda (fname) (and (string-match "-mode$" fname) - (directory-exists? fname))))))))) + (directory-exists? fname)))))) + #t))) (home-page "https://github.com/AndreaCrotti/yasnippet-snippets") (synopsis "Collection of YASnippet snippets for many languages") (description @@ -7136,7 +7366,7 @@ for external literate programming tools for exporting, weaving and tangling.") (setenv "PATH" (string-append (assoc-ref %build-inputs "tar") "/bin" ":" (assoc-ref %build-inputs "gzip") "/bin")) - (system* "tar" "xvf" (assoc-ref %build-inputs "source")) + (invoke "tar" "xvf" (assoc-ref %build-inputs "source")) (chdir (string-append "eless" "-" ,version)) (substitute* "eless" (("/usr/bin/env bash") (string-append (assoc-ref %build-inputs "bash") @@ -7503,7 +7733,7 @@ Features: (setenv "PATH" (string-append (assoc-ref %build-inputs "tar") "/bin" ":" (assoc-ref %build-inputs "gzip") "/bin")) - (system* "tar" "xvf" (assoc-ref %build-inputs "source")) + (invoke "tar" "xvf" (assoc-ref %build-inputs "source")) (chdir (string-append ,name "-" ,version)) ;; Patch shebangs (substitute* "epipe" @@ -7898,7 +8128,7 @@ object has been freed.") #t))))) (inputs `(("emacs-minimal" ,emacs-minimal) - ("mysql" ,mysql) + ("mariadb" ,mariadb) ("postgresql" ,postgresql))) (propagated-inputs `(("emacs-finalize" ,emacs-finalize) @@ -8002,3 +8232,2999 @@ Emacs.") in @code{emacs-lisp-mode}, together with an elisp equivalent of @code{slime-describe-symbol}.") (license license:gpl3+))) + +(define-public emacs-dedicated + (package + (name "emacs-dedicated") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/emacsorphanage/dedicated/archive/" + version + ".tar.gz")) + (sha256 + (base32 + "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system emacs-build-system) + (home-page "https://github.com/emacsorphanage/dedicated") + (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag") + (description + "This simple Emacs minor mode allows you to toggle a window's +\"dedicated\" flag. When a window is \"dedicated\", Emacs will not select +files into that window. This can be quite handy since many commands will use +another window to show results (compilation mode, starting info, and so on). +A dedicated window won't be used for such a purpose. For details, please read +the source file.") + (license license:gpl2+))) + +(define-public emacs-nnreddit + (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a") + (revision "1")) + (package + (name "emacs-nnreddit") + (version (string-append "0.0.1-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/paul-issartel/nnreddit.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn")))) + (build-system emacs-build-system) + (home-page "https://github.com/paul-issartel/nnreddit") + (synopsis "Reddit backend for the Gnus newsreader") + (description "@url{https://www.reddit.com} backend for the Gnus +newsreader.") + (license license:gpl3+)))) + +(define-public emacs-makey + (package + (name "emacs-makey") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/mickeynp/makey/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv")))) + (build-system emacs-build-system) + (home-page "https://github.com/mickeynp/makey") + (synopsis "Emacs interactive command-line mode") + (description + "This package provides an Emacs interactive command-line mode.") + (license license:gpl3+))) + +(define-public emacs-outorg + (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64")) + (package + (name "emacs-outorg") + (version (git-version "2.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/outorg") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj")))) + (build-system emacs-build-system) + (home-page "https://github.com/alphapapa/outorg") + (synopsis "Org-style comment editing") + (description "Outorg is for editing comment-sections of source-code +files in temporary Org-mode buffers. It turns conventional +literate-programming upside-down in that the default mode is the +programming-mode, and special action has to be taken to switch to the +text-mode (i.e. Org-mode).") + (license license:gpl3+)))) + +(define-public emacs-outshine + (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6")) + (package + (name "emacs-outshine") + (version (git-version "2.0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/outshine.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-outorg" ,emacs-outorg))) + (home-page "https://github.com/alphapapa/outshine") + (synopsis "Emacs outline with outshine") + (description "Outshine attempts to bring the look and feel of +@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension +of @code{outline-minor-mode} (@code{org-mode} itself derives from +outline-mode), so there is no such thing like an outshine mode, only +@code{outline-minor-mode} with outshine extensions loaded.") + (license license:gpl3+)))) + +(define-public emacs-parsebib + (package + (name "emacs-parsebib") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/joostkremers/parsebib/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63")))) + (build-system emacs-build-system) + (home-page "https://github.com/joostkremers/parsebib") + (synopsis "Library for parsing bib files") + (description + "This package provides an Emacs library for parsing bib files.") + (license license:gpl3+))) + +(define-public emacs-biblio + (package + (name "emacs-biblio") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf")))) + (build-system emacs-build-system) + (home-page "https://github.com/cpitclaudel/biblio.el") + (synopsis "Browse and import bibliographic references") + (description "This package provides an extensible Emacs package for +browsing and fetching references. + +@file{biblio.el} makes it easy to browse and gather bibliographic references +and publications from various sources, by keywords or by DOI. References are +automatically fetched from well-curated sources, and formatted as BibTeX.") + (license license:gpl3+))) + +(define-public emacs-helm-bibtex + (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463") + (revision "1")) + (package + (name "emacs-helm-bibtex") + (version (string-append "2.0.0" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tmalsburg/helm-bibtex.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-parsebib" ,emacs-parsebib) + ("emacs-s" ,emacs-s) + ("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-biblio" ,emacs-biblio))) + (home-page "https://github.com/tmalsburg/helm-bibtex") + (synopsis "Bibliography manager based on Helm") + (description "This package provides bibliography manager for Emacs, +based on Helm and the bibtex-completion backend. + +Key features: + +@itemize +@item Quick access to your bibliography from within Emacs +@item Powerful search capabilities +@item Provides instant search results as you type +@item Tightly integrated with LaTeX authoring, emails, Org mode, etc. +@item Open the PDFs, URLs, or DOIs associated with an entry +@item Insert LaTeX cite commands, Ebib links, or Pandoc citations, +BibTeX entries, or plain text references at point, attach PDFs to emails +@item Support for note taking +@item Quick access to online bibliographic databases such as Pubmed, +arXiv, Google Scholar, Library of Congress, etc. +@item Imports BibTeX entries from CrossRef and other sources. +@end itemize\n") + (license license:gpl3+)))) + +(define-public emacs-ewmctrl + (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf")) + (package + (name "emacs-ewmctrl") + (version (git-version "0.0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flexibeast/ewmctrl.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi")))) + (build-system emacs-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-ewmctrl + ;; This build phase makes sure ‘ewmctrl’ looks + ;; for ‘wmctrl’ in the right place. + (lambda _ + (let ((file "ewmctrl.el")) + (chmod file #o644) + (emacs-substitute-sexps file + ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl"))))))))) + (inputs + `(("wmctrl" ,wmctrl))) + (home-page "https://github.com/flexibeast/ewmctrl") + (synopsis "Emacs interface to @code{wmctrl}") + (description "@code{ewmctrl} provides an Emacs interface to +@code{wmctrl} command-line window-management program.") + (license license:gpl3+)))) + +(define-public emacs-helm-gtags + (package + (name "emacs-helm-gtags") + (version "1.5.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/syohex/emacs-helm-gtags/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/syohex/emacs-helm-gtags") + (synopsis "Emacs Helm interface to GNU Global") + (description + "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.") + (license license:gpl3+))) + +(define-public emacs-list-utils + (package + (name "emacs-list-utils") + (version "0.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/rolandwalker/list-utils/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p")))) + (build-system emacs-build-system) + (home-page "https://github.com/rolandwalker/list-utils") + (synopsis "List-manipulation utility functions") + (description "This package provides a list manipulation library for Emacs.") + (license license:gpl3+))) + +(define-public emacs-move-text + (package + (name "emacs-move-text") + (version "2.0.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/emacsfodder/move-text/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0")))) + (build-system emacs-build-system) + (home-page "https://github.com/emacsfodder/move-text") + (synopsis "Move current line or region with M-up or M-down") + (description "This package provide functions to move the current line +using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the +region instead.") + (license license:gpl3+))) + +(define-public emacs-validate + (package + (name "emacs-validate") + (version "1.0.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/Malabarba/validate.el" + "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg")))) + (build-system emacs-build-system) + (home-page "https://github.com/Malabarba/validate.el") + (synopsis "Emacs library for scheme validation") + (description "This Emacs library provides two functions that perform +schema validation.") + (license license:gpl3+))) + +(define-public emacs-load-relative + (let ((commit "738896e3da491b35399178ed2c6bc92cc728d119") + (revision "1")) + (package + (name "emacs-load-relative") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rocky/emacs-load-relative") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1rpy5mfncncl6gqgg53d3g25g1700g4b9bivd4c0cfcv5dbxhp73")))) + (build-system emacs-build-system) + (home-page "https://github.com/rocky/emacs-load-relative") + (synopsis "Relative loads for Emacs Lisp files") + (description "@code{load-relative} allows to write small Emacs +functions or modules in a larger multi-file Emacs package and +facilitate running from the source tree without having to install the +code or fiddle with evil @code{load-path}.") + (license license:gpl3+)))) + +(define-public emacs-rainbow-blocks + (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842")) + (package + (name "emacs-rainbow-blocks") + (version (git-version "1.0.0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/istib/rainbow-blocks.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795")))) + (build-system emacs-build-system) + (home-page "https://github.com/istib/rainbow-blocks") + (synopsis "Highlight sexp blocks") + (description "Rainbow-blocks is an Emacs mode that highlights blocks +made of parentheses, brackets, and braces according to their depth. Each +successive level is highlighted in a different color. This makes it easy to +orient yourself in the code, and tell which statements are at a given level.") + (license license:gpl3+)))) + +(define-public emacs-hierarchy + (package + (name "emacs-hierarchy") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/DamienCassou/hierarchy/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8")))) + (build-system emacs-build-system) + (home-page "https://github.com/DamienCassou/hierarchy") + (synopsis "Library to create and display hierarchy structures") + (description "This package provides an Emacs library to create, query, +navigate and display hierarchy structures.") + (license license:gpl3+))) + +(define-public emacs-tree-mode + (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534") + (revision "1")) + (package + (name "emacs-tree-mode") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacsorphanage/tree-mode.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix")))) + (build-system emacs-build-system) + (home-page "https://github.com/emacsorphanage/tree-mode") + (synopsis "Emacs mode to manage tree widgets") + (description + "This package provides an Emacs library to manage tree widgets.") + (license license:gpl3+)))) + +(define-public emacs-md4rd + (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500") + (revision "1")) + (package + (name "emacs-md4rd") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ahungry/md4rd.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq")))) + (propagated-inputs + `(("emacs-hierarchy" ,emacs-hierarchy) + ("emacs-request" ,emacs-request) + ("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s) + ("emacs-tree-mode" ,emacs-tree-mode))) + (build-system emacs-build-system) + (home-page "https://github.com/ahungry/md4rd") + (synopsis "Emacs Mode for Reddit") + (description + "This package allows to read Reddit from within Emacs interactively.") + (license license:gpl3+)))) + +(define-public emacs-pulseaudio-control + (let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b") + (revision "1")) + (package + (name "emacs-pulseaudio-control") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flexibeast/pulseaudio-control.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv")))) + (build-system emacs-build-system) + (home-page "https://github.com/flexibeast/pulseaudio-control") + (synopsis "Control @code{pulseaudio} from Emacs") + (description + "This package allows to control @code{pulseaudio} from Emacs.") + (license license:gpl3+)))) + +(define-public emacs-datetime + (package + (name "emacs-datetime") + (version "0.3") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/doublep/datetime/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9")))) + (build-system emacs-build-system) + (home-page "https://github.com/doublep/datetime/") + (synopsis "Library to work with dates in Emacs") + (description "Parsing, formatting, matching and recoding +timestamps and date-time format strings library for Emacs.") + (license license:gpl3+))) + +(define-public emacs-org-mind-map + (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb") + (revision "1")) + (package + (name "emacs-org-mind-map") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/theodorewiles/org-mind-map.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn")))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash))) + (build-system emacs-build-system) + (home-page "https://github.com/theodorewiles/org-mind-map") + (synopsis "Create Graphviz directed graphs from Org files") + (description + "This package creates Graphviz directed graphs from Org files.") + (license license:gpl3+)))) + +(define-public emacs-npm-mode + (package + (name "emacs-npm-mode") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/mojochao/npm-mode/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5")))) + (build-system emacs-build-system) + (home-page "https://github.com/mojochao/npm-mode") + (synopsis "Minor mode for working with @code{npm} projects") + (description + "@code{npm-mode} provides a minor mode to work with @code{npm} projects.") + (license license:gpl3+))) + +(define-public emacs-seq + (package + (name "emacs-seq") + (version "2.20") + (source + (origin + (method url-fetch) + (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar")) + (sha256 + (base32 + "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/seq.html") + (synopsis "Sequence manipulation functions") + (description "Sequence-manipulation functions that complement basic +functions provided by @file{subr.el}.") + (license license:gpl3+))) + +(define-public emacs-itail + (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888") + (revision "1")) + (package + (name "emacs-itail") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/re5et/itail.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv")))) + (build-system emacs-build-system) + (home-page "https://github.com/re5et/itail") + (synopsis "Interactive @code{tail} Emacs mode") + (description "@code{itail} provides interactive @code{tail} mode +that allows you to filter the tail with unix pipes and highlight the +contents of the tailed file. Works locally or on remote files using +tramp.") + (license license:gpl3+)))) + +(define-public emacs-loop + (package + (name "emacs-loop") + (version "1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Wilfred/loop.el/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9")))) + (build-system emacs-build-system) + (home-page "https://github.com/Wilfred/loop.el") + (synopsis "Imperative loop structures for Emacs") + (description "Loop structures familiar to users of other languages. This +library adds a selection of popular loop structures as well as break and +continue.") + (license license:gpl3+))) + +(define-public emacs-elisp-refs + (package + (name "emacs-elisp-refs") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-list-utils" ,emacs-list-utils) + ("emacs-loop" ,emacs-loop) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/Wilfred/elisp-refs") + (synopsis "Find callers of elisp functions or macros") + (description "Find references to functions, macros or variables. Unlike a +dumb text search, @code{elisp-refs} actually parses the code, so it's never +confused by comments or @code{foo-bar} matching @code{foo}.") + (license license:gpl3+))) + +(define-public emacs-crux + (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f") + (revision "1")) + (package + (name "emacs-crux") + (version (string-append "0.3.0" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bbatsov/crux.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd")))) + (build-system emacs-build-system) + (home-page "https://github.com/bbatsov/crux") + (synopsis "Collection of useful functions for Emacs") + (description + "@code{crux} provides a collection of useful functions for Emacs.") + (license license:gpl3+)))) + +(define-public emacs-edit-server + (package + (name "emacs-edit-server") + (version "1.13") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir-elisp + ;; Elisp directory is not in root of the source. + (lambda _ + (chdir "servers")))))) + (home-page "https://github.com/stsquad/emacs_chrome") + (synopsis "Server that responds to edit requests from Chromium") + (description + "This package provides an edit server to respond to requests from Emacs.") + (license license:gpl3+))) + +(define-public emacs-m-buffer-el + (package + (name "emacs-m-buffer-el") + (version "0.15") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/phillord/m-buffer-el" + "/archive/" "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'check + (lambda* (#:key inputs #:allow-other-keys) + (zero? (system* "emacs" "--batch" "-L" "." + "-l" "test/m-buffer-test.el" + "-l" "test/m-buffer-at-test.el" + "-f" "ert-run-tests-batch-and-exit"))))))) + (build-system emacs-build-system) + (home-page "https://github.com/phillord/m-buffer-el") + (synopsis "List oriented buffer operations for Emacs") + (description "@code{m-buffer} provides a set of list-orientated functions +for operating over the contents of Emacs buffers.") + (license license:gpl3+))) + +(define-public emacs-let-alist + (package + (name "emacs-let-alist") + (version "1.0.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://elpa.gnu.org/packages/let-alist-" version ".el")) + (sha256 + (base32 + "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw")))) + (build-system emacs-build-system) + (home-page "https://elpa.gnu.org/packages/let-alist.html") + (synopsis "Easily let-bind values of an assoc-list by their names") + (description "This package offers a single macro, @code{let-alist}. This +macro takes a first argument (whose value must be an alist) and a body.") + (license license:gpl3+))) + +(define-public emacs-esup + (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7") + (revision "1")) + (package + (name "emacs-esup") + (version (string-append "0.6" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jschaf/esup.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv")))) + ;; TODO: Add tests + (build-system emacs-build-system) + (home-page "https://github.com/jschaf/esup") + (synopsis "Emacs start up profiler") + (description "Benchmark Emacs Startup time without ever leaving +your Emacs.") + (license license:gpl2+)))) + +(define-public emacs-sourcemap + (package + (name "emacs-sourcemap") + (version "0.03") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6")))) + (build-system emacs-build-system) + (home-page "https://github.com/syohex/emacs-sourcemap") + (synopsis "Sourcemap parser") + (description "Sourcemap parser") + (license license:gpl3+))) + +(define-public emacs-macrostep + (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267")) + (package + (name "emacs-macrostep") + (version (git-version "0.9" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/joddie/macrostep.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz")))) + (build-system emacs-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'remove-test + ;; Fails because of requirement ‘/bin/sh’. + (lambda _ + (let ((file "macrostep-test.el")) + (chmod file #o644) + (emacs-batch-edit-file file + `(progn (progn (goto-char (point-min)) + (re-search-forward + "(ert-deftest macrostep-expand-c-macros") + (beginning-of-line) + (kill-sexp)) + (basic-save-buffer)))))) + (add-before 'install 'check + (lambda _ + (invoke "emacs" "--batch" "-L" "." + "-l" "macrostep-test.el" + "-f" "ert-run-tests-batch-and-exit")))))) + (home-page "https://github.com/joddie/macrostep") + (synopsis "Interactive macro-expander for Emacs") + (description "@code{macrostep} is an Emacs minor mode for interactively +stepping through the expansion of macros in Emacs Lisp source code. It lets +you see exactly what happens at each step of the expansion process by +pretty-printing the expanded forms inline in the source buffer, which is +temporarily read-only while macro expansions are visible. You can expand and +collapse macro forms one step at a time, and evaluate or instrument the +expansions for debugging with Edebug as normal (but see “Bugs and known +limitations”, below). Single-stepping through the expansion is particularly +useful for debugging macros that expand into another macro form. These can be +difficult to debug with Emacs’ built-in macroexpand, which continues expansion +until the top-level form is no longer a macro call.") + (license license:gpl3+)))) + +(define-public emacs-parent-mode + (package + (name "emacs-parent-mode") + (version "2.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Fanael/parent-mode/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd")))) + (build-system emacs-build-system) + (home-page "https://github.com/Fanael/parent-mode") + (synopsis "Get major mode's parent modes") + (description "Get major mode's parent modes") + (license license:gpl3+))) + +(define-public emacs-lacarte + (package + (name "emacs-lacarte") + (version "0.1") + (source (origin + (method url-fetch) + (uri "https://www.emacswiki.org/emacs/download/lacarte.el") + (sha256 + (base32 + "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/lacarte.el") + (synopsis "Execute menu items as commands, with completion") + (description "Execute menu items as commands, with completion.") + (license license:gpl3))) + +(define-public emacs-company-lua + (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4")) + (package + (name "emacs-company-lua") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ptrv/company-lua.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-company" ,emacs-company) + ("emacs-s" ,emacs-s) + ("emacs-f" ,emacs-f) + ("emacs-lua-mode" ,emacs-lua-mode))) + (home-page "https://github.com/ptrv/company-lua") + (synopsis "Company backend for Lua") + (description + "This package provides Company backend for Lua programming language.") + (license license:gpl3+)))) + +(define-public emacs-beginend + (package + (name "emacs-beginend") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/DamienCassou/beginend/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq")))) + ;; TODO: Run tests. + (build-system emacs-build-system) + (inputs + `(("emacs-undercover" ,emacs-undercover))) ; For tests. + (home-page "https://github.com/DamienCassou/beginend") + (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes") + (description "@code{beginend} redefines @code{M-<} and @code{M->} +keybindings for Emacs modes so that point moves to meaningful +locations. Redefined keys are still accessible by pressing the same +key again.") + (license license:gpl3+))) + +(define-public emacs-mbsync + (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3") + (revision "1")) + (package + (name "emacs-mbsync") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dimitri/mbsync-el.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6")))) + (build-system emacs-build-system) + (home-page "https://github.com/dimitri/mbsync-el") + (synopsis "Interface to mbsync for Emacs") + (description "This package allows to call the @code{mbsync} from +within Emacs.") + (license license:gpl3+)))) + +(define-public emacs-ibuffer-projectile + (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011") + (revision "1")) + (package + (name "emacs-ibuffer-projectile") + (version (string-append "0.2" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/purcell/ibuffer-projectile.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-projectile" ,emacs-projectile))) + (home-page "https://github.com/purcell/ibuffer-projectile") + (synopsis "Group ibuffer's list by projectile root") + (description "Adds functionality to Emacs @code{ibuffer} for +grouping buffers by their projectile root directory.") + (license license:gpl3+)))) + +(define-public emacs-helm-mode-manager + (package + (name "emacs-helm-mode-manager") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/istib/helm-mode-manager/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/istib/helm-mode-manager/") + (synopsis "Switch and toggle Emacs major and minor modes using Helm") + (description "This package provides a Helm interface for toggling Emacs +major or minor mode. + +@itemize +@item @code{helm-switch-major-mode} list of all major modes +@item @code{helm-enable-minor-mode} list of all inactive minor modes +@item @code{helm-disable-minor-mode} list of all ACTIVE minor modes +@end itemize\n + +Hitting @code{RET} enables the mode, @code{C-z} shows the mode +documentation.") + (license license:gpl3+))) + +(define-public emacs-hy-mode + (package + (name "emacs-hy-mode") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/hylang/hy-mode/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/hylang/hy-mode") + (synopsis "Major mode for Hylang") + (description "This package provides a major mode for Hylang.") + (license license:gpl3+))) + +(define-public emacs-web-beautify + (package + (name "emacs-web-beautify") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/yasuyk/web-beautify/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs")))) + (build-system emacs-build-system) + (home-page "https://github.com/yasuyk/web-beautify") + (synopsis "Format HTML, CSS and JavaScript, JSON") + (description "This package provides an Emacs functions to format HTML, +CSS, JavaScript, JSON.") + (license license:gpl3+))) + +(define-public emacs-helm-shell-history + (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1")) + (package + (name "emacs-helm-shell-history") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yuutayamada/helm-shell-history.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj")))) + (build-system emacs-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'patch-helm-shell-history-file + (lambda _ + (let ((file "helm-shell-history.el")) + (chmod file #o644) + (emacs-substitute-sexps file + ("(defvar helm-shell-history-file" + `(expand-file-name "~/.bash_history")))) + #t))))) + (propagated-inputs + `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/yuutayamada/helm-shell-history") + (synopsis "Find shell history with Emacs Helm") + (description "This package provides an Emacs Helm interface to search +throw a shell history.") + (license license:gpl3+)))) + +(define-public emacs-discover-my-major + (package + (name "emacs-discover-my-major") + (version "1.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/steckerhalter/discover-my-major" + "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-makey" ,emacs-makey))) + (home-page "https://github.com/steckerhalter/discover-my-major") + (synopsis "Discover key bindings for the current Emacs major mode") + (description "This package provides allows to discover key bindings and +their meaning for the current Emacs major-mode.") + (license license:gpl3+))) + +(define-public emacs-org-ref + (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129") + (revision "1")) + (package + (name "emacs-org-ref") + (version (string-append "1.1.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jkitchin/org-ref.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-helm" ,emacs-helm) + ("emacs-helm-bibtex" ,emacs-helm-bibtex) + ("emacs-ivy" ,emacs-ivy) + ("emacs-hydra" ,emacs-hydra) + ("emacs-key-chord" ,emacs-key-chord) + ("emacs-s" ,emacs-s) + ("emacs-f" ,emacs-f) + ("emacs-pdf-tools" ,emacs-pdf-tools))) + (home-page "https://github.com/jkitchin/org-ref") + (synopsis "Citations, cross-references and bibliographies in org-mode") + (description + "Lisp code to setup bibliography, cite, ref and label org-mode links. +Also sets up reftex and helm for org-mode citations. The links are +clickable and do things that are useful. + +The default setup uses helm-bibtex. + +You should really read org-ref.org in this package for details.") + (license license:gpl3+)))) + +(define-public emacs-add-hooks + (package + (name "emacs-add-hooks") + (version "3.1.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/nickmccurdy/add-hooks/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549")))) + (build-system emacs-build-system) + (home-page "https://github.com/nickmccurdy/add-hooks/") + (synopsis "Emacs function for setting multiple hooks") + (description "This package provides a @code{add-hooks} function tidies up +duplicate hook and function names further into a single declarative call.") + (license license:gpl3+))) + +(define-public emacs-fancy-narrow + (package + (name "emacs-fancy-narrow") + (version "0.9.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n")))) + (build-system emacs-build-system) + (home-page "https://github.com/Malabarba/fancy-narrow/releases") + (synopsis "Immitate narrow-to-region with more eye-candy") + (description "Unlike narrow-to-region, which completely hides text outside +the narrowed region, this package simply deemphasizes the text, makes it +readonly, and makes it unreachable. This leads to a much more natural +feeling, where the region stays static (instead of being brutally moved to a +blank slate) and is clearly highlighted with respect to the rest of the +buffer.") + (license license:gpl2+))) + +(define-public emacs-know-your-http-well + (package + (name "emacs-know-your-http-well") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/for-GET/know-your-http-well/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'install-json-files + (lambda* (#:key outputs #:allow-other-keys) + (for-each (lambda (directory) + (copy-recursively directory + (string-append + (assoc-ref outputs "out") + directory))) + '("js" "json")))) + (add-after 'unpack 'chdir-elisp + ;; Elisp directory is not in root of the source. + (lambda _ + (chdir "emacs")))))) + (build-system emacs-build-system) + (home-page "https://github.com/for-GET/know-your-http-well") + (synopsis "Meaning of HTTP headers codes") + (description "Meaning of HTTP headers codes.") + (license license:gpl3+))) + +(define-public emacs-navi-mode + (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674")) + (package + (name "emacs-navi-mode") + (version (git-version "2.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/navi.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-outshine" ,emacs-outshine) + ("emacs-outorg" ,emacs-outorg))) + (home-page "https://github.com/alphapapa/navi") + (synopsis "Emacs major-mode for easy buffer-navigation") + (description + "This package provides an Emacs major-mode for easy buffer-navigation") + (license license:gpl3+)))) + +(define-public emacs-download-region + (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa") + (revision "1")) + (package + (name "emacs-download-region") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zk-phi/download-region.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc")))) + (build-system emacs-build-system) + (home-page "https://github.com/zk-phi/download-region") + (synopsis "In buffer download manager for Emacs") + (description "@code{download-region} provides in buffer +downloading manager for Emacs.") + (license license:gpl3+)))) + +(define-public emacs-csv-mode + (package + (name "emacs-csv-mode") + (version "1.7") + (source + (origin + (method url-fetch) + (uri (string-append "http://elpa.gnu.org/packages/csv-mode-" + version ".el")) + (sha256 + (base32 + "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/csv-mode.html") + (synopsis "Major mode for editing comma or char separated values") + (description + "This package provides an Emacs CSV mode, a major mode for editing +records in a generalized CSV (character-separated values) format.") + (license license:gpl3+))) + +(define-public emacs-helpful + (package + (name "emacs-helpful") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Wilfred/helpful/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-elisp-refs" ,emacs-elisp-refs))) + (home-page "https://github.com/Wilfred/helpful") + (synopsis "More contextual information in Emacs help") + (description "@code{helpful} is an alternative to the built-in Emacs help +that provides much more contextual information. + +@itemize +@item Show the source code for interactively defined functions (unlike the +built-in Help). +@item Fall back to the raw sexp if no source is available. +@item Show where a function is being called. +@item Docstrings will Highlight the summary (the first sentence), include +cross-references, hide superfluous puncuation. +@item Show you the properties that have been applied to the current +symbol. This provides visibility of features like edebug or byte-code +optimisation. +@item Provide a separate @code{helpful-command} function to view interactive +functions. +@item Display any keybindings that apply to interactive functions. +@item Trace, disassemble functions from inside Helpful. This is discoverable +and doesn't require memorisation of commands. +@end itemize\n") + (license license:gpl3+))) + +(define-public emacs-logview + (package + (name "emacs-logview") + (version "0.9") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/doublep/logview/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp")))) + (propagated-inputs + `(("emacs-datetime" ,emacs-datetime))) + (build-system emacs-build-system) + (home-page "https://github.com/doublep/logview/") + (synopsis "Emacs mode for viewing log files") + (description "@code{logview} provides an Emacs mode to view log files.") + (license license:gpl3+))) + +(define-public emacs-suggest + (package + (name "emacs-suggest") + (version "0.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Wilfred/suggest.el/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-loop" ,emacs-loop) + ("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s) + ("emacs-f" ,emacs-f))) + (home-page "https://github.com/Wilfred/suggest.el") + (synopsis "Suggest Elisp functions that give the output requested") + (description "Suggest.el will find functions that give the output +requested. It's a great way of exploring list, string and arithmetic +functions.") + (license license:gpl3+))) + +(define-public emacs-benchmark-init + (package + (name "emacs-benchmark-init") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/dholm/benchmark-init-el/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz")))) + (build-system emacs-build-system) + (home-page "https://github.com/dholm/benchmark-init-el") + (synopsis "Benchmark Emacs @code{require} and @code{load} calls") + (description "@code{benchmark-init} provides a way to keep track of where +time is being spent during Emacs startup in order to optimize startup time.") + (license license:gpl3+))) + +(define-public emacs-emms-player-simple-mpv + (let ((commit "101d120ccdee1c2c213fd2f0423c858b21649c00") + (revision "1")) + (package + (name "emacs-emms-player-simple-mpv") + (version (string-append "0.4.0" "-" revision "." + (string-take commit 7))) + + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/momomo5717/emms-player-simple-mpv.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1i6rxkm0ra0jbkkwgkwxg3vk5xfl794h1gkgnlpscynz0v94b6ll")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-emms" ,emms))) + (home-page "https://github.com/momomo5717/emms-player-simple-mpv") + (synopsis "Extension of @file{emms-player-simple.el} for mpv JSON IPC") + (description "@code{emms-player-simple-mpv} provides macros and +functions for defining emms simple players of mpv.") + (license license:gpl3+)))) + +(define-public emacs-magit-org-todos-el + (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a")) + (package + (name "emacs-magit-org-todos-el") + (version (git-version "0.1.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/danielma/magit-org-todos.el.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn")))) + (propagated-inputs + `(("magit" ,magit))) + (build-system emacs-build-system) + (home-page "https://github.com/danielma/magit-org-todos.el") + (synopsis "Get todo.org into Emacs Magit status") + (description "This package allows you to get @file{todo.org} into your +magit status. + +If you have a @file{todo.org} file with @code{TODO} items in the root of your +repository, @code{magit-org-todos} will create a section in your Magit status +buffer with each of your todos.") + (license license:gpl3+)))) + +(define-public emacs-f3 + (package + (name "emacs-f3") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/cosmicexplorer/f3/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/cosmicexplorer/f3") + (synopsis "Fantastic File Finder for Emacs") + (description + "The Fantastic File Finder for Emacs. Find files fast, using helm.") + (license license:gpl3+))) + +(define-public emacs-lice-el + (let ((commit "4339929927c62bd636f89bb39ea999d18d269250")) + (package + (name "emacs-lice-el") + (version (git-version "0.2" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/buzztaiki/lice-el.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb")))) + (build-system emacs-build-system) + (home-page "https://github.com/buzztaiki/lice-el") + (synopsis "License and header template for Emacs") + (description "@code{lice.el} provides following features: + +@itemize +@item License template management. +@item File header insertion. +@end itemize\n") + (license license:gpl3+)))) + +(define-public emacs-academic-phrases + (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656")) + (package + (name "emacs-academic-phrases") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nashamri/academic-phrases.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s) + ("emacs-ht" ,emacs-ht))) + (home-page "https://github.com/nashamri/academic-phrases") + (synopsis "Bypass that mental block when writing your papers") + (description + "When writing your academic paper, you might get stuck trying to find +the right phrase that captures your intention. This package tries to +alleviate that problem by presenting you with a list of phrases organized by +the topic or by the paper section that you are writing. This package has +around 600 phrases so far. + +Using this package is easy, just call @code{academic-phrases} to get a list of +phrases organized by topic, or call @code{academic-phrases-by-section} to +browse the phrases by the paper section and fill-in the blanks if required.") + (license license:gpl3+)))) + +(define-public emacs-auto-yasnippet + (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b")) + (package + (name "emacs-auto-yasnippet") + (version (git-version "0.3.0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abo-abo/auto-yasnippet.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk")))) + (build-system emacs-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'install 'check + (lambda _ + (invoke "emacs" "--batch" + "-l" "auto-yasnippet.el" + "-l" "auto-yasnippet-test.el" + "-f" "ert-run-tests-batch-and-exit")))))) + (propagated-inputs + `(("emacs-yasnippet" ,emacs-yasnippet))) + (home-page "https://github.com/abo-abo/auto-yasnippet/") + (synopsis "Quickly create disposable yasnippets") + (description "This package provides a hybrid of keyboard macros and +yasnippet. You create the snippet on the go, usually to be used just in the +one place. It's fast, because you're not leaving the current buffer, and all +you do is enter the code you'd enter anyway, just placing ~ where you'd like +yasnippet fields and mirrors to be.") + (license license:gpl3+)))) + +(define-public emacs-highlight-numbers + (package + (name "emacs-highlight-numbers") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/Fanael/highlight-numbers/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-parent-mode" ,emacs-parent-mode))) + (home-page "https://github.com/Fanael/highlight-numbers") + (synopsis "Highlight numbers in source code") + (description "@code{highlight-numbers-mode} provides a minor mode for +syntax highlighting of numeric literals in source code. + +It s customizable: it's easy to add or redefine what exactly consitutes a +\"number\" in given major mode. See @code{highlight-numbers-modelist}.") + (license license:gpl3+))) + +(define-public emacs-darkroom + (package + (name "emacs-darkroom") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/darkroom-" + version ".el")) + (sha256 + (base32 + "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak")))) + (build-system emacs-build-system) + (home-page "https://elpa.gnu.org/packages/darkroom.html") + (synopsis "Remove visual distractions and focus on writing") + (description "@code{darkroom-mode} makes visual distractions disappear. +The mode-line is temporarily elided, text is enlarged and margins are adjusted +so that it's centered on the window. + +@code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on +@code{darkroom-mode}, unless the current buffer lives in the sole window of +the Emacs frame (i.e. all other windows are deleted). Whenever the frame is +split to display more windows and more buffers, the buffer exits +@code{darkroom-mode}. Whenever they are deleted, the buffer re-enters +@code{darkroom-mode}.") + (license license:gpl3+))) + +(define-public emacs-rsw-elisp + (package + (name "emacs-rsw-elisp") + (version "1.0.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/rswgnu/rsw-elisp" + "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps")))) + (build-system emacs-build-system) + (home-page "https://github.com/rswgnu/rsw-elisp") + (synopsis "Improved expressions that interactively evaluate Emacs Lisp") + (description "This package improves and replaces the GNU Emacs commands +that interactively evaluate Emacs Lisp expressions. The new commands replace +standard key bindings and are all prefixed with @code{rsw-elisp-}. They work +the same way as the old commands when called non-interactively; only the +interactive behavior should be different.") + (license license:gpl3+))) + +(define-public emacs-default-text-scale + (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8") + (revision "1")) + (package + (name "emacs-default-text-scale") + (version (string-append "0.1" "-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/purcell/default-text-scale") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h")))) + (build-system emacs-build-system) + (home-page "https://github.com/purcell/default-text-scale") + (synopsis "Adjust the font size in all Emacs frames") + (description "This package provides commands for increasing or +decreasing the default font size in all GUI Emacs frames.") + (license license:gpl3+)))) + +(define-public emacs-visual-regexp + (package + (name "emacs-visual-regexp") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/benma/visual-regexp.el/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92")))) + (build-system emacs-build-system) + (home-page "https://github.com/benma/visual-regexp.el/") + (synopsis "Regexp command with interactive visual feedback") + (description "This package provides an Emacs regexp command with +interactive visual feedback.") + (license license:gpl3+))) + +(define-public emacs-faceup + (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154") + (revision "1")) + (package + (name "emacs-faceup") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Lindydancer/faceup.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx")))) + (build-system emacs-build-system) + (home-page "https://github.com/Lindydancer/faceup") + (synopsis "Markup language for faces and font-lock regression testing") + (description "Emacs is capable of highlighting buffers based on +language-specific @code{font-lock} rules. This package makes it possible to +perform regression test for packages that provide font-lock rules.") + (license license:gpl3+)))) + +(define-public emacs-racket-mode + (let ((commit "33877b1bb24faea68842e0396bd5718b84e47451") + (revision "1")) + (package + (name "emacs-racket-mode") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/greghendershott/racket-mode") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-faceup" ,emacs-faceup) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/greghendershott/racket-mode") + (synopsis "Major mode for Racket language") + (description "@code{racket-mode} provides: + +@itemize +@item Focus on Racket (not various Schemes). +@item Follow DrRacket concepts where applicable. +@item Thorough font-lock and indent. +@end itemize\n") + (license license:gpl3+)))) + +(define-public emacs-grep-context + (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7")) + (package + (name "emacs-grep-context") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mkcms/grep-context.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/nashamri/academic-phrases") + (synopsis "Increase context in compilation and grep buffers") + (description + "This package provides an Emacs package for more context in +compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag}, +@code{ivy}.") + (license license:gpl3+)))) + +(define-public emacs-helm-firefox + (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085") + (revision "1")) + (package + (name "emacs-helm-firefox") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-firefox.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs")))) + (propagated-inputs + `(("emacs-helm" ,emacs-helm))) + (build-system emacs-build-system) + (home-page "https://github.com/emacs-helm/helm-firefox") + (synopsis "Display firefox bookmarks with Emacs Helm interface") + (description "Display firefox bookmarks with Emacs Helm interface") + (license license:gpl3+)))) + +(define-public emacs-interactive-align + (package + (name "emacs-interactive-align") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/mkcms/interactive-align/" + "archive/" "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m")))) + (build-system emacs-build-system) + (home-page "https://github.com/mkcms/interactive-align/") + (synopsis "Interactive align-regexp command in Emacs") + (description "Interactive align-regexp command in Emacs") + (license license:gpl3+))) + +(define-public emacs-shift-number + (package + (name "emacs-shift-number") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/alezost/shift-number.el" + "/archive/" "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x")))) + (build-system emacs-build-system) + (home-page "https://github.com/alezost/shift-number.el") + (synopsis "Increase or decrease the number at point") + (description "@code{emacs-shift-number} provides commands +@code{shift-number-up} to increase and @code{shift-number-down} to +decrease the number at point.") + (license license:gpl3+))) + +(define-public emacs-highlight-defined + (package + (name "emacs-highlight-defined") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/Fanael/highlight-defined/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506")))) + (build-system emacs-build-system) + (home-page "https://github.com/Fanael/highlight-defined") + (synopsis "Syntax highlighting of known Elisp symbols") + (description "Minor mode providing syntax highlighting of known Emacs Lisp +symbols. Currently the code distinguishes Lisp functions, built-in functions, +macros, faces and variables. To enable call @code{highlight-defined-mode}. ") + (license license:gpl3+))) + +(define-public emacs-parinfer-mode + (package + (name "emacs-parinfer-mode") + (version "0.4.10") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv")))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters) + ("emacs-company" ,emacs-company))) + (build-system emacs-build-system) + (home-page "https://github.com/DogLooksGood/parinfer-mode/") + (synopsis "Lisp structure editing mode") + (description "@code{parinfer-mode} is a proof-of-concept editor +mode for Lisp programming languages. It will infer some changes to +keep Parens and Indentation inline with one another.") + (license license:gpl3+))) + +(define-public emacs-helm-eww + (let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac")) + (package + (name "emacs-helm-eww") + (version (git-version "0.1" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-eww.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183")))) + (propagated-inputs + `(("emacs-helm" ,emacs-helm))) + (build-system emacs-build-system) + (home-page "https://github.com/emacs-helm/helm-eww/") + (synopsis "Helm interface to EWW") + (description "This package provides a Helm interface for EWW buffers, +bookmarks and history.") + (license license:gpl3+)))) + +(define-public emacs-stumpwm-mode + (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35") + (revision "1")) + (package + (name "emacs-stumpwm-mode") + (version (string-append "0.0.1-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stumpwm/stumpwm-contrib.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir-elisp + ;; Elisp directory is not in root of the source. + (lambda _ + (chdir "util/swm-emacs")))))) + (home-page "https://github.com/stumpwm/stumpwm-contrib") + (synopsis "Emacs minor-mode for Stumpwm") + (description "Emacs minor-mode for Stumpwm") + (license license:gpl3+)))) + +(define-public emacs-irfc + (package + (name "emacs-irfc") + (version "20130824.507") + (source + (origin + (method url-fetch) + (uri "https://www.emacswiki.org/emacs/download/irfc.el") + (file-name (string-append "irfc-" version ".el")) + (sha256 + (base32 + "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/download/irfc.el") + (synopsis "Interface for IETF RFC document") + (description + "This package provides an Emacs interface for IETF RFC document.") + (license license:gpl3+))) + +(define-public emacs-ido-vertical-mode + (package + (name "emacs-ido-vertical-mode") + (version "0.1.6") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/creichert/ido-vertical-mode.el/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53")))) + (build-system emacs-build-system) + (home-page "https://github.com/creichert/ido-vertical-mode.el") + (synopsis "Makes ido-mode display vertically") + (description "Makes ido-mode display prospects vertically.") + (license license:gpl3+))) + +(define-public emacs-wordgen + (package + (name "emacs-wordgen") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Fanael/wordgen.el/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg")))) + (build-system emacs-build-system) + (home-page "https://github.com/Fanael/wordgen.el") + (synopsis "Random word generator") + (description "This package provides functions to generate random words +using user-provided rules.") + (license license:gpl3+))) + +(define-public emacs-on-screen + (package + (name "emacs-on-screen") + (version "1.3.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://elpa.gnu.org/packages/on-screen-" version ".el")) + (file-name (string-append name "-" version ".el")) + (sha256 + (base32 + "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv")))) + (build-system emacs-build-system) + (home-page + "https://github.com/michael-heerdegen/on-screen.el") + (synopsis "Guide your eyes while scrolling") + (description + "Scrolling can be distracting because your eyes may lose +orientation. This library implements a minor mode that highlights +the previously visible buffer part after each scroll.") + (license license:gpl3+))) + +(define-public emacs-highlight-escape-sequences + (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41") + (revision "1")) + (package + (name "emacs-highlight-escape-sequences") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dgutov/highlight-escape-sequences.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is")))) + (build-system emacs-build-system) + (home-page "https://github.com/dgutov/highlight-escape-sequences") + (synopsis "Highlight escape sequences in Emacs") + (description "@code{highlight-escape-sequences} provides an +Emacs minor mode to escape sequences in code.") + (license license:gpl3+)))) + +(define-public emacs-dashboard + (package + (name "emacs-dashboard") + (version "1.2.4") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/rakanalh/emacs-dashboard/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-page-break-lines" ,emacs-page-break-lines))) + (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$"))) + (home-page "https://github.com/rakanalh/emacs-dashboard") + (synopsis "Startup screen extracted from Spacemacs") + (description "This package provides an extensible Emacs dashboard, with +sections for bookmarks, projectil projects, org-agenda and more. ") + (license license:gpl3+))) + +(define-public emacs-slime-company + (package + (name "emacs-slime-company") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/anwyn/slime-company/archive/" + "v" version ".tar.gz")) + (sha256 + (base32 + "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-slime" ,emacs-slime) + ("emacs-company" ,emacs-company))) + (home-page "https://company-mode.github.io") + (synopsis "SLIME completion backend for @code{company-mode}") + (description + "This is a backend implementation for the completion package +@code{company-mode} which supports the normal and the fuzzy completion +modes of SLIME.") + (license license:gpl3+))) + +(define-public emacs-sml-mode + (package + (name "emacs-sml-mode") + (version "6.8") + (source + (origin + (method url-fetch) + (uri (string-append "http://elpa.gnu.org/packages/sml-mode-" + version ".el")) + (sha256 + (base32 + "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/sml-mode.html") + (synopsis "Major mode for editing (Standard) ML") + (description "SML-MODE is a major Emacs mode for editing Standard ML. +It provides syntax highlighting and automatic indentation and +comes with sml-proc which allows interaction with an inferior SML +interactive loop.") + (license license:gpl3+))) + +(define-public emacs-eros + (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5") + (revision "1")) + (package + (name "emacs-eros") + (version (string-append "0.0.1" "-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xiongtx/eros.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4")))) + (build-system emacs-build-system) + (home-page "https://github.com/xiongtx/eros") + (synopsis "Evaluation result overlays") + (description "@code{eros} provides evaluation result overlays.") + (license license:gpl3+)))) + +(define-public emacs-stickyfunc-enhance + (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0") + (revision "1")) + (package + (name "emacs-stickyfunc-enhance") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g")))) + (build-system emacs-build-system) + (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance") + (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}") + (description + "@code{semantic-stickyfunc-mode} shows the function point is currently +in at the first line of the current buffer. This is useful when you have a +very long function that spreads more than a screen, and you don't have to +scroll up to read the function name and then scroll down to original position.") + (license license:gpl3+)))) + +(define-public emacs-git-auto-commit-mode + (package + (name "emacs-git-auto-commit-mode") + (version "4.4.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/ryuslash/git-auto-commit-mode/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870")))) + (build-system emacs-build-system) + (home-page "https://github.com/ryuslash/git-auto-commit-mode") + (synopsis "Emacs Minor mode to automatically commit and push") + (description "@code{git-auto-commit-mode} is an Emacs minor mode that +tries to commit changes to a file after every save. + +When @code{gac-automatically-push-p} is non-nil, it also tries to push to +the current upstream.") + (license license:gpl3+))) + +(define-public emacs-company-restclient + (package + (name "emacs-company-restclient") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/iquiw/company-restclient/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-company" ,emacs-company) + ("emacs-know-your-http-well" ,emacs-know-your-http-well) + ("emacs-restclient" ,emacs-restclient))) + (home-page "https://github.com/iquiw/company-restclient") + (synopsis "Company-mode completion back-end for restclient-mode") + (description "@code{company-mode} back-end for +@code{restclient-mode}. + +It provides auto-completion for HTTP methods and headers in +@code{restclient-mode}. Completion source is given by +@code{know-your-http-well}.") + (license license:gpl3+))) + +(define-public emacs-noflet + (let ((version "20170629") + (revision "1") + (commit "7ae84dc3257637af7334101456dafe1759c6b68a")) + (package + (name "emacs-noflet") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nicferrier/emacs-noflet") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'require-dash + ;; noflet.el uses -map from dash, but (require 'dash) is + ;; missing. So, add it. + (lambda _ + (substitute* "noflet.el" + ((";;; Code:") ";;; Code:\n(require 'dash)")) + #t))))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/nicferrier/emacs-noflet") + (synopsis "Locally override functions") + (description "@code{emacs-noflet} let's you locally override functions, +in the manner of @command{flet}, but with access to the original function +through the symbol: @command{this-fn}.") + (license license:gpl3+)))) + +(define-public emacs-dumb-jump + (package + (name "emacs-dumb-jump") + (version "0.5.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/jacktasia/dumb-jump/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf")))) + (build-system emacs-build-system) + (arguments + `(#:tests? #f ; FIXME: Tests freeze when run. + #:test-command '("ert-runner") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-shell + (lambda _ + ;; Setting the SHELL environment variable is required for the + ;; tests to find sh. + (setenv "SHELL" (which "sh")) + #t))))) + (native-inputs + `(("emacs-el-mock" ,emacs-el-mock) + ("emacs-noflet" ,emacs-noflet) + ("emacs-undercover" ,emacs-undercover) + ("ert-runner" ,ert-runner))) + (propagated-inputs + `(("emacs-f" ,emacs-f) + ("emacs-popup" ,emacs-popup))) + (home-page "https://github.com/jacktasia/dumb-jump") + (synopsis "Jump to definition for multiple languages without configuration") + (description "Dumb Jump is an Emacs \"jump to definition\" package with +support for multiple programming languages that favors \"just working\" over +speed or accuracy. This means minimal --- and ideally zero --- configuration +with absolutely no stored indexes (tags) or persistent background processes. +Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep +@command{rg} installed.") + (license license:gpl3+))) + +(define-public emacs-dts-mode + (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344") + (revision "1")) + (package + (name "emacs-dts-mode") + (version (string-append "0.1.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bgamari/dts-mode.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1")))) + (build-system emacs-build-system) + (home-page "https://github.com/bgamari/dts-mode.git") + (synopsis "Emacs minor mode for editing device tree files") + (description + "This package provides an Emacs minor mode for highlighting +device tree files.") + (license license:gpl3+)))) + +(define-public emacs-daemons + (package + (name "emacs-daemons") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cbowdon/daemons.el") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7")))) + (build-system emacs-build-system) + (home-page "https://github.com/cbowdon/daemons.el") + (synopsis "Emacs UI for managing init system services") + (description + "This is an Emacs mode to give you a UI for managing init system +daemons (services) for those getting tired of typing out @code{sudo service +my_thing reload} all the time. It offers a consistent UI over different init +systems.") + (license license:gpl3+))) + +(define-public emacs-esh-autosuggest + (package + (name "emacs-esh-autosuggest") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dieggsy/esh-autosuggest") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-company" ,emacs-company))) + (home-page "https://github.com/dieggsy/esh-autosuggest") + (synopsis "Fish-like autosuggestions in Eshell") + (description + "This package assumes you use something other than company for eshell +completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point}, +@code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism +for history autosuggestions. + +Unless you're using @code{use-package}'s hook keyword, you can enable the +autosuggestions with: +@code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}") + (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. +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+))) + +(define-public emacs-org-caldav + (package + (name "emacs-org-caldav") + (version "20180403") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/dengste/org-caldav/raw/" + "8d3492c27a09f437d2d94f2736c56d7652e87aa0" + "/org-caldav.el")) + (sha256 + (base32 + "1fh4gh68ddj0is99z2ccyh97v6psnyda61n2dsadzqhcxn51amlc")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-org" ,emacs-org))) + (home-page "https://github.com/dengste/org-caldav") + (synopsis + "Sync Org files with external calendars via the CalDAV protocol") + (description + "Synchronize between events in Org-mode files and a CalDAV calendar. +This code is still alpha.") + (license license:gpl3+))) + +(define-public emacs-zotxt + (package + (name "emacs-zotxt") + (version "20180518") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/egh/zotxt-emacs/archive/" + "23a4a9f74a658222027d53a9a83cd4bcc583ca8b" + ".tar.gz")) + (sha256 + (base32 + "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-deferred" ,emacs-deferred) + ("emacs-request" ,emacs-request))) + (home-page "https://github.com/egh/zotxt-emacs") + (synopsis "Integrate Emacs with Zotero") + (description "This package provides two integration features between Emacs +and the Zotero research assistant: Insertion of links to Zotero items into an +Org-mode file, and citations of Zotero items in Pandoc Markdown files.") + (license license:gpl3+))) + +(define-public emacs-evil-ediff + (package + (name "emacs-evil-ediff") + (version "20170724") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/emacs-evil/evil-ediff/archive/" + "67b0e69f65c196eff5b39dacb7a9ec05bb919c74" + ".tar.gz")) + (sha256 + (base32 + "0j2x26zfc6md54mjf76qpybil4yal70lp5bifcz62l1f8fc1vvlq")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-evil" ,emacs-evil))) + (home-page "https://github.com/emacs-evil/evil-ediff") + (synopsis "Make Ediff a little evil") + (description + "This Emacs package configures Ediff to be friendlier to users of Vi-like +keybindings. Consult the help buffer for more information.") + (license license:gpl3+))) + +(define-public emacs-evil-magit + (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8")) + (package + (name "emacs-evil-magit") + (version (git-version "0.4.2" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-evil/evil-magit") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-evil" ,emacs-evil) + ("magit" ,magit))) + (home-page + "https://github.com/emacs-evil/evil-magit") + (synopsis "Evil-based key bindings for Magit") + (description + "This Emacs library configures Magit and Evil to play well with each other. +For some background see @url{https://github.com/magit/evil-magit/issues/1}. +See the README at @url{https://github.com/justbur/evil-magit} for a table +describing the key binding changes.") + (license license:gpl3+)))) + +(define-public emacs-evil-mu4e + (package + (name "emacs-evil-mu4e") + (version "0.0.8") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/JorisE/evil-mu4e/archive/" + "c03a0e11afda3092eb1461be09fa6a61ebc0e4f6" + ".tar.gz")) + (sha256 + (base32 + "1k3z5h04bqslrkq13paqf8pv9r0rf0zjl0zbb57ly043ds3nvxr2")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-evil" ,emacs-evil) + ("mu" ,mu))) + (home-page "https://github.com/JorisE/evil-mu4e") + (synopsis "Evil-based key bindings for mu4e") + (description + "Use keybindings for the mu4e mail reader in Emacs that make sense for +Evil users.") + (license license:gpl3+))) + +(define-public emacs-evil-multiedit + (let ((commit "ea3d9177b74ab0bc65e55df9cc0a0b42e4ef815d")) + (package + (name "emacs-evil-multiedit") + (version (git-version "1.3.9" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hlissner/evil-multiedit") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "17zm35r474z8ras4xy7124pcb972d385pbdv4jxyj5vq042vq07w")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-evil" ,emacs-evil) + ("emacs-iedit" ,emacs-iedit))) + (home-page + "https://github.com/hlissner/evil-multiedit") + (synopsis "Multiple cursors for Evil mode") + (description + "This plugin was an answer to the lack of proper multiple cursor support +in Emacs+Evil. It allows you to select and edit matches interactively, +integrating @code{iedit-mode} into Evil mode with an attempt at sensible +defaults.") + (license license:gpl3+)))) + +(define-public emacs-evil-org + (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6")) + (package + (name "emacs-evil-org") + (version (git-version "0.1.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Somelauw/evil-org-mode") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-evil" ,emacs-evil))) + (home-page + "https://github.com/Somelauw/evil-org-mode") + (synopsis "Evil keybindings for Org mode") + (description + "This package adds supplemental Evil mode key-bindings to Emacs +Org-mode. It features: +@itemize +@item normal, visual and insert mode bindings; +@item key bindings organised in key themes; +@item operators like > and < to work on headings; +@item text objects; +@item table support; +@item calendar (date selection) support; +@item agenda support. +@end itemize\n") + (license license:gpl3+)))) + +(define-public emacs-fish-completion + (package + (name "emacs-fish-completion") + (version "20180329") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/Ambrevar/emacs-fish-completion/archive/" + "3e3ed1f19fa778b7c35ad88e033dce5a6b1fc153" + ".tar.gz")) + (sha256 + (base32 + "16329py7fvid0bap1qhqxhdc68m9qqy1p8gc2bhng81zhm5a5zsm")))) + (build-system emacs-build-system) + (propagated-inputs `(("fish" ,fish))) + (home-page + "https://github.com/Ambrevar/emacs-fish-completion") + (synopsis "Fish completion for Emacs pcomplete") + (description + "This package provides completion for the Fish shell to pcomplete (used +by shell and Eshell). You can set it up globally with: + +@example +(when (and (executable-find \"fish\") + (require 'fish-completion nil t)) + (global-fish-completion-mode)) +@end example + +Alternatively, you can call the @code{fish-completion-mode} manually or in +shell/Eshell mode hook. + +The package @code{emacs-bash-completion} is an optional dependency: if available, +@code{fish-completion-complete} can be configured to fall back on bash to further +try completing. See @code{fish-completion-fallback-on-bash-p}.") + (license license:gpl3+))) + +(define-public emacs-gif-screencast + (let ((commit "825e606950ec842304bf75cf85baef707b853b03")) + (package + (name "emacs-gif-screencast") + (version (git-version "20180309" "1" commit)) + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/Ambrevar/emacs-gif-screencast/archive/" + commit + ".tar.gz")) + (sha256 + (base32 + "1f83sdx4qj4g6byvbdq7aayissbcy5lqm43djp8h0lq455nf7jkc")))) + (build-system emacs-build-system) + (inputs + `(("scrot" ,scrot) + ("imagemagick" ,imagemagick) + ("gifsicle" ,gifsicle))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((scrot (assoc-ref inputs "scrot")) + (imagemagick (assoc-ref inputs "imagemagick")) + (gifsicle (assoc-ref inputs "gifsicle"))) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (emacs-substitute-variables + "gif-screencast.el" + ("gif-screencast-program" + (string-append scrot "/bin/scrot")) + ("gif-screencast-convert-program" + (string-append imagemagick "/bin/convert")) + ("gif-screencast-cropping-program" + (string-append imagemagick "/bin/mogrify")) + ("gif-screencast-optimize-program" + (string-append imagemagick "/bin/gifsicle"))))))))) + (home-page + "https://github.com/Ambrevar/emacs-gif-screencast") + (synopsis "One-frame-per-action GIF recording") + (description + "Call @code{gif-screencast} to start a recording. +A screenshot is taken for every user action. Call +@code{gif-screencast-stop} ( by default) to finish recording and create +the GIF result.") + (license license:gpl3+)))) + +(define-public emacs-google-translate + (let ((commit "d8b84a8359fcc697114d1298840e9a45b111c974")) + (package + (name "emacs-google-translate") + (version (git-version "0.11.14" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/atykhonov/google-translate") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1qs4hcg1i2m487z50nnwgs0sa2xj4lpgizbrvi2yda0mf3m75fgc")))) + (build-system emacs-build-system) + (home-page "https://github.com/atykhonov/google-translate") + (synopsis "Emacs interface to Google Translate") + (description + "This packages provides an Emacs interface to the Google Translate +on-line service.") + (license license:gpl3+)))) + +(define-public emacs-helm-company + (let ((commit "acc9c7901e094c1591327a0db1ec7a439f67a84d")) + (package + (name "emacs-helm-company") + (version (git-version "0.2.2" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Sodel-the-Vociferous/helm-company") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1d4q9clp0q56br80c21a4wz1gc4jw3mdy97z9mq07x9i8rhlppzs")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-company" ,emacs-company))) + (home-page "https://github.com/Sodel-the-Vociferous/helm-company") + (synopsis "Helm interface for company-mode") + (description + "This is a Helm interface to company-mode, a text completion +framework.") + (license license:gpl3+)))) + +(define-public emacs-helm-descbinds + (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e")) + (package + (name "emacs-helm-descbinds") + (version (git-version "1.13" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-descbinds") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/emacs-helm/helm-descbinds") + (synopsis "Convenient @code{describe-bindings} with Helm") + (description + "This package is a replacement of @code{describe-bindings} for Helm. +@code{describe-bindings} is replaced with @code{helm-descbinds}. As usual, +type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run +@code{helm-descbinds}. The bindings are presented in a similar way as +@code{describe-bindings} does, but you can use completion to find the command +you searched for and execute it, or view its documentation.") + (license license:gpl3+)))) + +(define-public emacs-helm-emms + (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec")) + (package + (name "emacs-helm-emms") + (version (git-version "1.3" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-emms") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-emms" ,emms))) + (home-page + "https://github.com/emacs-helm/helm-emms") + (synopsis "Emms for Helm") + (description "Helm interface for Emms to browse all tracks and all folders +from @code{emms-source-file-default-directory}.") + (license license:gpl3+)))) + +(define-public emacs-helm-exwm + (let ((commit "82a856c80c8d295e3be522a01c5a15af50d08990")) + (package + (name "emacs-helm-exwm") + (version (git-version "20180523" "1" commit)) + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/emacs-helm/helm-exwm/archive/" + commit + ".tar.gz")) + (sha256 + (base32 + "1xsg2lar1vh7jmj5lnnyi14vssxkgy95sv9r8pbfhbnkjkbjm9pb")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-exwm" ,emacs-exwm))) + (home-page + "https://github.com/emacs-helm/helm-exwm") + (synopsis "Helm for EXWM buffers") + (description + "@code{helm-exwm} runs a Helm session over the list of EXWM buffers. +@code{helm-exwm-switch} is a convenience X application launcher using Helm to +switch between the various windows of one or several specific applications. +See @code{helm-exwm-switch-browser} for an example.") + (license license:gpl3+)))) + +(define-public emacs-helm-flycheck + (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6")) + (package + (name "emacs-helm-flycheck") + (version (git-version "0.4" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yasuyk/helm-flycheck") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-flycheck" ,flycheck) + ("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/yasuyk/helm-flycheck") + (synopsis "Show Flycheck errors with Helm") + (description + "This integrates Flycheck with Helm.") + (license license:gpl3+)))) + +(define-public emacs-helm-ls-git + (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa")) + (package + (name "emacs-helm-ls-git") + (version (git-version "1.9.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-ls-git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/emacs-helm/helm-ls-git") + (synopsis "Helm interface for listing the files in a Git repository") + (description + "This package provides a Helm interface for Git files. +@itemize +@item Display the open buffers in project. +@item Display a status source showing state of project (modified files etc.). +@item Display a list of all files in project under git control. +@item Quickly look at diffs of modified files. +@item Allow switching to @code{git status} with your preferred frontend +(vc-dir, Magit,etc.). +@item Full integration of git-grep, also allow usage of @code{helm-grep} (you +can use ack-grep instead of grep). +@item Integrate usage of gid from id-utils. +@item Full integration with @code{helm-find-files}, allow you to browse +projects unrelated to current-buffer. +@item In addition, all actions of type files and buffers are provided. +@end itemize\n") + (license license:gpl3+)))) + +(define-public emacs-helm-mu + (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf")) + (package + (name "emacs-helm-mu") + (version (git-version "20180513" "1" commit)) + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/emacs-helm/helm-mu/archive/" + commit + ".tar.gz")) + (sha256 + (base32 + "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("mu" ,mu))) + (home-page + "https://github.com/emacs-helm/helm-mu") + (synopsis + "Helm sources for searching emails and contacts") + (description + "Helm sources for searching emails and contacts using @code{mu} and +@code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for +Emacs build on top of mu. Mu is highly efficient making it possible to get +instant results even for huge maildirs. It also provides search operators, +e.g: @code{from:Peter to:Anne flag:attach search term}.") + (license license:gpl3+)))) + +(define-public emacs-helm-pass + (let ((commit "ebcbef1a962795a36e3491ae926e2a4b8a8b0ebb")) + (package + (name "emacs-helm-pass") + (version (git-version "20180416" "1" commit)) + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/jabranham/helm-pass/archive/" + commit + ".tar.gz")) + (sha256 + (base32 + "1pgq4hj9wvz7z2fyxwsvbh6rmc1akya84v382nx26rr76iavz6wi")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-password-store" ,emacs-password-store))) + (home-page + "https://github.com/jabranham/helm-pass") + (synopsis "Helm interface to pass, the standard Unix password manager") + (description + "Users of @code{helm-pass} may also be interested in functionality +provided by other Emacs packages dealing with pass: +@itemize +@item @code{emacs-password-store}, which @code{helm-pass} relies on. +@item @code{emacs-pass}, a major mode for @code{pass}. +@item @code{auth-source-pass.el}: integration of Emacs' auth-source with +@code{pass}, included in Emacs 26+). +@end itemize\n") + (license license:gpl3+)))) + +(define-public emacs-image+ + (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc")) + (package + (name "emacs-image+") + (version (git-version "0.6.2" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mhayashi1120/Emacs-imagex") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd")))) + (build-system emacs-build-system) + (propagated-inputs `(("imagemagick" ,imagemagick))) + (home-page "https://github.com/mhayashi1120/Emacs-imagex") + (synopsis "Image manipulation extensions for Emacs") + (description + "Image+ provides keybindings allowing you to zoom in or zoom out of an +image, rotate it, save modified images, and more.") + (license license:gpl3+)))) + +(define-public emacs-package-lint + (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288")) + (package + (name "emacs-package-lint") + (version (git-version "0.5" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/purcell/package-lint") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq")))) + (build-system emacs-build-system) + (home-page "https://github.com/purcell/package-lint") + (synopsis "Linting library for elisp package authors") + (description + "This provides a list of issues with the Emacs package metadata of a file, +e.g. the package dependencies it requires. See function +@code{package-lint-buffer}. Checks will currently be enabled only if a +\"Package-Requires:\" or \"Package-Version:\" header is present in the +file.") + (license license:gpl3+)))) + +(define-public emacs-wgrep-helm + (let ((commit "1cdd7c136f1e7565bb13d2df69be3dc77b83698d")) + (package + (name "emacs-wgrep-helm") + (version (git-version "2.1.10" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mhayashi1120/Emacs-wgrep") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-wgrep" ,emacs-wgrep))) + (home-page + "https://github.com/mhayashi1120/Emacs-wgrep") + (synopsis + "Writable helm-grep-mode buffer and apply the changes to files") + (description + "@code{wgrep-helm} allows you to edit a @code{helm-grep-mode} buffer and +apply those changes to the file buffer.") + (license license:gpl3+)))) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 9e91ef49df..4caf29437f 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -251,7 +251,8 @@ library variant NEWLIB." (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (propagated-inputs `(("binutils" ,(cross-binutils "arm-none-eabi")) ("libstdc++" ,(make-libstdc++-arm-none-eabi xgcc newlib-with-xgcc)) @@ -610,7 +611,7 @@ micro-controller.") (version (package-version propeller-gcc)) (source #f) (build-system trivial-build-system) - (arguments '(#:builder (mkdir %output))) + (arguments '(#:builder (begin (mkdir %output) #t))) (propagated-inputs `(("binutils" ,propeller-binutils) ("libc" ,proplib) @@ -785,7 +786,7 @@ two-thirds of the opcodes in the P2 instruction set.") (version (package-version propeller-gcc)) (source #f) (build-system trivial-build-system) - (arguments '(#:builder (mkdir %output))) + (arguments '(#:builder (begin (mkdir %output) #t))) (propagated-inputs `(("toolchain" ,propeller-toolchain) ("openspin" ,openspin) @@ -830,7 +831,7 @@ simulator.") (lambda _ (substitute* "opcodes/Makefile.in" (("guile\\{,-\\}1.8") "guile")) - (zero? (system* "which" "guile"))))))) + (invoke "which" "guile")))))) (native-inputs `(("cgen" ,(origin diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 82283e1bcf..a7c9104683 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015, 2018 David Thompson ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis ;;; Copyright © 2016, 2017, 2018 Efraim Flashner -;;; Copyright © 2017 Nicolas Goaziou +;;; Copyright © 2017, 2018 Nicolas Goaziou ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017, 2018 Rutger Helling ;;; @@ -33,6 +33,7 @@ #:use-module (guix svn-download) #:use-module (gnu packages) #:use-module (gnu packages algebra) + #:use-module (gnu packages assembly) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) @@ -45,6 +46,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages game-development) + #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -54,12 +56,19 @@ #:use-module (gnu packages libedit) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) + #:use-module (gnu packages lua) + #:use-module (gnu packages maths) + #:use-module (gnu packages mp3) + #:use-module (gnu packages music) #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages sdl) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages upnp) #:use-module (gnu packages video) @@ -69,6 +78,7 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) + #:use-module (gnu packages web) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu)) @@ -107,8 +117,8 @@ ;; Building from recent Git because the official 5.0 release no longer builds. (define-public dolphin-emu - (let ((commit "d04b179111f8d863f360839474cb82c766f762b8") - (revision "0")) + (let ((commit "47fd8c6eff4cdea7660d0fa78040f98d1d4fa136") + (revision "1")) (package (name "dolphin-emu") (version (git-version "5.0" revision commit)) @@ -134,7 +144,7 @@ #t)) (sha256 (base32 - "0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l")))) + "1gp2sshnr0dswdawxd5ix96nksp435b52bqvpjx8pmn523k29zsw")))) (build-system cmake-build-system) (arguments '(#:tests? #f @@ -143,13 +153,17 @@ #:phases (modify-phases %standard-phases + (add-before 'configure 'fixgcc7 + (lambda _ + (unsetenv "C_INCLUDE_PATH") + (unsetenv "CPLUS_INCLUDE_PATH"))) (add-before 'configure 'generate-fonts&hardcore-libvulkan-path (lambda* (#:key inputs outputs #:allow-other-keys) (let ((fontfile (string-append (assoc-ref inputs "font-wqy-microhei") "/share/fonts/truetype/wqy-microhei.ttc")) (libvulkan - (string-append (assoc-ref inputs "vulkan-icd-loader") + (string-append (assoc-ref inputs "vulkan-loader") "/lib/libvulkan.so"))) (chdir "docs") (invoke "bash" "-c" "g++ -O2 -std=c++11 $(freetype-config \ @@ -179,6 +193,7 @@ "-DX11_FOUND=1"))) (native-inputs `(("pkg-config" ,pkg-config) + ("gcc" ,gcc-7) ; Building with gcc@5 doesn't work anymore. ("gettext" ,gnu-gettext))) (inputs `(("alsa-lib" ,alsa-lib) @@ -211,7 +226,7 @@ ("sfml" ,sfml) ("soil" ,soil) ("soundtouch" ,soundtouch) - ("vulkan-icd-loader" ,vulkan-icd-loader) + ("vulkan-loader" ,vulkan-loader) ("wxwidgets" ,wxwidgets-gtk2-3.1) ("zlib" ,zlib))) (home-page "https://dolphin-emu.org/") @@ -410,11 +425,13 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. - '(for-each - (lambda (subdir) - (let ((lib-subdir (string-append "src/third-party/" subdir))) - (delete-file-recursively lib-subdir))) - '("libpng" "lzma" "sqlite3" "zlib"))))) + '(begin + (for-each + (lambda (subdir) + (let ((lib-subdir (string-append "src/third-party/" subdir))) + (delete-file-recursively lib-subdir))) + '("libpng" "lzma" "sqlite3" "zlib")) + #t)))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no "test" target @@ -1007,7 +1024,8 @@ towards a working Mupen64Plus for casual users.") (snippet '(begin ;; We don't need libretro for the GNU/Linux build. - (delete-file-recursively "libretro"))))) + (delete-file-recursively "libretro") + #t)))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1043,7 +1061,7 @@ emulation community. It provides highly accurate emulation.") (define-public retroarch (package (name "retroarch") - (version "1.7.2") + (version "1.7.3") (source (origin (method url-fetch) @@ -1051,7 +1069,7 @@ emulation community. It provides highly accurate emulation.") version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1y9fakr41h6xpddpkj12mcw1kgldvy76nzvxm5jk5v7iyiks4c6k")))) + (base32 "1si78dbwbsq4i0r42q94nmlpaxdyqch113nxavdprf4vc1224356")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests @@ -1061,7 +1079,7 @@ emulation community. It provides highly accurate emulation.") (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (etc (string-append out "/etc")) - (vulkan (assoc-ref inputs "vulkan-icd-loader"))) + (vulkan (assoc-ref inputs "vulkan-loader"))) ;; Hard-code the path to libvulkan.so. (substitute* "gfx/common/vulkan_common.c" (("libvulkan.so") (string-append vulkan "/lib/libvulkan.so"))) @@ -1085,9 +1103,10 @@ emulation community. It provides highly accurate emulation.") ("openal" ,openal) ("pulseaudio" ,pulseaudio) ("python" ,python) + ("qtbase" ,qtbase) ("sdl" ,sdl2) ("udev" ,eudev) - ("vulkan-icd-loader" ,vulkan-icd-loader) + ("vulkan-loader" ,vulkan-loader) ("wayland" ,wayland) ("zlib" ,zlib))) (native-inputs @@ -1102,3 +1121,243 @@ straight into any libretro-compatible frontend. RetroArch is the official reference frontend for the libretro API, currently used by most as a modular multi-system game/emulator system.") (license license:gpl3+))) + +(define-public scummvm + (package + (name "scummvm") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.scummvm.org/frs/scummvm/" version + "/scummvm-" version ".tar.xz")) + (sha256 + (base32 + "0q6aiw97wsrf8cjw9vjilzhqqsr2rw2lll99s8i5i9svan6l314p")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;require "git" + #:configure-flags (list "--enable-release") ;for optimizations + #:phases + (modify-phases %standard-phases + (replace 'configure + ;; configure does not work followed by both "SHELL=..." and + ;; "CONFIG_SHELL=..."; set environment variables instead + (lambda* (#:key outputs configure-flags #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bash (which "bash")) + (flags `(,(string-append "--prefix=" out) + ,@configure-flags))) + (setenv "SHELL" bash) + (setenv "CONFIG_SHELL" bash) + (apply invoke "./configure" flags))))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("faad2" ,faad2) + ("fluidsynth" ,fluidsynth) + ("freetype" ,freetype) + ("libflac" ,flac) + ("libjpeg-turbo" ,libjpeg-turbo) + ("libmad" ,libmad) + ("libmpeg2" ,libmpeg2) + ("libogg" ,libogg) + ("libpng" ,libpng) + ("libtheora" ,libtheora) + ("libvorbis" ,libvorbis) + ("nasm" ,nasm) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (home-page "https://www.scummvm.org/") + (synopsis "Engine for several graphical adventure games") + (description "ScummVM is a program which allows you to run certain +classic graphical point-and-click adventure games, provided you +already have their data files. The clever part about this: ScummVM +just replaces the executables shipped with the games, allowing you to +play them on systems for which they were never designed!") + (license license:gpl2+))) + +(define-public mame + (package + (name "mame") + (version "0.198") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mamedev/mame.git") + (commit (apply string-append "mame" (string-split version #\.))))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0kl7qll8d6xlx7bj5920ljs888a6nc1fj2kfw1fz0r8za3m7wiq9")) + (modules '((guix build utils))) + (snippet + ;; Remove bundled libraries. + '(begin + (with-directory-excursion "3rdparty" + (for-each delete-file-recursively + '("asio" "expat" "glm" "libflac" "libjpeg" "lua" + "portaudio" "portmidi" "pugixml" "rapidjson" "SDL2" + "SDL2-override" "sqlite3" "utf8proc" "zlib"))) + #t)))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (cons* + (string-append "QT_HOME=" (assoc-ref %build-inputs "qtbase")) + (string-append "SDL_INI_PATH=" + (assoc-ref %outputs "out") + "/share/mame/ini") + (map (lambda (lib) + (string-append "USE_SYSTEM_LIB_" (string-upcase lib) "=1")) + '("asio" "expat" "flac" "glm" "jpeg" "lua" "portaudio" "portmidi" + "pugixml" "rapidjson" "sqlite3" "utf8proc" "zlib"))) + #:tests? #f ;no test in regular release + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'build 'build-documentation + (lambda _ (invoke "make" "-C" "docs" "man" "info"))) + (replace 'install + ;; Upstream does not provide an installation phase. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/mame"))) + ;; Install data. + (for-each (lambda (dir) + (copy-recursively dir (string-append share "/" dir))) + '("artwork" "bgfx" "ctrlr" "hash" "ini" "language" + "plugins" "samples")) + (let ((keymaps (string-append share "/keymaps"))) + (for-each (lambda (file) (install-file file keymaps)) + (find-files "keymaps" ".*LINUX\\.map"))) + (let ((fonts (string-append share "/fonts"))) + (install-file "uismall.bdf" fonts)) + (rename-file "mame64" "mame") + (install-file "mame" (string-append out "/bin"))) + #t)) + (add-after 'install 'install-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man (string-append out "/share/man/man1")) + (info (string-append out "/share/info"))) + (install-file "docs/build/man/MAME.1" man) + (install-file "docs/build/texinfo/MAME.info" info)) + #t)) + (add-after 'install 'install-ini-file + ;; Generate an ini file so as to set some directories (e.g., roms) + ;; to a writable location, i.e., "$HOME/.mame/" and "$HOME/mame/". + ;; + ;; XXX: We need to insert absolute references to the store. It can + ;; be an issue if they leak into user's home directory, e.g., with + ;; "mame -createconfig" and the package is later GC'ed. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/mame")) + (ini (string-append share "/ini"))) + (with-output-to-file (string-append ini "/mame.ini") + (lambda _ + (format #t + "inipath $HOME/.mame;~a/ini~@ + homepath $HOME/mame~@ + rompath $HOME/mame/roms~@ + samplepath $HOME/mame/samples;~a/samples~@ + cheatpath $HOME/mame/cheat~@ + artpath $HOME/mame/artwork;~a/artwork~@ + crosshairpath $HOME/mame/crosshair~@ + snapshot_directory $HOME/mame/snapshots~@ + hashpath ~a/hash~@ + fontpath $HOME/mame/fonts;~a/fonts~@ + ctrlrpath $HOME/mame/ctrlr;~a/ctrlr~@ + bgfx_path ~a/bgfx~@ + pluginspath $HOME/mame/plugins;~a/plugins~@ + languagepath ~a/language~@ + cfg_directory $HOME/.mame/cfg~@ + nvram_directory $HOME/.mame/nvram~@ + input_directory $HOME/.mame/inp~@ + state_directory $HOME/.mame/sta~@ + diff_directory $HOME/.mame/diff~@ + comment_directory $HOME/.mame/comments~%" + share share share share share share share share + share))) + (with-output-to-file (string-append ini "/ui.ini") + (lambda _ + (format #t + "historypath $HOME/mame/history~@ + categorypath $HOME/mame/folders~@ + cabinets_directory $HOME/mame/cabinets~@ + cpanels_directory $HOME/mame/cpanel~@ + pcbs_directory $HOME/mame/pcb~@ + flyers_directory $HOME/mame/flyers~@ + titles_directory $HOME/mame/titles~@ + ends_directory $HOME/mame/ends~@ + marquees_directory $HOME/mame/marquees~@ + artwork_preview_directory $HOME/mame/artpreview~@ + bosses_directory $HOME/mame/bosses~@ + logos_directory $HOME/mame/logo~@ + scores_directory $HOME/mame/scores~@ + versus_directory $HOME/mame/versus~@ + gameover_directory $HOME/mame/gameover~@ + howto_directory $HOME/mame/howto~@ + select_directory $HOME/mame/select~@ + icons_directory $HOME/mame/icons~@ + covers_directory $HOME/mame/covers~@ + ui_path $HOME/.mame/ui~%"))) + #t))) + (add-after 'install 'install-desktop-file + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (desktop (string-append out "/share/applications")) + (executable (string-append out "/bin/mame"))) + (mkdir-p desktop) + (with-output-to-file (string-append desktop "/mame.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=mame~@ + Comment=Multi-purpose emulation framework~@ + Exec=~a~@ + TryExec=~@*~a~@ + Terminal=false~@ + Type=Application~@ + Categories=Game;Emulator;~@ + Keywords=Game;Emulator;Arcade;~%" + executable))) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("pugixml" ,pugixml) + ("python-sphinx" ,python-sphinx) + ("texinfo" ,texinfo))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("asio" ,asio) + ("expat" ,expat) + ("flac" ,flac) + ("fontconfig" ,fontconfig) + ("glm" ,glm) + ("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9 + ("libxinerama" ,libxinerama) + ("lua" ,lua) + ("portaudio" ,portaudio) + ("portmidi" ,portmidi) + ("python-wrapper" ,python-wrapper) + ("qtbase" ,qtbase) + ("rapidjson" ,rapidjson) + ("sdl" ,(sdl-union (list sdl2 sdl2-ttf))) + ("sqlite" ,sqlite) + ("utf8proc" ,utf8proc) + ("zlib" ,zlib))) + (home-page "http://mamedev.org/") + (synopsis "Multi-purpose emulation framework") + (description "MAME's purpose is to preserve decades of software +history. As electronic technology continues to rush forward, MAME +prevents this important @emph{vintage} software from being lost and +forgotten. This is achieved by documenting the hardware and how it +functions. The source code to MAME serves as this documentation.") + ;; The MAME project as a whole is distributed under the terms of GPL2+. + ;; However, over 90% of the files are under Expat license. Also, artwork, + ;; keymaps, languages and samples are under CC0. + (license (list license:gpl2+ license:expat license:cc0)))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 52d0010693..8578789872 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -4,9 +4,10 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 David Thompson ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès -;;; Copyright © 2016, 2017 Theodoros Foradis +;;; Copyright © 2016, 2017, 2018 Theodoros Foradis ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -110,6 +111,13 @@ (string-append "#include \n" line))) #t)) + ;; Fix build against Qt 5.11. + (add-after 'unpack 'add-missing-headers + (lambda _ + (substitute* "librecad/src/ui/generic/widgetcreator.cpp" + (("#include ") "#include +#include ")) + #t)) (add-after 'unpack 'patch-paths (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -329,7 +337,9 @@ featuring various improvements and bug fixes."))) "0x37vfp6k0d2z3gnig0hbicvi0jp8v267xjnn3z8jdllpiaa6p3k")) (snippet ;; Remove a non-free file. - '(delete-file "doc/psfig.sty")) + '(begin + (delete-file "doc/psfig.sty") + #t)) (patches (search-patches "fastcap-mulSetup.patch" "fastcap-mulGlobal.patch")))) (build-system gnu-build-system) @@ -523,35 +533,17 @@ ready for production.") (define-public gerbv (package (name "gerbv") - (version "2.6.1") + (version "2.6.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gerbv/gerbv/gerbv-" version "/gerbv-" version ".tar.gz")) (sha256 (base32 - "0v6ry0mxi5qym4z0y0lpblxsw9dfjpgxs4c4v2ngg7yw4b3a59ks")))) + "1cw8k6ni0q8kswad03kha86fk7n06vq8p0wzsfhcnalsdshrn17i")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'autoconf - (lambda _ - ;; Build rules contain references to Russian translation, but the - ;; needed files are missing; see - ;; http://sourceforge.net/p/gerbv/bugs/174/ - (delete-file "po/LINGUAS") - (substitute* "man/Makefile.am" - (("PO_FILES= gerbv.ru.1.in.po") "") - (("man_MANS = gerbv.1 gerbv.ru.1") "man_MANS = gerbv.1")) - (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("gettext" ,gettext-minimal) - ("po4a" ,po4a) - ("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config))) (inputs `(("cairo" ,cairo) ("gtk" ,gtk+-2) @@ -769,7 +761,7 @@ render model libraries.") (define-public linsmith (package (name "linsmith") - (version "0.99.30") + (version "0.99.31") (source (origin (method url-fetch) (uri (string-append @@ -777,13 +769,13 @@ render model libraries.") version "/linsmith-" version ".tar.gz")) (sha256 (base32 - "18qslhr2r45rhpj4v6bjcqx189vs0bflvsj271wr7w8kvh69qwvn")))) + "13qj7n9826qc9shkkgd1p6vcpj78v4h9d67wbg45prg7rbnzkzds")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("gtk" ,gtk+-2) ("libgnome" ,libgnomeui))) - (home-page "http://jcoppens.com/soft/linsmith/index.en.php") + (home-page "https://jcoppens.com/soft/linsmith/index.en.php") (synopsis "Smith Charting program") (description "LinSmith is a Smith Charting program, mainly designed for educational use. As such, there is an emphasis on capabilities that improve @@ -1080,14 +1072,14 @@ bindings for Python, Java, OCaml and more.") (define-public radare2 (package (name "radare2") - (version "1.6.0") + (version "2.5.0") (source (origin (method url-fetch) (uri (string-append "http://radare.mikelloc.com/get/" version "/" name "-" version ".tar.gz")) (sha256 (base32 - "16ggsk40zz6hyvclvqj1r4bh4hb78jf0d6ppry1jk4r0j30wm7cm")) + "17h4ba5qqahfi8mi4x2dcvq87cqpir5v2dlaqbvmay6vby4zh4v7")) (modules '((guix build utils))) (snippet '(begin @@ -1096,7 +1088,8 @@ bindings for Python, Java, OCaml and more.") (substitute* "libr/parse/p/Makefile" (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) ")) (substitute* "libr/bin/p/Makefile" - (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) ")))))) + (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) ")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f; tests require git and network access @@ -1182,14 +1175,14 @@ high-performance parallel differential evolution (DE) optimization algorithm.") ;; See . (package (name "libngspice") - (version "26") + (version "28") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/ngspice/ng-spice-rework/" version "/ngspice-" version ".tar.gz")) (sha256 (base32 - "02019ndcl057nq9z41nxycqba7wxlb081ibvfj9jv010nz431qji")) + "0rnz2rdgyav16w7wfn3sfrk2lwvvgz1fh0l9107zkcldijklz04l")) (modules '((guix build utils))) ;; We remove the non-free cider and build without it. (snippet @@ -1201,7 +1194,8 @@ high-performance parallel differential evolution (DE) optimization algorithm.") (("src/ciderlib/input/Makefile") "") (("src/ciderlib/support/Makefile") "") (("src/ciderlib/oned/Makefile") "") - (("src/ciderlib/twod/Makefile") "")))))) + (("src/ciderlib/twod/Makefile") "")) + #t)))) (build-system gnu-build-system) (arguments `(;; No tests for libngspice exist. @@ -1212,7 +1206,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.") (add-after 'unpack 'patch-timestamps (lambda _ (substitute* "configure" - (("`date`") "Do 1. Jan 00:00:00 UTC 1970")) + (("`date`") "Thu Jan 1 00:00:01 UTC 1970")) #t)) (add-after 'unpack 'delete-program-manuals (lambda _ @@ -1285,17 +1279,27 @@ an embedded event driven algorithm.") ;; TODO: Remove when we have modular Trilinos packages? (package (name "trilinos-serial-xyce") - (version "12.6.3") + (version "12.12.1") (source (origin (method url-fetch) (uri (string-append "https://trilinos.org/oldsite/download/files/trilinos-" version "-Source.tar.gz")) (sha256 (base32 - "07jd1qpsbf31cmbyyngr4l67xzwyan24dyx5wlcahgbw7x6my3wn")))) + "1zgrcksrcbmyy79mbdv0j4j4sh0chpigxk8vcrrwgaxyxwxxhrvw")))) (build-system cmake-build-system) (arguments `(#:out-of-source? #t + #:phases + (modify-phases %standard-phases + ;; Delete unneeded tribits(build system) directory which makes validate-runpath + ;; phase to fail. + (add-before 'validate-runpath 'delete-tribits + (lambda* (#:key outputs #:allow-other-keys) + (delete-file-recursively + (string-append (assoc-ref outputs "out") + "/lib/cmake/tribits")) + #t))) #:configure-flags (list "-DCMAKE_CXX_FLAGS=-O3 -fPIC" "-DCMAKE_C_FLAGS=-O3 -fPIC" @@ -1328,7 +1332,7 @@ an embedded event driven algorithm.") ("swig" ,swig))) (inputs `(("boost" ,boost) - ("lapack" ,lapack-3.5) + ("lapack" ,lapack) ("suitesparse" ,suitesparse))) (home-page "https://trilinos.org") (synopsis "Engineering and scientific problems algorithms") @@ -1343,14 +1347,14 @@ unique design feature of Trilinos is its focus on packages.") (define-public xyce-serial (package (name "xyce-serial") - (version "6.7") + (version "6.8") (source (origin (method url-fetch) (uri (string-append "https://archive.org/download/Xyce-" version "/Xyce-" version ".tar.gz")) (sha256 (base32 - "02k952mnvrnc5kv7r65fdrn7khwq1lbyhwyvd7jznafzdpsvgm4x")))) + "09flp1xywbb2laayd9rg8vd0fjsh115y6k1p71jacy0nrbdvvlcg")))) (build-system gnu-build-system) (arguments `(#:tests? #f @@ -1366,7 +1370,7 @@ unique design feature of Trilinos is its focus on packages.") (inputs `(("fftw" ,fftw) ("suitesparse" ,suitesparse) - ("lapack" ,lapack-3.5) + ("lapack" ,lapack) ("trilinos" ,trilinos-serial-xyce))) (home-page "https://xyce.sandia.gov/") (synopsis "High-performance analog circuit simulator") @@ -1401,8 +1405,6 @@ parallel computing platforms. It also supports serial execution.") "CC=mpicc" "F77=mpif77" "--enable-mpi" - "--enable-isorropia=no" - "--enable-zoltan=no" (string-append "ARCHDIR=" (assoc-ref %build-inputs "trilinos"))))))) @@ -1509,116 +1511,134 @@ parallel computing platforms. It also supports serial execution.") license:lgpl2.0+)))) ; freehdl's libraries (define-public qucs - (package - (name "qucs") - (version "0.0.19") - (source (origin - (method url-fetch) - (uri - (string-append - "https://sourceforge.net/projects/qucs/files/qucs/" version - "/qucs-" version ".tar.gz")) - (sha256 - (base32 - "0giv9gfyfdizvjhq56x2pdncrlyv3k15lrsh6pk37i94vr7l7ij5")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-configure - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "qucs/configure" - (("\\$QTDIR") (assoc-ref inputs "qt4"))) - #t)) - (add-after 'patch-configure 'patch-scripts - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* '("qucs/qucs/qucsdigi" - "qucs/qucs/qucsdigilib" - "qucs/qucs/qucsveri") - (("\\$BINDIR") - (string-append (assoc-ref outputs "out") "/bin")) - (("freehdl-config") - (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-config")) - (("freehdl-v2cc") - (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-v2cc")) - (("cp ") - (string-append (assoc-ref inputs "coreutils") "/bin/cp ")) - (("glibtool") - (string-append (assoc-ref inputs "libtool") "/bin/libtool")) - (("sed") - (string-append (assoc-ref inputs "sed") "/bin/sed")) - (("iverilog") - (string-append (assoc-ref inputs "iverilog") "/bin/iverilog")) - (("vvp") - (string-append (assoc-ref inputs "iverilog") "/bin/vvp"))) - #t)) - (add-before 'check 'pre-check - (lambda _ - ;; The test suite requires a running X server. - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - #t)) - (add-after 'install 'make-wrapper - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; 'qucs' directly invokes gcc, hence this wrapping. - (wrap-program (string-append out "/bin/qucs") - `("CPLUS_INCLUDE_PATH" ":" prefix - (,(string-append (assoc-ref inputs "gcc-toolchain") - "/include"))) - `("PATH" ":" prefix - (,(string-append (assoc-ref inputs "gcc-toolchain") - "/bin"))) - `("LIBRARY_PATH" ":" prefix - (,(string-append (assoc-ref inputs "gcc-toolchain") - "/lib"))) - `("ADMSXMLBINDIR" ":" prefix - (,(string-append (assoc-ref inputs "adms") "/bin"))) - `("ASCOBINDIR" ":" prefix - (,(string-append (assoc-ref inputs "asco") "/bin"))) - `("QUCS_OCTAVE" ":" prefix - (,(string-append (assoc-ref inputs "octave") "/bin/octave"))))) - #t))) - #:parallel-build? #f ; race condition - #:configure-flags '("--disable-doc"))) ; we need octave-epstk - (native-inputs - `(("gperf" ,gperf) - ("libtool-native" ,libtool) - ("python" ,python-2) ; for tests - ("matplotlib" ,python2-matplotlib) ; for tests - ("numpy" ,python2-numpy) ; for tests - ("xorg-server" ,xorg-server))) ; for tests - (inputs - `(("adms" ,adms) - ("asco" ,asco) - ("coreutils" ,coreutils) - ("freehdl" ,freehdl) - ("gcc-toolchain" ,gcc-toolchain) - ("iverilog" ,iverilog) - ("libtool" ,libtool) - ("octave" ,octave) - ("qt4" ,qt-4) - ("sed" ,sed))) - (home-page "http://qucs.sourceforge.net/") - (synopsis "Circuit simulator with graphical user interface") - (description - "Qucs is a circuit simulator with graphical user interface. The software + ;; Qucs 0.0.19 segfaults when using glibc-2.26. Temporarily build from git. + ;; TODO: When qucs-0.0.20 is released, revert the commit that introduced this + ;; comment and update the package. + (let ((commit "b4f27d9222568066cd59e4c387c51a35056c99d8") + (revision "0")) + (package + (name "qucs") + (version (git-version "0.0.19" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Qucs/qucs") + (commit commit))) + (sha256 + (base32 "10bclay9xhkffmsh4j4l28kj1qpxx0pnxja5vx6305cllnq4r3gb")) + (file-name (string-append name "-" version "-checkout")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'patch-bootstrap + (lambda _ + (for-each patch-shebang + '("bootstrap" + "qucs/bootstrap" + "qucs-doc/bootstrap" + "qucs-core/bootstrap")) + #t)) + (add-before 'configure 'patch-configure + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "qucs/configure" + (("\\$QTDIR") (assoc-ref inputs "qt4"))) + #t)) + (add-after 'patch-configure 'patch-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* '("qucs/qucs/qucsdigi" + "qucs/qucs/qucsdigilib" + "qucs/qucs/qucsveri") + (("\\$BINDIR") + (string-append (assoc-ref outputs "out") "/bin")) + (("freehdl-config") + (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-config")) + (("freehdl-v2cc") + (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-v2cc")) + (("cp ") + (string-append (assoc-ref inputs "coreutils") "/bin/cp ")) + (("glibtool") + (string-append (assoc-ref inputs "libtool") "/bin/libtool")) + (("sed") + (string-append (assoc-ref inputs "sed") "/bin/sed")) + (("iverilog") + (string-append (assoc-ref inputs "iverilog") "/bin/iverilog")) + (("vvp") + (string-append (assoc-ref inputs "iverilog") "/bin/vvp"))) + #t)) + (add-before 'check 'pre-check + (lambda _ + ;; The test suite requires a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + #t)) + (add-after 'install 'make-wrapper + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; 'qucs' directly invokes gcc, hence this wrapping. + (wrap-program (string-append out "/bin/qucs") + `("CPLUS_INCLUDE_PATH" ":" prefix + (,(string-append (assoc-ref inputs "gcc-toolchain") + "/include"))) + `("PATH" ":" prefix + (,(string-append (assoc-ref inputs "gcc-toolchain") + "/bin"))) + `("LIBRARY_PATH" ":" prefix + (,(string-append (assoc-ref inputs "gcc-toolchain") + "/lib"))) + `("ADMSXMLBINDIR" ":" prefix + (,(string-append (assoc-ref inputs "adms") "/bin"))) + `("ASCOBINDIR" ":" prefix + (,(string-append (assoc-ref inputs "asco") "/bin"))) + `("QUCS_OCTAVE" ":" prefix + (,(string-append (assoc-ref inputs "octave") "/bin/octave"))))) + #t))) + #:parallel-build? #f ; race condition + #:configure-flags '("--disable-doc"))) ; we need octave-epstk + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("bison" ,bison) + ("flex" ,flex) + ("gperf" ,gperf) + ("libtool-native" ,libtool) + ("pkg-config" ,pkg-config) + ("python" ,python-2) ; for tests + ("matplotlib" ,python2-matplotlib) ; for tests + ("numpy" ,python2-numpy) ; for tests + ("xorg-server" ,xorg-server))) ; for tests + (inputs + `(("adms" ,adms) + ("asco" ,asco) + ("coreutils" ,coreutils) + ("freehdl" ,freehdl) + ("gcc-toolchain" ,gcc-toolchain) + ("iverilog" ,iverilog) + ("libtool" ,libtool) + ("octave" ,octave) + ("qt4" ,qt-4) + ("sed" ,sed))) + (home-page "http://qucs.sourceforge.net/") + (synopsis "Circuit simulator with graphical user interface") + (description + "Qucs is a circuit simulator with graphical user interface. The software aims to support all kinds of circuit simulation types---e.g. DC, AC, S-parameter, transient, noise and harmonic balance analysis. Pure digital simulations are also supported.") - (license license:gpl2+))) + (license license:gpl2+)))) (define-public qucs-s (package (name "qucs-s") - (version "0.0.19S") + (version "0.0.20") (source (origin (method url-fetch) - (uri (string-append "https://github.com/ra3xdh/qucs/releases/download/" - version "/qucs-" version ".tar.gz")) + (uri (string-append "https://github.com/ra3xdh/qucs_s/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1bhahvdqmayaw0306fxz1ghmjhd4fq05yk3rk7zi0z703w5imgjv")))) + "01dizf4rjciqc8x7bmv3kbhdlz90bm6n9m9fz7dbzqcwvszcs1hx")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no tests @@ -1653,19 +1673,21 @@ simulations are also supported.") "\\+ \"qucsator\" \\+ executableSuffix")) (string-append "}{ QucsSettings.Qucsator = \"" (assoc-ref inputs "qucs") "/bin/qucsator\"")) - (((string-append "else QucsSettings\\.XyceExecutable = " - "\"/usr/local/Xyce-Release-6.2.0-OPENSOURCE/bin/runxyce")) - (string-append "QucsSettings.XyceExecutable = \"" + (((string-append "QucsSettings\\.XyceExecutable = " + "\"/usr/local/Xyce-Release-6.8.0-OPENSOURCE/bin/Xyce")) + (string-append "}{ QucsSettings.XyceExecutable = \"" (assoc-ref inputs "xyce-serial") "/bin/Xyce")) - (((string-append "else QucsSettings\\.XyceParExecutable = \"/usr/local" - "/Xyce-Release-6.2.0-OPENMPI-OPENSOURCE/bin/xmpirun")) + (((string-append "else QucsSettings\\.XyceParExecutable = " + "\"mpirun -np %p /usr/local" + "/Xyce-Release-6.8.0-OPENMPI-OPENSOURCE/bin/Xyce")) (string-append "QucsSettings.XyceParExecutable = \"" - (assoc-ref inputs "mpi") "/bin/mpirun")) - (("%p") - (string-append "%p "(assoc-ref inputs "xyce-parallel") "/bin/Xyce")) + (assoc-ref inputs "mpi") "/bin/mpirun -np %p " + (assoc-ref inputs "xyce-parallel") "/bin/Xyce")) (("else QucsSettings\\.NgspiceExecutable = \"ngspice\"") (string-append "QucsSettings.NgspiceExecutable = " "\"" (assoc-ref inputs "ngspice") "/bin/ngspice\""))) + (substitute* "qucs/extsimkernels/ngspice.cpp" + (("share/qucs/xspice_cmlib") "share/qucs-s/xspice_cmlib")) (substitute* "qucs/qucs_actions.cpp" (("qucstrans") (string-append (assoc-ref inputs "qucs") "/bin/qucstrans")) @@ -1678,7 +1700,7 @@ simulations are also supported.") (lambda* (#:key inputs outputs #:allow-other-keys) (for-each (lambda (script) - (let ((file (string-append "../qucs-" ,version + (let ((file (string-append "../qucs_s-" ,version "/qucs/" script)) (out (assoc-ref outputs "out"))) (install-file file (string-append out "/bin")) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index d5e97523dc..cff5ab14a9 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -78,7 +78,6 @@ `(("pkg-config" ,pkg-config))) (inputs `(("alsa-lib" ,alsa-lib) - ("compositeproto" ,compositeproto) ("curl" ,curl) ("ghostscript" ,ghostscript) ("giflib" ,giflib) @@ -110,12 +109,10 @@ ("openjpeg" ,openjpeg-1) ("poppler" ,poppler) ("printproto" ,printproto) - ("scrnsaverproto" ,scrnsaverproto) ("wayland-protocols" ,wayland-protocols) - ("xextproto" ,xextproto) ("xinput" ,xinput) ("xpr" ,xpr) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (propagated-inputs ;; All these inputs are in package config files in section ;; Requires.private. @@ -180,7 +177,7 @@ removable devices or support for multimedia.") (define-public terminology (package (name "terminology") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) (uri @@ -188,7 +185,7 @@ removable devices or support for multimedia.") "terminology/terminology-" version ".tar.xz")) (sha256 (base32 - "0kw34l5lahn1qaks3ah6x8k41d6hfywpqfak2p7qq1z87zj506mx")) + "1ii8332bl88l8md3gvz5dhi9bjpm6shyf14ck9kfyy7d56hp71mc")) (modules '((guix build utils))) ;; Remove the bundled fonts. ;; TODO: Remove bundled lz4. @@ -262,11 +259,11 @@ Libraries with some extra bells and whistles.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad")))) + "16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad")) + (patches (search-patches "enlightenment-fix-setuid-path.patch")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--enable-mount-eeze") - #:phases + `(#:phases (modify-phases %standard-phases (add-before 'configure 'set-system-actions (lambda* (#:key inputs #:allow-other-keys) @@ -278,6 +275,8 @@ Libraries with some extra bells and whistles.") (("/usr/share/X11/xkb/rules/xorg.lst") (string-append xkeyboard "/share/X11/xkb/rules/base.lst"))) + (substitute* "src/modules/everything/evry_plug_apps.c" + (("/usr/bin/") "")) (substitute* "configure" (("/bin/mount") (string-append utils "/bin/mount")) (("/bin/umount") (string-append utils "/bin/umount")) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 6522662c4e..4fd33ae901 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Gábor Boskovits ;;; Copyright © 2017 Ricardo Wurmus ;;; @@ -107,17 +107,17 @@ single file can be mounted.") (define-public disorderfs (package (name "disorderfs") - (version "0.5.2") + (version "0.5.3") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/ReproducibleBuilds/disorderfs.git") - (commit "0.5.2"))) + (url "https://salsa.debian.org/reproducible-builds/disorderfs.git") + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1j028dq3d4m64mn9xmfamcnnc7i2drmra4pdmxdmqdsi8p7yj4sv")))) + "1nmhfvxpvz3xsfxl9wqnh6r2l5m7hjq6n0vpblsl5xdcvwaqcf50")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 9e91ceca4e..176eef5137 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -209,7 +209,8 @@ by the b43-open driver of Linux-libre.") (let* ((out (assoc-ref outputs "out")) (fmw (string-append out "/share/firmware"))) (mkdir-p fmw) - (copy-file "out/bios.bin" (string-append fmw "/bios.bin")))))))) + (copy-file "out/bios.bin" (string-append fmw "/bios.bin")) + #t)))))) (home-page "https://www.seabios.org/SeaBIOS") (synopsis "x86 BIOS implementation") (description "SeaBIOS is an implementation of a 16bit x86 BIOS. SeaBIOS @@ -262,36 +263,26 @@ coreboot.") (setenv "PATH" (string-append (getenv "PATH") ":" bin)) ; FIXME: The below script errors out. When using 'invoke' instead ; of 'system*' this causes the build to fail. - (system* "bash" "edksetup.sh" "BaseTools") + (system* "bash" "edksetup.sh") (substitute* "Conf/target.txt" (("^TARGET[ ]*=.*$") "TARGET = RELEASE\n") - (("^TOOL_CHAIN_TAG[ ]*=.*$") "TOOL_CHAIN_TAG = GCC49\n") (("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$") (format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%" (number->string (parallel-job-count))))) ;; Build build support. (setenv "BUILD_CC" "gcc") - (invoke "make" "-C" (string-append tools "/Source/C")) + (invoke "make" "-C" tools) #t))) - (add-after 'build 'build-ia32 + (replace 'build (lambda _ - (substitute* "Conf/target.txt" - (("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = IA32\n") - (("^ACTIVE_PLATFORM[ ]*=.*$") - "ACTIVE_PLATFORM = OvmfPkg/OvmfPkgIa32.dsc\n")) - (invoke "build") - #t)) + (invoke "build" "-a" "IA32" "-t" "GCC49" + "-p" "OvmfPkg/OvmfPkgIa32.dsc"))) ,@(if (string=? "x86_64-linux" (%current-system)) '((add-after 'build 'build-x64 (lambda _ - (substitute* "Conf/target.txt" - (("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = X64\n") - (("^ACTIVE_PLATFORM[ ]*=.*$") - "ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc\n")) - (invoke "build") - #t))) + (invoke "build" "-a" "X64" "-t" "GCC49" + "-p" "OvmfPkg/OvmfPkgX64.dsc")))) '()) - (delete 'build) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -312,6 +303,76 @@ Virtual Machines. OVMF contains a sample UEFI firmware for QEMU and KVM.") (license (list license:expat license:bsd-2 license:bsd-3 license:bsd-4)))) +(define-public ovmf-aarch64 + (package + (inherit ovmf) + (name "ovmf-aarch64") + (native-inputs + `(,@(package-native-inputs ovmf) + ,@(if (not (string-prefix? "aarch64" (%current-system))) + `(("cross-gcc" ,(cross-gcc "aarch64-linux-gnu")) + ("cross-binutils" ,(cross-binutils "aarch64-linux-gnu"))) + '()))) + (arguments + (substitute-keyword-arguments (package-arguments ovmf) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'configure 'set-env + (lambda _ + ,@(if (not (string-prefix? "aarch64" (%current-system))) + `((setenv "GCC49_AARCH64_PREFIX" "aarch64-linux-gnu-")) + '()) + #t)) + (replace 'build + (lambda _ + (invoke "build" "-a" "AARCH64" "-t" "GCC49" + "-p" "ArmVirtPkg/ArmVirtQemu.dsc"))) + (delete 'build-x64) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (fmw (string-append out "/share/firmware"))) + (mkdir-p fmw) + (copy-file "Build/ArmVirtQemu-AARCH64/RELEASE_GCC49/FV/QEMU_EFI.fd" + (string-append fmw "/ovmf_aarch64.bin")) + #t))))))) + (supported-systems %supported-systems))) + +(define-public ovmf-arm + (package + (inherit ovmf) + (name "ovmf-arm") + (native-inputs + `(,@(package-native-inputs ovmf) + ,@(if (not (string-prefix? "armhf" (%current-system))) + `(("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf")) + ("cross-binutils" ,(cross-binutils "arm-linux-gnueabihf"))) + '()))) + (arguments + (substitute-keyword-arguments (package-arguments ovmf) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'configure 'set-env + (lambda _ + ,@(if (not (string-prefix? "armhf" (%current-system))) + `((setenv "GCC49_ARM_PREFIX" "arm-linux-gnueabihf-")) + '()) + #t)) + (replace 'build + (lambda _ + (invoke "build" "-a" "ARM" "-t" "GCC49" + "-p" "ArmVirtPkg/ArmVirtQemu.dsc"))) + (delete 'build-x64) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (fmw (string-append out "/share/firmware"))) + (mkdir-p fmw) + (copy-file "Build/ArmVirtQemu-ARM/RELEASE_GCC49/FV/QEMU_EFI.fd" + (string-append fmw "/ovmf_arm.bin")) + #t))))))) + (supported-systems %supported-systems))) + (define* (make-arm-trusted-firmware platform #:optional (arch "aarch64")) (package (name (string-append "arm-trusted-firmware-" platform)) @@ -404,3 +465,66 @@ such as: (sha256 (base32 "0r4xnlq7v9khjfcg6gqp7nmrmnw4z1r8bipwdr07png1dcbb8214"))))))) + +(define-public arm-trusted-firmware-puma-rk3399 + (let ((base (make-arm-trusted-firmware "rk3399")) + ;; Vendor's arm trusted firmware branch hasn't been upstreamed yet. + (commit "d71e6d83612df896774ec4c03d49500312d2c324") + (revision "1")) + (package + (inherit base) + (name "arm-trusted-firmware-puma-rk3399") + (version (git-version "1.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.theobroma-systems.com/arm-trusted-firmware.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vqhwqqh8h9qlkpybg2v94911091c1418bc4pnzq5fd7zf0fjkf8"))))))) + +(define-public rk3399-cortex-m0 + (package + (name "rk3399-cortex-m0") + (version "1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.theobroma-systems.com/rk3399-cortex-m0.git") + (commit (string-append "v" version)))) + (file-name (git-file-name "rk3399-cortex-m0" version)) + (sha256 + (base32 + "02wz1vkf4j3zc8rx289z76xhrf71jhb2p05lvmygky393a9gjh9w")))) + (home-page "https://git.theobroma-systems.com/rk3399-cortex-m0.git/about/") + (synopsis "PMU Cortex M0 firmware for RK3399 Q7 (Puma)") + (description + "Cortex-M0 firmware used with the RK3399 to implement +power-management functionality and helpers (e.g. DRAM frequency +switching support).\n") + (license license:bsd-3) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (mzerofiles (find-files "." "rk3399m0.(elf|bin)$"))) + (for-each + (lambda (file) + (install-file file out)) + mzerofiles)) + #t)) + (add-before 'build 'setenv + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CROSS_COMPILE" "arm-none-eabi-") + #t))))) + (native-inputs `(("cross-gcc" ,(cross-gcc "arm-none-eabi" #:xgcc gcc-7)) + ("cross-binutils" ,(cross-binutils "arm-none-eabi")))))) diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm index b09ac0bb89..29c5c92766 100644 --- a/gnu/packages/flex.scm +++ b/gnu/packages/flex.scm @@ -26,7 +26,7 @@ #:use-module (gnu packages m4) #:use-module (gnu packages man) #:use-module (gnu packages bison) - #:use-module (gnu packages indent) + #:use-module (gnu packages code) #:use-module (srfi srfi-1)) (define-public flex diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 8e892da279..031df7faa7 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -137,8 +137,9 @@ TrueType (TTF) files.") (lambda* (#:key outputs #:allow-other-keys) (let ((conf-dir (string-append (assoc-ref outputs "out") "/share/fontconfig/conf.avail"))) - (copy-recursively "fontconfig" conf-dir))))))) - (home-page "http://dejavu-fonts.org/") + (copy-recursively "fontconfig" conf-dir) + #t)))))) + (home-page "https://dejavu-fonts.github.io/") (synopsis "Vera font family derivate with additional characters") (description "DejaVu provides an expanded version of the Vera font family aiming for quality and broader Unicode coverage while retaining the original @@ -406,14 +407,15 @@ for long periods of working with computers (8 or more hours per day).") (string-append (assoc-ref %outputs out) "/share/fonts/opentype"))))) (setenv "PATH" PATH) - (system* tar "xvf" (assoc-ref %build-inputs "source")) + (invoke tar "xvf" (assoc-ref %build-inputs "source")) (chdir (string-append "source-han-sans-" ,version "R")) (install-opentype-fonts "OTC" "out") (install-opentype-fonts "SubsetOTF/CN" "cn") (install-opentype-fonts "SubsetOTF/JP" "jp") (install-opentype-fonts "SubsetOTF/KR" "kr") (install-opentype-fonts "SubsetOTF/TW" "tw") - (for-each delete-file (find-files %output "\\.zip$")))))) + (for-each delete-file (find-files %output "\\.zip$")) + #t)))) (native-inputs `(("gzip" ,gzip) ("tar" ,tar))) @@ -948,7 +950,7 @@ vector graphics.") (src-pcf-dir (string-append "tamzen-font-Tamzen-" ,version "/pcf"))) (setenv "PATH" PATH) - (system* tar "xvf" (assoc-ref %build-inputs "source")) + (invoke tar "xvf" (assoc-ref %build-inputs "source")) (mkdir-p font-dir) (mkdir-p psf-dir) (chdir src-pcf-dir) @@ -1167,7 +1169,7 @@ itself.")))) (otf-dir (string-append %output "/share/fonts/opentype"))) (setenv "PATH" PATH) - (system* "unzip" (assoc-ref %build-inputs "source")) + (invoke "unzip" (assoc-ref %build-inputs "source")) (mkdir-p ttf-dir) (mkdir-p otf-dir) @@ -1176,7 +1178,8 @@ itself.")))) (find-files "." "\\.ttf$")) (for-each (lambda (otf) (install-file otf otf-dir)) - (find-files "." "\\.otf$")))))) + (find-files "." "\\.otf$")) + #t)))) (native-inputs `(("unzip" ,unzip))) (home-page "http://www.impallari.com/dosis") (synopsis "Very simple, rounded, sans serif family") diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 27c88f9331..f7dc2e7634 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -28,6 +28,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages check) #:use-module (gnu packages ghostscript) + #:use-module (gnu packages linux) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages autotools) @@ -53,14 +54,14 @@ (define-public freetype (package (name "freetype") - (version "2.8.1") - (replacement freetype/fixed) + (version "2.9") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/freetype/freetype-" version ".tar.bz2")) (sha256 (base32 - "0y3xrimgp0k39gwq1vdi7b7wjy0z9fhwmzafisxqfardw015yhz5")))) + "12jcdz1in20yaa55izxalg3hm1pf7nydfrzps5bzb4zgihybmzz6")) + (patches (search-patches "freetype-CVE-2018-6942.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -79,13 +80,6 @@ anti-aliased glyph bitmap generation with 256 gray levels.") (license license:freetype) ; some files have other licenses (home-page "https://www.freetype.org/"))) -(define freetype/fixed - (package/inherit freetype - (source - (origin - (inherit (package-source freetype)) - (patches (search-patches "freetype-CVE-2018-6942.patch")))))) - (define-public ttfautohint (package (name "ttfautohint") @@ -238,18 +232,19 @@ fonts to/from the WOFF2 format.") (define-public fontconfig (package (name "fontconfig") - (version "2.12.6") + (version "2.13.0") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/fontconfig/release/fontconfig-" version ".tar.bz2")) - (patches (search-patches "fontconfig-remove-debug-printf.patch")) (sha256 (base32 - "05zh65zni11kgnhg726gjbrd55swspdvhqbcnj5a5xh8gn03036g")))) + "1fgf28zgsqh7x6dw30n6zi9z679gx6dyfyahp55z7dsm454yipci")))) (build-system gnu-build-system) + ;; In Requires or Requires.private of fontconfig.pc. (propagated-inputs `(("expat" ,expat) - ("freetype" ,freetype))) + ("freetype" ,freetype) + ("libuuid" ,util-linux))) (inputs `(("gs-fonts" ,gs-fonts))) (native-inputs `(("gperf" ,gperf) @@ -274,9 +269,9 @@ fonts to/from the WOFF2 format.") (replace 'install (lambda _ ;; Don't try to create /var/cache/fontconfig. - (zero? (system* "make" "install" - "fc_cachedir=$(TMPDIR)" - "RUN_FC_CACHE_TEST=false"))))))) + (invoke "make" "install" + "fc_cachedir=$(TMPDIR)" + "RUN_FC_CACHE_TEST=false")))))) (synopsis "Library for configuring and customizing font access") (description "Fontconfig can discover new fonts when installed automatically; @@ -378,16 +373,15 @@ applications should be.") (define-public graphite2 (package (name "graphite2") - (version "1.3.10") + (version "1.3.11") (source (origin (method url-fetch) (uri (string-append "https://github.com/silnrsi/graphite/releases/" "download/" version "/" name "-" version ".tgz")) - (patches (search-patches "graphite2-ffloat-store.patch")) (sha256 (base32 - "1bm1rl2ww0m8rvmknh8fpajyz9xqv43qs9qrzf7xd5gaz6rf7zch")))) + "0z5dcgh8r3678awq6fb8igik7xmar5m6z9xxwpkkhradhk8jxfds")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-2) ; because of "import imap" in tests @@ -495,11 +489,6 @@ smooth contours with constant curvature at the spline joins.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vi"))))))) (synopsis "Unicode names and annotation list") (description "LibUniNamesList holds www.unicode.org Nameslist.txt data which can be @@ -561,7 +550,8 @@ definitions.") "libxml2" "zlib" "libspiro" "freetype" "pango" "cairo" "fontconfig"))) ;; Checks for potrace program at runtime - `("PATH" ":" prefix (,potrace))))))) + `("PATH" ":" prefix (,potrace))) + #t)))) ;; Skip test 40 "FontForge .sfd file open check" to work around ;; . diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm index 60c5f96a87..0a5568a016 100644 --- a/gnu/packages/fpga.scm +++ b/gnu/packages/fpga.scm @@ -131,8 +131,10 @@ For synthesis, the compiler generates netlists in the desired format.") (file-name (string-append name "-" version "-checkout.tar.gz")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("ABCREV = .*") "ABCREV = default\n"))))) + '(begin + (substitute* "Makefile" + (("ABCREV = .*") "ABCREV = default\n")) + #t)))) (build-system gnu-build-system) (arguments `(#:test-target "test" diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index af35d077e2..b1769c2400 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -3,13 +3,13 @@ ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015, 2017 Andy Wingo ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès -;;; Copyright © 2015, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2015 David Hashe ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Kei Kebreau -;;; Copyright © 2017 Mark H Weaver +;;; Copyright © 2017, 2018 Mark H Weaver ;;; Copyright © 2017, 2018 Marius Bakke -;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2017, 2018 Rutger Helling ;;; Copyright © 2017 Brendan Tildesley ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; @@ -38,6 +38,7 @@ #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) @@ -81,7 +82,7 @@ (define-public xdg-utils (package (name "xdg-utils") - (version "1.1.2") + (version "1.1.3") (source (origin (method url-fetch) @@ -90,7 +91,7 @@ version ".tar.gz")) (sha256 (base32 - "1k4b4m3aiyqn9k12a0ihcdahzlspl3zhskmm1d7228dvqvi546cm")))) + "1nai806smz3zcb2l5iny4x7li0fak0rzmjg6vlyhdqm8z25b166p")))) (build-system gnu-build-system) (native-inputs `(("docbook-xsl" ,docbook-xsl) @@ -236,6 +237,7 @@ the freedesktop.org XDG Base Directory specification.") (sha256 (base32 "1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931")) + (patches (search-patches "elogind-glibc-2.27.patch")) (modules '((guix build utils))) (snippet '(begin @@ -243,7 +245,8 @@ the freedesktop.org XDG Base Directory specification.") (substitute* "Makefile.am" ;; Avoid validation against DTD because the DTDs for ;; both doctype 4.2 and 4.5 are needed. - (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid")))))) + (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ;FIXME: "make check" in the "po" directory fails. @@ -274,11 +277,12 @@ the freedesktop.org XDG Base Directory specification.") ;; Fix compilation with glibc >= 2.26, which removed xlocale.h. ;; This can be removed for elogind 234. (substitute* "src/basic/parse-util.c" - (("xlocale\\.h") "locale.h")))) - (add-before 'configure 'autogen + (("xlocale\\.h") "locale.h")) + #t)) + (replace 'bootstrap (lambda _ - (and (zero? (system* "intltoolize" "--force" "--automake")) - (zero? (system* "autoreconf" "-vif"))))) + (invoke "intltoolize" "--force" "--automake") + (invoke "autoreconf" "-vif"))) (add-before 'build 'fix-service-file (lambda* (#:key outputs #:allow-other-keys) ;; Fix the file name of the 'elogind' binary in the D-Bus @@ -286,7 +290,8 @@ the freedesktop.org XDG Base Directory specification.") (substitute* "src/login/org.freedesktop.login1.service" (("^Exec=.*") (string-append "Exec=" (assoc-ref %outputs "out") - "/libexec/elogind/elogind\n"))))) + "/libexec/elogind/elogind\n"))) + #t)) (add-after 'install 'add-libcap-to-search-path (lambda* (#:key inputs outputs #:allow-other-keys) ;; Add a missing '-L' for libcap in libelogind.la. See @@ -414,10 +419,11 @@ manager for the current system.") ;; AssertionError: 'x-apple-ios-png' != 'png' (substitute* "test/test-mime.py" (("self.check_mimetype\\(imgpng, 'image', 'png'\\)") "#")) - (zero? (system* "nosetests" "-v"))))))) + (invoke "nosetests" "-v")))))) (native-inputs - `(("shared-mime-info" ,shared-mime-info) ;for tests - ("hicolor-icon-theme" ,hicolor-icon-theme) ;for tests + ;; For tests. + `(("shared-mime-info" ,shared-mime-info) + ("hicolor-icon-theme" ,hicolor-icon-theme) ("python-nose" ,python-nose))) (home-page "https://www.freedesktop.org/wiki/Software/pyxdg") (synopsis "Implementations of freedesktop.org standards in Python") @@ -490,7 +496,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public weston (package (name "weston") - (version "3.0.0") + (version "4.0.0") (source (origin (method url-fetch) (uri (string-append @@ -498,7 +504,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "weston-" version ".tar.xz")) (sha256 (base32 - "19936zlkb75xcaidd8fag4ah8000wrh2ziqy7nxkq36pimgdbqfd")))) + "0n2big8xw6g6n46zm1jyf00dv9r4d84visdz5b8vxpw3xzkhmz50")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -524,6 +530,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (string-append "--with-xserver-path=" (assoc-ref %build-inputs "xorg-server-xwayland") "/bin/Xwayland")) + #:parallel-tests? #f ; Parallel tests cause failures. #:phases (modify-phases %standard-phases (add-before 'configure 'use-elogind @@ -792,7 +799,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.") (define-public libqmi (package (name "libqmi") - (version "1.14.2") + (version "1.20.0") (source (origin (method url-fetch) (uri (string-append @@ -800,8 +807,10 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.") name "-" version ".tar.xz")) (sha256 (base32 - "0h009bzss4bal47nk21lyp4s3mmlcivhhaaj7r9229qvx85bi0v2")))) + "1d3fca477sdwbv4bsq1cl98qc8sixrzp0gqjcmjj8mlwfk9qqhi1")))) (build-system gnu-build-system) + (inputs + `(("libgudev" ,libgudev))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums ("pkg-config" ,pkg-config) @@ -833,7 +842,11 @@ which speak the Qualcomm MSM Interface (QMI) protocol.") (build-system gnu-build-system) (arguments '(#:configure-flags - `(,(string-append "--with-udev-base-dir=" %output "/lib/udev")))) + `(,(string-append "--with-udev-base-dir=" %output "/lib/udev") + ;; FIXME: Without this flag the build fails with "error: assignment + ;; from incompatible pointer type" whenever the return value of + ;; "g_object_ref" is assigned to "ctx->self". + "--disable-more-warnings"))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums ("gobject-introspection" ,gobject-introspection) diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm index 77400d51f3..523f9e6334 100644 --- a/gnu/packages/freeipmi.scm +++ b/gnu/packages/freeipmi.scm @@ -27,14 +27,14 @@ (define-public freeipmi (package (name "freeipmi") - (version "1.6.1") + (version "1.6.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/freeipmi/freeipmi-" version ".tar.gz")) (sha256 (base32 - "0jdm1nwsnkj0nzjmcqprmjk25449mhjj25khwzpq3mpjw440wmd2")))) + "0jhjf21gn1m9lhjsc1ard9zymq25mk7rxcyygjfxgy0vb4j36l9i")))) (build-system gnu-build-system) (inputs `(("libgcrypt" ,libgcrypt))) diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index 74c1aea58e..8f64225ab4 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2014, 2015, 2018 Ludovic Courtès ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice @@ -112,7 +112,8 @@ reliability in mind.") ;; This is free software, avoid any confusion. (substitute* (find-files "." "\\.c$") (("a freeware program") - "free software")))))) + "free software")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -156,11 +157,6 @@ FTP browser, as well as non-interactive commands such as 'ncftpput' and `(("automake" ,automake) ("autoconf" ,autoconf) ("gettext" ,gettext-minimal))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (home-page "http://weex.sourceforge.net/") (synopsis "Non-interactive client for FTP synchronization") (description @@ -173,7 +169,7 @@ as required.") (define-public libfilezilla (package (name "libfilezilla") - (version "0.12.1") + (version "0.12.3") (source (origin (method url-fetch) @@ -181,7 +177,7 @@ as required.") name "/" name "-" version ".tar.bz2")) (sha256 (base32 - "1gbqm42dd0m3fvqz3bk53889479dvn8679zp6ba8a9q2br2wkvv0")))) + "1v606kcz2rdmmlwxrv3xvwh7ia1nh6jfc9bhjw2r4ai3rm16gch5")))) (build-system gnu-build-system) (native-inputs `(("cppunit" ,cppunit) diff --git a/gnu/packages/fvwm.scm b/gnu/packages/fvwm.scm index 63b1052e07..386edba591 100644 --- a/gnu/packages/fvwm.scm +++ b/gnu/packages/fvwm.scm @@ -35,7 +35,7 @@ (define-public fvwm (package (name "fvwm") - (version "2.6.7") + (version "2.6.8") (source (origin (method url-fetch) (uri (string-append @@ -43,7 +43,7 @@ version "/" name "-" version ".tar.gz")) (sha256 (base32 - "0wzghjgy65pkn31rgl14fngizw7nbkzbxsfa670xmrndpmd4sr81")))) + "0hgkkdzcqjnaabvv9cnh0bz90nnjskbhjg9qnzpi2x0mbliwjdpv")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 86abf9f37c..3d6a038d9d 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Tomáš Čech ;;; Copyright © 2015 Mark H Weaver -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2018 Ludovic Courtès ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2015, 2016, 2017 David Thompson ;;; Copyright © 2016, 2017, 2018 Efraim Flashner @@ -233,10 +233,19 @@ PCM data.") (base32 "13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3")))) (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'build 'no-Werror + (lambda _ + ;; Don't abort builds due to things like GLib + ;; deprecation warnings. + (substitute* (find-files "." "^Makefile\\.in$") + (("-Werror") "")) + #t))))) (native-inputs `(("pkgconfig" ,pkg-config))) (inputs `(("bdb" ,bdb) ("glib" ,glib) - ("guile" ,guile-2.0) + ("guile" ,guile-2.2) ("libmicrohttpd" ,libmicrohttpd) ("ncurses" ,ncurses) ("sdl" ,sdl) @@ -387,7 +396,7 @@ support.") (define-public tiled (package (name "tiled") - (version "1.1.4") + (version "1.1.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/bjorn/tiled/archive/v" @@ -395,7 +404,7 @@ support.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0xb3zwcdk7khdrza6spl02g5n2xbij6nbszv8vi27vagjnmz1wxh")))) + "1zrq1nhb50mwqzw3fln6vj49ljddil1v7yby3ahjbcm94s25ll1y")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) @@ -541,22 +550,14 @@ archive on a per-file basis.") (define-public love (package (name "love") - (version "0.10.2") + (version "11.1") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/rude/love/downloads/" "love-" version "-linux-src.tar.gz")) (sha256 (base32 - "11x346pw0gqad8nmkmywzx4xpcbfc3dslbrdw5x94n1i25mk0sxj")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Build with luajit 2.1.0-beta3. Fixed in love 0.11. - ;; See . - (substitute* "src/libraries/luasocket/libluasocket/lua.h" - (("> 501") ">= 501")) - #t)))) + "1pkwiszmjs0xrwk0wqbc5cp9108b1y8gwsid0gqk1s0x09q9lpmw")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -959,11 +960,6 @@ painted with a mouse.") (base32 "0w0pamjc3vj0jr718hysrw8x076fq6n9rd6wcb36sn2jd0lqvi98")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index e5f8350f6a..c445154b69 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier ;;; Copyright © 2014 Cyrill Schenkel ;;; Copyright © 2014 Sylvain Beucler -;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2014, 2015, 2018 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016 Sou Bunnbu ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015, 2016 Andreas Enge @@ -19,7 +19,7 @@ ;;; Copyright © 2016 Albin Söderqvist ;;; Copyright © 2016, 2017, 2018 Kei Kebreau ;;; Copyright © 2016 Alex Griffin -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Steve Webber ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira @@ -67,6 +67,7 @@ #:use-module (gnu packages audio) #:use-module (gnu packages avahi) #:use-module (gnu packages boost) + #:use-module (gnu packages crypto) #:use-module (gnu packages documentation) #:use-module (gnu packages docbook) #:use-module (gnu packages fltk) @@ -90,6 +91,7 @@ #:use-module (gnu packages haskell) #:use-module (gnu packages mp3) #:use-module (gnu packages music) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages ncurses) @@ -189,11 +191,13 @@ settings to tweak as well.") (modules '((guix build utils))) (snippet ;; Import cmath header for the std::pow function. - '(for-each (lambda (file) - (substitute* file - (("#include ") - "#include "))) - (find-files "src"))))) + '(begin + (for-each (lambda (file) + (substitute* file + (("#include ") + "#include "))) + (find-files "src")) + #t)))) (build-system gnu-build-system) (arguments '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) @@ -308,6 +312,7 @@ tired of cows, a variety of other ASCII-art messengers are available.") #:tests? #f ; no check target #:phases (modify-phases %standard-phases + (delete 'bootstrap) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((dejavu (assoc-ref inputs "font-dejavu")) @@ -683,9 +688,11 @@ watch your CPU playing while enjoying a cup of tea!") "151v6nign86m1a2vqz27krsccpc9m4d1jax4y43v2fa82wfj9qp0")) (modules '((guix build utils))) (snippet - '(substitute* "src/version.c" - (("__DATE__") "") - (("__TIME__") ""))))) + '(begin + (substitute* "src/version.c" + (("__DATE__") "") + (("__TIME__") "")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-cpu-opt") @@ -773,90 +780,110 @@ utilizing the art assets from the @code{SuperTux} project.") license:gpl3+)))) (define-public roguebox-adventures - (let ((commit "19a2c340b34d5b4e7cc89118c7aedc058babbd93") - (revision "1")) - (package - (name "roguebox-adventures") - (version (git-version "2.1.2" revision commit)) - (source - (origin - (method git-fetch) - (uri - (git-reference - (url "https://git.postactiv.com/themightyglider/RogueBoxAdventures.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0afmg8fjdcs3sqdp5rc7irgr7riil8jwysfjn1imfxslf1wcx5ah")))) - (build-system python-build-system) - (arguments - '(#:tests? #f ; no check target - #:phases - (modify-phases %standard-phases - ;; no setup.py script - (replace 'build - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (data (string-append - out "/share/games/roguebox-adventures"))) - ;; Use the correct data directory. - (substitute* '("main.py" "LIB/getch.py" "LIB/getch_gcwz.py") - (("basic_path + os\\.sep + 'DATA'") - (string-append "'" data "'")) - (("^basic_path.*$") - (string-append "basic_path ='" data "'\n"))) - (substitute* "LIB/gra_files.py" - (("basic_path = b_path\\.replace\\('/LIB',''\\)") - (string-append "basic_path ='" data "'\n"))) + (package + (name "roguebox-adventures") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://download.tuxfamily.org/rba/RogueBoxAdventures_v" + (string-join (string-split version #\.) "_") "_Source.zip")) + (file-name (string-append name "-" version ".zip")) + (sha256 + (base32 + "0kmzdgnik8fsf3bg55546l77p3mfxn2awkzfzzdn20n82rd2babw")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (and (invoke "unzip" source) + ;; The actual source is buried a few directories deep. + (chdir (string-append "RogueBoxAdventures_v" + (string-join + (string-split ,version #\.) "_") + "_Source"))))) + ;; no setup.py script + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (data (string-append + out "/share/games/roguebox-adventures"))) + ;; Use the correct data directory. + (substitute* '("main.py" "LIB/getch.py" "LIB/getch_gcwz.py") + (("basic_path + os\\.sep + 'DATA'") + (string-append "'" data "'")) + (("^basic_path.*$") + (string-append "basic_path ='" data "'\n"))) + (substitute* "LIB/gra_files.py" + (("basic_path = b_path\\.replace\\('/LIB',''\\)") + (string-append "basic_path ='" data "'\n"))) - ;; The game must save in the user's home directory because - ;; the store is read-only. - (substitute* "main.py" - (("home_save = False") "home_save = True") - (("'icon_small.png'") - (string-append "'" data "/icon_small.png'")))) - #t)) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (data (string-append - out "/share/games/roguebox-adventures")) - (doc (string-append - out "/share/doc/roguebox-adventures"))) - (mkdir-p bin) - (mkdir-p doc) - (copy-file "main.py" - (string-append bin "/roguebox-adventures")) - (chmod (string-append bin "/roguebox-adventures") #o555) + ;; The game must save in the user's home directory because + ;; the store is read-only. + (substitute* "main.py" + (("home_save = False") "home_save = True") + (("'icon_small.png'") + (string-append "'" data "/icon_small.png'")))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (roguebox-adventures + (string-append bin "/roguebox-adventures")) + (data (string-append + out "/share/games/roguebox-adventures")) + (lib (string-append data "/LIB")) + (doc (string-append + out "/share/doc/roguebox-adventures"))) + (mkdir-p bin) + (mkdir-p doc) - (for-each (lambda (file) - (copy-recursively file - (string-append data "/" file))) - '("AUDIO" "FONT" "GRAPHIC" "LIB" "LICENSE" - "icon_big.png" "icon_small.png")) + (for-each (lambda (file) + (copy-recursively file + (string-append data "/" file))) + '("AUDIO" "FONT" "GRAPHIC" "LIB" "LICENSE" + "icon_big.png" "icon_small.png")) + (for-each (lambda (file) + (chmod file #o555) + (install-file file lib)) + '("main.py" "run.py")) - (copy-recursively "DOC" doc) + (copy-recursively "DOC" doc) - (wrap-program (string-append bin "/roguebox-adventures") - `("PYTHONPATH" ":" prefix (,(string-append data "/LIB"))))) - #t))))) - (inputs - `(("python-pygame" ,python-pygame) - ("python-tmx" ,python-tmx))) - (home-page "https://rogueboxadventures.tuxfamily.org") - (synopsis "A classical roguelike/sandbox game") - (description - "RogueBox Adventures is a graphical roguelike with strong influences + (call-with-output-file + roguebox-adventures + (lambda (p) + (format p "\ +#!~a +export PYTHONPATH=~a/LIB:~a +exec -a \"~a\" ~a \"$@\"\n" + (which "bash") data (getenv "PYTHONPATH") + (which "python3") + (string-append lib "/main.py")))) + (chmod roguebox-adventures #o555)) + #t))))) + (native-inputs + `(("unzip" ,unzip))) + (inputs + `(("python-pygame" ,python-pygame) + ("python-tmx" ,python-tmx))) + (home-page "https://rogueboxadventures.tuxfamily.org") + (synopsis "A classical roguelike/sandbox game") + (description + "RogueBox Adventures is a graphical roguelike with strong influences from sandbox games like Minecraft or Terraria. The main idea of RogueBox Adventures is to offer the player a kind of roguelike toy-world. This world can be explored and changed freely.") - ;; The GPL3+ is for code, the rest are for art. - (license (list license:cc0 - license:cc-by3.0 - license:gpl3+ - license:silofl1.1))))) + ;; The GPL3+ is for code, the rest are for art. + (license (list license:cc0 + license:cc-by3.0 + license:gpl3+ + license:silofl1.1)))) (define-public xshogi (package @@ -897,7 +924,9 @@ can be explored and changed freely.") (modules '((guix build utils))) (snippet ;; Unbundle fonts. - '(delete-file-recursively "fonts")))) + '(begin + (delete-file-recursively "fonts") + #t)))) (build-system gnu-build-system) (arguments '(#:make-flags '("CC=gcc") @@ -953,15 +982,15 @@ that beneath its ruins lay buried an ancient evil.") ;; In the future, if someone tries to make a graphical variant of ;; this package, they can deal with that mess themselves. :) '(begin - (for-each - (lambda (subdir) - (let ((lib-subdir (string-append "lib/" subdir))) - (delete-file-recursively lib-subdir))) - '("fonts" "icons" "sounds" "tiles")) + (for-each (lambda (subdir) + (let ((lib-subdir (string-append "lib/" subdir))) + (delete-file-recursively lib-subdir))) + '("fonts" "icons" "sounds" "tiles")) (substitute* "lib/Makefile" ;; And don't try to invoke makefiles in the directories we removed (("gamedata customize help screens fonts tiles sounds icons user") - "gamedata customize help screens user")))))) + "gamedata customize help screens user")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no check target @@ -1176,7 +1205,8 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n" (assoc-ref %build-inputs "bash") (assoc-ref %build-inputs "engine") (assoc-ref %build-inputs "data")) - (chmod port #o777))))) + (chmod port #o777))) + #t)) #:modules ((guix build utils)))) (inputs `(("engine" ,freedink-engine) ("data" ,freedink-data) @@ -1282,11 +1312,13 @@ destroy, the better your score. The person with the highest score wins.") ;; We do not provide `ncurses.h' within an `ncursesw' ;; sub-directory, so patch the source accordingly. See ;; . - '(for-each (lambda (file) - (substitute* file - (("ncursesw/ncurses.h") - "ncurses.h"))) - (find-files "." "configure$|\\.c$"))))) + '(begin + (for-each (lambda (file) + (substitute* file + (("ncursesw/ncurses.h") + "ncurses.h"))) + (find-files "." "configure$|\\.c$")) + #t)))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) ("perl" ,perl))) @@ -1433,10 +1465,11 @@ match, cannon keep, and grave-itation pit.") "gzip") "/bin"))) (setenv "PATH" path) - (system* tar "xvf" (assoc-ref %build-inputs "source")) + (invoke tar "xvf" (assoc-ref %build-inputs "source")) (chdir (string-append "minetest_game-" ,version)) (mkdir-p install-dir) - (copy-recursively "." install-dir))))) + (copy-recursively "." install-dir) + #t)))) (synopsis "Main game data for the Minetest game engine") (description "Game data for the Minetest infinite-world block sandox game.") @@ -1789,7 +1822,7 @@ falling, themeable graphics and sounds, and replays.") (define-public wesnoth (package (name "wesnoth") - (version "1.12.6") + (version "1.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-" @@ -1798,17 +1831,10 @@ falling, themeable graphics and sounds, and replays.") name "-" version ".tar.bz2")) (sha256 (base32 - "0kifp6g1dsr16m6ngjq2hx19h851fqg326ps3krnhpyix963h3x5")))) + "1mzrnbv71b4s41c5x8clhb53l8lidiwzny1hl828228pvys5bxkb")))) (build-system cmake-build-system) (arguments - '(#:tests? #f ; no check target - #:configure-flags - ;; XXX: Failed to compile with '-Werror=old-style-cast'. - ;; boost/mpl/assert.hpp:313:58: error: - ;; use of old-style cast [-Werror=old-style-cast] - ;; [...] - ;; cc1plus: all warnings being treated as errors - '("-DENABLE_STRICT_COMPILATION=OFF"))) + `(#:tests? #f)) ; no check target (native-inputs `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) @@ -1817,12 +1843,10 @@ falling, themeable graphics and sounds, and replays.") ("dbus" ,dbus) ("fribidi" ,fribidi) ("libvorbis" ,libvorbis) + ("openssl" ,openssl) ("pango" ,pango) - ("sdl-image" ,sdl-image) - ("sdl-mixer" ,sdl-mixer) - ("sdl-net" ,sdl-net) - ("sdl-ttf" ,sdl-ttf))) - (home-page "http://www.wesnoth.org/") + ("sdl-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))))) + (home-page "https://www.wesnoth.org/") (synopsis "Turn-based strategy game") (description "The Battle for Wesnoth is a fantasy, turn based tactical strategy game, @@ -1841,19 +1865,12 @@ next campaign.") (name "wesnoth-server") (inputs `(("boost" ,boost) - ("sdl-net" ,sdl-net))) + ("icu4c" ,icu4c) + ("openssl" ,openssl) + ("sdl2" ,sdl2))) (arguments - (append - (substitute-keyword-arguments (package-arguments wesnoth) - ((#:configure-flags configure-flags) - `(append ,configure-flags (list "-DENABLE_GAME=OFF")))) - `(#:phases - (modify-phases %standard-phases - ;; Delete game assets not required by the server. - (add-after 'install 'delete-data - (lambda* (#:key outputs #:allow-other-keys) - (delete-file-recursively (string-append (assoc-ref outputs "out") - "/share/wesnoth")))))))) + `(#:configure-flags '("-DENABLE_GAME=OFF") + ,@(package-arguments wesnoth))) (synopsis "Dedicated @emph{Battle for Wesnoth} server") (description "This package contains a dedicated server for @emph{The Battle for Wesnoth}."))) @@ -1984,13 +2001,25 @@ world}, @uref{http://evolonline.org, Evol Online} and (origin (method url-fetch) (uri (string-append "http://binaries.openttd.org/releases/" version "/openttd-" version "-source.tar.xz")) + (patches + (list + (origin (method url-fetch) + (uri (string-append + "https://github.com/OpenTTD/OpenTTD/commit/" + "19076c24c1f3baf2a22d1fa832d5688216cf54a3.patch")) + (file-name "openttd-fix-compilation-with-ICU-61.patch") + (sha256 + (base32 + "02d1xmb75yv4x6rfnvxk3vvq4l3lvvwr2pfsdzn7lzalic51ziqh"))))) (sha256 (base32 "0dhv5bbbg1dmmq7fi3xss0a9jq2rqgb5sf9fsqzlsjcdm590j6b1")) (modules '((guix build utils))) (snippet ;; The DOS port contains proprietary software. - '(delete-file-recursively "os/dos")))) + '(begin + (delete-file-recursively "os/dos") + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target @@ -2603,18 +2632,19 @@ Red Eclipse provides fast paced and accessible gameplay.") (bin (string-append out "/bin")) (doc (string-append out "/share/doc/grue-hunter"))) - (begin - (copy-file tarball "grue-hunter.tar.gz") - (zero? (system* gzip "-d" "grue-hunter.tar.gz")) - (zero? (system* tar "xvf" "grue-hunter.tar")) + (copy-file tarball "grue-hunter.tar.gz") + (invoke gzip "-d" "grue-hunter.tar.gz") + (invoke tar "xvf" "grue-hunter.tar") - (mkdir-p bin) - (copy-file "grue-hunter/gh.pl" - (string-append bin "/grue-hunter")) - (patch-shebang (string-append bin "/grue-hunter") - (list perl)) + (mkdir-p bin) + (copy-file "grue-hunter/gh.pl" + (string-append bin "/grue-hunter")) + (patch-shebang (string-append bin "/grue-hunter") + (list perl)) - (install-file "grue-hunter/AGPLv3.txt" doc)))))) + (install-file "grue-hunter/AGPLv3.txt" doc) + + #t)))) (inputs `(("perl" ,perl) ("tar" ,tar) ("gzip" ,gzip) @@ -2840,7 +2870,8 @@ safety of the Chromium vessel.") (substitute* "Makefile" ;; Do not rely on $(GPERF) being an absolute file name (("\\[ -x \\$\\(GPERF\\) \\]") - "$(GPERF) --version >/dev/null 2>&1")))) + "$(GPERF) --version >/dev/null 2>&1")) + #t)) (patches (search-patches "tuxpaint-stamps-path.patch")))) (build-system gnu-build-system) (native-inputs @@ -2920,11 +2951,12 @@ your child be creative.") (string-append (assoc-ref %build-inputs "tar") "/bin" ":" (assoc-ref %build-inputs "gzip") "/bin")) - (system* "tar" "xvf" (assoc-ref %build-inputs "source")) + (invoke "tar" "xvf" (assoc-ref %build-inputs "source")) (chdir (string-append ,name "-" ,version)) (let ((dir (string-append %output "/share/tuxpaint/stamps"))) (mkdir-p dir) - (copy-recursively "stamps" dir))))) + (copy-recursively "stamps" dir)) + #t))) (home-page (package-home-page tuxpaint)) (synopsis "Stamp images for Tux Paint") (description @@ -4042,27 +4074,26 @@ fight against their plot and save his fellow rabbits from slavery.") (define-public 0ad-data (package (name "0ad-data") - (version "0.0.22-alpha") + (version "0.0.23-alpha") (source (origin (method url-fetch) - (uri (string-append "http://releases.wildfiregames.com/0ad-" + (uri (string-append "https://releases.wildfiregames.com/0ad-" version "-unix-data.tar.xz")) (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0vknk9ay9h2p34r7mym2g066f3s3c5d5vmap0ckcs5b86h5cscjc")) + "1b6qcvd8yyyxavgdwpcs7asmln3xgnvjkglz6ggvwb956x37ggzx")) (modules '((guix build utils))) (snippet #~(begin - (for-each - (lambda (name) - (let* ((dir (string-append "binaries/data/mods/" name)) - (file (string-append dir "/" name ".zip")) - (unzip #$(file-append unzip "/bin/unzip"))) - (system* unzip "-d" dir file) - (delete-file file))) - '("mod" "public")) + (for-each (lambda (name) + (let* ((dir (string-append "binaries/data/mods/" name)) + (file (string-append dir "/" name ".zip")) + (unzip #$(file-append unzip "/bin/unzip"))) + (invoke unzip "-d" dir file) + (delete-file file))) + '("mod" "public")) #t)))) (build-system trivial-build-system) (native-inputs `(("tar" ,tar) @@ -4078,7 +4109,7 @@ fight against their plot and save his fellow rabbits from slavery.") (xz-path (string-append (assoc-ref %build-inputs "xz") "/bin"))) (setenv "PATH" xz-path) (mkdir out) - (zero? (system* tar "xvf" source "-C" out "--strip=3")))))) + (invoke tar "xvf" source "-C" out "--strip=3"))))) (synopsis "Data files for 0ad") (description "0ad-data provides the data files required by the game 0ad.") (home-page "https://play0ad.com") @@ -4096,19 +4127,18 @@ fight against their plot and save his fellow rabbits from slavery.") (define-public 0ad (package (name "0ad") - (version "0.0.22-alpha") + (version "0.0.23-alpha") (source (origin (method url-fetch) - (uri (string-append "http://releases.wildfiregames.com/0ad-" + (uri (string-append "https://releases.wildfiregames.com/0ad-" version "-unix-build.tar.xz")) (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "1cgmr4g5g9wv36v7ylbrvqhsjwgcsdgbqwc8zlqmnayk9zgkdpgx")) + "0qz1sg4n5y766qwgi63drrrx6k17kk0rcnn9a4a9crllk2vf78fg")))) ;; A snippet here would cause a build failure because of timestamps ;; reset. See https://bugs.gnu.org/26734. - )) (inputs `(("0ad-data" ,0ad-data) ("curl" ,curl) @@ -4116,6 +4146,7 @@ fight against their plot and save his fellow rabbits from slavery.") ("gloox" ,gloox) ("icu4c" ,icu4c) ("libpng" ,libpng) + ("libsodium" ,libsodium) ("libvorbis" ,libvorbis) ("libxcursor" ,libxcursor) ("libxml2" ,libxml2) @@ -4297,10 +4328,12 @@ Crowther & Woods, its original authors, in 1995. It has been known as "0v2qgdfpvdzd1bcbp9v8pfahj1bgczsq2d4xfhh5wg11jgjcwz03")) (modules '((guix build utils))) (snippet - '(substitute* '("src/music.h" "src/tSDL.h") - (("#elif defined(__FreeBSD__)" line) - (string-append - line " || defined(__GNUC__)")))))) + '(begin + (substitute* '("src/music.h" "src/tSDL.h") + (("#elif defined(__FreeBSD__)" line) + (string-append + line " || defined(__GNUC__)"))) + #t)))) (build-system gnu-build-system) (native-inputs `(("unzip" ,unzip))) @@ -4461,7 +4494,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.") (arguments `(#:make-flags (let ((vulkanlib (string-append (assoc-ref %build-inputs - "vulkan-icd-loader") "/lib"))) + "vulkan-loader") "/lib"))) (list "CC=gcc" "MP3LIB=mpg123" "USE_CODEC_FLAC=1" @@ -4474,7 +4507,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.") (add-after 'unpack 'fix-makefile-paths (lambda* (#:key outputs #:allow-other-keys) (let ((vulkan (assoc-ref %build-inputs - "vulkan-icd-loader")) + "vulkan-loader")) (out (assoc-ref outputs "out"))) (mkdir-p (string-append out "/bin")) (substitute* "Quake/Makefile" ((" /usr") @@ -4485,7 +4518,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.") #t)))) ,@(strip-keyword-arguments '(#:make-flags #:phases) (package-arguments quakespasm)))) - (inputs `(("vulkan-icd-loader" ,vulkan-icd-loader) + (inputs `(("vulkan-loader" ,vulkan-loader) ,@(package-inputs quakespasm))) (description "vkquake is a modern engine for id software's Quake 1. It includes support for 64 bit CPUs, custom music playback, a new sound driver, @@ -4640,8 +4673,6 @@ elements to achieve a simple goal in the most complex way possible.") (string-append "PIONEER_DATA_DIR=" %output "/share/games/pioneer")) #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap")))) (add-before 'bootstrap 'fix-lua-check (lambda _ (substitute* "configure.ac" @@ -4689,7 +4720,7 @@ Github or Gitlab.") (define-public colobot (package (name "colobot") - (version "0.1.11-alpha") + (version "0.1.11.1-alpha") (source (origin (method url-fetch) @@ -4697,7 +4728,7 @@ Github or Gitlab.") "colobot-gold-" version ".tar.gz")) (sha256 (base32 - "160rq9fp5vd0qaqr3jvzvzrcxk9cac532y8vx4cvq0a8hgylrbad")))) + "0h6f4icarramhjkxxbzz6siv3v11z5r8ghqisgr1rscw217vhmwf")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no test @@ -4735,7 +4766,7 @@ Github or Gitlab.") "colobot-gold-" version ".tar.gz")) (sha256 (base32 - "1pdpsyr41g7xmk03k2g76l214f53ahk04qnkzmsv1fdbbaq7p109")))) + "0riznycx2jbxmg4m9nn3mcpqws2c0s7cn2m9skz9zj1w39r5qpjy")))) ("colobot-music" ,(origin (method url-fetch) @@ -4785,7 +4816,8 @@ You can save humanity and get programming skills!") (delete-file-recursively "bzip2") (delete-file-recursively "game-music-emu") (delete-file-recursively "jpeg-6b") - (delete-file-recursively "zlib"))))) + (delete-file-recursively "zlib") + #t)))) (arguments '(#:tests? #f #:configure-flags @@ -4907,3 +4939,244 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.") (description "Fortune is a command-line utility which displays a random quotation from a collection of quotes.") (license license:bsd-4))) + +(define xonotic-data + (package + (name "xonotic-data") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.xonotic.org/xonotic-" + version ".zip")) + (file-name (string-append name "-" version ".zip")) + (sha256 + (base32 + "1mcs6l4clvn7ibfq3q69k2p0z6ww75rxvnngamdq5ic6yhq74bx2")))) + (build-system trivial-build-system) + (native-inputs + `(("unzip" ,unzip))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (xonotic (string-append out "/share/xonotic")) + (source (assoc-ref %build-inputs "source")) + (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip"))) + (copy-file source (string-append ,name "-" ,version ".zip")) + (invoke unzip (string-append ,name "-" ,version ".zip")) + (mkdir-p out) + (mkdir-p xonotic) + (chdir "Xonotic") + (copy-recursively "data" + (string-append xonotic "/data")) + (copy-recursively "server" + (string-append xonotic "/server")) + (install-file "key_0.d0pk" xonotic))))) + (home-page "http://xonotic.org") + (synopsis "Data files for Xonotic") + (description + "Xonotic-data provides the data files required by the game Xonotic.") + (license (list license:gpl2+ + (license:x11-style "file://server/rcon.pl"))))) + +(define-public xonotic + (package + (name "xonotic") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (string-append "http://dl.xonotic.org/xonotic-" + version "-source.zip")) + (file-name (string-append name "-" version ".zip")) + (sha256 + (base32 + "0axxw04fyz6jlfqd0kp7hdrqa0li31sx1pbipf2j5qp9wvqicsay")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list (string-append "--prefix=" + (assoc-ref %outputs "out")) + "--disable-rijndael") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'make-darkplaces + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (sharedir (string-append out "/share/xonotic/"))) + (invoke "make" "-C" "source/darkplaces" + (string-append "DP_FS_BASEDIR=" + sharedir) + "DP_LINK_TO_LIBJPEG=1" + "DP_SOUND_API=ALSA" + "CC=gcc" + "-f" "makefile" + "cl-release") + (invoke "make" "-C" "source/darkplaces" + (string-append "DP_FS_BASEDIR=" + sharedir) + "DP_LINK_TO_LIBJPEG=1" + "DP_SOUND_API=ALSA" + "CC=gcc" + "-f" "makefile" + "sdl-release") + (invoke "make" "-C" "source/darkplaces" + (string-append "DP_FS_BASEDIR=" + sharedir) + "DP_LINK_TO_LIBJPEG=1" + "DP_SOUND_API=ALSA" + "CC=gcc" + "-f" "makefile" + "sv-release")))) + (add-before 'configure 'bootstrap + (lambda _ + (chdir "source/d0_blind_id") + (invoke "sh" "autogen.sh"))) + (add-after 'build 'install-desktop-entry + (lambda* (#:key outputs #:allow-other-keys) + ;; Add .desktop files for the 2 variants and the symlink + (let* ((output (assoc-ref outputs "out")) + (apps (string-append output "/share/applications"))) + (mkdir-p apps) + (with-output-to-file + (string-append apps "/xonotic-glx.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=xonotic-glx~@ + Comment=Xonotic glx~@ + Exec=~a/bin/xonotic-glx~@ + TryExec=~@*~a/bin/xonotic-glx~@ + Icon=~@ + Type=Application~%" + output))) + (with-output-to-file + (string-append apps "/xonotic-sdl.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=xonotic-sdl~@ + Comment=Xonotic sdl~@ + Exec=~a/bin/xonotic-sdl~@ + TryExec=~@*~a/bin/xonotic-sdl~@ + Icon=~@ + Type=Application~%" + output))) + (with-output-to-file + (string-append apps "/xonotic.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=xonotic~@ + Comment=Xonotic~@ + Exec=~a/bin/xonotic-glx~@ + TryExec=~@*~a/bin/xonotic~@ + Icon=~@ + Type=Application~%" + output))) + #t))) + (add-after 'install-desktop-entry 'install-icons + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion "../../misc/logos/icons_png/" + (for-each + (lambda (file) + (let* ((size (string-filter char-numeric? file)) + (icons (string-append out "/share/icons/hicolor/" + size "x" size "/apps"))) + (mkdir-p icons) + (copy-file file (string-append icons "/xonotic.png")))) + '("xonotic_16.png" "xonotic_22.png" "xonotic_24.png" + "xonotic_32.png" "xonotic_48.png" "xonotic_64.png" + "xonotic_128.png" "xonotic_256.png" "xonotic_512.png")))))) + (add-after 'install-icons 'install-binaries + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (define (install src dst) + (let ((dst (string-append out dst))) + (mkdir-p (dirname dst)) + (copy-file src dst))) + (mkdir-p (string-append out "/bin")) + (install "../darkplaces/darkplaces-dedicated" + "/bin/xonotic-dedicated") + (install "../darkplaces/darkplaces-glx" + "/bin/xonotic-glx") + (install "../darkplaces/darkplaces-sdl" + "/bin/xonotic-sdl") + ;; Provide a default xonotic executable, defaulting to SDL. + (symlink (string-append out "/bin/xonotic-sdl") + (string-append out "/bin/xonotic")) + #t))) + (add-after 'install-binaries 'install-data + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (data (assoc-ref inputs "xonotic-data"))) + (copy-recursively (string-append data "/share/xonotic") + (string-append out "/share/xonotic")) + #t))) + (add-after 'install-binaries 'wrap-binaries + (lambda* (#:key outputs inputs #:allow-other-keys) + ;; Curl and libvorbis need to be wrapped so that we get + ;; sound and networking. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/xonotic")) + (bin-sdl (string-append out "/bin/xonotic-sdl")) + (bin-glx (string-append out "/bin/xonotic-glx")) + (bin-dedicated (string-append out "/bin/xonotic-dedicated")) + (curl (assoc-ref inputs "curl")) + (vorbis (assoc-ref inputs "libvorbis"))) + (wrap-program bin + `("LD_LIBRARY_PATH" ":" prefix + (,(string-append curl "/lib:" vorbis "/lib")))) + (wrap-program bin-sdl + `("LD_LIBRARY_PATH" ":" prefix + (,(string-append curl "/lib:" vorbis "/lib")))) + (wrap-program bin-glx + `("LD_LIBRARY_PATH" ":" prefix + (,(string-append curl "/lib:" vorbis "/lib")))) + (wrap-program bin-dedicated + `("LD_LIBRARY_PATH" ":" prefix + (,(string-append curl "/lib:" vorbis "/lib")))) + #t)))))) + (inputs + `(("xonotic-data" ,xonotic-data) + ("alsa-lib" ,alsa-lib) + ("curl" ,curl) + ("libjpeg" ,libjpeg) + ("libmodplug" ,libmodplug) + ("libvorbis" ,libvorbis) + ("libogg" ,libogg) + ("libxpm" ,libxpm) + ("libxxf86dga" ,libxxf86dga) + ("libxxf86vm" ,libxxf86vm) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxau" ,libxau) + ("libxdmcp" ,libxdmcp) + ("mesa" ,mesa) + ("glu" ,glu) + ("freetype" ,freetype) + ("sdl2" ,sdl2) + ("libpng" ,libpng) + ("hicolor-icon-theme" ,hicolor-icon-theme))) + (native-inputs + `(("unzip" ,unzip) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("libtool" ,libtool) + ("gmp" ,gmp))) + (home-page "http://xonotic.org") + (synopsis "Fast-paced first-person shooter game") + (description + "Xonotic is a free, fast-paced first-person shooter. +The project is geared towards providing addictive arena shooter +gameplay which is all spawned and driven by the community itself. +Xonotic is a direct successor of the Nexuiz project with years of +development between them, and it aims to become the best possible +open-source FPS of its kind.") + (license (list license:gpl2+ + license:bsd-3 ; /source/d0_blind_id folder and others + (license:x11-style "" "See file rcon.pl."))))) diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm index e318993ace..487020ad3b 100644 --- a/gnu/packages/gawk.scm +++ b/gnu/packages/gawk.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2018 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,18 +30,16 @@ (define-public gawk (package (name "gawk") - (version "4.1.4") + (version "4.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gawk/gawk-" version ".tar.xz")) (sha256 - (base32 "0rn2mmjxm767zliqzd67j7h2ncjn4j0321c60y9fy3grs3i89qak")))) + (base32 "0lam2zf3n7ak4pig8w46lhx9hzx50kj2v2yj1616mm26wy2rf4fi")))) (build-system gnu-build-system) (arguments - `(#:parallel-tests? #f ; test suite fails in parallel - - #:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (add-before 'configure 'set-shell-file-name (lambda* (#:key inputs #:allow-other-keys) ;; Refer to the right shell. @@ -56,7 +55,9 @@ '((substitute* "extension/Makefile.in" (("^.*: check-for-shared-lib-support" match) (string-append "### " match)))) - '())))) + '()) + + #t))) (add-before 'check 'adjust-test-infrastructure (lambda _ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 62b8968823..5012d9a913 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Carlos Sánchez de La Lama +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -144,11 +145,11 @@ where the OS part is overloaded to denote a specific ABI---into GCC (method url-fetch) (uri (string-append "mirror://gnu/gcc/gcc-" version "/gcc-" version ".tar.bz2")) - (patches (search-patches "gcc-4-compile-with-gcc-5.patch")) (sha256 (base32 "10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj")) - (patches (search-patches "gcc-fix-texi2pod.patch")))) + (patches (search-patches "gcc-4-compile-with-gcc-5.patch" + "gcc-fix-texi2pod.patch")))) (build-system gnu-build-system) ;; Separate out the run-time support libraries because all the @@ -200,131 +201,131 @@ where the OS part is overloaded to denote a specific ABI---into GCC #:tests? #f #:phases - (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((libdir ,(libdir)) - (libc (assoc-ref inputs "libc"))) - (when libc - ;; The following is not performed for `--without-headers' - ;; cross-compiler builds. + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((libdir ,(libdir)) + (libc (assoc-ref inputs "libc"))) + (when libc + ;; The following is not performed for `--without-headers' + ;; cross-compiler builds. - ;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a - ;; single line, to allow the next step to work properly. - (for-each - (lambda (x) - (substitute* (find-files "gcc/config" - "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") - (("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line) - line))) - '(1 2 3)) + ;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a + ;; single line, to allow the next step to work properly. + (for-each + (lambda (x) + (substitute* (find-files "gcc/config" + "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") + (("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line) + line))) + '(1 2 3)) - ;; Fix the dynamic linker's file name. - (substitute* (find-files "gcc/config" - "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") - (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" - _ gnu-user suffix) - (format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" - gnu-user suffix - (string-append libc ,(glibc-dynamic-linker))))) + ;; Fix the dynamic linker's file name. + (substitute* (find-files "gcc/config" + "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") + (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" + _ gnu-user suffix) + (format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" + gnu-user suffix + (string-append libc ,(glibc-dynamic-linker))))) - ;; Tell where to find libstdc++, libc, and `?crt*.o', except - ;; `crt{begin,end}.o', which come with GCC. - (substitute* (find-files "gcc/config" - "^gnu-user.*\\.h$") - (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) - ;; Help libgcc_s.so be found (see also below.) Always use - ;; '-lgcc_s' so that libgcc_s.so is always found by those - ;; programs that use 'pthread_cancel' (glibc dlopens - ;; libgcc_s.so when pthread_cancel support is needed, but - ;; having it in the application's RUNPATH isn't enough; see - ;; .) - ;; - ;; NOTE: The '-lgcc_s' added below needs to be removed in a - ;; later phase of %gcc-static. If you change the string - ;; below, make sure to update the relevant code in - ;; %gcc-static package as needed. - (format #f "#define GNU_USER_TARGET_LIB_SPEC \ + ;; Tell where to find libstdc++, libc, and `?crt*.o', except + ;; `crt{begin,end}.o', which come with GCC. + (substitute* (find-files "gcc/config" + "^gnu-user.*\\.h$") + (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) + ;; Help libgcc_s.so be found (see also below.) Always use + ;; '-lgcc_s' so that libgcc_s.so is always found by those + ;; programs that use 'pthread_cancel' (glibc dlopens + ;; libgcc_s.so when pthread_cancel support is needed, but + ;; having it in the application's RUNPATH isn't enough; see + ;; .) + ;; + ;; NOTE: The '-lgcc_s' added below needs to be removed in a + ;; later phase of %gcc-static. If you change the string + ;; below, make sure to update the relevant code in + ;; %gcc-static package as needed. + (format #f "#define GNU_USER_TARGET_LIB_SPEC \ \"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a" - libc libc libdir suffix)) - (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) - (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" + libc libc libdir suffix)) + (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) + (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" #define STANDARD_STARTFILE_PREFIX_2 \"\" ~a" - libc line))) + libc line))) - ;; The rs6000 (a.k.a. powerpc) config in GCC does not use - ;; GNU_USER_* defines. Do the above for this case. - (substitute* - "gcc/config/rs6000/sysv4.h" - (("#define LIB_LINUX_SPEC (.*)$" _ suffix) - (format #f "#define LIB_LINUX_SPEC \ + ;; The rs6000 (a.k.a. powerpc) config in GCC does not use + ;; GNU_USER_* defines. Do the above for this case. + (substitute* + "gcc/config/rs6000/sysv4.h" + (("#define LIB_LINUX_SPEC (.*)$" _ suffix) + (format #f "#define LIB_LINUX_SPEC \ \"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a" - libc libc libdir suffix)) - (("#define STARTFILE_LINUX_SPEC.*$" line) - (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" + libc libc libdir suffix)) + (("#define STARTFILE_LINUX_SPEC.*$" line) + (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" #define STANDARD_STARTFILE_PREFIX_2 \"\" ~a" - libc line)))) + libc line)))) - ;; Don't retain a dependency on the build-time sed. - (substitute* "fixincludes/fixincl.x" - (("static char const sed_cmd_z\\[\\] =.*;") - "static char const sed_cmd_z[] = \"sed\";")) + ;; Don't retain a dependency on the build-time sed. + (substitute* "fixincludes/fixincl.x" + (("static char const sed_cmd_z\\[\\] =.*;") + "static char const sed_cmd_z[] = \"sed\";")) - ;; Aarch64 support didn't land in GCC until the 4.8 series. - (when (file-exists? "gcc/config/aarch64") - ;; Force Aarch64 libdir to be /lib and not /lib64 - (substitute* "gcc/config/aarch64/t-aarch64-linux" - (("lib64") "lib"))) + ;; Aarch64 support didn't land in GCC until the 4.8 series. + (when (file-exists? "gcc/config/aarch64") + ;; Force Aarch64 libdir to be /lib and not /lib64 + (substitute* "gcc/config/aarch64/t-aarch64-linux" + (("lib64") "lib"))) - (when (file-exists? "libbacktrace") - ;; GCC 4.8+ comes with libbacktrace. By default it builds - ;; with -Werror, which fails with a -Wcast-qual error in glibc - ;; 2.21's stdlib-bsearch.h. Remove -Werror. - (substitute* "libbacktrace/configure" - (("WARN_FLAGS=(.*)-Werror" _ flags) - (string-append "WARN_FLAGS=" flags))) + (when (file-exists? "libbacktrace") + ;; GCC 4.8+ comes with libbacktrace. By default it builds + ;; with -Werror, which fails with a -Wcast-qual error in glibc + ;; 2.21's stdlib-bsearch.h. Remove -Werror. + (substitute* "libbacktrace/configure" + (("WARN_FLAGS=(.*)-Werror" _ flags) + (string-append "WARN_FLAGS=" flags))) - (when (file-exists? "libsanitizer/libbacktrace") - ;; Same in libsanitizer's bundled copy (!) found in 4.9+. - (substitute* "libsanitizer/libbacktrace/Makefile.in" - (("-Werror") - "")))) + (when (file-exists? "libsanitizer/libbacktrace") + ;; Same in libsanitizer's bundled copy (!) found in 4.9+. + (substitute* "libsanitizer/libbacktrace/Makefile.in" + (("-Werror") + "")))) - ;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s. - ;; See - ;; and . - (substitute* "libstdc++-v3/src/Makefile.in" - (("^OPT_LDFLAGS = ") - "OPT_LDFLAGS = -Wl,-rpath=$(libdir) ")) + ;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s. + ;; See + ;; and . + (substitute* "libstdc++-v3/src/Makefile.in" + (("^OPT_LDFLAGS = ") + "OPT_LDFLAGS = -Wl,-rpath=$(libdir) ")) - ;; Move libstdc++*-gdb.py to the "lib" output to avoid a - ;; circularity between "out" and "lib". (Note: - ;; --with-python-dir is useless because it imposes $(prefix) as - ;; the parent directory.) - (substitute* "libstdc++-v3/python/Makefile.in" - (("pythondir = .*$") - (string-append "pythondir = " libdir "/share" - "/gcc-$(gcc_version)/python\n"))) + ;; Move libstdc++*-gdb.py to the "lib" output to avoid a + ;; circularity between "out" and "lib". (Note: + ;; --with-python-dir is useless because it imposes $(prefix) as + ;; the parent directory.) + (substitute* "libstdc++-v3/python/Makefile.in" + (("pythondir = .*$") + (string-append "pythondir = " libdir "/share" + "/gcc-$(gcc_version)/python\n"))) - ;; Avoid another circularity between the outputs: this #define - ;; ends up in auto-host.h in the "lib" output, referring to - ;; "out". (This variable is used to augment cpp's search path, - ;; but there's nothing useful to look for here.) - (substitute* "gcc/config.in" - (("PREFIX_INCLUDE_DIR") - "PREFIX_INCLUDE_DIR_isnt_necessary_here")))) + ;; Avoid another circularity between the outputs: this #define + ;; ends up in auto-host.h in the "lib" output, referring to + ;; "out". (This variable is used to augment cpp's search path, + ;; but there's nothing useful to look for here.) + (substitute* "gcc/config.in" + (("PREFIX_INCLUDE_DIR") + "PREFIX_INCLUDE_DIR_isnt_necessary_here")) + #t))) - (alist-cons-after - 'configure 'post-configure - (lambda _ - ;; Don't store configure flags, to avoid retaining references to - ;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'. - (substitute* "Makefile" - (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest) - "TOPLEVEL_CONFIGURE_ARGUMENTS=\n"))) - %standard-phases)))) + (add-after 'configure 'post-configure + (lambda _ + ;; Don't store configure flags, to avoid retaining references to + ;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'. + (substitute* "Makefile" + (("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest) + "TOPLEVEL_CONFIGURE_ARGUMENTS=\n")) + #t))))) (native-search-paths ;; Use the language-specific variables rather than 'CPATH' because they @@ -369,13 +370,15 @@ Go. It also includes runtime support libraries for these languages.") ;; This is required for building with glibc-2.26. ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712 (snippet - '(for-each - (lambda (dir) - (substitute* (string-append "libgcc/config/" - dir "/linux-unwind.h") - (("struct ucontext") "ucontext_t"))) - '("aarch64" "alpha" "bfin" "i386" "m68k" - "pa" "sh" "tilepro" "xtensa"))))) + '(begin + (for-each + (lambda (dir) + (substitute* (string-append "libgcc/config/" + dir "/linux-unwind.h") + (("struct ucontext") "ucontext_t"))) + '("aarch64" "alpha" "bfin" "i386" "m68k" + "pa" "sh" "tilepro" "xtensa")) + #t)))) (supported-systems %supported-systems) (inputs `(("isl" ,isl-0.11) @@ -401,13 +404,15 @@ Go. It also includes runtime support libraries for these languages.") ;; This is required for building with glibc-2.26. ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712 (snippet - '(for-each - (lambda (dir) - (substitute* (string-append "libgcc/config/" - dir "/linux-unwind.h") - (("struct ucontext") "ucontext_t"))) - '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2" - "pa" "sh" "tilepro" "xtensa"))))) + '(begin + (for-each + (lambda (dir) + (substitute* (string-append "libgcc/config/" + dir "/linux-unwind.h") + (("struct ucontext") "ucontext_t"))) + '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2" + "pa" "sh" "tilepro" "xtensa")) + #t)))) ;; Override inherited texinfo-5 with latest version. (native-inputs `(("perl" ,perl) ;for manpages ("texinfo" ,texinfo))))) @@ -439,9 +444,11 @@ Go. It also includes runtime support libraries for these languages.") ;; ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67590 ;; http://cgit.openembedded.org/openembedded-core/commit/?id=f6e47aa9b12f9ab61530c40e0343f451699d9077 - '(substitute* "libcc1/configure" - (("\\$gcc_cv_objdump -T") - "$OBJDUMP_FOR_TARGET -T"))))) + '(begin + (substitute* "libcc1/configure" + (("\\$gcc_cv_objdump -T") + "$OBJDUMP_FOR_TARGET -T")) + #t)))) (inputs `(("isl" ,isl) ,@(package-inputs gcc-4.7))))) @@ -467,16 +474,28 @@ Go. It also includes runtime support libraries for these languages.") ;; This can be removed when gcc-6.5.0 is released. ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712 (snippet - '(for-each - (lambda (dir) - (substitute* (string-append "libgcc/config/" - dir "/linux-unwind.h") - (("struct ucontext") "ucontext_t"))) - '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2" - "pa" "sh" "tilepro" "xtensa"))))) + '(begin + (for-each + (lambda (dir) + (substitute* (string-append "libgcc/config/" + dir "/linux-unwind.h") + (("struct ucontext") "ucontext_t"))) + '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2" + "pa" "sh" "tilepro" "xtensa")) + #t)))) (inputs `(("isl" ,isl) - ,@(package-inputs gcc-4.7))))) + ,@(package-inputs gcc-4.7))) + + (native-search-paths + ;; We have to use 'CPATH' for GCC > 5, not 'C_INCLUDE_PATH' & co., due to + ;; . + (list (search-path-specification + (variable "CPATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64"))))))) (define-public gcc-7 (package @@ -512,7 +531,8 @@ using compilers other than GCC." #:phases (alist-cons-before 'configure 'chdir (lambda _ - (chdir "libstdc++-v3")) + (chdir "libstdc++-v3") + #t) %standard-phases) #:configure-flags `("--disable-libstdcxx-pch" ,(string-append "--with-gxx-include-dir=" @@ -759,7 +779,8 @@ as the 'native-search-paths' field." #:phases (modify-phases %standard-phases (add-before 'configure 'chdir (lambda _ - (chdir "libstdc++-v3"))) + (chdir "libstdc++-v3") + #t)) (add-before 'configure 'set-xsl-directory (lambda* (#:key inputs #:allow-other-keys) (let ((docbook (assoc-ref inputs "docbook-xsl"))) @@ -768,22 +789,23 @@ as the 'native-search-paths' field." (("@XSL_STYLE_DIR@") (string-append docbook "/xml/xsl/" - (strip-store-file-name docbook))))))) + (strip-store-file-name docbook)))) + #t))) (replace 'build (lambda _ ;; XXX: There's also a 'doc-info' target, but it ;; relies on docbook2X, which itself relies on ;; DocBook 4.1.2, which is not really usable ;; (lacks a catalog.xml.) - (zero? (system* "make" - "doc-html" - "doc-man")))) + (invoke "make" + "doc-html" + "doc-man"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* "make" - "doc-install-html" - "doc-install-man")))))))))) + (invoke "make" + "doc-install-html" + "doc-install-man"))))))))) (define-public libstdc++-doc-4.9 (make-libstdc++-doc gcc-4.9)) @@ -897,9 +919,9 @@ effective code.") (delete 'check) (replace 'build (lambda _ - (zero? (system* "make" - "gnu-c-manual.info" - "gnu-c-manual.html")))) + (invoke "make" + "gnu-c-manual.info" + "gnu-c-manual.html"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index ac0068f175..36ccb79d67 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -57,7 +57,8 @@ 'configure 'post-configure (lambda _ (for-each patch-makefile-SHELL - (find-files "." "Makefile\\.in")))) + (find-files "." "Makefile\\.in")) + #t)) (add-after 'install 'remove-libs-already-in-binutils (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 0ec3d6e756..4ba09f2a90 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2018 Arun Isaac ;;; Copyright © 2018 Joshua Sierles, Nextjournal +;;; Copyright © 2018 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,8 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages icu4c) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages statistics) @@ -212,7 +215,8 @@ and driving.") (("^all-am: .*$") "all-am: Makefile $(LTLIBRARIES) $(HEADERS) geo_config.h\n") (("^install-data-am: .*$") - "install-data-am: install-includeHEADERS")))))) + "install-data-am: install-includeHEADERS")) + #t)))) (build-system gnu-build-system) (inputs `(("libjpeg-turbo" ,libjpeg-turbo) @@ -611,3 +615,148 @@ spatial data and models on top of static maps from various online sources (e.g Google Maps and Stamen Maps). It includes tools common to those tasks, including functions for geolocation and routing.") (license license:gpl2))) + +(define-public gdal + (package + (name "gdal") + (version "2.2.4") + (source (origin + (method url-fetch) + (uri (string-append + "http://download.osgeo.org/gdal/" version "/gdal-" + version ".tar.gz")) + (sha256 + (base32 + "1951f7b69x3d1vic0rmq92q8f4bj3hbxnxmj5jl0cc3zg0isgmdr")) + (modules '((guix build utils))) + (snippet + `(begin + ;; TODO: frmts contains a lot more bundled code. + (for-each delete-file-recursively + ;; bundled code + '("frmts/png/libpng" + "frmts/gif/giflib" + "frmts/jpeg/libjpeg" + "frmts/jpeg/libjpeg12" + "frmts/gtiff/libtiff" + "frmts/gtiff/libgeotiff" + "frmts/zlib" + "ogr/ogrsf_frmts/geojson/libjson")))))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:configure-flags + (let-syntax ((with (syntax-rules () + ((_ option input) + (string-append option "=" + (assoc-ref %build-inputs input)))))) + (list + ;; TODO: --with-pcidsk, --with-pcraster + (with "--with-freexl" "freexl") + (with "--with-libjson-c" "json-c") + (with "--with-png" "libpng") + (with "--with-webp" "libwebp") + (with "--with-gif" "giflib") + (with "--with-jpeg" "libjpeg-turbo") + (with "--with-libtiff" "libtiff") + (with "--with-geotiff" "libgeotiff") + (with "--with-libz" "zlib") + "--with-pcre")) + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-path + (lambda _ + (substitute* "frmts/mrf/mrf_band.cpp" + (("\"../zlib/zlib.h\"") ""))))))) + (inputs + `(("freexl" ,freexl) + ("geos" ,geos) + ("giflib" ,giflib) + ("json-c" ,json-c) + ("libgeotiff" ,libgeotiff) + ("libjpeg-turbo" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("libwebp" ,libwebp) + ("pcre" ,pcre) + ("zlib" ,zlib))) + (home-page "http://www.gdal.org/") + (synopsis "Raster and vector geospatial data format library") + (description "GDAL is a translator library for raster and vector geospatial +data formats. As a library, it presents a single raster abstract data model +and single vector abstract data model to the calling application for all +supported formats. It also comes with a variety of useful command line +utilities for data translation and processing.") + (license (list + ;; general license + license:expat + ;; frmts/gtiff/tif_float.c, frmts/pcraster/libcsf, + ;; ogr/ogrsf_frmts/dxf/intronurbs.cpp, frmts/pdf/pdfdataset.cpp + ;; frmts/mrf/ + license:bsd-3 + ;; frmts/hdf4/hdf-eos/* + ;; similar to the expat license, but without guarantee exclusion + (license:non-copyleft "file://frmts/hdf4/hdf-eos/README") + ;; frmts/grib/degrib/ + license:public-domain ; with guarantee exclusion + ;; port/cpl_minizip* + ;; Some bsd-inspired license + (license:non-copyleft "file://port/LICENCE_minizip") + ;; alg/internal_libqhull + ;; Some 5-clause license + (license:non-copyleft "file://alg/internal_libqhull/COPYING.txt") + ;; frmts/mrf/libLERC + license:asl2.0)))) + +(define-public postgis + (package + (name "postgis") + (version "2.4.4") + (source (origin + (method url-fetch) + (uri (string-append "https://download.osgeo.org/postgis/source/postgis-" + version ".tar.gz")) + (sha256 + (base32 + "1hm8migjb53cymp4qvg1h20yqllmy9f7x0awv5450391i6syyqq6")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:make-flags + (list (string-append "datadir=" (assoc-ref %outputs "out") "/share") + (string-append "docdir="(assoc-ref %outputs "out") "/share/doc") + (string-append "pkglibdir="(assoc-ref %outputs "out") "/lib") + (string-append "bindir=" (assoc-ref %outputs "out") "/bin")) + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-install-path + (lambda* (#:key outputs #:allow-other-keys) + (substitute* '("raster/loader/Makefile" "raster/scripts/python/Makefile") + (("\\$\\(DESTDIR\\)\\$\\(PGSQL_BINDIR\\)") + (string-append (assoc-ref outputs "out") "/bin")))))))) + (inputs + `(("gdal" ,gdal) + ("geos" ,geos) + ("libxml2" ,libxml2) + ("pcre" ,pcre) + ("postgresql" ,postgresql) + ("proj.4" ,proj.4))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config))) + (home-page "https://postgis.net") + (synopsis "Spatial database extender for PostgreSQL") + (description "PostGIS is a spatial database extender for PostgreSQL +object-relational database. It adds support for geographic objects allowing +location queries to be run in SQL.") + (license (list + ;; General license + license:gpl2+ + ;; loader/dbfopen, safileio.*, shapefil.h, shpopen.c + license:expat + ;; loader/getopt.* + license:public-domain + ;; doc/xsl + license:bsd-3 ; files only say "BSD" + ;; doc + license:cc-by-sa3.0)))) diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index f14ca27810..f887f8eb30 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -89,14 +89,17 @@ (substitute* "gettext-tools/src/project-id" (("/bin/pwd") - "pwd")))))) + "pwd")) + + #t)))) (add-before 'configure 'link-expat (lambda _ ;; Gettext defaults to opening expat via dlopen on ;; "Linux". Change to link directly. (substitute* "gettext-tools/configure" (("LIBEXPAT=\"-ldl\"") "LIBEXPAT=\"-ldl -lexpat\"") - (("LTLIBEXPAT=\"-ldl\"") "LTLIBEXPAT=\"-ldl -lexpat\""))))) + (("LTLIBEXPAT=\"-ldl\"") "LTLIBEXPAT=\"-ldl -lexpat\"")) + #t))) ;; When tests fail, we want to know the details. #:make-flags '("VERBOSE=yes"))) @@ -139,14 +142,14 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.") (define-public po4a (package (name "po4a") - (version "0.47") + (version "0.53") (source (origin (method url-fetch) - (uri (string-append "https://alioth.debian.org/frs/download.php" - "/file/4142/po4a-" version ".tar.gz")) + (uri (string-append "https://github.com/mquinson/po4a/releases/download/v" + version "/po4a-" version ".tar.gz")) (sha256 (base32 - "01vm0750aq0h2lphrflv3wq9gz7y0py8frglfpacn58ivyvy242h")))) + "033qrd37zjjzvjl6g55fvhlcrm7gynfx6rj76qpr2852dn0mw069")))) (build-system perl-build-system) (arguments `(#:phases @@ -163,6 +166,14 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.") (lambda _ (delete-file "t/20-sgml.t") #t)) + (add-before 'check 'disable-asciidoc-test + (lambda _ + (delete-file "t/30-asciidoc.t") + #t)) + (add-before 'check 'disable-yaml-test + (lambda _ + (delete-file "t/32-yaml.t") + #t)) (add-after 'unpack 'fix-builder (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "Po4aBuilder.pm" diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 6d2dd4c008..0a6043ba65 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,14 +44,13 @@ (define-public lcms (package (name "lcms") - (version "2.8") + (version "2.9") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/lcms/lcms/" version "/lcms2-" version ".tar.gz")) - (patches (search-patches "lcms-CVE-2016-10165.patch")) (sha256 (base32 - "08pvl289g0mbznzx5l6ibhaldsgx41kwvdn2c974ga9fkli2pl36")))) + "083xisy6z01zhm7p7rgk4bx9d6zlr8l20qkfv1g29ylnhgwzvij8")))) (build-system gnu-build-system) (inputs `(("libjpeg-8" ,libjpeg-8) ("libtiff" ,libtiff) @@ -132,7 +132,7 @@ printing, and psresize, for adjusting page sizes.") (define-public ghostscript (package (name "ghostscript") - (version "9.22") + (version "9.23") (source (origin (method url-fetch) @@ -142,7 +142,7 @@ printing, and psresize, for adjusting page sizes.") "/ghostscript-" version ".tar.xz")) (sha256 (base32 - "1fyi4yvdj39bjgs10klr31cda1fbx1ar7a7b7yz7v68gykk65y61")) + "1ng8d9fm5lza7k1f7ybc791275c07z5hcmpkrl2i226nshkxrkhz")) (patches (search-patches "ghostscript-runpath.patch" "ghostscript-no-header-creationdate.patch" "ghostscript-no-header-id.patch" @@ -152,10 +152,11 @@ printing, and psresize, for adjusting page sizes.") ;; Remove bundled libraries. The bundled OpenJPEG is a patched fork so ;; we leave it, at least for now. ;; TODO Try unbundling ijs, which is developed alongside Ghostscript. + ;; Likewise for the thread-safe lcms2 fork called "lcms2art". '(begin (for-each delete-file-recursively '("freetype" "jbig2dec" "jpeg" - "lcms2" "libpng" - "tiff" "zlib")))))) + "libpng" "tiff" "zlib")) + #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) ;19 MiB of HTML/PS doc + examples (arguments @@ -179,13 +180,6 @@ printing, and psresize, for adjusting page sizes.") '())) #:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-doc-dir - (lambda _ - ;; Honor --docdir. - (substitute* "Makefile.in" - (("^docdir=.*$") "docdir = @docdir@\n") - (("^exdir=.*$") "exdir = $(docdir)/examples\n")) - #t)) (add-after 'configure 'remove-doc-reference (lambda _ ;; Don't retain a reference to the 'doc' output in 'gs'. @@ -194,6 +188,10 @@ printing, and psresize, for adjusting page sizes.") (substitute* "base/gscdef.c" (("GS_DOCDIR") "\"~/.guix-profile/share/doc/ghostscript\"")) + ;; The docdir default changed in 9.23 and a compatibility + ;; symlink was added from datadir->docdir. Remove it. + (substitute* "base/unixinst.mak" + (("ln -s \\$\\(DESTDIR\\)\\$\\(docdir\\).*") "")) #t)) (add-after 'configure 'patch-config-files (lambda _ @@ -213,11 +211,11 @@ printing, and psresize, for adjusting page sizes.") (lambda _ ;; Build 'libgs.so', but don't build the statically-linked 'gs' ;; binary (saves 22 MiB). - (zero? (system* "make" "so" "-j" - (number->string (parallel-job-count)))))) + (invoke "make" "so" "-j" + (number->string (parallel-job-count))))) (replace 'install (lambda _ - (zero? (system* "make" "soinstall")))) + (invoke "make" "soinstall"))) (add-after 'install 'create-gs-symlink (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -233,13 +231,11 @@ printing, and psresize, for adjusting page sizes.") ;; these libraries. ,@(if (%current-target-system) `(("zlib/native" ,zlib) - ("libjpeg/native" ,libjpeg) - ("lcms2/native" ,lcms)) + ("libjpeg/native" ,libjpeg)) '()))) (inputs `(("freetype" ,freetype) ("jbig2dec" ,jbig2dec) - ("lcms2" ,lcms) ("libjpeg" ,libjpeg) ("libpaper" ,libpaper) ("libpng" ,libpng) @@ -294,7 +290,7 @@ output file formats and printers.") (substitute* "autogen.sh" (("^.*\\$srcdir/configure.*") "") (("^ + && echo Now type.*$") "")) - (zero? (system* "bash" "autogen.sh"))))))) + (invoke "bash" "autogen.sh")))))) (synopsis "IJS driver framework for inkjet and other raster devices") (description "IJS is a protocol for transmission of raster page images. This package @@ -335,7 +331,8 @@ architecture.") (for-each (lambda (file) (copy-file file (string-append dir "/" file))) - (find-files "." "pfb|afm")))))))) + (find-files "." "pfb|afm")) + #t)))))) (synopsis "Free replacements for the PostScript fonts") (description "Ghostscript fonts provides fonts and font metrics customarily distributed with diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 2483885c95..628d285e45 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -1,8 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès -;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016, 2018 Ricardo Wurmus ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,12 +23,14 @@ (define-module (gnu packages gimp) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) #:use-module (gnu packages pkg-config) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) @@ -39,12 +42,13 @@ #:use-module (gnu packages pdf) #:use-module (gnu packages photo) #:use-module (gnu packages python) + #:use-module (gnu packages web) #:use-module (gnu packages xorg)) (define-public babl (package (name "babl") - (version "0.1.40") + (version "0.1.46") (source (origin (method url-fetch) (uri (list (string-append "https://download.gimp.org/pub/babl/" @@ -58,7 +62,7 @@ "/babl-" version ".tar.bz2"))) (sha256 (base32 - "08cdl6rcfvkhqsnhb214xzr0wbrv0956xzlrzqxcb1k1madgjanh")))) + "0nwyhvfca6m35wjcccvwca7fcihzgdfyc012qi703y5d3cxl1hmv")))) (build-system gnu-build-system) (home-page "http://gegl.org/babl/") (synopsis "Image pixel format conversion library") @@ -75,43 +79,25 @@ provided, as well as a framework to add new color models and data types.") (define-public gegl (package (name "gegl") - (version "0.2.0") + (version "0.4.0") (source (origin (method url-fetch) - (uri (list (string-append "http://download.gimp.org/pub/gegl/" + (uri (list (string-append "https://download.gimp.org/pub/gegl/" (string-take version 3) "/" name "-" version ".tar.bz2"))) (sha256 (base32 - "09nlv06li9nrn74ifpm7223mxpg0s7cii702z72cpbwrjh6nlbnz")) - (patches (search-patches "gegl-CVE-2012-4433.patch")))) + "1ighk4z8nlqrzyj8w97s140hzj59564l3xv6fpzbr97m1zx2nkfh")))) (build-system gnu-build-system) (arguments - '(;; More than just the one test disabled below now fails; disable them - ;; all according to the rationale given below. - #:tests? #f - #:configure-flags '("LDFLAGS=-lm") - #:phases - (modify-phases %standard-phases - (add-before 'build 'pre-build - (lambda _ - ;; This test program seems to crash on exit. Specifically, whilst - ;; g_object_unreffing bufferA and bufferB - This seems to be a bug - ;; in the destructor. This is just a test program so will not have - ;; any wider effect, although might be hiding another problem. - ;; According to advice received on irc.gimp.org#gegl although 0.2.0 - ;; is the latest released version, any bug reports against it will - ;; be ignored. So we are on our own. - (substitute* "tools/img_cmp.c" - (("g_object_unref \\(buffer.\\);") "")) - - (substitute* "tests/compositions/Makefile" - (("/bin/sh") (which "sh"))) - #t))))) - (inputs + '(#:configure-flags '("LDFLAGS=-lm"))) + ;; These are propagated to satisfy 'gegl-0.4.pc'. + (propagated-inputs `(("babl" ,babl) ("glib" ,glib) - ("cairo" ,cairo) + ("json-glib" ,json-glib))) + (inputs + `(("cairo" ,cairo) ("pango" ,pango) ("libpng" ,libpng) ("libjpeg" ,libjpeg-8))) @@ -131,23 +117,18 @@ buffers.") (define-public gimp (package (name "gimp") - (version "2.8.22") + (version "2.10.0") (source (origin (method url-fetch) - (uri (string-append "http://download.gimp.org/pub/gimp/v" + (uri (string-append "https://download.gimp.org/pub/gimp/v" (version-major+minor version) "/gimp-" version ".tar.bz2")) - (patches (search-patches "gimp-CVE-2017-17784.patch" - "gimp-CVE-2017-17785.patch" - "gimp-CVE-2017-17786.patch" - "gimp-CVE-2017-17787.patch" - "gimp-CVE-2017-17789.patch")) (sha256 (base32 - "12k3lp938qdc9cqj29scg55f3bb8iav2fysd29w0s49bqmfa71wi")))) + "1qkxaigbfkx26xym5nzrgfrmn97cbnhn63v1saaha2nbi3xrdk3z")))) (build-system gnu-build-system) (outputs '("out" - "doc")) ;5 MiB of gtk-doc HTML + "doc")) ;9 MiB of gtk-doc HTML (arguments '(#:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") @@ -171,21 +152,27 @@ buffers.") (inputs `(("babl" ,babl) ("glib" ,glib) + ("glib-networking" ,glib-networking) ("libtiff" ,libtiff) ("libjpeg" ,libjpeg-8) ("atk" ,atk) + ("gexiv2" ,gexiv2) ("gtk+" ,gtk+-2) + ("libmypaint" ,libmypaint) + ("mypaint-brushes" ,mypaint-brushes) ("exif" ,libexif) ; optional, EXIF + XMP support ("lcms" ,lcms) ; optional, color management ("librsvg" ,librsvg) ; optional, SVG support ("poppler" ,poppler) ; optional, PDF support + ("poppler-data" ,poppler-data) ("python" ,python-2) ; optional, Python support ("python2-pygtk" ,python2-pygtk) ; optional, Python support ("gegl" ,gegl))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("glib:bin" ,glib "bin") ; for glib-compile-resources and gdbus-codegen + ("pkg-config" ,pkg-config) ("intltool" ,intltool))) - (home-page "http://gimp.org") + (home-page "https://www.gimp.org") (synopsis "GNU Image Manipulation Program") (description "GIMP is an application for image manipulation tasks such as photo @@ -210,7 +197,18 @@ that is extensible via a plugin system.") `(#:tests? #f ;no tests #:phases (modify-phases %standard-phases - (delete 'configure) + ;; FIXME: The gegl package only installs "gegl-0.4.pc", but + ;; "gimp-2.0.pc" requires "gegl-0.3.pc", so we just copy it. + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "tmppkgconfig") + (copy-file (string-append (assoc-ref inputs "gegl") + "/lib/pkgconfig/gegl-0.4.pc") + "tmppkgconfig/gegl-0.3.pc") + (setenv "PKG_CONFIG_PATH" + (string-append "tmppkgconfig:" + (or (getenv "PKG_CONFIG_PATH") ""))) + #t)) (add-after 'unpack 'set-prefix (lambda* (#:key outputs #:allow-other-keys) ;; gimptool-2.0 does not allow us to install to any target @@ -229,6 +227,7 @@ that is extensible via a plugin system.") ("gimp" ,gimp) ;; needed by gimp-2.0.pc ("gdk-pixbuf" ,gdk-pixbuf) + ("gegl" ,gegl) ("cairo" ,cairo) ("glib" ,glib) ;; needed by gimpui-2.0.pc @@ -243,3 +242,63 @@ an image, allowing you to work with the transformed image inside GIMP. You can draw or apply filters in fourier space and get the modified image with an inverse fourier transform.") (license license:gpl3+))) + +(define-public libmypaint + (package + (name "libmypaint") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mypaint/libmypaint/" + "releases/download/v" version "/libmypaint-" + version ".tar.xz")) + (sha256 + (base32 + "0wd6jk69vmhsq1mdw96v0fh7b28n3glkr5ca466zcq7agzaxj1va")))) + (build-system gnu-build-system) + (native-inputs + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + ;; As needed by 'libmypaint.pc'. + (propagated-inputs + `(("json-c" ,json-c) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("glib" ,glib))) + (synopsis "Artistic brushes library") + (description "Libmypaint, also called \"brushlib\", is a library for making +brushstrokes which is used by MyPaint and GIMP.") + (home-page "http://mypaint.org") + (license license:isc))) + +(define-public mypaint-brushes + (package + (name "mypaint-brushes") + (version "1.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Jehan/mypaint-brushes.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1iz89z6v2mp8j1lrf942k561s8311i3s34ap36wh4rybb2lq15m0")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'relax-dependency-version + (lambda _ + (substitute* "autogen.sh" + (("automake-1.13") "automake") + (("aclocal-1.13") "aclocal")) + #t))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake))) + (synopsis "Default brushes for MyPaint") + (description "This package provides the default set of brushes for +MyPaint.") + (home-page "https://github.com/Jehan/mypaint-brushes") + (license license:cc0))) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index f38ad83f95..1630f46bea 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -55,7 +55,8 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) - #:use-module (ice-9 match)) + #:use-module (ice-9 match) + #:use-module ((srfi srfi-1) #:hide (zip))) (define-public glu (package @@ -105,7 +106,7 @@ as ASCII text.") ("libxi" ,libxi) ("libxrandr" ,libxrandr) ("libxxf86vm" ,libxxf86vm) - ("inputproto" ,inputproto) + ("xorgproto" ,xorgproto) ("xinput" ,xinput))) (propagated-inputs ;; Headers from Mesa and GLU are needed. @@ -211,7 +212,8 @@ also known as DXTn or DXTC) for Mesa.") (package (inherit libva) (name "libva-without-mesa") - (inputs (alist-delete "mesa" (package-inputs libva))) + (inputs `(,@(fold alist-delete (package-inputs libva) + '("mesa" "wayland")))) (arguments (strip-keyword-arguments '(#:make-flags) @@ -239,19 +241,17 @@ also known as DXTn or DXTC) for Mesa.") (search-patches "mesa-skip-disk-cache-test.patch")))) (build-system gnu-build-system) (propagated-inputs - `(("glproto" ,glproto) - ;; The following are in the Requires.private field of gl.pc. + `(;; The following are in the Requires.private field of gl.pc. ("libdrm" ,libdrm) ("libvdpau" ,libvdpau) ("libx11" ,libx11) ("libxdamage" ,libxdamage) ("libxfixes" ,libxfixes) ("libxshmfence" ,libxshmfence) - ("libxxf86vm" ,libxxf86vm))) + ("libxxf86vm" ,libxxf86vm) + ("xorgproto" ,xorgproto))) (inputs `(("expat" ,expat) - ("dri2proto" ,dri2proto) - ("dri3proto" ,dri3proto) ("libelf" ,libelf) ;required for r600 when using llvm ("libva" ,(force libva-without-mesa)) ("libxml2" ,libxml2) @@ -263,7 +263,6 @@ also known as DXTn or DXTC) for Mesa.") (_ `())) ("makedepend" ,makedepend) - ("presentproto" ,presentproto) ("wayland" ,wayland) ("wayland-protocols" ,wayland-protocols))) (native-inputs @@ -409,10 +408,11 @@ from software emulation to complete hardware acceleration for modern GPUs.") (delete 'build) (delete 'check) (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (copy-recursively "include" (string-append - (assoc-ref outputs "out") - "/include"))))))))) + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "include" (string-append + (assoc-ref outputs "out") + "/include")) + #t))))))) ;;; The mesa-demos distribution contains non-free files, many files with no ;;; clear license information, and many demos that aren't useful for most @@ -449,7 +449,8 @@ from software emulation to complete hardware acceleration for modern GPUs.") (lambda (file) (copy-file file (string-append out "/bin/" (basename file)))) '("src/xdemos/glxdemo" "src/xdemos/glxgears" - "src/xdemos/glxinfo" "src/xdemos/glxheads")))))))) + "src/xdemos/glxinfo" "src/xdemos/glxheads")) + #t)))))) (home-page "http://mesa3d.org/") (synopsis "Utility tools for Mesa") (description @@ -471,9 +472,11 @@ glxgears, glxheads, and glxinfo.") "0r37fg2s1f0jrvwh6c8cz5x6v4wqmhq42qm15cs9qs349q5c6wn5")) (modules '((guix build utils))) (snippet - '(substitute* "config/Makefile.linux" - (("= cc") "= gcc") - (("/lib64") "/lib"))))) + '(begin + (substitute* "config/Makefile.linux" + (("= cc") "= gcc") + (("/lib64") "/lib")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 30a22d7d59..7ea22fe88f 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -2,10 +2,10 @@ ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov -;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Lukas Gradl -;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017, 2018 Ricardo Wurmus ;;; Copyright © 2017 Petter ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Alex Vong @@ -31,10 +31,12 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages enlightenment) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) #:use-module (gnu packages gperf) @@ -78,7 +80,7 @@ (define dbus (package (name "dbus") - (version "1.12.2") + (version "1.12.6") (source (origin (method url-fetch) (uri (string-append @@ -86,7 +88,7 @@ version ".tar.gz")) (sha256 (base32 - "121xm3cy48vbv6nv522lfkk4zyiqc1g6v4lb3344gc3h2w4vaar7")) + "05picaq8j60wlwyi84qvw5liw3nd0cws9va3krnc3pms0wm906v2")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments @@ -112,10 +114,10 @@ (replace 'install (lambda _ ;; Don't try to create /var and /etc. - (system* "make" - "localstatedir=/tmp/dummy" - "sysconfdir=/tmp/dummy" - "install")))))) + (invoke "make" + "localstatedir=/tmp/dummy" + "sysconfdir=/tmp/dummy" + "install")))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -148,7 +150,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.54.2") + (version "2.56.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -156,9 +158,8 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "0v4ffl172kbqgxrhgxyafhpw36bq3iklb2zjqyl6jcfkmb2yb2dv")) - (patches (search-patches "glib-respect-datadir.patch" - "glib-tests-timer.patch")))) + "1iqgi90fmpl3l23jm2iv44qp7hqsxvnv7978s18933bvx4bnxvzc")) + (patches (search-patches "glib-tests-timer.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything "bin" ; glib-mkenums, gtester, etc.; depends on Python @@ -184,6 +185,9 @@ shared NFS home directories.") (modify-phases %standard-phases (add-before 'build 'pre-build (lambda* (#:key inputs outputs #:allow-other-keys) + ;; For building deterministic pyc files + (setenv "DETERMINISTIC_BUILD" "1") + ;; For tests/gdatetime.c. (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") @@ -197,7 +201,8 @@ shared NFS home directories.") "glib/tests/utils.c" "tests/spawn-test.c") (("/bin/sh") - (string-append (assoc-ref inputs "bash") "/bin/sh"))))) + (string-append (assoc-ref inputs "bash") "/bin/sh"))) + #t)) (add-before 'check 'disable-failing-tests (lambda _ (let ((disable @@ -235,6 +240,7 @@ shared NFS home directories.") ("gio/tests/contenttype.c" (;; XXX: requires shared-mime-info. "/contenttype/guess" + "/contenttype/guess_svg_from_data" "/contenttype/subtype" "/contenttype/list" "/contenttype/icon" @@ -260,7 +266,8 @@ shared NFS home directories.") ("gio/tests/gdbus-unix-addresses.c" (;; Requires /etc/machine-id. "/gdbus/x11-autolaunch"))))) - (and-map (lambda (x) (apply disable x)) failing-tests))))) + (for-each (lambda (x) (apply disable x)) failing-tests) + #t)))) ;; Note: `--docdir' and `--htmldir' are not honored, so work around it. #:configure-flags (list (string-append "--with-html-dir=" @@ -296,18 +303,20 @@ dynamic loading, and an object system.") (define gobject-introspection (package (name "gobject-introspection") - (version "1.54.1") + (version "1.56.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "0zl7pfkzkm07733391b4f3cwjbnvb1nwvpmajf5bajh6bxgfv3dq")) + (base32 "1y50pbn5qqbcv2h9rkz96wvv5jls2gma9bkqjq6wapmaszx5jw0d")) (modules '((guix build utils))) (snippet - '(substitute* "tools/g-ir-tool-template.in" - (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@"))) + '(begin + (substitute* "tools/g-ir-tool-template.in" + (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@")) + #t)) (patches (search-patches "gobject-introspection-cc.patch" "gobject-introspection-girepository.patch" @@ -331,7 +340,10 @@ dynamic loading, and an object system.") (files '("lib/girepository-1.0"))))) (search-paths native-search-paths) (arguments - `(;; The patch 'gobject-introspection-absolute-shlib-path.patch' causes + `(;; The build system has at least one race condition involving Gio-2.0.gir + ;; which causes intermittent failures, as of 1.56.0. + #:parallel-build? #f + ;; The patch 'gobject-introspection-absolute-shlib-path.patch' causes ;; some tests to fail. #:tests? #f)) (home-page "https://wiki.gnome.org/GObjectIntrospection") @@ -369,13 +381,14 @@ bindings to call into the C library.") ("perl-xml-parser" ,perl-xml-parser) ("perl" ,perl))) (arguments - `(#:phases (alist-cons-after - 'unpack 'patch-file-references - (lambda* (#:key inputs #:allow-other-keys) - (let ((file (assoc-ref inputs "file"))) - (substitute* "intltool-update.in" - (("`file") (string-append "`" file "/bin/file"))))) - %standard-phases))) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-file-references + (lambda* (#:key inputs #:allow-other-keys) + (let ((file (assoc-ref inputs "file"))) + (substitute* "intltool-update.in" + (("`file") (string-append "`" file "/bin/file"))) + #t)))))) (home-page "https://launchpad.net/intltool/+download") (synopsis "Tools to centralise translations of different file formats") (description @@ -418,7 +431,8 @@ The intltool collection can be used to do these things: (let ((prog (string-append (assoc-ref outputs "out") "/bin/itstool"))) (wrap-program prog - `("PYTHONPATH" = (,(getenv "PYTHONPATH")))))))))) + `("PYTHONPATH" = (,(getenv "PYTHONPATH")))) + #t)))))) (home-page "http://www.itstool.org") (synopsis "Tool to translate XML documents with PO files") (description @@ -584,7 +598,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.24.1") + (version "3.28.2") (source (origin (method url-fetch) @@ -593,14 +607,30 @@ useful for C++.") "/pygobject-" version ".tar.xz")) (sha256 (base32 - "1zdzznrj2s1gsrv2z4r0n88fzba8zjc1n2r313xi77lhl1daja56")))) + "1jpjws4v17wv99lbhks0g0152w0f70mnwpdn8ibzzfgw2kykli5c")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-broken-tests + (lambda _ + ;; FIXME: this test freezes and times out. + (delete-file "tests/test_mainloop.py") + ;; FIXME: this test fails with this kind of error: + ;; AssertionError: != ;;; Copyright © 2015, 2017 Andy Wingo ;;; Copyright © 2015 David Hashe -;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver ;;; Copyright © 2015 David Thompson -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017, 2018 Rene Saavedra ;;; Copyright © 2016 Jochem Raat ;;; Copyright © 2016, 2017 Kei Kebreau @@ -29,6 +29,7 @@ ;;; Copyright © 2017 Mohammed Sadiq ;;; Copyright © 2017 Brendan Tildesley ;;; Copyright © 2017, 2018 Rutger Helling +;;; Copyright © 2018 Jovany Leandro G.C ;;; ;;; This file is part of GNU Guix. ;;; @@ -79,6 +80,7 @@ #:use-module (gnu packages enchant) #:use-module (gnu packages fontutils) #:use-module (gnu packages game-development) + #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) @@ -146,6 +148,7 @@ #:use-module (gnu packages virtualization) #:use-module (gnu packages vpn) #:use-module (gnu packages xorg) + #:use-module (ice-9 match) #:use-module (srfi srfi-1)) (define-public brasero @@ -533,7 +536,7 @@ and keep up to date translations of documentation.") (define-public gnome-disk-utility (package (name "gnome-disk-utility") - (version "3.28.1") + (version "3.28.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -541,7 +544,7 @@ and keep up to date translations of documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "09dmknfas8iifv6k5jb4a9ag57s8awrn0f26fd1qlg0mbfjlnfd6")))) + "11ajz4cbsdns81kihd6242b6pwxbw8bkr9qqkf4qnb4kp363a38m")))) (build-system meson-build-system) (native-inputs `(("glib:bin" ,glib "bin") @@ -1067,6 +1070,16 @@ API.") (patches (search-patches "gtkglext-disable-disable-deprecated.patch")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Fix a collision between a local variable and a definition from + ;; glibc's string.h. + (add-after 'unpack 'fix-collision + (lambda _ + (substitute* "gdk/gdkglshapes.c" + ((" index") " triangle_index")) + #t))))) (inputs `(("gtk+" ,gtk+-2) ("mesa" ,mesa) ("glu" ,glu) @@ -2062,7 +2075,7 @@ libraries written in C.") (define-public vte (package (name "vte") - (version "0.52.1") + (version "0.52.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2070,7 +2083,7 @@ libraries written in C.") name "-" version ".tar.xz")) (sha256 (base32 - "1lva70inb5y8p42rg95fb88z2ybwcz0lybla3ixbgp2sj0s4rzdh")))) + "1br6kg0wzf1wmww1hadihhcpqbamalqmbppfdzjvzk1ayp75f9hg")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -2116,7 +2129,7 @@ editors, IDEs, etc.") (arguments `(#:configure-flags '("CXXFLAGS=-Wformat=0") #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (setenv "NOCONFIGURE" "true") (zero? (system* "sh" "autogen.sh"))))))) @@ -2455,7 +2468,7 @@ libxml to ease remote use of the RESTful API.") (define-public libsoup (package (name "libsoup") - (version "2.62.1") + (version "2.62.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -2463,7 +2476,7 @@ libxml to ease remote use of the RESTful API.") name "-" version ".tar.xz")) (sha256 (base32 - "1mw3b3j4f4ln7hl03jd296rx78dy35hzlq005a21r6qg5sndsdzh")))) + "1dkrz1iwsswscayfmjxqv2q00b87snlq9nxdccn5vck0vbinylwy")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -2544,12 +2557,11 @@ libxml to ease remote use of the RESTful API.") #t)) (replace 'install (lambda _ - (zero? - (system* "make" - ;; Install vala bindings into $out. - (string-append "vapidir=" %output - "/share/vala/vapi") - "install"))))))) + (invoke "make" + ;; Install vala bindings into $out. + (string-append "vapidir=" %output + "/share/vala/vapi") + "install")))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums ("gobject-introspection" ,gobject-introspection) @@ -2731,7 +2743,7 @@ more fun.") (define-public gnome-terminal (package (name "gnome-terminal") - (version "3.28.1") + (version "3.28.2") (source (origin (method url-fetch) @@ -2740,7 +2752,7 @@ more fun.") name "-" version ".tar.xz")) (sha256 (base32 - "1hqwh12hiy73mazqgvyrq8jk4c669x2fb4nh8mwby3qbk8ca19pp")))) + "0ybjansg6lr279191w8z8r45gy4rxwzw1ajm98cgkv0fk2jdr0x2")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -2870,7 +2882,8 @@ output devices.") (add-before 'configure 'patch-/bin/true (lambda _ (substitute* "configure" - (("/bin/true") (which "true")))))))) + (("/bin/true") (which "true"))) + #t))))) (native-inputs `(("pkg-config" ,pkg-config) ("gobject-introspection" ,gobject-introspection) @@ -3556,7 +3569,8 @@ as possible!") (("@INTROSPECTION_GIRDIR@") (string-append out "/share/gir-1.0/")) (("@INTROSPECTION_TYPELIBDIR@") - (string-append out "/lib/girepository-1.0/"))))))))) + (string-append out "/lib/girepository-1.0/"))) + #t)))))) (native-search-paths (list (search-path-specification (variable "GRL_PLUGIN_PATH") @@ -3657,7 +3671,7 @@ for application developers.") ("clutter" ,clutter) ("clutter-gtk" ,clutter-gtk) ("clutter-gst" ,clutter-gst) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("libxxf86vm" ,libxxf86vm) ("libxtst" ,libxtst) ("libxrandr" ,libxrandr) @@ -3736,6 +3750,17 @@ which can read a large number of file formats.") (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) + (patches + (list + ;; fmradio: Fix build with GStreamer master + (origin + (method url-fetch) + (uri (string-append + "https://gitlab.gnome.org/GNOME/rhythmbox/commit/" + "b182c6b9e1d09e601bac0b703cc5f8b159ebbc3a.patch")) + (sha256 + (base32 + "17j45vyyr071ka3nckj2gycgyyv1j08fyrxw89jfdq2442nzrsiy"))))) (sha256 (base32 "0hzcns8gf5yb0rm4ss8jd8qzarcaplp5cylk6plwilsqfvxj4xn2")))) @@ -3873,7 +3898,7 @@ supports image conversion, rotation, and slideshows.") ;; 'XDG_DATA_DIRS' appropriately set. (package (name "eog-plugins") - (version "3.26.1") + (version "3.26.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3881,7 +3906,7 @@ supports image conversion, rotation, and slideshows.") name "-" version ".tar.xz")) (sha256 (base32 - "0v45f2m3b60ygkwpq6jrl49nwrivw6qy0ciibpv821qrm73hsgd7")))) + "1w8zw7kwfvlwlyb1k1inqdvbwnzq959sqawlmnwfb8ykn98hbk8y")))) (build-system gnu-build-system) (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins") (synopsis "Extensions for the Eye of GNOME image viewer") @@ -4166,7 +4191,7 @@ a secret password store, an adblocker, and a modern UI.") (define-public epiphany (package (name "epiphany") - (version "3.28.1") + (version "3.28.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4174,7 +4199,7 @@ a secret password store, an adblocker, and a modern UI.") name "-" version ".tar.xz")) (sha256 (base32 - "0zvxrwlswxadq4zbr4f73ms141d08j0lhi6rzmj83j1s3gan88md")))) + "0ba0qqsbg3cv1k1pcj971y7l8kqib5l7kbr743x9a7hbmkqfk95s")))) (build-system meson-build-system) (arguments @@ -4615,6 +4640,14 @@ configuration program to choose applications starting on login.") (arguments '(#:phases (modify-phases %standard-phases + (add-after 'set-paths 'work-around-gcc-7-include-path-issue + ;; FIXME: Work around a problem with gcc-7 includes (see + ;; ). Note that we use gcc-7 + ;; to work around an internal compiler error in gcc-5. + (lambda _ + (unsetenv "C_INCLUDE_PATH") + (unsetenv "CPLUS_INCLUDE_PATH") + #t)) (add-before 'check 'pre-check (lambda _ @@ -4632,7 +4665,11 @@ configuration program to choose applications starting on login.") ((".*expect\\(datestr\\).*") "")) #t))))) (native-inputs - `(("glib:bin" ,glib "bin") ; for glib-compile-resources + `(("gcc" ,gcc-7) ; FIXME: Work around an internal compiler error in + ; gcc-5. Try removing this when our default compiler is + ; no longer gcc-5.5.0, and also remove the + ; 'work-around-gcc-7-include-path-issue' phase above. + ("glib:bin" ,glib "bin") ; for glib-compile-resources ("pkg-config" ,pkg-config) ("xmllint" ,libxml2) ;; For testing @@ -4657,7 +4694,7 @@ javascript engine and the GObject introspection framework.") (define-public gedit (package (name "gedit") - (version "3.28.0") + (version "3.28.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4665,7 +4702,7 @@ javascript engine and the GObject introspection framework.") name "-" version ".tar.xz")) (sha256 (base32 - "0pyam0zi44xq776x20ycqnvmf86l98jns8ldv4m81gnp9wnhmycv")))) + "0791r07d3ixmmfk68lvhp3d5i4vnlrnx10csxwgpfqyfb04vwx7i")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -4885,7 +4922,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.26.6") + (version "3.28.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4893,7 +4930,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") name "-" version ".tar.xz")) (sha256 (base32 - "1v0hwlrlm23bz5dmamdavm771f4gs64fyq82argrc0nwgn2a2fp4")))) + "12b9lfgwd57rzn9394xrbvl9ym5aqldpz9v7c9a421dsv8dgq13b")))) (build-system cmake-build-system) (arguments '(;; XXX FIXME: 11/85 tests are failing. @@ -4911,8 +4948,12 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication "-DENABLE_VALA_BINDINGS=ON" ;; FIXME: Building against ICU 60 requires C++11 or higher. Remove - ;; this when our default compiler is >= GCC6. - "-DCMAKE_CXX_FLAGS=-std=gnu++11" + ;; "-std=gnu++11" when our default compiler is >= GCC6. + ;; FIXME: Temporarily use "-DU_USING_ICU_NAMESPACE=1" until + ;; evolution-data-server has been updated to qualify ICU types + ;; explicitly, as required by ICU 61 and later. See: + ;; + "-DCMAKE_CXX_FLAGS=-std=gnu++11 -DU_USING_ICU_NAMESPACE=1" (string-append "-DCMAKE_INSTALL_RPATH=" lib ";" (string-append lib "/evolution-data-server;") (string-join runpaths ";")) @@ -4951,9 +4992,11 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") `(("bdb" ,bdb) ("gcr" ,gcr) ("gnome-online-accounts" ,gnome-online-accounts) + ("json-glib" ,json-glib) ("libgweather" ,libgweather) ("mit-krb5" ,mit-krb5) - ("openldap" ,openldap))) + ("openldap" ,openldap) + ("webkitgtk" ,webkitgtk))) (synopsis "Store address books and calendars") (home-page "https://wiki.gnome.org/Apps/Evolution") (description @@ -5050,7 +5093,8 @@ users.") (substitute* "src/nm-session-monitor.c" (("systemd") "elogind")) (substitute* "./src/nm-logging.c" - (("systemd") "elogind")))))) + (("systemd") "elogind")) + #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 8 MiB of gtk-doc HTML @@ -5807,7 +5851,7 @@ files.") (define-public baobab (package (name "baobab") - (version "3.26.1") + (version "3.28.0") (source (origin (method url-fetch) (uri (string-append @@ -5816,11 +5860,15 @@ files.") name "-" version ".tar.xz")) (sha256 (base32 - "0zkqxyqyxd6j270jf5hbcrb3yh4k31ddh40v4cjhgngm8mcsnnbs")))) - (build-system glib-or-gtk-build-system) + "0qsx7vx5c3n4yxlxbr11sppw7qwcv9z3g45b5xb9y7wxw5lv42sk")))) + (build-system meson-build-system) + (arguments + '(#:glib-or-gtk? #t)) (native-inputs `(("intltool" ,intltool) ("pkg-config" ,pkg-config) + ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database + ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache ("itstool" ,itstool) ("xmllint" ,libxml2) ("glib" ,glib "bin") @@ -5974,7 +6022,7 @@ associations for GNOME.") (version (package-version gnome-shell)) (source #f) (build-system trivial-build-system) - (arguments '(#:builder (mkdir %output))) + (arguments '(#:builder (begin (mkdir %output) #t))) (propagated-inputs ;; TODO: Add more packages according to: ;; . @@ -6048,7 +6096,7 @@ documents and diagrams, playing media, scanning, and much more.") (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; The build system cleverly detects that we're not building from ;; a release tarball and turns on -Werror for GCC. @@ -6399,9 +6447,9 @@ functionality and behavior.") (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) + ;; autogen.sh calls configure at the end of the script. + (replace 'bootstrap + (lambda _ (invoke "autoreconf" "-vfi")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -6438,10 +6486,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (substitute* '("Makefile.am") (("\\$\\(DESTDIR\\)/usr/share") "$(datadir)")) - #t)) - (add-after 'patch-makefile.am 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) + #t))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) @@ -6490,12 +6535,6 @@ simple and consistent.") (base32 "1ya1cqvv8q847c0rpcg6apzky87q3h04y8jz5nmi52qk6kg8si0b")))) (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) @@ -7199,3 +7238,86 @@ into audio files that a personal computer or digital audio player can play. It supports ripping to any audio codec supported by a GStreamer plugin, such as mp3, Ogg Vorbis and FLAC") (license license:gpl2+))) + +(define-public workrave + (let ((commit "v1_10_20")) + (package + (name "workrave") + (version (string-map (match-lambda + (#\_ #\.) + (chr chr)) + (string-drop commit 1))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rcaelers/workrave.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "099a87zkrkmsgfz9isrfm89dh545x52891jh6qxmn19h6wwsi941")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (invoke "sh" "autogen.sh") + #t))))) + (propagated-inputs `(("glib" ,glib) + ("gtk+" ,gtk+) + ("gdk-pixbuf" ,gdk-pixbuf) + ("gtkmm" ,gtkmm) + ("glibmm" ,glibmm) + ("libx11" ,libx11) + ("libxtst" ,libxtst) + ("dconf" ,dconf) + ("libice" ,libice))) + (inputs `(("libsm", libsm) + ("python-cheetah" ,python2-cheetah))) + (native-inputs `(("glib" ,glib "bin") + ("pkg-config" ,pkg-config) + ("gettext" ,gnu-gettext) + ("autoconf" ,autoconf) + ("autoconf-archive" , autoconf-archive) + ("automake" ,automake) + ("libtool" ,libtool) + ("intltool" ,intltool) + ("libxscrnsaver" ,libxscrnsaver) + ("gobject-introspection" ,gobject-introspection) + ("python2" ,python-2))) + (synopsis "Tool to help prevent repetitive strain injury (RSI)") + (description "Workrave is a program that assists in the recovery and +prevention of repetitive strain injury (RSI). The program frequently alerts +you to take micro-pauses, rest breaks and restricts you to your daily limit") + (home-page "http://www.workrave.org") + (license license:gpl3+)))) + +(define-public ghex + (package + (name "ghex") + (version "3.18.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1lq8920ad2chi9ibmyq0x9hg9yk63b0kdbzid03w42cwdzw50x66")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gnome-common" ,gnome-common) + ("which" ,which) + ("intltool" ,intltool) + ("yelp-tools" ,yelp-tools) + ("desktop-file-utils" ,desktop-file-utils))) ;for 'desktop-file-validate' + (inputs + `(("atk" ,atk) + ("gtk" ,gtk+))) + (synopsis "GNOME hexadecimal editor") + (description "The GHex program can view and edit files in two ways: +hexadecimal or ASCII. It is useful for editing binary files in general.") + (home-page "https://wiki.gnome.org/Apps/Ghex") + (license license:gpl2))) diff --git a/gnu/packages/gnu-doc.scm b/gnu/packages/gnu-doc.scm index a1890a6cc6..b64d8ac454 100644 --- a/gnu/packages/gnu-doc.scm +++ b/gnu/packages/gnu-doc.scm @@ -85,12 +85,12 @@ list.") (setenv "PATH" (string-append gzip "/bin" ":" texinfo "/bin")) (mkdir-p info-dir) - (system* "makeinfo" "--output" info-dir - (string-append source "/maintain.texi")) - (system* "makeinfo" "--output" info-dir - (string-append source "/standards.texi")) - (system* "gzip" (string-append info-dir "/maintain.info")) - (system* "gzip" (string-append info-dir "/standards.info")))))) + (invoke "makeinfo" "--output" info-dir + (string-append source "/maintain.texi")) + (invoke "makeinfo" "--output" info-dir + (string-append source "/standards.texi")) + (invoke "gzip" (string-append info-dir "/maintain.info")) + (invoke "gzip" (string-append info-dir "/standards.info")))))) (home-page "https://www.gnu.org/prep/standards/") (synopsis "GNU coding standards and maintainer information") (description "The GNU Coding Standards were written by Richard Stallman diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 25200e3f99..fc8a9b6bfc 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2018 Ricardo Wurmus ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Chris Marusich @@ -25,9 +25,12 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) - #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages boost) + #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages gnome) @@ -47,7 +50,7 @@ (define-public gnucash (package (name "gnucash") - (version "2.6.19") + (version "3.0") (source (origin (method url-fetch) @@ -55,34 +58,47 @@ version "/gnucash-" version ".tar.bz2")) (sha256 (base32 - "1lbz7ygqlxbndxir5ay59bmmrqv9qvc6pgb5jwgdbhkf4ikr7f2h")) - (patches (search-patches "gnucash-price-quotes-perl.patch")))) - (build-system glib-or-gtk-build-system) + "1ffvf1rryg5yin86fnf1zvy6hnpwzrjarbdfmjmrf2mqlmv48xac")) + + ;; TODO: rebase this patch +; (patches (search-patches "gnucash-price-quotes-perl.patch")) + )) + (build-system cmake-build-system) (inputs - `(("guile" ,guile-2.0) + `(("guile" ,guile-2.2) + ("boost" ,boost) ("icu4c" ,icu4c) ("glib" ,glib) - ("gtk" ,gtk+-2) - ("goffice" ,goffice-0.8) + ("gtk" ,gtk+) ("libgnomecanvas" ,libgnomecanvas) ("libxml2" ,libxml2) ("libxslt" ,libxslt) - ("webkitgtk" ,webkitgtk/gtk+-2) + ("webkitgtk" ,webkitgtk) ("aqbanking" ,aqbanking) ("perl-date-manip" ,perl-date-manip) ("perl-finance-quote" ,perl-finance-quote))) (native-inputs `(("glib" ,glib "bin") ; glib-compile-schemas, etc. ("intltool" ,intltool) + ("googlemock" ,(package-source googletest)) + ("googletest" ,googletest) ("gnucash-docs" ,gnucash-docs) ("pkg-config" ,pkg-config))) (outputs '("out" "doc")) (arguments - `(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff - #:configure-flags '("--disable-dbi" - "--enable-aqbanking") + `(#:test-target "check" + #:configure-flags + (list "-DWITH_OFX=OFF" ; libofx is not available yet + "-DWITH_SQL=OFF") ; without dbi.h #:phases (modify-phases %standard-phases + (add-after 'unpack 'unpack-gmock + (lambda* (#:key inputs #:allow-other-keys) + (mkdir "gmock") + (invoke "tar" "xf" (assoc-ref inputs "googlemock") + "-C" "gmock" "--strip-components=1") + (setenv "GMOCK_ROOT" (string-append (getcwd) "/gmock/googlemock")) + #t)) ;; There are about 100 megabytes of documentation. (add-after 'install 'install-docs @@ -142,7 +158,7 @@ financial calculations or scheduled transactions.") version "/gnucash-docs-" version ".tar.gz")) (sha256 (base32 - "1ix99d5c1ppamn5ajamjfxpx6l25bv81nkg777rp1sl0glaib116")))) + "0yq65s3z3dwdwdf2nq1d1w9ckdjdyjwkfpmvhzyib54b66q65xh5")))) (build-system gnu-build-system) ;; These are native-inputs because they are only required for building the ;; documentation. @@ -168,22 +184,23 @@ to be read using the GNOME Yelp program.") (define-public gwenhywfar (package (name "gwenhywfar") - (version "4.15.3") + (version "4.20.0") (source (origin (method url-fetch) - (uri (string-append "http://www.aquamaniac.de/sites/download/download.php?" - "package=01&release=201&file=01")) + (uri (string-append "https://www.aquamaniac.de/sites/download/" + "download.php?package=01&release=208&file=02&" + "dummy=gwenhywfar-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0fp67s932x66xfljb26zbrn8ambbc5y5c3hllr6l284nr63qf3ka")))) + "1c0g3f8jk6j693774ifslx2ds4ksabgbbalhhm9gk20kpamxm22s")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--disable-network-checks" - ;; Both GTK+2 and QT4 are supported. - "--with-guis=gtk2" + ;; GTK+3, GTK+2 and QT4 are supported. + "--with-guis=gtk3" (string-append "--with-openssl-includes=" (assoc-ref %build-inputs "openssl") "/include") (string-append "--with-openssl-libs=" @@ -192,7 +209,7 @@ to be read using the GNOME Yelp program.") `(("libgcrypt" ,libgcrypt) ("gnutls" ,gnutls) ("openssl" ,openssl) - ("gtk+" ,gtk+-2))) + ("gtk+" ,gtk+))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://www.aquamaniac.de/sites/aqbanking/index.php") @@ -207,16 +224,17 @@ applications and libraries. It is used by AqBanking.") (define-public aqbanking (package (name "aqbanking") - (version "5.6.12") + (version "5.7.8") (source (origin (method url-fetch) - (uri (string-append "http://www.aquamaniac.de/sites/download/download.php?" - "package=03&release=208&file=01")) + (uri (string-append "https://www.aquamaniac.de/sites/download/" + "download.php?package=03&release=217&file=02&" + "dummy=aqbanking-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "08jbwmiv6f3v8iqdr44x4szna496fqcjfi6mlx04cnbx91m70lh6")))) + "0s67mysskbiw1h1p0np4ph4351r7wq3nc873vylam7lsqi66xy0n")))) (build-system gnu-build-system) (arguments `(;; Parallel building fails because aqhbci is required before it's diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 880fb9f09e..7335742e20 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -186,16 +186,13 @@ authentication and support for SSL3 and TLS.") (define-public gnurl (package (name "gnurl") - (version "7.59.0") + (version "7.60.0") (source (origin (method url-fetch) - (uri (list (string-append "mirror://gnu/gnunet/" name "-" version ".tar.xz") - ;; TODO: Remove once gnurl-7.59.0 release has synced to ftp.gnu.org - (string-append "https://ftp.n0.is/pub/releases/gnurl/" - name "-" version ".tar.xz"))) + (uri (string-append "mirror://gnu/gnunet/" name "-" version ".tar.Z")) (sha256 (base32 - "0fdwqxs4crzj1nbq3lz0xbqjiiqpq16vpll09gryyq4c1y6lbyib")))) + "0klf3h339dznbm903474mjjysrarz09s1wiypnbai3xnfjamha99")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.5 MiB of man3 pages @@ -324,11 +321,6 @@ kinds of basic applications for the foundation of a GNU internet.") (base32 "0k6mn28isjlxrnvbnblab3nh2xqx1b7san8k98kc35ap9lq0iz8w")))) (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "autoreconf" "-vfi")))))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf-wrapper) ("automake" ,automake))) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index f397482ab0..42b54c1ea0 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès -;;; Copyright © 2013, 2015 Andreas Enge +;;; Copyright © 2013, 2015, 2018 Andreas Enge ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Paul van der Walt @@ -14,6 +14,7 @@ ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Petter ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,7 +70,7 @@ (define-public libgpg-error (package (name "libgpg-error") - (version "1.27") + (version "1.28") (source (origin (method url-fetch) @@ -77,7 +78,8 @@ version ".tar.bz2")) (sha256 (base32 - "1li95ni122fzinzlmxbln63nmgij63irxfvi52ws4zfbzv3am4sg")))) + "0jfsfnh9bxlxiwxws60yah4ybjw2hshmvqp31pri4m4h8ivrbnry")) + (patches (search-patches "libgpg-error-aarch64-logging-fix.patch")))) (build-system gnu-build-system) (home-page "https://gnupg.org") (synopsis "Library of error values for GnuPG components") @@ -90,17 +92,31 @@ Daemon and possibly more in the future.") (properties '((ftp-server . "ftp.gnupg.org") (ftp-directory . "/gcrypt/libgpg-error"))))) +;; Some packages (e.g. GPGME) require a newer libgpg-error to deal with +;; error codes from recent GnuPG. Remove this in the next rebuild cycle. +(define-public libgpg-error-1.31 + (package + (inherit libgpg-error) + (version "1.31") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-" + version ".tar.bz2")) + (sha256 + (base32 + "1vx4nw6rxh2biy3h8n96fyr86q29h8gjl6837437i51jr4isil20")))))) + (define-public libgcrypt (package (name "libgcrypt") - (version "1.8.1") + (version "1.8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" version ".tar.bz2")) (sha256 (base32 - "1cvqd9jk5qshbh48yh3ixw4zyr4n5k50r3475rrh20xfn7w7aa3s")))) + "01sca9m8hm6b5v8hmqsfdjhyz013869p1f0fxw9ln52qfnp4q1n8")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error-host" ,libgpg-error))) @@ -215,14 +231,14 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.2.6") + (version "2.2.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "110rf476l3cgn52gh9ia5y0y06y2ialq9dqc12jkhnfhl9gqqkg6")))) + "1k8dnnfs9888yp713l7kg2jg110lw47s4krx0njna6fjrsw4qyvp")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -338,6 +354,7 @@ libskba (working with X.509 certificates and CMS data).") (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) + (patches (search-patches "gnupg-1.4-CVE-2018-12020.patch")) (sha256 (base32 "1d1hz4szh1kvwhsw7w2zxa6q5ndrk3qy6hj289l1b8k3xi5s554m")))) @@ -354,12 +371,13 @@ libskba (working with X.509 certificates and CMS data).") (add-after 'unpack 'patch-check-sh (lambda _ (substitute* "checks/Makefile.in" - (("/bin/sh") (which "sh")))))))))) + (("/bin/sh") (which "sh"))) + #t))))))) (define-public gpgme (package (name "gpgme") - (version "1.10.0") + (version "1.11.1") (source (origin (method url-fetch) @@ -367,13 +385,13 @@ libskba (working with X.509 certificates and CMS data).") ".tar.bz2")) (sha256 (base32 - "14q619lxbk64vz7lih5gjb928qm28jrnn1h3yhsrrff3jw8yv3qs")))) + "0vxx5xaag3rhp4g2arp5qm77gvz4kj0m3hnpvhkdvqyjfhbi26rd")))) (build-system gnu-build-system) (native-inputs `(("gnupg" ,gnupg))) (propagated-inputs ;; Needs to be propagated because gpgme.h includes gpg-error.h. - `(("libgpg-error" ,libgpg-error))) + `(("libgpg-error" ,libgpg-error-1.31))) (inputs `(("libassuan" ,libassuan))) (home-page "https://www.gnupg.org/related_software/gpgme/") @@ -575,10 +593,12 @@ signing, decryption, verification, and key-listing parsing.") version "/pius-" version ".tar.bz2")) (sha256 (base32 - "1893hzpx3zv724drqv48csrn0cm98xw4ymb1zmhs2jvjj1778zfj")))) + "1893hzpx3zv724drqv48csrn0cm98xw4ymb1zmhs2jvjj1778zfj")) + (patches (search-patches "pius.patch")))) (build-system python-build-system) (inputs `(("perl" ,perl) ;for 'pius-party-worksheet' - ("gpg" ,gnupg))) + ("gpg" ,gnupg) + ("python-six" ,python2-six))) (arguments `(#:tests? #f #:python ,python-2 ;uses the Python 2 'print' syntax @@ -606,84 +626,87 @@ PGP keysigning parties.") (home-page "https://www.phildev.net/pius/index.shtml"))) (define-public signing-party - (package - (name "signing-party") - (version "2.6") - (source (origin - (method url-fetch) - (uri (string-append "mirror://debian/pool/main/s/signing-party/" - "signing-party_" version ".orig.tar.gz")) - (sha256 (base32 - "1n5bpcfpl9vg1xp6r1jhbyahrgdyxp05b5pria1rh4m0qnv8sifr")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf-wrapper) - ("automake" ,automake))) - (inputs `(("perl" ,perl) - ("perl-text-template" ,perl-text-template) - ("perl-mime-tools" ,perl-mime-tools) - ("perl-gnupg-interface" ,perl-gnupg-interface) - ("perl-net-idn-encode" ,perl-net-idn-encode) - ("libmd" ,libmd))) - (arguments - `(#:tests? #f - #:phases - (modify-phases %standard-phases - (add-before 'configure 'change-directory - (lambda _ - ;; The build system in the unpack phase changes to a less useful - ;; subdirectory, so move up one level - (chdir (dirname (getcwd))))) - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "keyanalyze/Makefile" - (("LDLIBS") (string-append "CC=" (which "gcc") "\nLDLIBS"))) - (substitute* "keyanalyze/Makefile" - (("\\./configure") (string-append "./configure --prefix=" out))) - (substitute* "gpgwrap/src/Makefile" - (("\\} clean") - (string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap " - out "/bin/gpgwrap\n"))) - (substitute* '("gpgsigs/Makefile" "keyanalyze/Makefile" - "keylookup/Makefile" "sig2dot/Makefile" - "springgraph/Makefile") - (("/usr") out)) - (setenv "CONFIG_SHELL" (which "sh"))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys #:rest args) - (let ((out (assoc-ref outputs "out")) - (install (assoc-ref %standard-phases 'install))) - (apply install args) - (for-each - (lambda (dir file) - (copy-file (string-append dir "/" file) - (string-append out "/bin/" file))) - '("caff" "caff" "caff" "gpgdir" "gpg-key2ps" - "gpglist" "gpg-mailkeys" "gpgparticipants") - '("caff" "pgp-clean" "pgp-fixkey" "gpgdir" "gpg-key2ps" - "gpglist" "gpg-mailkeys" "gpgparticipants")) - (for-each - (lambda (dir file) - (copy-file (string-append dir "/" file) - (string-append out "/share/man/man1/" file))) - '("caff" "caff" "caff" "gpgdir" - "gpg-key2ps" "gpglist" "gpg-mailkeys" - "gpgparticipants" "gpgsigs" "gpgwrap/doc" - "keyanalyze" "keyanalyze/pgpring" "keyanalyze") - '("caff.1" "pgp-clean.1" "pgp-fixkey.1" "gpgdir.1" - "gpg-key2ps.1" "gpglist.1" "gpg-mailkeys.1" - "gpgparticipants.1" "gpgsigs.1" "gpgwrap.1" - "process_keys.1" "pgpring.1" "keyanalyze.1"))))) - (add-after 'install 'wrap-programs - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (wrap-program - (string-append out "/bin/caff") - `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))))))) - (synopsis "Collection of scripts for simplifying gnupg key signing") - (description - "Signing-party is a collection for all kinds of PGP/GnuPG related things, + ;; Upstream moved from alioth.debian.org to salsa.debian.org but the + ;; automatic svn import did not preserve tags apparently, so there's no real + ;; version number. + (let ((commit "d6f2296325605ee96ddf9f5b156e5e3f667a6df3") + (revision "0")) + (package + (name "signing-party") + (version (git-version "2.6" revision commit)) + (home-page "https://salsa.debian.org/stappers/pgp-tools") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (sha256 + (base32 + "00f7zasbwcbjzd92br2j10pyjxv0aw1qb4540qfz2dxzxgmdscrz")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf-wrapper) + ("automake" ,automake))) + (inputs `(("perl" ,perl) + ("perl-text-template" ,perl-text-template) + ("perl-mime-tools" ,perl-mime-tools) + ("perl-gnupg-interface" ,perl-gnupg-interface) + ("perl-net-idn-encode" ,perl-net-idn-encode) + ("libmd" ,libmd))) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "keyanalyze/Makefile" + (("LDLIBS") (string-append "CC=" (which "gcc") "\nLDLIBS"))) + (substitute* "keyanalyze/Makefile" + (("\\./configure") (string-append "./configure --prefix=" out))) + (substitute* "gpgwrap/Makefile" + (("\\} clean") + (string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap " + out "/bin/gpgwrap\n"))) + (substitute* '("gpgsigs/Makefile" "keyanalyze/Makefile" + "keylookup/Makefile" "sig2dot/Makefile" + "springgraph/Makefile") + (("/usr") out)) + (setenv "CONFIG_SHELL" (which "sh"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys #:rest args) + (let ((out (assoc-ref outputs "out")) + (install (assoc-ref %standard-phases 'install))) + (apply install args) + (for-each + (lambda (dir file) + (copy-file (string-append dir "/" file) + (string-append out "/bin/" file))) + '("caff" "caff" "caff" "gpgdir" "gpg-key2ps" + "gpglist" "gpg-mailkeys" "gpgparticipants") + '("caff" "pgp-clean" "pgp-fixkey" "gpgdir" "gpg-key2ps" + "gpglist" "gpg-mailkeys" "gpgparticipants")) + (for-each + (lambda (dir file) + (copy-file (string-append dir "/" file) + (string-append out "/share/man/man1/" file))) + '("caff" "caff" "caff" "gpgdir" + "gpg-key2ps" "gpglist" "gpg-mailkeys" + "gpgparticipants" "gpgsigs" "gpgwrap/doc" + "keyanalyze" "keyanalyze/pgpring" "keyanalyze") + '("caff.1" "pgp-clean.1" "pgp-fixkey.1" "gpgdir.1" + "gpg-key2ps.1" "gpglist.1" "gpg-mailkeys.1" + "gpgparticipants.1" "gpgsigs.1" "gpgwrap.1" + "process_keys.1" "pgpring.1" "keyanalyze.1"))))) + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (wrap-program + (string-append out "/bin/caff") + `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))))))) + (synopsis "Collection of scripts for simplifying gnupg key signing") + (description + "Signing-party is a collection for all kinds of PGP/GnuPG related things, including tools for signing keys, keyring analysis, and party preparation. @enumerate @item caff: CA - Fire and Forget signs and mails a key @@ -701,11 +724,10 @@ including tools for signing keys, keyring analysis, and party preparation. @item sig2dot: converts a list of GnuPG signatures to a .dot file @item springgraph: creates a graph from a .dot file @end enumerate") - ;; gpl2+ for almost all programs, except for keyanalyze: gpl2 - ;; and caff and gpgsigs: bsd-3, see - ;; http://packages.debian.org/changelogs/pool/main/s/signing-party/current/copyright - (license license:gpl2) - (home-page "https://pgp-tools.alioth.debian.org/"))) + ;; gpl2+ for almost all programs, except for keyanalyze: gpl2 + ;; and caff and gpgsigs: bsd-3, see + ;; http://packages.debian.org/changelogs/pool/main/s/signing-party/current/copyright + (license license:gpl2)))) (define-public pinentry-tty (package diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 1d053152d7..df87700d6f 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -77,8 +77,10 @@ (modules '((guix build utils))) (snippet ;; Fix incompatibility with Perl 5.22+. - '(substitute* '("js/src/config/milestone.pl") - (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))))) + '(begin + (substitute* '("js/src/config/milestone.pl") + (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE")) + #t)))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) @@ -96,7 +98,9 @@ (modify-phases %standard-phases (add-after 'unpack 'delete-timedout-test ;; This test times out on slower hardware. - (lambda _ (delete-file "js/src/jit-test/tests/basic/bug698584.js"))) + (lambda _ + (delete-file "js/src/jit-test/tests/basic/bug698584.js") + #t)) (add-before 'configure 'chdir (lambda _ (chdir "js/src") @@ -107,12 +111,11 @@ (let ((out (assoc-ref outputs "out"))) (setenv "SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh")) - (zero? (system* - "./configure" (string-append "--prefix=" out) - ,@(if (string=? "aarch64-linux" - (%current-system)) - '("--host=aarch64-unknown-linux-gnu") - '()))))))))) + (invoke "./configure" (string-append "--prefix=" out) + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '())))))))) (home-page "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey") (synopsis "Mozilla javascript engine") @@ -136,8 +139,10 @@ in C/C++.") (patches (search-patches "mozjs24-aarch64-support.patch")) (snippet ;; Fix incompatibility with Perl 5.22+. - '(substitute* '("js/src/config/milestone.pl") - (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))))) + '(begin + (substitute* '("js/src/config/milestone.pl") + (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE")) + #t)))) (arguments (substitute-keyword-arguments (package-arguments mozjs) ((#:phases phases) @@ -148,15 +153,15 @@ in C/C++.") ;; configure fails if it is followed by SHELL and CONFIG_SHELL (setenv "SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh")) - (zero? (system* "./configure" - (string-append "--prefix=" out) - "--with-system-nspr" - "--enable-system-ffi" - "--enable-threadsafe" - ,@(if (string=? "aarch64-linux" - (%current-system)) - '("--host=aarch64-unknown-linux-gnu") - '())))))))))) + (invoke "./configure" + (string-append "--prefix=" out) + "--with-system-nspr" + "--enable-system-ffi" + "--enable-threadsafe" + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '()))))))))) (inputs `(("libffi" ,libffi) ("zlib" ,zlib))))) @@ -220,23 +225,23 @@ in C/C++.") (chdir "js/src") (setenv "SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh")) - (zero? (system* "./configure" - (string-append "--prefix=" out) - "--enable-ctypes" - "--enable-gcgenerational" - "--enable-optimize" - "--enable-pie" - "--enable-readline" - "--enable-shared-js" - "--enable-system-ffi" - "--enable-threadsafe" - "--enable-xterm-updates" - "--with-system-icu" - "--with-system-nspr" - "--with-system-zlib" + (invoke "./configure" + (string-append "--prefix=" out) + "--enable-ctypes" + "--enable-gcgenerational" + "--enable-optimize" + "--enable-pie" + "--enable-readline" + "--enable-shared-js" + "--enable-system-ffi" + "--enable-threadsafe" + "--enable-xterm-updates" + "--with-system-icu" + "--with-system-nspr" + "--with-system-zlib" - ;; Intl API requires bundled ICU. - "--without-intl-api")))))))) + ;; Intl API requires bundled ICU. + "--without-intl-api"))))))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -340,7 +345,7 @@ in the Mozilla clients.") (setenv "DOMSUF" "(none)") (setenv "USE_IP" "TRUE") (setenv "IP_ADDRESS" "127.0.0.1") - (zero? (system* "./nss/tests/all.sh")))) + (invoke "./nss/tests/all.sh"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -454,20 +459,47 @@ security standards.") (mozilla-patch "icecat-CVE-2018-5146.patch" "494e5d5278ba" "1yb4lxjw499ppwhk31vz0vzl0cfqvj9d4jwqag7ayj53ybwsqgjr") (mozilla-patch "icecat-CVE-2018-5147.patch" "5cd5586a2f48" "10s774pwvj6xfk3kk6ivnhp2acc8x9sqq6na8z47nkhgwl2712i5") (mozilla-patch "icecat-CVE-2018-5148.patch" "c3e447e07077" "0gmwy631f8ip4gr1mpbjk8bx1n1748wdls5zq4y8hpmpnq5g1wyx") - (mozilla-patch "icecat-bug-1443891.patch" "17201199b18d" "1d0hcim1fwh0bklwpmnal1mv9d9kmyif1m15aj1nqkf1n3x4xc37") + (mozilla-patch "icecat-CVE-2018-5178.patch" "17201199b18d" "1d0hcim1fwh0bklwpmnal1mv9d9kmyif1m15aj1nqkf1n3x4xc37") (mozilla-patch "icecat-bug-1361699.patch" "a07d6c3ff262" "1z8mjg2487r8pxi0x951v6fwwr696q84f6hlzimc3r7bn5ds9r83") - (mozilla-patch "icecat-bug-1433609.patch" "7127ccf8f88c" "0m4my7aflpp0wlqilr2m4axd7k2fyrs7jqdcz2rrz5pwivz1anvd") + (mozilla-patch "icecat-CVE-2018-5150-pt01.patch" "7127ccf8f88c" "0m4my7aflpp0wlqilr2m4axd7k2fyrs7jqdcz2rrz5pwivz1anvd") (mozilla-patch "icecat-bug-1444231.patch" "57bd35fa8618" "0pl6x5amc5x6nhwl7qnmnff3jjjxmbs8r365bfzj58g7q5ihqwvf") - (mozilla-patch "icecat-bug-1409440.patch" "2f3e1ccf1661" "0azl8g81kpc0w2xpjpgm1154ll12g0a8n6i7bl3s9nnrk2i26n74") - (mozilla-patch "icecat-bug-1441941.patch" "8ff2c4d68e36" "0kz1rqhnz8ca4z20hnpcafidhsrwhnm0h2gmlgchni33h8pisr1f") - (mozilla-patch "icecat-bug-1443092.patch" "b8c430253efd" "1arjcaps9axhxh5ff84n9bydhhzrihn7hbq7v69nvqwqrjp3lgg9") - (mozilla-patch "icecat-bug-1448774.patch" "05cadfa3ac39" "0q0vh7vy7x0l8jp6376fn10qljfp4mnp4m9zfn90j4m19pfl86a0") - (mozilla-patch "icecat-bug-1449548.patch" "48a678d7cb81" "1yfh7kxxxvqck2hpn98pwag4splyc6c9brc5haq28fp8x9r9qvlk") - (mozilla-patch "icecat-bug-1448705.patch" "112032576872" "1x1hxyggbxlnlj0n9cbp03hjnfvm6cq8nqj0jizrd8cfyd5aig8p") - (mozilla-patch "icecat-bug-1388020.patch" "ad9a885b0df4" "1hrk1q9mk59jww55g4lqmaflznk87x3vvjn2mxfgfbbjs8l1cyz4") + (mozilla-patch "icecat-CVE-2018-5150-pt02.patch" "2f3e1ccf1661" "0azl8g81kpc0w2xpjpgm1154ll12g0a8n6i7bl3s9nnrk2i26n74") + (mozilla-patch "icecat-CVE-2018-5159.patch" "8ff2c4d68e36" "0kz1rqhnz8ca4z20hnpcafidhsrwhnm0h2gmlgchni33h8pisr1f") + (mozilla-patch "icecat-CVE-2018-5154.patch" "b8c430253efd" "1arjcaps9axhxh5ff84n9bydhhzrihn7hbq7v69nvqwqrjp3lgg9") + (mozilla-patch "icecat-CVE-2018-5155.patch" "05cadfa3ac39" "0q0vh7vy7x0l8jp6376fn10qljfp4mnp4m9zfn90j4m19pfl86a0") + (mozilla-patch "icecat-CVE-2018-5168.patch" "48a678d7cb81" "1yfh7kxxxvqck2hpn98pwag4splyc6c9brc5haq28fp8x9r9qvlk") + (mozilla-patch "icecat-CVE-2018-5150-pt03.patch" "112032576872" "1x1hxyggbxlnlj0n9cbp03hjnfvm6cq8nqj0jizrd8cfyd5aig8p") + (mozilla-patch "icecat-CVE-2018-5150-pt04.patch" "ad9a885b0df4" "1hrk1q9mk59jww55g4lqmaflznk87x3vvjn2mxfgfbbjs8l1cyz4") (mozilla-patch "icecat-bug-1452416.patch" "f89ab96a2532" "1dqchxdyznhgyxhfq0hm0vg1p597hjqflfzigc7j3s5vxf9rg2nv") - (mozilla-patch "icecat-bug-1451376.patch" "af885a1bd293" "1wfpqhm2dp4fsx6zbrncngsqz7g2x09b625zcighixrbpvybyww3") - (mozilla-patch "icecat-bug-1444668.patch" "666fc84ec72d" "0lml2wqd4yqidhi364x8r90f78397k2y0kq5z5bv8l8j4bhcnb9v"))) + (mozilla-patch "icecat-CVE-2018-5150-pt05.patch" "af885a1bd293" "1wfpqhm2dp4fsx6zbrncngsqz7g2x09b625zcighixrbpvybyww3") + (mozilla-patch "icecat-CVE-2018-5150-pt06.patch" "666fc84ec72d" "0lml2wqd4yqidhi364x8r90f78397k2y0kq5z5bv8l8j4bhcnb9v") + (search-patch "icecat-CVE-2018-5157-and-CVE-2018-5158.patch") + (mozilla-patch "icecat-CVE-2018-5150-pt07.patch" "1ab40761a856" "1kgwypy7k5b33jwkni4025za4kcnv5m6klsx4wsswlixmljmkbc7") + (mozilla-patch "icecat-bug-1453339.patch" "0edb8dca7087" "0b30pipqryh311sc97rcmwnx9n8qdlbbz90b2hkybjnprmbhfxrm") + (mozilla-patch "icecat-CVE-2018-5150-pt08.patch" "134c728799c1" "16hbwx6fx1hrddsyjjbd3z954ql3pg348xs13h9riyblq8crzmam") + (mozilla-patch "icecat-CVE-2018-5150-pt09.patch" "14eab155eaa8" "0wr4xgblxzk4c2gvlnpl7ic1196mrhry1hgwdl1jivq0ji5cbvbd") + (mozilla-patch "icecat-bug-1452619.patch" "2b75d55ccf0e" "1g87aybw6ggv6hyk385bplv0lx63n020gwyq0d6d4pqld48hsm1i") + (mozilla-patch "icecat-bug-1453127.patch" "89857f35df29" "0gzi47svrw5ajdlm3i12193psm702zx70x5h1rwp4gb7gxh4m4d9") + (mozilla-patch "icecat-CVE-2018-5150-pt10.patch" "3f2ec03c0405" "0w02952dlxd2gmwghck2nm4rjjmc5ylg62bw6m1rvi35kcr134lr") + (mozilla-patch "icecat-CVE-2018-5183.patch" "f729bf78fb3a" "0xkj6jwxwdqkvb5c7wi16b8cm8qrnlrd3s9jnd46jg03iykrx56f") + (mozilla-patch "icecat-bug-1437842.patch" "eb896089db47" "10lppk4x2d3pim71a36ky1dmg08rs5ckfiljwvfnr1cw6934qxl4") + (mozilla-patch "icecat-bug-1458270.patch" "2374dca97bde" "0y1g55wvj44nzb1qfkl271jcf8s1ik8lcl1785z0zim4qzn7qkpa") + (mozilla-patch "icecat-bug-1452576.patch" "70b6298e0c9e" "0n5jfy6c421dkybk8m18vd61y95zz0r64g1p1zlya3fps5knfaqi") + (mozilla-patch "icecat-bug-1459206-pt1.patch" "4ef79fe9b3b7" "1c32z1ki1i6xj1nbb0xlxwqnmz48ikmy8dmp37rkjz8ssn04wgfg") + (mozilla-patch "icecat-bug-1459206-pt2.patch" "9ad16112044a" "0ayya67sx7avcb8bplfdxb92l9g4mjrb1s3hby283llhqv0ikg9b") + (mozilla-patch "icecat-bug-1459162.patch" "11d8a87fb6d6" "1rkmdk18llw0x1jakix75hlhy0hpsmlminnflagbzrzjli81gwm1") + (mozilla-patch "icecat-bug-1451297.patch" "407b10ad1273" "16qzsfirw045xag96f1qvpdlibm8lwdj9l1mlli4n1vz0db91v9q") + (mozilla-patch "icecat-bug-1462682.patch" "e76e2e481b17" "0hnx13msjy28n3bpa2c24kpzalam4bdk5gnp0f9k671l48rs9yb3") + (mozilla-patch "icecat-bug-1450688.patch" "2c75bfcd465c" "1pjinj8qypafqm2fk68s3hzcbzcijn09qzrpcxvzq6bl1yfc1xfd") + (mozilla-patch "icecat-bug-1456975.patch" "042f80f3befd" "0av918kin4bkrq7gnjz0h9w8kkq8rk9l93250lfl5kqrinza1gsk") + (mozilla-patch "icecat-bugs-1442722+1455071+1433642+1456604+1458320.patch" + "bb0451c9c4a0" "1lhm1b2a7c6jwhzsg3c830hfhp17p8j9zbcmgchpb8c5jkc3vw0x") + (mozilla-patch "icecat-bug-1465108-pt1.patch" "8189b262e3b9" "13rh86ddwmj1bhv3ibbil3sv5xbqq1c9v1czgbsna5hxxkzc1y3b") + (mozilla-patch "icecat-bug-1465108-pt2.patch" "9f81ae3f6e1d" "05vfg8a8jrzd93n1wvncmvdmqgf9cgsl8ryxgjs3032gbbjkga7q") + (mozilla-patch "icecat-bug-1459693.patch" "face7a3dd5d7" "0jclw30mf693w8lrmvn0iankggj21nh4j3zh51q5363rj5xncdzx") + (mozilla-patch "icecat-bug-1464829.patch" "7afb58c046c8" "1r0569r76712x7x1sw6xr0x06ilv6iw3fncb0f8r8b9mp6wrpx34") + (mozilla-patch "icecat-bug-1452375-pt1.patch" "f1a745f8c42d" "11q73pb7a8f09xjzil4rhg5nr49zrnz1vb0prni0kqvrnppf5s40") + (mozilla-patch "icecat-bug-1452375-pt2.patch" "1f9a430881cc" "0f79rv7njliqxx33z07n60b50jg0a596d1km7ayz2hivbl2d0168"))) (modules '((guix build utils))) (snippet '(begin @@ -539,7 +571,7 @@ security standards.") ("libxcomposite" ,libxcomposite) ("libxt" ,libxt) ("libffi" ,libffi) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-3.4) ("libvpx" ,libvpx) ("icu4c" ,icu4c) ("pixman" ,pixman) @@ -642,19 +674,6 @@ security standards.") (utime file early-1980 early-1980)) #t)) #t))) - (add-after - 'unpack 'use-skia-by-default - (lambda _ - ;; Use the bundled Skia library by default, since IceCat appears - ;; to be far more stable when using it than when using our system - ;; Cairo. - (let ((out (open "browser/app/profile/icecat.js" - (logior O_WRONLY O_APPEND)))) - (format out "~%// Use Skia by default~%") - (format out "pref(~s, ~s);~%" "gfx.canvas.azure.backends" "skia") - (format out "pref(~s, ~s);~%" "gfx.content.azure.backends" "skia") - (close-port out)) - #t)) (add-after 'unpack 'link-libxul-with-libraries (lambda _ @@ -691,9 +710,9 @@ security standards.") (chdir "../build") (format #t "build directory: ~s~%" (getcwd)) (format #t "configure flags: ~s~%" flags) - (zero? (apply system* bash - (string-append srcdir "/configure") - flags))))) + (apply invoke bash + (string-append srcdir "/configure") + flags)))) (add-before 'configure 'install-desktop-entry (lambda* (#:key outputs #:allow-other-keys) ;; Install the '.desktop' file. @@ -748,7 +767,8 @@ security standards.") (copy-file file (string-append icons "/icecat.png")))) '("default16.png" "default22.png" "default24.png" "default32.png" "default48.png" "content/icon64.png" - "mozicon128.png" "default256.png")))))) + "mozicon128.png" "default256.png")) + #t)))) ;; This fixes the file chooser crash that happens with GTK 3. (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) @@ -757,7 +777,8 @@ security standards.") (gtk (assoc-ref inputs "gtk+")) (gtk-share (string-append gtk "/share"))) (wrap-program (car (find-files lib "^icecat$")) - `("XDG_DATA_DIRS" ":" prefix (,gtk-share))))))))) + `("XDG_DATA_DIRS" ":" prefix (,gtk-share))) + #t)))))) (home-page "https://www.gnu.org/software/gnuzilla/") (synopsis "Entirely free browser derived from Mozilla Firefox") (description diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index c6fc68468f..1d8e80c8fe 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Christopher Baines ;;; Copyright © 2018 Tomáš Čech +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -214,7 +215,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.4) (name "go") - (version "1.9.5") + (version "1.9.6") (source (origin (method url-fetch) @@ -222,7 +223,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") name version ".src.tar.gz")) (sha256 (base32 - "1g4zqhbh1yw3gnb400szzwrdz0k5s3h0h5nc35xgmn5v69zvphpi")))) + "0a2qkvzr0g5cbd66wi7b6r40qyp9p55y0zz2j5qg1xsqwsdhbx1n")))) (arguments (substitute-keyword-arguments (package-arguments go-1.4) ((#:phases phases) @@ -383,7 +384,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.9) (name "go") - (version "1.10.1") + (version "1.10.2") (source (origin (method url-fetch) @@ -391,7 +392,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") name version ".src.tar.gz")) (sha256 (base32 - "1p1xyyxicp752n9wj10sljjl6mjxpfsplkhx74fzzjrwdkzlk52q")))) + "1gcqbac3wbhbcr0ri9zgfj6qkqbwf9fn116a0a7fvn4wdff60r32")))) (arguments (substitute-keyword-arguments (package-arguments go-1.9) ((#:phases phases) @@ -1300,3 +1301,404 @@ support functions for dealing with terminals, as commonly found on UNIX systems.") (home-page "https://go.googlesource.com/crypto/") (license license:bsd-3)))) + +(define-public go-github-com-burntsushi-toml + (let ((commit + "a368813c5e648fee92e5f6c30e3944ff9d5e8895") + (revision "0")) + (package + (name "go-github-com-burntsushi-toml") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BurntSushi/toml.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/BurntSushi/toml")) + (home-page "https://github.com/BurntSushi/toml") + (synopsis "Toml parser and encoder for Go") + (description "This package is toml parser and encoder for Go. The +interface is similar to Go's standard library @code{json} and @code{xml} +package.") + (license license:expat)))) + +(define-public go-github-com-getsentry-raven-go + (let ((commit + "dffeb57df75d6a911f00232155194e43d79d38d7") + (revision "0")) + (package + (name "go-github-com-getsentry-raven-go") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/getsentry/raven-go.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/getsentry/raven-go")) + (home-page + "https://github.com/getsentry/raven-go") + (synopsis "Sentry client in Go") + (description "This package is Go client API for the Sentry event/error +logging system.") + (license license:bsd-3)))) + +(define-public go-github-com-hashicorp-go-version + (let ((commit + "03c5bf6be031b6dd45afec16b1cf94fc8938bc77") + (revision "0")) + (package + (name "go-github-com-hashicorp-go-version") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/go-version.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/hashicorp/go-version")) + (home-page + "https://github.com/hashicorp/go-version") + (synopsis "Go library for parsing and verifying versions and version +constraints") + (description "This package is a library for parsing versions and version +constraints, and verifying versions against a set of constraints. It can sort +a collection of versions properly, handles prerelease/beta versions, can +increment versions.") + (license license:mpl2.0)))) + +(define-public go-github-com-jpillora-backoff + (let ((commit + "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d") + (revision "0")) + (package + (name "go-github-com-jpillora-backoff") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jpillora/backoff.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/jpillora/backoff")) + (home-page "https://github.com/jpillora/backoff") + (synopsis "Simple exponential backoff counter in Go") + (description "This package is a simple exponential backoff counter in +Go.") + (license license:expat)))) + +(define-public go-github-com-stretchr-testify + (let ((commit + "b1f989447a57594c728884458a39abf3a73447f7") + (revision "0")) + (package + (name "go-github-com-stretchr-testify") + (version (git-version "1.1.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stretchr/testify.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/stretchr/testify")) + (home-page "https://github.com/stretchr/testify") + (synopsis "Go helper library for tests and invariant checking") + (description "This package provide many tools for testifying that your +code will behave as you intend. + +Features include: +@itemize +@item Easy assertions +@item Mocking +@item HTTP response trapping +@item Testing suite interfaces and functions. +@end itemize") + (license license:expat)))) + +(define-public go-github-com-tevino-abool + (let ((commit + "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12") + (revision "0")) + (package + (name "go-github-com-tevino-abool") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tevino/abool.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/tevino/abool")) + (home-page "https://github.com/tevino/abool") + (synopsis "Atomic boolean library for Go code") + (description "This package is atomic boolean library for Go code, +optimized for performance yet simple to use.") + (license license:expat)))) + +(define-public go-github-com-urfave-cli + (let ((commit "cfb38830724cc34fedffe9a2a29fb54fa9169cd1") + (revision "0")) + (package + (name "go-github-com-urfave-cli") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/urfave/cli.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/urfave/cli")) + (home-page "https://github.com/urfave/cli") + (synopsis "Library for building command-line interfaces in Go") + (description "This package provides a library for building command-line +interfaces in Go.") + (license license:expat)))) + +(define-public go-github-com-blang-semver + (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9") + (revision "0")) + (package + (name "go-github-com-blang-semver") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/blang/semver.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/blang/semver")) + (home-page "https://github.com/blang/semver") + (synopsis "Semantic versioning library written in Go") + (description "Semver is a library for Semantic versioning written in Go.") + (license license:expat)))) + +(define-public go-github-com-emicklei-go-restful + (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22") + (revision "0")) + (package + (name "go-github-com-emicklei-go-restful") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emicklei/go-restful.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/emicklei/go-restful")) + (home-page "https://github.com/emicklei/go-restful") + (synopsis "Build REST-style web services using Go") + (description "This package provides @code{go-restful}, which helps +developers to use @code{http} methods explicitly and in a way that's consistent +with the HTTP protocol definition.") + (license license:expat)))) + +(define-public go-github-com-google-cadvisor + (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd") + (revision "0")) + (package + (name "go-github-com-google-cadvisor") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/cadvisor.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/cadvisor")) + (home-page "https://github.com/google/cadvisor") + (synopsis "Analyze resource usage of running containers") + (description "The package provides @code{cadvisor}, which provides +information about the resource usage and preformance characteristics of running +containers.") + (license license:asl2.0)))) + +(define-public go-github-com-google-gofuzz + (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382") + (revision "0")) + (package + (name "go-github-com-google-gofuzz") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/gofuzz.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/gofuzz")) + (home-page "https://github.com/google/gofuzz") + (synopsis "Fuzz testing library for Go") + (description "Gofuzz is a library for populationg Go objects with random +values for the purpose of fuzz testing.") + (license license:asl2.0)))) + +(define-public go-github-com-gorilla-context + (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42") + (revision "0")) + (package + (name "go-github-com-gorilla-context") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gorilla/context.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/gorilla/context")) + (home-page "https://github.com/gorilla/context") + (synopsis "Go registry for request variables") + (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.") + (license license:bsd-3)))) + +(define-public go-github-com-gorilla-mux + (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604") + (revision "0")) + (package + (name "go-github-com-gorilla-mux") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gorilla/mux.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/gorilla/mux")) + (home-page "https://github.com/gorilla/mux") + (synopsis "URL router and dispatcher for Go") + (description + "Gorilla/Mux implements a request router and dispatcher for matching +incoming requests with their respective handler.") + (license license:bsd-3)))) + +(define-public go-github-com-jonboulle-clockwork + (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d") + (revision "0")) + (package + (name "go-github-com-jonboulle-clockwork") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jonboulle/clockwork.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/jonboulle/clockwork")) + (home-page "https://github.com/jonboulle/clockwork") + (synopsis "Fake clock library for Go") + (description + "Replace uses of the @code{time} package with the +@code{clockwork.Clock} interface instead.") + (license license:asl2.0)))) + +(define-public go-github-com-spf13-pflag + (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1") + (revision "0")) + (package + (name "go-github-com-spf13-pflag") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spf13/pflag.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/spf13/pflag")) + (home-page "https://github.com/spf13/pflag") + (synopsis "Replacement for Go's @code{flag} package") + (description + "Pflag is library to replace Go's @code{flag} package. It implements +POSIX/GNU-style command-line options with double hyphens. It is is compatible +with the +@uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html, +GNU extensions} to the POSIX recommendations for command-line options.") + (license license:bsd-3)))) diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index a9ee949855..b393919e66 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -155,14 +155,14 @@ model.") (define-public r-rgraphviz (package (name "r-rgraphviz") - (version "2.22.0") + (version "2.24.0") (source (origin (method url-fetch) (uri (bioconductor-uri "Rgraphviz" version)) (sha256 (base32 - "1y9nyjffa9644jch0p2i3w302fmnyc2kb0c3z1f3d5zp1p4qmyqv")))) + "1037hzfxxcn46w6y88wm3kk2nixj0s8bk0hkmnshpxih3kmnvqby")))) (properties `((upstream-name . "Rgraphviz"))) (build-system r-build-system) ;; FIXME: Rgraphviz bundles the sources of an older variant of diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index fe717d0c20..439170c007 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -339,7 +339,8 @@ graphics.") ;; and . (substitute* "IlmImf/Makefile.in" (("ImfIO\\.h") - "ImfIO.h ImfStdIO.h")))) + "ImfIO.h ImfStdIO.h")) + #t)) (patches (search-patches "openexr-missing-samples.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index 58c0fa82fe..11997598c1 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Efraim Flashner ;;; Copyright © 2016 Theodoros Foradis ;;; Copyright © 2017 Ricardo Wurmus -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Gábor Boskovits ;;; Copyright © 2018 Mathieu Lirzin ;;; @@ -117,13 +117,13 @@ interfaces for other technical domains.") (define-public python-graphviz (package (name "python-graphviz") - (version "0.8.2") + (version "0.8.3") (source (origin (method url-fetch) (uri (pypi-uri "graphviz" version ".zip")) (sha256 (base32 - "148h7ln8z65c1723w9vpx8khkvl9iigh8csv0qd4pidc53042rv0")))) + "0gnl11w98iib7vif92f3vircavy2v1yl9sl54y6hhk1mwm0f07f6")))) (build-system python-build-system) (native-inputs `(("unzip" ,unzip))) @@ -150,11 +150,12 @@ visualization tool suite.") "07mqx09jxh8cv9753y2d2jsv7wp8vjmrd7zcfpbrddz3wc9kx705")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-before - 'check 'pre-check - (lambda _ - (chmod "test/boolean/test.sh" #o777)) - %standard-phases) + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (chmod "test/boolean/test.sh" #o777) + #t))) ;; Some data files used by the test suite are missing. ;; See . diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm index 5f1b8d0ed6..77728a5d78 100644 --- a/gnu/packages/groff.scm +++ b/gnu/packages/groff.scm @@ -101,7 +101,7 @@ is usually the formatter of \"man\" documentation pages.") ;; Keep only the programs that man-db needs at run time, ;; and make sure we don't pull in Perl. (let ((out (assoc-ref outputs "out")) - (kept '("eqn" "neqn" "pic" "tbl" "refer" + (kept '("eqn" "neqn" "pic" "tbl" "refer" "preconv" "nroff" "groff" "troff" "grotty"))) (for-each (lambda (file) (unless (member (basename file) kept) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm new file mode 100644 index 0000000000..512f9c9edb --- /dev/null +++ b/gnu/packages/groovy.scm @@ -0,0 +1,1156 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Julien Lepiller +;;; +;;; 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 groovy) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system ant) + #:use-module (gnu packages) + #:use-module (gnu packages java) + #:use-module (gnu packages xml)) + +(define java-groovy-bootstrap + (package + (name "java-groovy-bootstrap") + (version "2.4.15") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/apache/groovy/archive/GROOVY_" + (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "19f3yd2z6jmz1xhwi5kkg1wmgbqkfs7qvd3rzb43xr3nffz8cisv")) + (patches + (search-patches + "groovy-add-exceptionutilsgenerator.patch")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "groovy.jar" + #:source-dir "src/main:subprojects/groovy-test/src/main/java" + #:test-dir "src/test" + #:tests? #f + #:jdk ,icedtea-8 + #:main-class "groovy.ui.GroovyMain" + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-java8 + ;; Fix "Reference to plus is ambiguous" + (lambda _ + (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" + (("toList\\(left\\)") + "(List)toList(left)")) + #t)) + (add-before 'build 'generate-parsers + (lambda _ + (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" + (invoke "antlr" "java.g")) + (with-directory-excursion "src/main/org/codehaus/groovy/antlr" + (mkdir "parser") + (with-directory-excursion "parser" + (invoke "antlr" "../groovy.g"))) + #t)) + (add-before 'build 'generate-exception-utils + (lambda _ + (invoke "javac" "-cp" (getenv "CLASSPATH") + "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") + ":config/ant/src") + "org.codehaus.groovy.ExceptionUtilsGenerator" + "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class") + #t))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("antlr2" ,antlr2) + ("java-jmock-1" ,java-jmock-1) + ("java-xmlunit-legacy" ,java-xmlunit-legacy))) + (inputs + `(("java-commons-cli" ,java-commons-cli) + ("java-asm" ,java-asm) + ("java-classpathx-servletapi" ,java-classpathx-servletapi) + ("java-xstream" ,java-xstream) + ("java-jansi" ,java-jansi) + ("java-jline-2" ,java-jline-2))) + (home-page "http://groovy-lang.org/") + (synopsis "Groovy's java bootstrap") + (description "This package contains the java bootstrap that is used to build +groovy submodules.") + (license license:asl2.0))) + +(define groovy-bootstrap + (package + (inherit java-groovy-bootstrap) + (name "groovy-bootstrap") + (arguments + `(#:jar-name "groovy.jar" + #:jdk ,icedtea-8 + ;Requires groovy-xml and logback-classic which are circular dependencies + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-java8 + ;; Fix "Reference to plus is ambiguous" + (lambda _ + (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" + (("toList\\(left\\)") + "(List)toList(left)")) + #t)) + (add-before 'build 'generate-parser + (lambda _ + (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" + (invoke "antlr" "java.g")) + (with-directory-excursion "src/main/org/codehaus/groovy/antlr" + (mkdir "parser") + (with-directory-excursion "parser" + (invoke "antlr" "../groovy.g"))) + #t)) + (add-before 'build 'generate-exception-utils + (lambda _ + (invoke "javac" "-cp" (getenv "CLASSPATH") + "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") + ":config/ant/src") + "org.codehaus.groovy.ExceptionUtilsGenerator" + "target/classes/org/codehaus/groovy/runtime/ExceptionUtils.class") + #t)) + (add-before 'build 'generate-dgminfo + (lambda _ + (mkdir-p "target/classes/org/codehaus/groovy/runtime") + (mkdir-p "target/classes/META-INF") + (invoke "javac" "-cp" (getenv "CLASSPATH") + "src/main/org/codehaus/groovy/tools/DgmConverter.java") + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") + ":src/main") + "org.codehaus.groovy.tools.DgmConverter") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (with-directory-excursion "src/main" + (for-each (lambda (file) + (mkdir-p (string-append "../../target/classes/" + (dirname file))) + (copy-file file + (string-append "../../target/classes/" + file))) + (find-files "." ".*.(txt|properties|xml|html)"))) + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "target/classes" + "-j"; joint compilation + (find-files "src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy.jar" + "-C" "target/classes" ".") + #t))))) + (inputs + `(("java-apache-ivy" ,java-apache-ivy) + ,@(package-inputs java-groovy-bootstrap))) + (native-inputs + `(("java-groovy-bootstrap" ,java-groovy-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy compiler") + (description "This package contains the first version of the Groovy compiler. +Although already usable, it doesn't contain the groovy library yet. This package +is used to build the groovy submodules written in groovy."))) + +(define groovy-tests-bootstrap + (package + (inherit groovy-bootstrap) + (name "groovy-tests-bootstrap") + (arguments + `(#:jar-name "groovy-tests-bootstrap.jar" + #:jdk ,icedtea-8 + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" + "-j"; joint compilation + (append + (find-files "src/test" "TestSupport.java") + (find-files "src/test" "HeadlessTestSupport.java") + (find-files "src/test" "XmlAssert.java"))) + (invoke "jar" "-cf" "build/jar/groovy-tests-bootstrap.jar" + "-C" "build/classes" ".") + #t))))) + (inputs + `(("groovy-test" ,groovy-test) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy test classes") + (description "This package contains three classes required for testing +other groovy submodules."))) + +(define groovy-test + (package + (inherit groovy-bootstrap) + (name "groovy-test") + (arguments + `(#:jar-name "groovy-test.jar" + #:jdk ,icedtea-8 + #:test-dir "subprojects/groovy-test/src/test" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "subprojects/groovy-test/src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-test.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "subprojects/groovy-test/src/test" + ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy test submodule") + (description "This package contains the test submodules used to test +other groovy submodules."))) + +(define groovy-xml + (package + (inherit groovy-bootstrap) + (name "groovy-xml") + (arguments + `(#:jar-name "groovy-xml.jar" + #:jdk ,icedtea-8 + #:test-dir "src/test" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-xml") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-xml.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy XML") + (description "This package contains XML-related utilities for groovy."))) + +(define groovy-templates + (package + (inherit groovy-bootstrap) + (name "groovy-templates") + (arguments + `(#:jar-name "groovy-templates.jar" + #:jdk ,icedtea-8 + #:test-dir "subprojects/groovy-templates/src/test" + #:tests? #f;Requires spock-framework which is a circular dependency + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "subprojects/groovy-templates/src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-templates.jar" + "-C" "build/classes" ".") + #t))))) + (inputs + `(("groovy-xml" ,groovy-xml) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy template engine") + (description "This package contains a template framework which is +well-suited to applications where the text to be generated follows the form of +a static template."))) + +(define groovy-groovydoc + (package + (inherit groovy-bootstrap) + (name "groovy-groovydoc") + (arguments + `(#:jar-name "groovy-groovydoc.jar" + #:jdk ,icedtea-8 + #:test-dir "subprojects/groovy-groovydoc/src/test" + #:tests? #f; Requires groovy-ant which is a circular dependency + #:phases + (modify-phases %standard-phases + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "subprojects/groovy-groovydoc/src/main/resources" + "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" + "-j"; joint compilation + (find-files "subprojects/groovy-groovydoc/src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-groovydoc.jar" + "-C" "build/classes" ".") + #t))))) + (inputs + `(("groovy-templates" ,groovy-templates) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy documentation generation") + (description "This package contains the groovy documentation generator, +similar to javadoc."))) + +(define groovy-ant + (package + (inherit groovy-bootstrap) + (name "groovy-ant") + (arguments + `(#:jar-name "groovy-ant.jar" + #:jdk ,icedtea-8 + #:test-dir "src/test" + ;; FIXME: Excluding all tests because they fail + #:test-exclude (list + "**/GroovyTest.java" + "**/GroovycTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-ant") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-ant.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (find-files "src/test" ".*\\.(groovy|java)$")) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-groovydoc" ,groovy-groovydoc) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-xml" ,groovy-xml) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy ant tasks") + (description "This package contains groovy-related ant tasks definitions."))) + +(define groovy-bsf + (package + (inherit groovy-bootstrap) + (name "groovy-bsf") + (arguments + `(#:jar-name "groovy-bsf.jar" + #:jdk ,icedtea-8 + #:test-dir "src/test" + #:test-exclude (list +;; exception from Groovy: org.codehaus.groovy.runtime.InvokerInvocationException: +;; groovy.lang.MissingMethodException: No signature of method: +;; java.util.ArrayList.each() is applicable for argument types: +;; (groovy.script.MapFromList$_doit_closure1) values: +;; [groovy.script.MapFromList$_doit_closure1@17e554d5] + "**/BSFTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-bsf") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-bsf.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (find-files "src/test" ".*\\.(groovy|java)$")) + (invoke "ant" "check") + #t))))) + (inputs + `(("java-commons-bsf" ,java-commons-bsf) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy BSF engine") + (description "This package defines the BSF engine for using Groovy inside +any @dfn{Bean Scripting Framework} (BSF) application."))) + +(define groovy-swing + (package + (inherit groovy-bootstrap) + (name "groovy-swing") + (arguments + `(#:jar-name "groovy-swing.jar" + #:jdk ,icedtea-8 + ;; FIXME: tests are not run + #:test-dir "src/test" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-swing") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-swing.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "src/test/groovy/groovy/util/GroovySwingTestCase.groovy" + (("HeadlessTestSupport.headless") "isHeadless()")) + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (find-files "src/test" ".*\\.(groovy|java)$")) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy graphical library") + (description "This package contains the groovy bindings to Java Swing, a +library used to build graphical interfaces."))) + +(define groovy-console + (package + (inherit groovy-bootstrap) + (name "groovy-console") + (arguments + `(#:jar-name "groovy-console.jar" + #:jdk ,icedtea-8 + ;; FIXME: tests are not run + #:test-dir "src/test" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-console") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-console.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (substitute* + "../groovy-swing/src/test/groovy/groovy/util/GroovySwingTestCase.groovy" + (("HeadlessTestSupport.headless") "isHeadless()")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append + (find-files "../groovy-swing/src/test" ".*\\.(groovy|java)$") + (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-swing" ,groovy-swing) + ("groovy-templates" ,groovy-templates) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy graphical interface") + (description "This package contains a graphical interface to run groovy."))) + +(define groovy-docgenerator + (package + (inherit groovy-bootstrap) + (name "groovy-docgenerator") + (arguments + `(#:jar-name "groovy-docgenerator.jar" + #:jdk ,icedtea-8 + #:tests? #f; No tests + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-docgenerator") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-docgenerator.jar" + "-C" "build/classes" ".") + #t))))) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-swing" ,groovy-swing) + ("java-qdox-1.12" ,java-qdox-1.12) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy documentation generation") + (description "This package contains a command line tool to generate +documentation for groovy applications."))) + +(define groovy-groovysh + (package + (inherit groovy-bootstrap) + (name "groovy-groovysh") + (arguments + `(#:jar-name "groovy-groovysh.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-groovysh") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-groovysh.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-xml" ,groovy-xml) + ("groovy-console" ,groovy-console) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy REPL") + (description "This package contains the Groovy REPL."))) + +(define groovy-jmx + (package + (inherit groovy-bootstrap) + (name "groovy-jmx") + (arguments + `(#:jar-name "groovy-jmx.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-jmx") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-jmx.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy JMX extension") + (description "This package contains the JMX extension of Groovy, for +management and monitoring of JVM-based solutions."))) + +(define groovy-json + (package + (inherit groovy-bootstrap) + (name "groovy-json") + (arguments + `(#:jar-name "groovy-json.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-json") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-json.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy JSON") + (description "This package contains JSON-related utilities for groovy."))) + +(define groovy-jsr223 + (package + (inherit groovy-bootstrap) + (name "groovy-jsr223") + (arguments + `(#:jar-name "groovy-jsr223.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-jsr223") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-jsr223.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy's own JSR223 implementation") + (description "This package contains Groovy's own JSR223 implementation. This +module is used for interaction between Groovy and Java code."))) + +(define groovy-nio + (package + (inherit groovy-bootstrap) + (name "groovy-nio") + (arguments + `(#:jar-name "groovy-nio.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:tests? #f; Requires spock-framework + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-nio") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-nio.jar" + "-C" "build/classes" ".") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy input-output library") + (description "This package implements an input/output library that extends +the functionality of the common library of Java."))) + +(define groovy-servlet + (package + (inherit groovy-bootstrap) + (name "groovy-servlet") + (arguments + `(#:jar-name "groovy-servlet.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-servlet") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" + "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-servlet.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" + "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-xml" ,groovy-xml) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-json" ,groovy-json) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy's servlet implementation") + (description "This package contains a library to create groovlets, Groovy's +version of Java servlets."))) + +(define groovy-sql + (package + (inherit groovy-bootstrap) + (name "groovy-sql") + (arguments + `(#:jar-name "groovy-sql.jar" + #:test-dir "src/test" + #:tests? #f;TODO: Requires hsqldb + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-sql") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-sql.jar" + "-C" "build/classes" ".") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy SQL library") + (description "This package contains a facade over Java's normal JDBC APIs +providing greatly simplified resource management and result set handling."))) + +(define groovy-testng + (package + (inherit groovy-bootstrap) + (name "groovy-testng") + (arguments + `(#:jar-name "groovy-testng.jar" + #:tests? #f; No tests + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-testng") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" + "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-testng.jar" + "-C" "build/classes" ".") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy testing framework") + (description "This package contains integration code for running TestNG +tests in Groovy."))) + +(define groovy-macro + (package + (inherit groovy-bootstrap) + (name "groovy-macro") + (arguments + `(#:jar-name "groovy-macro.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-macro") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-macro.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-xml" ,groovy-xml) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-json" ,groovy-json) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy macro processor") + (description "This package contains a high-level library to create macro +and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) + +(define-public groovy + (package + (inherit groovy-bootstrap) + (name "groovy") + (arguments + `(#:tests? #f; No tests + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-bin (string-append out "/bin")) + (out-lib (string-append out "/lib"))) + (with-directory-excursion "src/bin" + (substitute* "startGroovy" + (("\"\\\\\"") "\"") + (("\\\\\"\"") "\"") + (("\\\\\\$") "$") + (("@GROOVYJAR@") "groovy.jar") + (("MAX_FD=\"maximum\"") + (string-append + "MAX_FD=\"maximum\"\nJAVAHOME=" + (assoc-ref inputs "jdk")))) + ;; Groovy uses class loading. It's not enough to put the class + ;; in the loader's classpath, as it causes breakages: + ;; the compiler would give this error: + ;; "Prohibited package name: java.lang" + ;; So we symlink dependencies in this package's output. The + ;; starter class (in groovy-bootstrap) is where the class loader + ;; will look for dependencies, so we put it there too. + (mkdir-p out-lib) + (for-each + (lambda (input) + (for-each + (lambda (jar) + (symlink jar (string-append out-lib "/" (basename jar)))) + (find-files (assoc-ref inputs input) ".*.jar"))) + '("groovy-bootstrap" "groovy-ant" "groovy-bsf" + "groovy-console" "groovy-docgenerator" + "groovy-groovydoc" "groovy-groovysh" + "groovy-jmx" "groovy-json" "groovy-jsr223" + "groovy-nio" "groovy-servlet" "groovy-sql" + "groovy-swing" "groovy-templates" "groovy-testng" + "java-commons-cli" "java-asm" + "java-classpathx-servletapi" "java-xstream" + "java-jansi" "java-jline-2")) + ;; antlr.jar is present twice in antlr2. Symlink doesn't like + ;; it, so we symlink it here. + (symlink (string-append (assoc-ref inputs "antlr2") "/lib/antlr.jar") + (string-append out-lib "/antlr.jar")) + (for-each + (lambda (tool) + (install-file tool out-bin) + (chmod (string-append out-bin "/" tool) #o755)) + '("grape" "groovy" "groovyc" "groovyConsole" "groovydoc" + "groovysh" "java2groovy" "startGroovy"))) + (install-file "src/conf/groovy-starter.conf" + (string-append out "/conf")) + #t)))))) + (inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-ant" ,groovy-ant) + ("groovy-bsf" ,groovy-bsf) + ("groovy-console" ,groovy-console) + ("groovy-docgenerator" ,groovy-docgenerator) + ("groovy-groovydoc" ,groovy-groovydoc) + ("groovy-groovysh" ,groovy-groovysh) + ("groovy-jmx" ,groovy-jmx) + ("groovy-json" ,groovy-json) + ("groovy-jsr223" ,groovy-jsr223) + ("groovy-nio" ,groovy-nio) + ("groovy-servlet" ,groovy-servlet) + ("groovy-sql" ,groovy-sql) + ("groovy-swing" ,groovy-swing) + ("groovy-templates" ,groovy-templates) + ("groovy-testng" ,groovy-testng) + ("java-commons-cli" ,java-commons-cli) + ("java-asm" ,java-asm) + ("java-classpathx-servletapi" ,java-classpathx-servletapi) + ("java-xstream" ,java-xstream) + ("java-jansi" ,java-jansi) + ("java-jline-2" ,java-jline-2) + ("antlr2" ,antlr2))) + (synopsis "Programming language for the JVM") + (description "Apache Groovy is a powerful, optionally typed and dynamic +language, with static-typing and static compilation capabilities, for the Java +platform. It integrates smoothly with any Java program, and immediately +delivers to your application powerful features, including scripting +capabilities, Domain-Specific Language authoring, runtime and compile-time +meta-programming and functional programming."))) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index da130d88ff..951ca93fbf 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2014 John Darrington ;;; Copyright © 2015, 2016 Sou Bunnbu -;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015, 2018 Mark H Weaver ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2017 Ricardo Wurmus @@ -87,7 +87,8 @@ (substitute* '("testsuite/test-limits.c" "testsuite/exec_opcodes_sys.c") (("if \\(error\\) return 1;") - "if (error) return 77;"))))))) + "if (error) return 77;")) + #t))))) (home-page "https://gstreamer.freedesktop.org/modules/orc.html") (synopsis "Oil runtime compiler") (description @@ -101,7 +102,7 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.12.5") + (version "1.14.1") (source (origin (method url-fetch) @@ -110,7 +111,7 @@ arrays of data.") version ".tar.xz")) (sha256 (base32 - "0slwqav7bqasg4a9f033kv6ki3yz0wyr3k0w9jr80s1jba20sxcz")))) + "0v0qqfj6klkirhbcxwgw1sq6x67456ckjadlhnzsji0m4q6jpn18")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -149,7 +150,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.12.5") + (version "1.14.1") (source (origin (method url-fetch) @@ -157,7 +158,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "0bkikdax4v3iv9sqrrwbavqw7kg7lh0vas08ad1nya7kcmdz5ncg")))) + "1d8d1gfd4jnymyhb0f1pxdhapsx4v1nilk03bndmv0id131wf9hh")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -204,7 +205,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.12.5") + (version "1.14.1") (source (origin (method url-fetch) @@ -213,7 +214,7 @@ for the GStreamer multimedia library.") name "-" version ".tar.xz")) (sha256 (base32 - "0mam03i38j6iws815fky9sm1ayik1d9a8pnfvschrr06pqxv511c")))) + "0wlim4kapb2vc11fcjdlx31zn5ja3xw3kq1jflvk4sknvcnhdv1l")))) (build-system gnu-build-system) (inputs `(("aalib" ,aalib) @@ -263,14 +264,14 @@ developers consider to have good quality code and correct functionality.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.12.5") + (version "1.14.1") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "10bx1h996nn45r3d53bgkfx0rfa3hqz0f4zx634wz3nffnkjzy20")))) + "06nn43f65mr872apljfiq8jnmwa8r7z26n1frprgvaijh28ccxra")))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments @@ -339,7 +340,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.12.5") + (version "1.14.1") (source (origin (method url-fetch) @@ -347,12 +348,11 @@ par compared to the rest.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0vpr1rv99v7k2s78k15prdw453nq1va4rkli46yhm6s3i00lnwk7")))) + "1lz1kx9h5mlp9ahmgavv99nkg6j0rrjks2ws820yym1zn45l7wng")))) (build-system gnu-build-system) (inputs `(("gst-plugins-base" ,gst-plugins-base) ("liba52" ,liba52) - ("libmad" ,libmad) ("lame" ,lame) ("libcdio" ,libcdio) ("twolame" ,twolame) @@ -378,7 +378,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") (define-public gst-libav (package (name "gst-libav") - (version "1.12.5") + (version "1.14.1") (source (origin (method url-fetch) (uri (string-append @@ -386,7 +386,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") name "-" version ".tar.xz")) (sha256 (base32 - "0y1qawf21407smvpc6kc2q6f17y9hdki4skn1yrwbl1n75gqcaw1")))) + "1782crqgl1bqlkr67s0qmb3ihcjdjpljd6kynqs9zyzjs810my7g")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-system-libav") @@ -416,7 +416,7 @@ compression formats through the use of the libav library.") (define-public python-gst (package (name "python-gst") - (version "1.12.5") + (version "1.14.1") (source (origin (method url-fetch) (uri (string-append @@ -424,7 +424,7 @@ compression formats through the use of the libav library.") "gst-python-" version ".tar.xz")) (sha256 (base32 - "1x8g9mdkf6hzhlkx6nhrrp607p8g4zkhl3crs8vh504zpbbf71ip")))) + "1ls7j5iy7irinf7d7nm6r4qw3d1ddpr8fm4k5n6zfhz3am4p1ihv")))) (build-system gnu-build-system) (arguments ;; XXX: Factorize python-sitedir with python-build-system. diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index de0f314f1a..f7196611d6 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès -;;; Copyright © 2014, 2015, 2017 Mark H Weaver +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015 Paul van der Walt @@ -18,6 +18,7 @@ ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2018 Alex Vong +;;; Copyright © 2018 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,6 +57,7 @@ #:use-module (gnu packages enchant) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages fribidi) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) @@ -133,7 +135,7 @@ tools have full access to view and control running applications.") `(("ghostscript" ,ghostscript) ("libspectre" ,libspectre) ("poppler" ,poppler) - ("xextproto" ,xextproto) + ("xorgproto" ,xorgproto) ("zlib" ,zlib))) (native-inputs `(("pkg-config" ,pkg-config) @@ -176,7 +178,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "1.7.3") + (version "1.7.6") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -184,7 +186,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.bz2")) (sha256 (base32 - "1zh5n3q3mb6y6kr5m7zz1ags9z1vjwai57d6warx8qhzfrwn8lyd")))) + "16rf7qwgy1gza74v2ws79zdwwb1lpvgz2abwwm8ws9j82cwysyys")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo @@ -198,7 +200,8 @@ affine transformation (scale, rotation, shear, etc.).") (native-inputs `(("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) - ("python" ,python-2))) ; incompatible with Python 3 (print syntax) + ("python" ,python-wrapper) + ("which" ,which))) (arguments `(#:configure-flags `("--with-graphite2" "--with-gobject" @@ -214,7 +217,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public pango (package (name "pango") - (version "1.40.14") + (version "1.42.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -222,13 +225,18 @@ affine transformation (scale, rotation, shear, etc.).") name "-" version ".tar.xz")) (sha256 (base32 - "1qqpd8x1pl483ynj3mc5q4n8y2pxqhg2bv19vd94r7mzlzm1pbwh")))) + "0illn78nfwpa8y5knh9ir74wa1skc2hi8f3ny19zgpyf7n5dh94r")))) (build-system gnu-build-system) (propagated-inputs + ;; These are all in Requires or Requires.private of the '.pc' files. `(("cairo" ,cairo) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("glib" ,glib) ("harfbuzz" ,harfbuzz))) (inputs - `(("zlib" ,zlib) + `(("fribidi" ,fribidi) + ("zlib" ,zlib) ;; Some packages, such as Openbox, expect Pango to be built with the ;; optional libxft support. @@ -507,8 +515,10 @@ in the GNOME project.") (find-files librsvg "^libpixbufloader-.*\\.so$"))) (gdk-pixbuf-query-loaders (string-append out "/bin/gdk-pixbuf-query-loaders"))) - (zero? (apply system* `(,gdk-pixbuf-query-loaders - "--update-cache" ,@loaders))))))))) + (apply invoke + gdk-pixbuf-query-loaders + "--update-cache" + loaders))))))) (synopsis "GNOME image loading and manipulation library, with SVG support"))) @@ -538,7 +548,7 @@ in the GNOME project.") (lambda _ ;; Don't fail on missing '/etc/machine-id'. (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system* "dbus-launch" "make" "check"))))))) + (invoke "dbus-launch" "make" "check")))))) (propagated-inputs ;; atspi-2.pc refers to all these. `(("dbus" ,dbus) @@ -577,7 +587,7 @@ is part of the GNOME accessibility project.") ;; Run test-suite under a dbus session. (lambda _ (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system* "dbus-launch" "make" "check"))))))) + (invoke "dbus-launch" "make" "check")))))) (propagated-inputs `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc (inputs @@ -640,7 +650,8 @@ is part of the GNOME accessibility project.") (lambda _ ;; FIXME: re-enable tests requiring an X server (substitute* "gtk/Makefile.in" - (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits ."))) + (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits .")) + #t) %standard-phases))) (native-search-paths (list (search-path-specification @@ -839,16 +850,18 @@ exceptions, macros, and a dynamic programming environment.") (patches (search-patches "guile-rsvg-pkgconfig.patch")) (modules '((guix build utils))) (snippet - '(substitute* (find-files "." "Makefile\\.am") - (("/share/guile/site") - "/share/guile/site/@GUILE_EFFECTIVE_VERSION@"))) + '(begin + (substitute* (find-files "." "Makefile\\.am") + (("/share/guile/site") + "/share/guile/site/@GUILE_EFFECTIVE_VERSION@")) + #t)) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + (invoke "autoreconf" "-vfi")))))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) @@ -879,9 +892,11 @@ images onto Cairo surfaces.") (patches (search-patches "guile-present-coding.patch")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - (("godir = .*$") - "godir = $(moddir)\n"))))) + '(begin + (substitute* "Makefile.in" + (("godir = .*$") + "godir = $(moddir)\n")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -1158,32 +1173,22 @@ printing and other features typical of a source code editor.") (define-public python-pycairo (package (name "python-pycairo") - (version "1.10.0") + (version "1.16.3") (source (origin (method url-fetch) - (uri (string-append "http://cairographics.org/releases/pycairo-" - version ".tar.bz2")) + (uri (string-append "https://github.com/pygobject/pycairo/releases/download/v" + version "/pycairo-" version ".tar.gz")) (sha256 (base32 - "1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s")) - (patches (search-patches "pycairo-wscript.patch")))) - (build-system waf-build-system) + "1xq1bwhyi5imca5kvd28szh2rdzi8g0kaspwaqgsbczqskjj3csv")))) + (build-system python-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("python-waf" ,python-waf))) + ("python-pytest" ,python-pytest))) (propagated-inputs ;pycairo.pc references cairo `(("cairo" ,cairo))) - (arguments - `(#:tests? #f - #:phases - (modify-phases %standard-phases - (add-before - 'configure 'patch-waf - (lambda* (#:key inputs #:allow-other-keys) - ;; The bundled `waf' doesn't work with python-3.4.x. - (copy-file (assoc-ref %build-inputs "python-waf") "./waf")))))) - (home-page "http://cairographics.org/pycairo/") + (home-page "https://cairographics.org/pycairo/") (synopsis "Python bindings for cairo") (description "Pycairo is a set of Python bindings for the Cairo graphics library.") @@ -1191,26 +1196,15 @@ printing and other features typical of a source code editor.") (properties `((python2-variant . ,(delay python2-pycairo)))))) (define-public python2-pycairo - (package (inherit (strip-python2-variant python-pycairo)) - (name "python2-pycairo") - (version "1.10.0") - (source - (origin - (method url-fetch) - (uri (string-append "http://cairographics.org/releases/py2cairo-" - version ".tar.bz2")) - (sha256 - (base32 - "0cblk919wh6w0pgb45zf48xwxykfif16qk264yga7h9fdkq3j16k")))) - (arguments - `(#:python ,python-2 - ,@(substitute-keyword-arguments (package-arguments python-pycairo) - ((#:phases phases) - `(modify-phases ,phases (delete 'patch-waf))) - ((#:native-inputs native-inputs) - `(alist-delete "python-waf" ,native-inputs))))) - ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1 - (license (list license:lgpl2.1 license:mpl1.1)))) + (let ((pycairo (package-with-python2 + (strip-python2-variant python-pycairo)))) + (package + (inherit pycairo) + (propagated-inputs + `(("python2-funcsigs" ,python2-funcsigs) + ,@(package-propagated-inputs pycairo))) + ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1 + (license (list license:lgpl2.1 license:mpl1.1))))) (define-public python2-pygtk (package diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 2af6f875e9..a88d24885f 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2015, 2017 Christopher Allan Webber ;;; Copyright © 2016 Alex Sassmannshausen ;;; Copyright © 2016, 2017 Ricardo Wurmus @@ -15,8 +15,10 @@ ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Nils Gillmann -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Maxim Cournoyer +;;; Copyright © 2018 Arun Isaac +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,6 +61,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages databases) #:use-module (gnu packages python) + #:use-module (gnu packages tls) #:use-module (gnu packages gl) #:use-module (gnu packages sdl) #:use-module (gnu packages maths) @@ -66,6 +69,7 @@ #:use-module (gnu packages version-control) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) + #:use-module (gnu packages networking) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -182,23 +186,24 @@ without requiring the source code to be rewritten.") (outputs '("out" "debug")) (arguments - `(#:configure-flags '("--disable-static") ;saves 3MiB - #:phases (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - ;; Tell (ice-9 popen) the file name of Bash. - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "module/ice-9/popen.scm" - ;; If bash is #f allow fallback for user to provide - ;; "bash" in PATH. This happens when cross-building to - ;; MinGW for which we do not have Bash yet. - (("/bin/sh") - ,@(if (target-mingw?) - '((if bash - (string-append bash "/bin/bash") - "bash")) - '((string-append bash "/bin/bash"))))))) - %standard-phases))) + `(#:configure-flags '("--disable-static") ; saves 3 MiB + #:phases + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Tell (ice-9 popen) the file name of Bash. + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "module/ice-9/popen.scm" + ;; If bash is #f allow fallback for user to provide + ;; "bash" in PATH. This happens when cross-building to + ;; MinGW for which we do not have Bash yet. + (("/bin/sh") + ,@(if (target-mingw?) + '((if bash + (string-append bash "/bin/bash") + "bash")) + '((string-append bash "/bin/bash"))))) + #t)))))) (native-search-paths (list (search-path-specification @@ -238,8 +243,10 @@ without requiring the source code to be rewritten.") ;; Remove the pre-built object files. Instead, build everything ;; from source, at the expense of significantly longer build ;; times (almost 3 hours on a 4-core Intel i5). - (snippet '(for-each delete-file - (find-files "prebuilt" "\\.go$"))))) + (snippet '(begin + (for-each delete-file + (find-files "prebuilt" "\\.go$")) + #t)))) (properties '((timeout . 72000) ;20 hours (max-silent-time . 36000))) ;10 hours (needed on ARM ; when heavily loaded) @@ -275,10 +282,9 @@ without requiring the source code to be rewritten.") (package (inherit guile-2.2) (properties '((hidden? . #t) ;people should install 'guile-2.2' - (timeout . 72000) ;20 hours - (max-silent-time . 36000))) ;10 hours (needed on ARM - ; when heavily loaded) - (replacement #f))) + (timeout . 72000) ;20 hours + (max-silent-time . 36000))))) ;10 hours (needed on ARM + ; when heavily loaded) (define-public guile-2.2.2 ;; Keep it so that, when 'guix' runs on 2.2.2, 'guix pull' compiles objects @@ -523,7 +529,8 @@ program can be installed in one go.") post))) (substitute* "artanis/artanis.scm" (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+") - "")))))) + "")) + #t)))) (build-system gnu-build-system) ;; TODO: Add guile-dbi and guile-dbd optional dependencies. (inputs `(("guile" ,guile-2.2) @@ -720,16 +727,16 @@ format is also supported.") (define-public guile-ics (package (name "guile-ics") - (version "0.1.1") + (version "0.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/artyom-poptsov/guile-ics") - (commit "v0.1.1"))) + (commit (string-append "v" version)))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1pvg6j48inpbq47hq00yh5hhl2qd2srvrx5yjl7w7ky1jsjadp86")))) + "0qjjvadr7gibdq9jvwkmlkb4afsw9n2shfj9phpiadinxk3p4m2g")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -746,8 +753,8 @@ format is also supported.") ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'. ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) - (inputs `(("guile" ,guile-2.0) ("which" ,which))) - (propagated-inputs `(("guile-lib" ,guile2.0-lib))) + (inputs `(("guile" ,guile-2.2) ("which" ,which))) + (propagated-inputs `(("guile-lib" ,guile-lib))) (home-page "https://github.com/artyom-poptsov/guile-ics") (synopsis "Guile parser library for the iCalendar format") (description @@ -807,28 +814,33 @@ for Guile\".") (define-public guile-json (package (name "guile-json") - (version "0.6.0") + (version "1.0.1") + (home-page "https://github.com/aconchillo/guile-json") (source (origin (method url-fetch) - (uri (string-append "mirror://savannah/guile-json/guile-json-" + (uri (string-append home-page "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1qmjg7lbgciw95fkdzvlp9f68vv17kdjky42ywfzd4ffzwww0lgc")) + "16155dv30rhagz6dwv7xc87l386i8v0f1kgydqa2ajr166fi9qhr")) (modules '((guix build utils))) (snippet ;; Make sure everything goes under .../site/X.Y, like Guile's ;; search paths expects. '(begin - (substitute* "configure" - (("ac_subst_vars='") - "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n")) - (substitute* '("Makefile.in" "json/Makefile.in") - (("moddir =.*/share/guile/site" all) + (substitute* "configure.ac" + (("GUILE_PROGS") + (string-append "GUILE_PROGS\n" + "AC_SUBST([GUILE_EFFECTIVE_VERSION])\n"))) + (substitute* '("Makefile.am" "json/Makefile.am") + (("moddir[[:blank:]]*=.*/share/guile/site" all) (string-append all "/@GUILE_EFFECTIVE_VERSION@"))))))) (build-system gnu-build-system) - (native-inputs `(("guile" ,guile-2.2))) - (home-page "https://savannah.nongnu.org/projects/guile-json/") + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("guile" ,guile-2.2))) + (inputs `(("guile" ,guile-2.2))) (synopsis "JSON module for Guile") (description "Guile-JSON supports parsing and building JSON documents according to the @@ -904,19 +916,18 @@ specification. These are the main features: ;; Install source module. (copy-file file dest-file) ;; Install compiled module. - (unless (zero? (system* guild "compile" - "-L" source - "-o" go-file - file)) - (error (format #f "Failed to compile ~s to ~s!" - file go-file))))) + (invoke guild "compile" + "-L" source + "-o" go-file + file))) scm-files) ;; Also copy over the README. (install-file "README.org" doc) + #t)))) (inputs - `(("guile" ,guile-2.0))) + `(("guile" ,guile-2.2))) (home-page "https://github.com/ijp/minikanren") (synopsis "MiniKanren declarative logic system, packaged for Guile") (description @@ -931,8 +942,11 @@ slightly from miniKanren mainline. See http://minikanren.org/ for more on miniKanren generally.") (license license:expat))) +(define-public guile2.0-minikanren + (package-for-guile-2.0 guile-minikanren)) + (define-public guile2.2-minikanren - (package-for-guile-2.2 guile-minikanren)) + (deprecated-package "guile2.2-minikanren" guile-minikanren)) (define-public guile-miniadapton (let ((commit "1b5749422304567c96ac5367f2221dda9eff5880") @@ -1059,12 +1073,10 @@ understand, extend, and port to host languages other than Scheme.") (copy-file src-file dest-file) ;; Install compiled module. - (unless (zero? (system* guild "compile" - "-L" (getcwd) - "-o" go-file - src-file)) - (error (format #f "Failed to compile ~s to ~s!" - src-file dest-file))))))) + (invoke guild "compile" + "-L" (getcwd) + "-o" go-file + src-file))))) '(("irregex-guile.scm" "/rx/irregex") ("irregex.scm" "/rx/source/irregex") ;; Not really reachable via guile's packaging system, @@ -1075,7 +1087,7 @@ understand, extend, and port to host languages other than Scheme.") (install-file "irregex.html" doc) #t)))))) (inputs - `(("guile" ,guile-2.0))) + `(("guile" ,guile-2.2))) (home-page "http://synthcode.com/scheme/irregex") (synopsis "S-expression based regular expressions") (description @@ -1084,8 +1096,11 @@ string-based regular expressions. It implements SRFI 115 and is deeply inspired by the SCSH regular expression system.") (license license:bsd-3))) +(define-public guile2.0-irregex + (package-for-guile-2.0 guile-irregex)) + (define-public guile2.2-irregex - (package-for-guile-2.2 guile-irregex)) + (deprecated-package "guile2.2-irregex" guile-irregex)) ;; There are two guile-gdbm packages, one using the FFI and one with ;; direct C bindings, hence the verbose name. @@ -1104,6 +1119,15 @@ inspired by the SCSH regular expression system.") (base32 "1j8wrsw7v9w6qkl47xz0rdikg50v16nn6kbs3lgzcymjzpa7babj")))) (build-system trivial-build-system) + (inputs + `(("guile" ,guile-2.2) + ;; patch-and-repack doesn't work for git checkouts, + ;; so we must apply the patch manually. + ("patch" ,patch) + ("patch-file" ,(search-patch + "guile-gdbm-ffi-support-gdbm-1.14.patch")))) + (propagated-inputs + `(("gdbm" ,gdbm))) (arguments `(#:modules ((guix build utils)) @@ -1136,7 +1160,7 @@ inspired by the SCSH regular expression system.") (string-append module-dir "/gdbm.go")) (compile-file (lambda (in-file out-file) - (system* guild "compile" "-o" out-file in-file)))) + (invoke guild "compile" "-o" out-file in-file)))) ;; Switch directory for compiling and installing (chdir source) @@ -1156,12 +1180,18 @@ inspired by the SCSH regular expression system.") (format #f "(dynamic-link \"~a/lib/libgdbm.so\")" (assoc-ref %build-inputs "gdbm")))) + ;; Apply the patch to add support for gdbm-1.14. + (let ((patch-command (string-append (assoc-ref %build-inputs "patch") + "/bin/patch")) + (patch-file (assoc-ref %build-inputs "patch-file"))) + (with-directory-excursion (dirname gdbm.scm-dest) + (format #t "applying '~a'...~%" patch-file) + (invoke patch-command "--force" "--input" patch-file))) + ;; compile to the destination - (compile-file gdbm.scm-dest gdbm.go-dest))))) - (inputs - `(("guile" ,guile-2.2))) - (propagated-inputs - `(("gdbm" ,gdbm))) + (compile-file gdbm.scm-dest gdbm.go-dest) + + #t)))) (home-page "https://github.com/ijp/guile-gdbm") (synopsis "Guile bindings to the GDBM library via Guile's FFI") (description @@ -1198,9 +1228,11 @@ Guile's foreign function interface.") (modules '((guix build utils))) (snippet ;; Upgrade 'Makefile.am' to the current way of doing things. - '(substitute* "Makefile.am" - (("TESTS_ENVIRONMENT") - "TEST_LOG_COMPILER"))))) + '(begin + (substitute* "Makefile.am" + (("TESTS_ENVIRONMENT") + "TEST_LOG_COMPILER")) + #t)))) (build-system gnu-build-system) (native-inputs @@ -1346,18 +1378,22 @@ above command-line parameters.") "redis/Makefile.in" "redis/commands/Makefile.in") (("moddir =.*/share/guile/site" all) - (string-append all "/@GUILE_EFFECTIVE_VERSION@"))))))) + (string-append all "/@GUILE_EFFECTIVE_VERSION@"))) + #t)))) (build-system gnu-build-system) (native-inputs - `(("guile" ,guile-2.0))) + `(("guile" ,guile-2.2))) (home-page "https://savannah.nongnu.org/projects/guile-redis/") (synopsis "Redis client library for Guile") (description "Guile-redis provides a Scheme interface to the Redis key-value cache and store.") (license license:lgpl3+))) +(define-public guile2.0-redis + (package-for-guile-2.0 guile-redis)) + (define-public guile2.2-redis - (package-for-guile-2.2 guile-redis)) + (deprecated-package "guile2.2-redis" guile-redis)) (define-public guile-wisp (package @@ -1459,7 +1495,8 @@ users and in some situations.") (("godir = .*$") (string-append "godir = " - "$(prefix)/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n"))))))) + "$(prefix)/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n"))) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1539,19 +1576,24 @@ provides access to that interface and its types from the Scheme level.") (arguments '(#:configure-flags (list (string-append - "--with-guile-site-dir=" %output "/share/guile/site/2.0")) + "--with-guile-site-dir=" %output "/share/guile/site/2.2")) + #:make-flags + (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib:" + (assoc-ref %build-inputs "guile-dbd-sqlite3") "/lib")) #:phases (modify-phases %standard-phases (add-after 'install 'patch-extension-path (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (dbi.scm (string-append - out "/share/guile/site/2.0/dbi/dbi.scm")) + out "/share/guile/site/2.2/dbi/dbi.scm")) (ext (string-append out "/lib/libguile-dbi"))) (substitute* dbi.scm (("libguile-dbi") ext)) #t)))))) + (inputs + `(("guile-dbd-sqlite3" ,guile-dbd-sqlite3))) ; only shared library, no scheme files (propagated-inputs - `(("guile" ,guile-2.0))) + `(("guile" ,guile-2.2))) (synopsis "Guile database abstraction layer") (home-page "http://home.gna.org/guile-dbi/guile-dbi.html") (description @@ -1561,6 +1603,15 @@ programming interface is presented regardless of which database system is used. It currently supports MySQL, Postgres and SQLite3.") (license license:gpl2+))) +(define guile-dbi-bootstrap + (package + (inherit guile-dbi) + (name "guile-dbi-bootstrap") + (inputs '()) + (arguments + (substitute-keyword-arguments (package-arguments guile-dbi) + ((#:make-flags _) '(list)))))) + (define-public guile-dbd-sqlite3 (package (name "guile-dbd-sqlite3") @@ -1575,12 +1626,11 @@ It currently supports MySQL, Postgres and SQLite3.") "0rg71jchxd2y8x496s8zmfmikr5g8zxi8zv2ar3f7a23pph92iw2")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("guile-dbi-bootstrap" ,guile-dbi-bootstrap))) ; only required for headers (inputs `(("sqlite" ,sqlite) ("zlib" ,(@ (gnu packages compression) zlib)))) - (propagated-inputs - `(("guile-dbi" ,guile-dbi))) (synopsis "Guile DBI driver for SQLite") (home-page "https://github.com/jkalbhenn/guile-dbd-sqlite3") (description @@ -1713,7 +1763,8 @@ you send to a FIFO file.") "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n")) (substitute* "Makefile.in" (("/site/2.0") - "/site/@GUILE_EFFECTIVE_VERSION@")))))) + "/site/@GUILE_EFFECTIVE_VERSION@")) + #t)))) (build-system gnu-build-system) (inputs `(("guile" ,guile-2.2))) @@ -1823,12 +1874,7 @@ dictionary and suggesting spelling corrections.") (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "sh" "bootstrap"))))) - - #:configure-flags + '(#:configure-flags ;; Add -I to match 'bash.pc' of Bash 4.4. (list (string-append "CPPFLAGS=-I" (assoc-ref %build-inputs "bash:include") @@ -1958,10 +2004,6 @@ is not available for Guile 2.0.") (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi")))) - ;; FIXME: On i686, bytestructures miscalculates the offset ;; of the 'old-file' and 'new-file' fields within the ;; '%diff-delta' structure. See @@ -2011,8 +2053,8 @@ manipulate repositories of the Git version control system.") `(("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.2))) - (synopsis "General-purpose syntax highlighter for GNU Guile") - (description "Guile-syntax-highlight is a general-purpose syntax + (synopsis "General-purpose syntax highlighter for GNU Guile") + (description "Guile-syntax-highlight is a general-purpose syntax highlighting library for GNU Guile. It can parse code written in various programming languages into a simple s-expression that can be converted to HTML (via SXML) or any other format for rendering.") @@ -2031,11 +2073,6 @@ HTML (via SXML) or any other format for rendering.") (base32 "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3")))) (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap.sh"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -2093,4 +2130,245 @@ It has a nice, simple s-expression based syntax.") "Guile-colorized provides you with a colorized REPL for GNU Guile.") (license license:gpl3+))) +(define-public guile-simple-zmq + (let ((commit "d76657aeb1cd10ef8136edc06bb90999914c7c3c") + (revision "0")) + (package + (name "guile-simple-zmq") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jerry40/guile-simple-zmq") + (commit commit))) + (sha256 + (base32 + "1w73dy5gpyv33jn34dqlkqpwh9w4y8wm6hgvbpb3wbp6xsa2mk4z")) + (file-name (git-file-name name version)))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (srfi srfi-26) + (ice-9 match) + (ice-9 popen) + (ice-9 rdelim)) + + (let* ((out (assoc-ref %outputs "out")) + (guile (assoc-ref %build-inputs "guile")) + (effective (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (module-dir (string-append out "/share/guile/site/" + effective)) + (go-dir (string-append out "/lib/guile/" + effective "/site-ccache/")) + (source (string-append (assoc-ref %build-inputs "source") + "/src")) + (scm-file "simple-zmq.scm") + (guild (string-append (assoc-ref %build-inputs "guile") + "/bin/guild")) + (zmq (assoc-ref %build-inputs "zeromq")) + (deps (list zmq)) + (path (string-join + (map (cut string-append <> + "/lib/") + deps) + ":"))) + ;; Make installation directories. + (mkdir-p module-dir) + (mkdir-p go-dir) + + ;; Compile .scm files and install. + (chdir source) + (setenv "GUILE_AUTO_COMPILE" "0") + (for-each (lambda (file) + (let* ((dest-file (string-append module-dir "/" + file)) + (go-file (match (string-split file #\.) + ((base _) + (string-append go-dir "/" + base ".go"))))) + ;; Install source module. + (copy-file file dest-file) + (substitute* dest-file + (("\\(dynamic-link \"libzmq\"\\)") + (format #f "(dynamic-link \"~a/lib/libzmq.so\")" + (assoc-ref %build-inputs "zeromq")))) + + ;; Install and compile module. + (unless (zero? (system* guild "compile" + "-L" source + "-o" go-file + dest-file)) + (error (format #f "Failed to compile ~s to ~s!" + file go-file))))) + (list scm-file)) + #t)))) + (propagated-inputs + `(("guile" ,guile-2.2) + ("zeromq" ,zeromq))) + (home-page "https://github.com/jerry40/guile-simple-zmq") + (synopsis "Guile wrapper over ZeroMQ library") + (description + "This package provides a Guile programming interface to the ZeroMQ +messaging library.") + (license license:gpl3+)))) + +(define-public jupyter-guile-kernel + (let ((commit "a5c5f3ea3215b65e770bcb62f71117b0ec4575ed") + (revision "0")) + (package + (name "jupyter-guile-kernel") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jerry40/guile-kernel") + (commit commit))) + (sha256 + (base32 + "0y5jr0f0dyskvsawqbf6n0bpg8jirw4mhqbarf2a6p9lxhqha9s9")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (srfi srfi-26) + (ice-9 match) + (ice-9 popen) + (ice-9 rdelim)) + + (let* ((out (assoc-ref %outputs "out")) + (guile (assoc-ref %build-inputs "guile")) + (effective (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (module-dir (string-append out "/share/guile/site/" + effective)) + (kernel-dir (string-append out "/share/jupyter/kernels/guile")) + (go-dir (string-append out "/lib/guile/" + effective + "/site-ccache")) + (source (string-append (assoc-ref %build-inputs "source") + "/src")) + (scm-files '("hmac.scm" + "tools.scm" + "guile-jupyter-kernel.scm")) + (kernel-file "kernel.json") + (guild (string-append (assoc-ref %build-inputs "guile") + "/bin/guild")) + (g-szmq (assoc-ref %build-inputs "guile-simple-zmq")) + (json (assoc-ref %build-inputs "guile-json")) + (deps (list g-szmq json)) + (path (string-join + (map (cut string-append <> + "/share/guile/site/" + effective) + deps) + ":")) + (gopath (string-join + (map (cut string-append <> + "/lib/guile/" effective + "/site-ccache/") + deps) + ":"))) + + ;; Make installation directories. + (mkdir-p module-dir) + (mkdir-p kernel-dir) + (mkdir-p go-dir) + + ;; Make a writable copy of SOURCE. + (copy-recursively source ".") + + ;; Record the absolute file name of the 'openssl' command. + (substitute* "hmac.scm" + (("openssl") + (string-append (assoc-ref %build-inputs "openssl") + "/bin/openssl"))) + + ;; Compile .scm files and install. + (setenv "GUILE_AUTO_COMPILE" "0") + (setenv "GUILE_LOAD_PATH" path) + (setenv "GUILE_LOAD_COMPILED_PATH" gopath) + + (for-each (lambda (file) + (let* ((dest-file (string-append module-dir "/" + file)) + (go-file (match (string-split file #\.) + ((base _) + (string-append go-dir "/" + base ".go"))))) + ;; Install source module. + (copy-file file dest-file) + + ;; Install compiled module. + (unless (zero? (system* guild "compile" + "-L" source + "-o" go-file + file)) + (error (format #f "Failed to compile ~s to ~s!" + file go-file))))) + scm-files) + + ;; Install kernel + (copy-file kernel-file (string-append kernel-dir "/" + kernel-file)) + ;; Fix hard-coded file name in the kernel + (substitute* (string-append kernel-dir "/" + kernel-file) + (("/home/jerry/.local/share/jupyter/kernels/guile/guile-jupyter-kernel.scm") + (string-append module-dir "/guile-jupyter-kernel.scm")) + (("\"guile\"") + (string-append "\"" (assoc-ref %build-inputs "guile") + "/bin/guile\"")) + (("-s") + (string-append "--no-auto-compile\", \"-s"))) + + #t)))) + (inputs + `(("openssl" ,openssl) + ("guile" ,guile-2.2))) + (propagated-inputs + `(("guile-json" ,guile-json) + ("guile-simple-zmq" ,guile-simple-zmq))) + (synopsis "Guile kernel for the Jupyter Notebook") + (description + "This package provides a Guile 2.x kernel for the Jupyter Notebook. It +allows users to interact with the Guile REPL through Jupyter.") + (home-page "https://github.com/jerry40/guile-kernel") + (license license:gpl3+)))) + +(define-public guile-sparql + (package + (name "guile-sparql") + (version "0.0.7") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/roelj/guile-sparql/releases/download/" + version "/guile-sparql-" version ".tar.gz")) + (sha256 + (base32 "1drnvhsgl0gc5crmb16yyw1j98nkhwwcgssv9vgm36ng43nnzffd")))) + (build-system gnu-build-system) + (arguments `(#:tests? #f)) ; There are no tests. + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/roelj/guile-sparql") + (synopsis "SPARQL module for Guile") + (description "This package provides the functionality to query a SPARQL +endpoint. Additionally, it provides an interface to write SPARQL queries +using S-expressions.") + (license license:gpl3+))) + ;;; guile.scm ends here diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index 6b1d769313..7453f9fbf1 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017 Danny Milosavljevic ;;; Copyright © 2017 rsiddharth ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Tonton ;;; ;;; This file is part of GNU Guix. ;;; @@ -451,6 +452,19 @@ hold in a large number of randomly generated cases. Specifications are expressed in Haskell, using combinators defined in the QuickCheck library.") (license license:bsd-3))) +(define-public ghc-quickcheck-2.9 + (package + (inherit ghc-quickcheck) + (name "ghc-quickcheck") + (version "2.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/QuickCheck-2.9.2/QuickCheck-" + version ".tar.gz")) + (sha256 + (base32 + "119np67qvx8hyp9vkg4gr2wv3lj3j6ay2vl4hxspkg43ymb1cp0m")))))) + (define-public ghc-quickcheck-latest (package (inherit ghc-quickcheck) (version "2.11.3") diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9b26ff56f2..2176f07cc4 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -13,6 +13,8 @@ ;;; Copyright © 2017, 2018 Alex Vong ;;; Copyright © 2017 rsiddharth ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Tonton +;;; Copyright © 2018 Timothy Sample ;;; ;;; This file is part of GNU Guix. ;;; @@ -282,9 +284,11 @@ top of CLISP.") (mkdir-p libtinfo-dir) (symlink (string-append ncurses-lib "/libncursesw.so." - ;; Extract "6.0" from "6.0-20170930". + ;; Extract "6.0" from "6.0-20170930" if a + ;; dash-separated version tag exists. ,(let* ((v (package-version ncurses)) - (d (string-index v #\-))) + (d (or (string-index v #\-) + (string-length v)))) (version-major+minor (string-take v d)))) (string-append libtinfo-dir "/libtinfo.so.5")) @@ -1822,7 +1826,7 @@ bindings are a direct translation of the C bindings.") ("ghc-utf8-string" ,ghc-utf8-string) ("libx11" ,libx11) ("libxft" ,libxft) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (build-system haskell-build-system) @@ -1937,6 +1941,30 @@ case with other forms of concurrent communication, such as locks or "This package provides a library for parallel programming.") (license license:bsd-3))) +(define-public ghc-safesemaphore + (package + (name "ghc-safesemaphore") + (version "0.10.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "SafeSemaphore/SafeSemaphore-" version ".tar.gz")) + (sha256 + (base32 + "0rpg9j6fy70i0b9dkrip9d6wim0nac0snp7qzbhykjkqlcvvgr91")))) + (build-system haskell-build-system) + (inputs + `(("ghc-stm" ,ghc-stm))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/ChrisKuklewicz/SafeSemaphore") + (synopsis "Exception safe semaphores") + (description "This library provides exception safe semaphores that can be +used in place of @code{QSem}, @code{QSemN}, and @code{SampleVar}, all of which +are not exception safe and can be broken by @code{killThread}.") + (license license:bsd-3))) + (define-public ghc-text (package (name "ghc-text") @@ -2987,6 +3015,35 @@ online}.") (description "This package provides a simple XML library for Haskell.") (license license:bsd-3))) +(define-public ghc-feed + (package + (name "ghc-feed") + (version "0.3.12.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "feed/feed-" version ".tar.gz")) + (sha256 + (base32 + "0hkrsinspg70bbm3hwqdrvivws6zya1hyk0a3awpaz82j4xnlbfc")))) + (build-system haskell-build-system) + (inputs + `(("ghc-old-locale" ,ghc-old-locale) + ("ghc-old-time" ,ghc-old-time) + ("ghc-time-locale-compat" ,ghc-time-locale-compat) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-xml" ,ghc-xml))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit))) + (home-page "https://github.com/bergmark/feed") + (synopsis "Haskell package for handling various syndication formats") + (description "This Haskell package includes tools for generating and +consuming feeds in both RSS (Really Simple Syndication) and Atom format.") + (license license:bsd-3))) + (define-public ghc-exceptions (package (name "ghc-exceptions") @@ -3572,6 +3629,31 @@ vector types are supported. Specific instances are provided for unboxed, boxed and storable vectors.") (license license:bsd-3))) +(define-public ghc-bloomfilter + (package + (name "ghc-bloomfilter") + (version "2.0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "bloomfilter/bloomfilter-" version ".tar.gz")) + (sha256 + (base32 + "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (home-page "https://github.com/bos/bloomfilter") + (synopsis "Pure and impure Bloom filter implementations") + (description "This package provides both mutable and immutable Bloom +filter data types, along with a family of hash functions and an easy-to-use +interface.") + (license license:bsd-3))) + (define-public ghc-network (package (name "ghc-network") @@ -3757,6 +3839,27 @@ with various performance characteristics.") manipulating monad transformer stacks.") (license license:bsd-3))) +(define-public ghc-ifelse + (package + (name "ghc-ifelse") + (version "0.85") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "IfElse/IfElse-" version ".tar.gz")) + (sha256 + (base32 + "1kfx1bwfjczj93a8yqz1n8snqiq5655qgzwv1lrycry8wb1vzlwa")))) + (build-system haskell-build-system) + (inputs `(("ghc-mtl" ,ghc-mtl))) + (home-page "http://hackage.haskell.org/package/IfElse") + (synopsis "Monadic control flow with anaphoric variants") + (description "This library provides functions for control flow inside of +monads with anaphoric variants on @code{if} and @code{when} and a C-like +@code{switch} function.") + (license license:bsd-3))) + (define-public ghc-monad-control (package (name "ghc-monad-control") @@ -7735,6 +7838,44 @@ converting between Haskell values and JSON. JSON (JavaScript Object Notation) is a lightweight data-interchange format.") (license license:bsd-3))) +(define-public ghc-esqueleto + (package + (name "ghc-esqueleto") + (version "2.5.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "esqueleto/esqueleto-" version ".tar.gz")) + (sha256 + (base32 + "10n49rzqmblky7pwjnysalyy6nacmxfms8dqbsdv6hlyzr8pb69x")))) + (build-system haskell-build-system) + (inputs + `(("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-conduit" ,ghc-conduit) + ("ghc-monad-logger" ,ghc-monad-logger) + ("ghc-persistent" ,ghc-persistent) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-tagged" ,ghc-tagged) + ("ghc-text" ,ghc-text) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-hunit" ,ghc-hunit) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-persistent-sqlite" ,ghc-persistent-sqlite) + ("ghc-persistent-template" ,ghc-persistent-template) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/bitemyapp/esqueleto") + (synopsis "Type-safe embedded domain specific language for SQL queries") + (description "This library provides a type-safe embedded domain specific +language (EDSL) for SQL queries that works with SQL backends as provided by +@code{ghc-persistent}. Its language closely resembles SQL, so you don't have +to learn new concepts, just new syntax, and it's fairly easy to predict the +generated SQL and optimize it for your backend.") + (license license:bsd-3))) + (define-public shellcheck (package (name "shellcheck") @@ -7833,6 +7974,8 @@ bytestrings and their hexademical representation.") (base32 "0n39s1i88j6s7vvsdhpbhcr3gpbwlzabwcc3nbd7nqb4kb4i0sls")))) (build-system haskell-build-system) + (arguments + `(#:configure-flags (list "--allow-newer=QuickCheck"))) (inputs `(("ghc-hashable" ,ghc-hashable))) (native-inputs @@ -9466,4 +9609,73 @@ system dependencies.") address string against RFC 5322.") (license license:bsd-3))) +(define-public ghc-semigroupoids-5.2.2 + (package + (inherit ghc-semigroupoids) + (name "ghc-semigroupoids") + (version "5.2.2") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "semigroupoids-" version "/semigroupoids-" + version ".tar.gz")) + (sha256 + (base32 + "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4")))) + (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers) + ,@(package-inputs ghc-semigroupoids))))) + +(define-public ghc-bytes + (package + (name "ghc-bytes") + (version "0.15.4") + (source + (origin + (method url-fetch) + (uri + (string-append "https://hackage.haskell.org/package/bytes-" + version "/bytes-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "121x3iqlm8pghw8cd9g30cnqbl7jrdpfjxdanmqdqllajw6xivrm")))) + (build-system haskell-build-system) + (inputs `(("ghc-cereal" ,ghc-cereal) + ("cabal-doctest" ,cabal-doctest) + ("ghc-doctest" ,ghc-doctest-0.13) + ("ghc-mtl" ,ghc-mtl) + ("ghc-scientific" ,ghc-scientific) + ("ghc-text" ,ghc-text) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-void" ,ghc-void) + ("ghc-vector" ,ghc-vector))) + (synopsis "Serialization between @code{binary} and @code{cereal}") + (description "This package provides a simple compatibility shim that lets +you work with both @code{binary} and @code{cereal} with one chunk of +serialization code.") + (home-page "https://hackage.haskell.org/package/bytes") + (license license:bsd-3))) + +(define-public ghc-disk-free-space + (package + (name "ghc-disk-free-space") + (version "0.1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "disk-free-space/disk-free-space-" + version ".tar.gz")) + (sha256 + (base32 + "07rqj8k1vh3cykq9yidpjxhgh1f7vgmjs6y1nv5kq2217ff4yypi")))) + (build-system haskell-build-system) + (home-page "https://github.com/redneb/disk-free-space") + (synopsis "Retrieve information about disk space usage") + (description "A cross-platform library for retrieving information about +disk space usage.") + (license license:bsd-3))) + ;;; haskell.scm ends here diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index a29e5bafd2..d6c1fb5e64 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -60,8 +60,7 @@ (modify-phases %standard-phases (replace 'install (lambda _ - (zero? - (system* "make" "install-data")))) + (invoke "make" "install-data"))) (delete 'build)) ;; GNU Mach supports only IA32 currently, so cheat so that we can at @@ -128,7 +127,7 @@ communication.") (modify-phases %standard-phases (replace 'install (lambda _ - (zero? (system* "make" "install-headers" "no_deps=t")))) + (invoke "make" "install-headers" "no_deps=t"))) (delete 'build)) #:configure-flags '(;; Pretend we're on GNU/Hurd; 'configure' wants @@ -179,7 +178,7 @@ Library and other user programs.") #t))) (replace 'build (lambda _ - (zero? (system* "make" "-Clibihash" "libihash.a")))))))) + (invoke "make" "-Clibihash" "libihash.a"))))))) (home-page "https://www.gnu.org/software/hurd/hurd.html") (synopsis "GNU Hurd libraries") (description @@ -201,7 +200,8 @@ Library for GNU/Hurd.") (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs `(("gnumach-headers" ,gnumach-headers) ("hurd-headers" ,hurd-headers) ("hurd-minimal" ,hurd-minimal))) @@ -229,10 +229,9 @@ Hurd-minimal package which are needed for both glibc and GCC.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (boot (string-append out "/boot"))) - (and (zero? (system* "make" "gnumach.gz")) - (begin - (install-file "gnumach.gz" boot) - #t)))))))) + (invoke "make" "gnumach.gz") + (install-file "gnumach.gz" boot) + #t)))))) (native-inputs `(("mig" ,mig) ("perl" ,perl))) diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm index 2d138e839f..9f7e1f88b4 100644 --- a/gnu/packages/ibus.scm +++ b/gnu/packages/ibus.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2016 Chris Marusich ;;; Copyright © 2017 Efraim Flashner @@ -139,22 +139,19 @@ may also simplify input method development.") (define-public ibus-libpinyin (package (name "ibus-libpinyin") - (version "1.9.2") + (version "1.10.0") (source (origin (method url-fetch) - (uri (string-append "https://github.com/libpinyin/" - "ibus-libpinyin/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://github.com/libpinyin/ibus-libpinyin/" + "releases/download/" version + "/ibus-libpinyin-" version ".tar.gz")) (sha256 (base32 - "0wpgs0m62l4zlis9f11b7xknhgnw2xw485nc2xrzk880s17pp1mr")))) + "0yq8aw4lddiviag8cnik6fp52vvk8lxv6bym13a3xya84c6zii3c")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'autogen - (lambda _ (and (zero? (system* "intltoolize")) - (zero? (system* "autoreconf" "-vif"))))) (add-after 'wrap-program 'wrap-with-additional-paths (lambda* (#:key inputs outputs #:allow-other-keys) ;; Make sure 'ibus-setup-libpinyin' runs with the correct @@ -180,10 +177,7 @@ may also simplify input method development.") (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("glib" ,glib "bin") - ("libtool" ,libtool))) + ("glib" ,glib "bin"))) (synopsis "Chinese pinyin and ZhuYin input methods for IBus") (description "This package includes a Chinese pinyin input method and a Chinese @@ -194,43 +188,21 @@ ZhuYin (Bopomofo) input method based on libpinyin for IBus.") (define-public libpinyin (package (name "libpinyin") - (version "2.1.91") + (version "2.2.0") (source (origin (method url-fetch) - (uri (string-append - "https://github.com/libpinyin/libpinyin/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://github.com/libpinyin/libpinyin/" + "releases/download/" version + "/libpinyin-2.2.0.tar.gz")) (sha256 (base32 - "1yr4zyz3rwvmvj6bh8pc54hbp4rd2xk3g06y38z220fshx2l8pwf")))) + "1c4wxvcvjxvk23mcwqvsfsv4nhimx4kpjhabxa28gx1ih10l88gj")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'autogen - (lambda _ (zero? (system* "autoreconf" "-vif")))) - (add-after 'unpack 'unpack-model - (lambda* (#:key inputs #:allow-other-keys) - (zero? (system* "tar" "-xvf" - (assoc-ref inputs "model") - "-C" "data"))))))) (inputs `(("glib" ,glib) - ("bdb" ,bdb) - ("model" - ,(origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/libpinyin/" - "models/model14.text.tar.gz")) - (sha256 - (base32 - "0qqk30nflj07zjhs231c95ln4yj4ipzwxxiwrxazrg4hb8bhypqq")))))) + ("bdb" ,bdb))) (native-inputs - `(("pkg-config" ,pkg-config) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool))) + `(("pkg-config" ,pkg-config))) (synopsis "Library to handle Chinese pinyin") (description "The libpinyin C++ library provides algorithms needed for sentence-based diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 57e8fffb35..c4d3703794 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -32,7 +32,7 @@ (define-public icu4c (package (name "icu4c") - (version "60.2") + (version "61.1") (source (origin (method url-fetch) (uri (string-append @@ -42,7 +42,7 @@ (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) "-src.tgz")) (sha256 - (base32 "065l3n0q9wqaw8dz20x82srshhm6i987fr9ync5xf9mr6n7ylwzh")))) + (base32 "1vxgkx0cyvdy00a9yd5khkx14r5kcndkax2wa99klm52x2dgh1yh")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 6705a726cf..8f80b75af4 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Björn Höfling ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,12 +39,16 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages graphics) #:use-module (gnu packages graphviz) + #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages maths) #:use-module (gnu packages perl) + #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages serialization) + #:use-module (gnu packages video) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) @@ -164,7 +169,7 @@ of external libraries that provide additional functionality.") #:tests? #f)) ;XXX: no "test" target (inputs `(("libXt" ,libxt) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("libX11" ,libx11) ("libxml2" ,libxml2) ("mesa" ,mesa) @@ -191,3 +196,203 @@ triangulation. VTK has an extensive information visualization framework, has a suite of 3D interaction widgets, supports parallel processing, and integrates with various databases on GUI toolkits such as Qt and Tk.") (license license:bsd-3))) + +(define-public opencv + (package + (name "opencv") + (version "3.4.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/opencv/opencv/archive/" + version ".zip")) + (file-name (string-append name "-" version ".zip")) + (sha256 + (base32 + "1g8pvnlkzzp50amd89149hqsbvsc2hq3vk1d6a9fksdcx8ra9g94")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove external libraries. We have all available in Guix: + (delete-file-recursively "3rdparty") + + ;; Milky icon set is non-free: + (delete-file-recursively "modules/highgui/src/files_Qt/Milky") + + ;; Some jars found: + (for-each delete-file + '("modules/java/test/pure_test/lib/junit-4.11.jar" + "samples/java/sbt/sbt/sbt-launch.jar")))))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DWITH_IPP=OFF" + "-DWITH_ITT=OFF" + + ;; CPU-Features: + ;; See cmake/OpenCVCompilerOptimizations.cmake + ;; (CPU_ALL_OPTIMIZATIONS) for a list of all optimizations + ;; BASELINE is the minimum optimization all CPUs must support + ;; + ;; DISPATCH is the list of optional dispatches + "-DCPU_BASELINE=SSE2, NEON" + + "-DCPU_DISPATCH=SSE3,SSSE3,SSE4_1,SSE4_2,AVX,AVX2" + "-DCPU_DISPATCH_REQUIRE=SSE3,SSSE3,SSE4_1,SSE4_2,AVX,AVX2" + + "-DBUILD_PERF_TESTS=OFF" + "-D BUILD_TESTS=ON" + + (string-append "-DOPENCV_EXTRA_MODULES_PATH=" + "/tmp/guix-build-opencv-" ,version ".drv-0" + "/opencv-contrib/opencv_contrib-" ,version + "/modules") + + ;;Define test data: + (string-append "-DOPENCV_TEST_DATA_PATH=" + "/tmp/guix-build-opencv-" ,version ".drv-0" + ;;"/opencv-3.4.0" + "/opencv-extra/opencv_extra-" ,version + "/testdata") + + ;; Is ON by default and would try to rebuild 3rd-party protobuf, + ;; which we had removed, which would lead to an error: + "-DBUILD_PROTOBUF=OFF" + + ;; Rebuild protobuf files, because we have a slightly different + ;; version than the included one. If we would not update, we + ;; would get a compile error later: + "-DPROTOBUF_UPDATE_FILES=ON" + + ;; xfeatures2d disabled, because it downloads extra binaries from + ;; https://github.com/opencv/opencv_3rdparty + ;; defined in xfeatures2d/cmake/download_{vgg|bootdesc}.cmake + ;; Cmp this bug entry: + ;; https://github.com/opencv/opencv_contrib/issues/1131 + "-DBUILD_opencv_xfeatures2d=OFF") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-broken-tests + (lambda _ + ;; These tests fails with: + ;; vtkXOpenGLRenderWindow (0x723990): Could not find a decent config + ;; I think we have no OpenGL support with the Xvfb. + (substitute* '("modules/viz/test/test_tutorial3.cpp" + "modules/viz/test/test_main.cpp" + "modules/viz/test/tests_simple.cpp" + "modules/viz/test/test_viz3d.cpp") + (("(TEST\\(Viz, )([a-z].*\\).*)" all pre post) + (string-append pre "DISABLED_" post))) + + ;; This one fails with "unknown file: Failure" + ;; But I couldn't figure out which file was missing: + (substitute* (list (string-append + "../opencv-contrib/opencv_contrib-" + ,version + "/modules/face/test/test_face_align.cpp")) + (("(TEST\\(CV_Face_FacemarkKazemi, )(can_detect_landmarks\\).*)" + all pre post) + (string-append pre "DISABLED_" post))) + + ;; Failure reason: Bad accuracy + ;; Incorrect count of accurate poses [2nd case]: 90.000000 / 94.000000 + (substitute* (list (string-append + "../opencv-contrib/opencv_contrib-" + ,version + "/modules/rgbd/test/test_odometry.cpp")) + (("(TEST\\(RGBD_Odometry_Rgbd, )(algorithmic\\).*)" all pre post) + (string-append pre "DISABLED_" post))) + #t)) + + ;; Idea copied from ldc.scm (ldc-bootstrap): + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (mkdir "../opencv-extra") + (mkdir "../opencv-contrib") + (let ((unpack (lambda (source target) + (with-directory-excursion target + (apply invoke "unzip" + (list (assoc-ref inputs source))))))) + (unpack "opencv-extra" "../opencv-extra") + (unpack "opencv-contrib" "../opencv-contrib")))) + + (add-after 'set-paths 'add-ilmbase-include-path + (lambda* (#:key inputs #:allow-other-keys) + ;; OpenEXR propagates ilmbase, but its include files do not appear + ;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to + ;; the CPATH to satisfy the dependency on "ImathVec.h". + (setenv "CPATH" + (string-append (assoc-ref inputs "ilmbase") + "/include/OpenEXR" + ":" (or (getenv "CPATH") ""))) + #t)) + (add-before 'check 'start-xserver + (lambda* (#:key inputs #:allow-other-keys) + (let ((xorg-server (assoc-ref inputs "xorg-server")) + (disp ":1")) + (setenv "HOME" (getcwd)) + (setenv "DISPLAY" disp) + ;; There must be a running X server and make check doesn't start one. + ;; Therefore we must do it. + (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))))))))) + (native-inputs + `(("unzip" ,unzip) + ("pkg-config" ,pkg-config) + ("xorg-server" ,xorg-server) ; For running the tests + ("opencv-extra" + ,(origin + (method url-fetch) + (uri (string-append "https://codeload.github.com/" + "opencv/opencv_extra/zip/" version)) + (file-name (string-append "opencv-extra-" version ".zip")) + (sha256 + (base32 "0wfh3pvfxqydf7hsccp50npcsg37sf6fqi6cd3zkc4qil9zhpbps")))) + ("opencv-contrib" + ,(origin + (method url-fetch) + (uri (string-append "https://codeload.github.com/" + "opencv/opencv_contrib/zip/" version)) + (file-name (string-append "opencv-contrib-" version ".zip")) + (sha256 + (base32 "18zm0qmjcdvg90c33gzv0ws0xdaid1xpqzz2xa9l2x12qkr6zj3p")))))) + (inputs `(("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("jasper" ,jasper) + ;; ffmpeg 4.0 causes core dumps in tests. + ("ffmpeg" ,ffmpeg-3.4) + ("libtiff" ,libtiff) + ("hdf5" ,hdf5) + ("libgphoto2" ,libgphoto2) + ("libwebp" ,libwebp) + ("zlib" ,zlib) + ("gtkglext" ,gtkglext) + ("openexr" ,openexr) + ("ilmbase" ,ilmbase) + ("gtk+" ,gtk+-2) + ("python-numpy" ,python-numpy) + ("protobuf" ,protobuf) + ("vtk" ,vtk) + ("python" ,python))) + ;; These three CVEs are not a problem of OpenCV, see: + ;; https://github.com/opencv/opencv/issues/10998 + (properties '((lint-hidden-cve . ("CVE-2018-7712" + "CVE-2018-7713" + "CVE-2018-7714")))) + (synopsis "Computer vision library") + (description "OpenCV is a library aimed at +real-time computer vision, including several hundred computer +vision algorithms. It can be used to do things like: + +@itemize +@item image and video input and output +@item image and video processing +@item displaying +@item feature recognition +@item segmentation +@item facial recognition +@item stereo vision +@item structure from motion +@item augmented reality +@item machine learning +@end itemize\n") + (home-page "https://opencv.org/") + (license license:bsd-3))) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 1f0a9e46e1..5abcdf9a2a 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2015, 2016 Alex Kost -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2017 Alex Griffin ;;; Copyright © 2017 Nils Gillmann ;;; Copyright © 2017 Mathieu Othacehe @@ -31,14 +31,15 @@ #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (gnu packages autotools) #:use-module (gnu packages algebra) - #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -59,7 +60,7 @@ (define-public feh (package (name "feh") - (version "2.26") + (version "2.26.3") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -67,7 +68,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "11kckzwk3b734l0n4j41k40liq1v2lbbj1gzir5qc386g7fvzmmi")))) + "08aagymgajcvciagwy2zdxhicvdfnjmd2xyx9bqjy7l1n16ydwrz")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) @@ -231,43 +232,36 @@ it and customize it for your needs.") (define-public viewnior (package (name "viewnior") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) - (uri (string-append "https://github.com/xsisqox/Viewnior/archive/" + (uri (string-append "https://github.com/hellosiyan/Viewnior/archive/" name "-" version ".tar.gz")) (sha256 (base32 - "18309qjgwak3kn228z3p3nx7yxasqgzx69v3rgc23hf161nky0c9")))) - (build-system gnu-build-system) + "1rpkk721s3xas125q3g0fl11b5zsrmzv9pzl6ddzcy4sj2rd7ymr")))) + (build-system meson-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'autogen - (lambda _ - (zero? (system* "sh" "autogen.sh")))) - (add-before 'install 'skip-gtk-update-icon-cache + (add-after 'unpack 'patch-source (lambda _ ;; Don't create 'icon-theme.cache' - (substitute* (find-files "data" "^Makefile$") - (("gtk-update-icon-cache") (which "true"))) - #t))))) + (substitute* "meson.build" + (("meson.add_install_script*") "")) + #t))) + #:tests? #f)) ; no tests (native-inputs - `(("automake" ,automake) - ("autoconf" ,autoconf) - ("intltool" ,intltool) + `(("gettext" ,gettext-minimal) ("glib" ,glib "bin") ; glib-genmarshal - ("gnome-common" ,gnome-common) - ("libtool" ,libtool) ("pkg-config" ,pkg-config) - ("shared-mime-info" ,shared-mime-info) - ("which" ,which))) + ("shared-mime-info" ,shared-mime-info))) (inputs `(("exiv2" ,exiv2) ("gdk-pixbuf" ,gdk-pixbuf) ("gtk+-2" ,gtk+-2))) - (home-page "http://siyanpanayotov.com/project/viewnior/") + (home-page "http://siyanpanayotov.com/project/viewnior") (synopsis "Simple, fast and elegant image viewer") (description "Viewnior is an image viewer program. Created to be simple, fast and elegant. Its minimalistic interface provides more screenspace for diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index bbfd621a93..a2874be1a8 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2015, 2016 Andreas Enge ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014, 2015 Alex Kost -;;; Copyright © 2014, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2014, 2016, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Amirouche Boubekki ;;; Copyright © 2014, 2017 John Darrington @@ -17,6 +17,8 @@ ;;; Copyright © 2017 Hartmut Goebel ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2018 Joshua Sierles, Nextjournal +;;; Copyright © 2018 Fis Trivial +;;; Copyright © 2018 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -393,7 +395,6 @@ extracting icontainer icon files.") (package (name "libtiff") (version "4.0.9") - (replacement libtiff/fixed) (source (origin (method url-fetch) @@ -401,7 +402,9 @@ extracting icontainer icon files.") version ".tar.gz")) (sha256 (base32 - "1kfg4q01r4mqn7dj63ifhi6pmqzbf4xax6ni6kkk81ri5kndwyvf")))) + "1kfg4q01r4mqn7dj63ifhi6pmqzbf4xax6ni6kkk81ri5kndwyvf")) + (patches (search-patches "libtiff-CVE-2017-9935.patch" + "libtiff-CVE-2017-18013.patch")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.3 MiB of HTML documentation @@ -423,17 +426,6 @@ collection of tools for doing simple manipulations of TIFF images.") "See COPYRIGHT in the distribution.")) (home-page "http://www.simplesystems.org/libtiff/"))) -(define libtiff/fixed - (package - (inherit libtiff) - (source - (origin - (inherit (package-source libtiff)) - (patches - (append (origin-patches (package-source libtiff)) - (search-patches "libtiff-CVE-2017-9935.patch" - "libtiff-CVE-2017-18013.patch"))))))) - (define-public leptonica (package (name "leptonica") @@ -495,8 +487,9 @@ arithmetic ops.") (source (origin (method url-fetch) - (uri (string-append "http://downloads.ghostscript.com/public/" name "/" - name "-" version ".tar.gz")) + (uri + (string-append "https://github.com/ArtifexSoftware/ghostpdl-downloads/" + "releases/download/gs922/" name "-" version ".tar.gz")) (sha256 (base32 "0k01hp0q4275fj4rbr1gy64svfraw5w7wvwl08yjhvsnpb1rid11")) (patches (search-patches "jbig2dec-ignore-testtest.patch")))) @@ -512,7 +505,7 @@ This is a decoder only implementation, and currently is in the alpha stage, meaning it doesn't completely work yet. However, it is maintaining parity with available encoders, so it is useful for real work.") - (home-page "http://www.ghostscript.com/jbig2dec.html") + (home-page "https://jbig2dec.com") (license license:gpl2+))) (define-public openjpeg @@ -591,7 +584,8 @@ error-resilience, a Java-viewer for j2k-images, ...") (add-after 'unpack 'disable-html-doc-gen (lambda _ (substitute* "doc/Makefile.in" - (("^all: allhtml manpages") "")))) + (("^all: allhtml manpages") "")) + #t)) (add-after 'install 'install-manpages (lambda* (#:key outputs #:allow-other-keys) (let* ((bin (assoc-ref outputs "bin")) @@ -604,7 +598,8 @@ error-resilience, a Java-viewer for j2k-images, ...") (copy-file file (string-append man1dir "/" base)))) - (find-files "doc" "\\.1")))))))) + (find-files "doc" "\\.1")) + #t)))))) (synopsis "Tools and library for working with GIF images") (description "GIFLIB is a library for reading and writing GIF images. It is API and @@ -817,7 +812,14 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.") ("python2-sphinx" ,python2-sphinx))) (arguments `(#:test-target "check" - #:parallel-build? #f ; parallel builds trigger an ICE + #:phases + (modify-phases %standard-phases + ;; See https://github.com/ukoethe/vigra/issues/432 + (add-after 'unpack 'disable-broken-test + (lambda _ + (substitute* "test/fourier/CMakeLists.txt" + (("VIGRA_ADD_TEST.*") "")) + #t))) #:configure-flags (list "-Wno-dev" ; suppress developer mode with lots of warnings (string-append "-DVIGRANUMPY_INSTALL_DIR=" @@ -843,6 +845,39 @@ multi-dimensional image processing.") (license license:expat) (home-page "https://ukoethe.github.io/vigra/"))) +(define-public vigra-c + (let* ((commit "a2ff675f42079e2623318d8ff8b4288dbe7a7f06") + (revision "0") + (version (git-version "0.0.0" revision commit))) + (package + (name "vigra-c") + (version version) + (home-page "https://github.com/BSeppke/vigra_c") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (sha256 + (base32 + "1f1phmfbbz3dsq9330rd6bjmdg29hxskxi9l17cyx1f4mdqpgdgl")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) ; No test target. + (native-inputs + `(("doxygen" ,doxygen))) + (inputs + `(("fftw" ,fftw) + ("fftwf" ,fftwf) + ("vigra" ,vigra))) + (synopsis "C interface to the VIGRA computer vision library") + (description + "This package provides a C interface to the VIGRA C++ computer vision +library. It is designed primarily to ease the implementation of higher-level +language bindings to VIGRA.") + (license license:expat)))) + (define-public libwebp (package (name "libwebp") @@ -1366,3 +1401,50 @@ Features: images stored in the JPEG format with R. It can read and write both files and in-memory raw vectors.") (license license:gpl2+))) + +(define-public gifsicle + (package + (name "gifsicle") + (version "1.91") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.lcdf.org/gifsicle/gifsicle-" + version ".tar.gz")) + (sha256 + (base32 + "00586z1yz86qcblgmf16yly39n4lkjrscl52hvfxqk14m81fckha")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'patch-tests + (lambda _ + (substitute* "test/testie" + (("/usr/bin/perl") + (which "perl")) + (("/bin/sh") + (which "sh")) + (("/bin/rm") + (which "rm"))) + #t))))) + (native-inputs `(("perl" ,perl))) ; Only for tests. + (inputs `(("libx11" ,libx11))) + (home-page "http://www.lcdf.org/gifsicle/") + (synopsis "Edit GIF images and animations") + (description "Gifsicle is a command-line GIF image manipulation tool that: + +@itemize +@item Provides a batch mode for changing GIFs in place. +@item Prints detailed information about GIFs, including comments. +@item Control over interlacing, comments, looping, transparency, etc. +@item Creates well-behaved GIFs: removes redundant colors, only uses local color +tables, etc. +@item Shrinks colormaps and change images to use the Web-safe palette. +@item Optimizes GIF animations, or unoptimizes them for easier editing. +@end itemize + +Two other programs are included with Gifsicle: @command{gifview} is a +lightweight animated-GIF viewer, and @command{gifdiff} compares two GIFs for +identical visual appearance.") + (license license:gpl2+))) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index d3cc656f11..e80da6d848 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -47,14 +47,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.9-39") + (version "6.9.9-43") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0cgrvfg8722cdv2y0hw2f7xhzdfmfiqc1348l71ki38dg4b0q4sn")))) + "09vfxb1ljfma7mvkcqp17bs7adlrfh6kc6k9hifkhgxf51vr7hk6")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") @@ -77,7 +77,8 @@ (let ((doc (assoc-ref outputs "doc"))) (string-append "DOCUMENTATION_PATH = " doc "/share/doc/" - ,name "-" ,version "\n")))))) + ,name "-" ,version "\n")))) + #t)) (add-before 'configure 'strip-configure-xml (lambda _ @@ -87,7 +88,8 @@ ;; include --docdir, and thus retain a reference to the ;; 'doc' output. (("@CONFIGURE_ARGS@") - "not recorded"))))))) + "not recorded")) + #t))))) ;; TODO: Add Jasper etc. (inputs `(("fftw" ,fftw) ("graphviz" ,graphviz) @@ -144,7 +146,8 @@ text, lines, polygons, ellipses and Bézier curves.") (("my \\$INC_magick = .*") "my $INC_magick = `pkg-config --cflags ImageMagick`;\n") (("my \\$LIBS_magick = .*") - "my $LIBS_magick = `pkg-config --libs ImageMagick`;\n"))))) + "my $LIBS_magick = `pkg-config --libs ImageMagick`;\n")) + #t))) (add-before 'check 'skip-mpeg-tests (lambda _ @@ -152,7 +155,8 @@ text, lines, polygons, ellipses and Bézier curves.") ;; MPEG. Has been reported elsewhere, ;; http://www.imagemagick.org/discourse-server/viewtopic.php?f=7&t=25036, ;; so skip for now. - (delete-file "t/mpeg/read.t")))))) + (delete-file "t/mpeg/read.t") + #t))))) (home-page "http://search.cpan.org/dist/PerlMagick") (synopsis "Perl interface to ImageMagick") (description "This Perl extension allows the reading, manipulation and @@ -165,7 +169,7 @@ script.") (define-public graphicsmagick (package (name "graphicsmagick") - (version "1.3.28") + (version "1.3.29") (source (origin (method url-fetch) (uri @@ -177,7 +181,7 @@ script.") "/GraphicsMagick-" version ".tar.xz"))) (sha256 (base32 - "0jlrrimrajcmwp7llivyj14qnzb1mpqd8vw95dl6zbx5m2lnhall")))) + "1m0cc6kpky06lpcipj7rfwc2jbw2igr0jk97zqmw3j1ld5mg93g1")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/indent.scm b/gnu/packages/indent.scm deleted file mode 100644 index 4950a26121..0000000000 --- a/gnu/packages/indent.scm +++ /dev/null @@ -1,56 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge -;;; Copyright © 2014 Mark H Weaver -;;; -;;; 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 indent) - #:use-module (gnu packages) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public indent - (package - (name "indent") - (version "2.2.10") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/indent/indent-" version - ".tar.gz")) - (sha256 (base32 - "0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa")))) - (build-system gnu-build-system) - (arguments - `(#:phases (alist-cons-after - 'unpack 'fix-docdir - (lambda _ - ;; Although indent uses a modern autoconf in which docdir - ;; defaults to PREFIX/share/doc, the doc/Makefile.am - ;; overrides this to be in PREFIX/doc. Fix this. - (substitute* "doc/Makefile.in" - (("^docdir = .*$") "docdir = @docdir@\n"))) - %standard-phases))) - (synopsis "Code reformatter") - (description - "Indent is a program that makes source code easier to read by -reformatting it in a consistent style. It can change the style to one of -several different styles such as GNU, BSD or K&R. It has some flexibility to -deal with incomplete or malformed syntax. GNU indent offers several -extensions over the standard utility.") - (license license:gpl3+) - (home-page "https://www.gnu.org/software/indent/"))) diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index ffd5f60b38..de9940df1c 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -80,8 +80,13 @@ ;; FIXME: tests require gmock (arguments `(#:tests? #f - #:make-flags - '("gtk_update_icon_cache=true"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-icon-cache-generator + (lambda _ + (substitute* "share/icons/application/CMakeLists.txt" + (("gtk-update-icon-cache") "true")) + #t))))) (home-page "https://inkscape.org/") (synopsis "Vector graphics editor") (description "Inkscape is a vector graphics editor. What sets Inkscape diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 219e803089..993102f272 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -74,13 +74,15 @@ (sha256 (base32 "1qkl3sb4ijx4k17m0c42j2p5bc4jymypwhmplm942rbrzm6mg50q")) + (patches (search-patches "quassel-qt-5.11.patch")) (modules '((guix build utils))) ;; We don't want to install the bundled scripts. (snippet '(begin (delete-file-recursively "data/scripts") (substitute* "data/CMakeLists.txt" - (("NOT WIN32") "WIN32")))))) + (("NOT WIN32") "WIN32")) + #t)))) (build-system cmake-build-system) (arguments ;; The three binaries are not mutually exlusive, and are all built @@ -91,7 +93,7 @@ "-DUSE_QT5=ON" ; default is qt4 "-DWITH_KDE=OFF" ; no to kde integration ... "-DWITH_OXYGEN=ON" ; therefore we install bundled icons - "-DWITH_WEBKIT=OFF") ; qtwebkit isn't packaged + "-DWITH_WEBKIT=OFF") ; we don't depend on qtwebkit #:tests? #f)) ; no test target (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 90fd07c597..678cbee188 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Roel Janssen ;;; Copyright © 2017 Carlo Zancanaro -;;; Copyright © 2017 Julien Lepiller +;;; Copyright © 2017, 2018 Julien Lepiller ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2016, 2017, 2018 Alex Vong ;;; Copyright © 2017 Tobias Geerinckx-Rice @@ -53,6 +53,7 @@ #:use-module (gnu packages gnuzilla) ;nss #:use-module (gnu packages ghostscript) ;lcms #:use-module (gnu packages gnome) + #:use-module (gnu packages groovy) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) @@ -60,6 +61,7 @@ #:use-module (gnu packages libffi) #:use-module (gnu packages linux) ;alsa #:use-module (gnu packages maths) + #:use-module (gnu packages onc-rpc) #:use-module (gnu packages web) #:use-module (gnu packages wget) #:use-module (gnu packages pkg-config) @@ -550,9 +552,10 @@ machine."))) "--disable-gjdoc") #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif")))) + ;; XXX The bootstrap phase executes autogen.sh, which fails after + ;; complaining about the lack of gettext. + (replace 'bootstrap + (lambda _ (invoke "autoreconf" "-vif"))) (add-after 'unpack 'remove-unsupported-annotations (lambda _ (substitute* (find-files "java" "\\.java$") @@ -621,10 +624,12 @@ machine."))) "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - ;; do not leak information about the build host - (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") - "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) + '(begin + (substitute* "Makefile.in" + ;; do not leak information about the build host + (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") + "DISTRIBUTION_ID=\"\\\"guix\\\"\"")) + #t)))) (build-system gnu-build-system) (outputs '("out" ; Java Runtime Environment "jdk" ; Java Development Kit @@ -844,6 +849,7 @@ machine."))) ("fastjar" ,fastjar) ("fontconfig" ,fontconfig) ("freetype" ,freetype) + ("gcc" ,gcc-4.9) ; there's a segmentation fault when compiling with gcc-5 or gcc-7 ("gtk" ,gtk+-2) ("gawk" ,gawk) ("giflib" ,giflib) @@ -851,6 +857,7 @@ machine."))) ("jamvm" ,jamvm) ("lcms" ,lcms) ("libjpeg" ,libjpeg) + ("libnsl" ,libnsl) ("libpng" ,libpng) ("libtool" ,libtool) ("libx11" ,libx11) @@ -967,10 +974,12 @@ bootstrapping purposes.") "1w331rdqx1dcx2xb0fmjmrkdc71xqn20fxsgw8by4xhiblh88khh")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - ;; do not leak information about the build host - (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") - "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) + '(begin + (substitute* "Makefile.in" + ;; do not leak information about the build host + (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") + "DISTRIBUTION_ID=\"\\\"guix\\\"\"")) + #t)))) (build-system gnu-build-system) (outputs '("out" ; Java Runtime Environment "jdk" ; Java Development Kit @@ -1398,6 +1407,7 @@ bootstrapping purposes.") ("coreutils" ,coreutils) ("diffutils" ,diffutils) ;for tests ("gawk" ,gawk) + ("gcc" ,gcc-4.9) ; there's a segmentation fault when compiling with gcc-5 ("grep" ,grep) ("libtool" ,libtool) ("pkg-config" ,pkg-config) @@ -2280,6 +2290,8 @@ libraries from the SIS division at ETH Zurich like jHDF5.") #:jdk ,icedtea-8 #:phases (modify-phases %standard-phases + ;; FIXME: this build phase fails. + (delete 'generate-jar-indices) ;; Don't erase results from the build phase when building tests. (add-after 'unpack 'separate-test-target-from-clean (lambda _ @@ -4263,6 +4275,64 @@ from within Java, as well as an object registry that exposes Java objects to these scripting language engines.") (license license:asl2.0))) +(define-public java-commons-jxpath + (package + (name "java-commons-jxpath") + (version "1.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/jxpath/source/" + "commons-jxpath-" version "-src.tar.gz")) + (sha256 + (base32 + "1rpgg31ayn9fwr4bfi2i1ij0npcg79ad2fv0w9hacvawsyc42cfs")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "commons-jxpath.jar" + ;; tests require more dependencies, including mockrunner which depends on old software + #:tests? #f + #:source-dir "src/java")) + (inputs + `(("java-tomcat" ,java-tomcat) + ("java-jdom" ,java-jdom) + ("java-commons-beanutils" ,java-commons-beanutils))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://commons.apache.org/jxpath/") + (synopsis "Simple interpreter of an expression language called XPath.") + (description "The org.apache.commons.jxpath package defines a simple +interpreter of an expression language called XPath. JXPath applies XPath +expressions to graphs of objects of all kinds: JavaBeans, Maps, Servlet +contexts, DOM etc, including mixtures thereof.") + (license license:asl2.0))) + +(define-public java-jsr250 + (package + (name "java-jsr250") + (version "1.3") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "javax/annotation/javax.annotation-api/" + version "/javax.annotation-api-" + version "-sources.jar")) + (sha256 + (base32 + "08clh8n4n9wfglf75qsqfjs6yf79f7x6hqx38cn856pksszv50kz")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jdk ,icedtea-8 + #:jar-name "jsr250.jar")) + (home-page "https://jcp.org/en/jsr/detail?id=250") + (synopsis "Security-related annotations") + (description "This package provides annotations for security. It provides +packages in the @code{javax.annotation} and @code{javax.annotation.security} +namespaces.") + ;; either cddl or gpl2 only, with classpath exception + (license (list license:cddl1.0 + license:gpl2)))) + (define-public java-jsr305 (package (name "java-jsr305") @@ -8166,6 +8236,7 @@ algorithms and xxHash hashing algorithm.") (build-system ant-build-system) (arguments `(#:jdk ,icedtea-8 + #:tests? #f #:phases (modify-phases %standard-phases (replace 'build @@ -8173,9 +8244,10 @@ algorithms and xxHash hashing algorithm.") (invoke "ant" "-f" "ant/jdk15+.xml" "build-provider") (invoke "ant" "-f" "ant/jdk15+.xml" "build") #t)) - (replace 'check - (lambda _ - (invoke "ant" "-f" "ant/jdk15+.xml" "test"))) + ;; FIXME: the tests freeze. + ;; (replace 'check + ;; (lambda _ + ;; (invoke "ant" "-f" "ant/jdk15+.xml" "test"))) (replace 'install (install-jars "build/artifacts/jdk1.5/jars"))))) (inputs @@ -9806,3 +9878,278 @@ and reporting) project dependencies. It is characterized by the following: reporting and publication. @end itemize") (license license:asl2.0))) + +(define-public java-eclipse-sisu-inject + (package + (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")) + (sha256 + (base32 + "11rg6yw5nl13i65xsp4jxxgr341qcnnaan48p767h28kb07s0ajn")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "eclipse-sisu-inject.jar" + #:source-dir "org.eclipse.sisu.inject/src" + #:jdk ,icedtea-8 + #:tests? #f)); no tests + (inputs + `(("java-guice" ,java-guice) + ("java-guice-servlet" ,java-guice-servlet) + ("java-javax-inject" ,java-javax-inject) + ("java-tomcat" ,java-tomcat) + ("java-junit" ,java-junit) + ("java-slf4j-api" ,java-slf4j-api) + ("java-jsr305" ,java-jsr305) + ("java-jsr250" ,java-jsr250) + ("java-cdi-api" ,java-cdi-api) + ("java-osgi-framework" ,java-osgi-framework) + ("java-osgi-util-tracker" ,java-osgi-util-tracker) + ("java-testng" ,java-testng))) + (home-page "https://www.eclipse.org/sisu/") + (synopsis "Classpath scanning, auto-binding, and dynamic auto-wiring") + (description "Sisu is a modular JSR330-based container that supports +classpath scanning, auto-binding, and dynamic auto-wiring. Sisu uses +Google-Guice to perform dependency injection and provide the core JSR330 +support, but removes the need to write explicit bindings in Guice modules. +Integration with other containers via the Eclipse Extension Registry and the +OSGi Service Registry is a goal of this project.") + (license license:epl1.0))) + +(define-public java-eclipse-sisu-plexus + (package + (name "java-eclipse-sisu-plexus") + (version "0.3.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/eclipse/sisu.plexus/" + "archive/releases/" version ".tar.gz")) + (sha256 + (base32 + "0lbj7nxy5j0z71k407zbb82icfqh7midrfk0fb3fa3jzdjz0d9d9")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file (find-files "." ".*.jar")) + (rename-file "org.eclipse.sisu.plexus.tests/src" + "org.eclipse.sisu.plexus.tests/java") + #t)))) + (build-system ant-build-system) + (arguments + `(#:jar-name "eclipse-sisu-plexus.jar" + #:source-dir "org.eclipse.sisu.plexus/src" + #:test-dir "org.eclipse.sisu.plexus.tests" + #:test-exclude + (list + ;; This test fails probably because we can't generate the necessary + ;; meta-inf files. + "**/PlexusLoggingTest.*" + ;; FIXME: This test fails because of some injection error + "**/PlexusRequirementTest.*") + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'build 'copy-resources + (lambda _ + (install-file "org.eclipse.sisu.plexus/META-INF/plexus/components.xml" + "build/classes/META-INF/plexus") + #t)) + (add-before 'check 'build-test-jar + (lambda _ + (with-directory-excursion "org.eclipse.sisu.plexus.tests/resources/component-jar/src/main/" + (mkdir "build") + (with-directory-excursion "java" + (apply invoke "javac" "-cp" + (string-append (getenv "CLASSPATH") + ":../../../../../build/classes") + (find-files "." ".*.java")) + (for-each (lambda (file) (install-file file (string-append "../build/" file))) + (find-files "." ".*.jar"))) + (mkdir-p "build/META-INF/plexus") + (copy-file "resources/META-INF/plexus/components.xml" + "build/META-INF/plexus/components.xml") + (with-directory-excursion "build" + (invoke "jar" "cf" "../../../component-jar-0.1.jar" "."))) + (with-directory-excursion "org.eclipse.sisu.plexus.tests/" + (copy-recursively "META-INF" "../build/test-classes/META-INF") + (substitute* "java/org/eclipse/sisu/plexus/DefaultPlexusContainerTest.java" + (("resources/component-jar") + "org.eclipse.sisu.plexus.tests/resources/component-jar"))) + #t))))) + (inputs + `(("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-plexus-util" ,java-plexus-utils) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-osgi-framework" ,java-osgi-framework) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-guice" ,java-guice) + ("java-javax-inject" ,java-javax-inject) + ("java-slf4j-api" ,java-slf4j-api) + ("java-junit" ,java-junit))) + (native-inputs + `(("java-guava" ,java-guava) + ("java-aopalliance" ,java-aopalliance) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm))) + (home-page "https://www.eclipse.org/sisu/") + (synopsis "Plexus support for the sisu container") + (description "Sisu is a modular JSR330-based container that supports +classpath scanning, auto-binding, and dynamic auto-wiring. This package +adds Plexus support to the Sisu-Inject container.") + (license license:epl1.0))) + +(define-public java-commons-compiler + (package + (name "java-commons-compiler") + (version "3.0.8") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janino-compiler/janino") + (commit "91aa95686d1e4ca3b16a984a03a38686572331b2"))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "04hfdl59sgh20qkxzgnibvs8f9hy6n7znxwpk611y5d89977y62r")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file + (find-files "." "\\.jar$")) + #t)))) + (build-system ant-build-system) + (arguments + `(#:jar-name "commons-compiler.jar" + #:source-dir "commons-compiler/src/main" + #:tests? #f)); no tests + (home-page "https://github.com/janino-compiler/janino") + (synopsis "Java compiler") + (description "Commons-compiler contains an API for janino, including the +@code{IExpressionEvaluator}, @code{IScriptEvaluator}, @code{IClassBodyEvaluator} +and @code{ISimpleCompiler} interfaces.") + (license license:bsd-3))) + +(define-public java-janino + (package + (inherit java-commons-compiler) + (name "java-janino") + (arguments + `(#:jar-name "janino.jar" + #:source-dir "src/main/java" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "janino")))))) + (inputs + `(("java-commons-compiler" ,java-commons-compiler))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (description "Janino is a Java compiler. Janino can compile a set of +source files to a set of class files like @code{javac}, but also compile a +Java expression, block, class body or source file in memory, load the bytecode +and execute it directly in the same JVM. @code{janino} can also be used for +static code analysis or code manipulation."))) + +(define-public java-logback-core + (package + (name "java-logback-core") + (version "1.2.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/qos-ch/logback/archive/v_" + version ".tar.gz")) + (sha256 + (base32 + "1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi")) + (modules '((guix build utils))) + (snippet + '(delete-file-recursively "logback-access/lib")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "logback.jar" + #:source-dir "src/main/java" + #:test-dir "src/test" + #:test-exclude + ;; These tests fail with Unable to set MockitoNamingPolicy on cglib generator + ;; which creates FastClasses + (list "**/AllCoreTest.*" + "**/AutoFlushingObjectWriterTest.*" + "**/PackageTest.*" + "**/ResilientOutputStreamTest.*" + ;; And we still don't want to run abstract classes + "**/Abstract*.*") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "logback-core") + #t))))) + (inputs + `(("java-javax-mail" ,java-javax-mail) + ("java-tomcat" ,java-tomcat) + ("java-commons-compiler" ,java-commons-compiler) + ("java-janino" ,java-janino))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-mockito-1" ,java-mockito-1) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-objenesis" ,java-objenesis) + ("java-joda-time" ,java-joda-time))) + (home-page "https://logback.qos.ch") + (synopsis "Logging for java") + (description "Logback is intended as a successor to the popular log4j project. +This module lays the groundwork for the other two modules.") + ;; Either epl1.0 or lgpl2.1 + (license (list license:epl1.0 + license:lgpl2.1)))) + +(define-public java-logback-classic + (package + (inherit java-logback-core) + (name "java-logback-classic") + (arguments + `(#:jar-name "logback-classic.jar" + #:source-dir "src/main/java" + #:test-dir "src/test" + #:tests? #f; tests require more packages: h2, greenmail, hsql, subethamail, slf4j, log4j, felix + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "logback-classic") + #t)) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "build/classes") + (setenv "CLASSPATH" + (string-join + (apply append (map (lambda (input) + (find-files (assoc-ref inputs input) + ".*.jar")) + '("java-logback-core" "java-slf4j-api" + "java-commons-compiler" "java-tomcat" + "groovy"))) + ":")) + (apply invoke "groovyc" "-d" "build/classes" "-j" + (find-files "src/main/" ".*\\.(groovy|java)$")) + (invoke "ant" "jar") + #t))))) + (inputs + `(("java-logback-core" ,java-logback-core) + ("java-slf4j-api" ,java-slf4j-api) + ,@(package-inputs java-logback-core))) + (native-inputs + `(("groovy" ,groovy))) + (description "Logback is intended as a successor to the popular log4j project. +This module can be assimilated to a significantly improved version of log4j. +Moreover, @code{logback-classic} natively implements the slf4j API so that you +can readily switch back and forth between logback and other logging frameworks +such as log4j or @code{java.util.logging} (JUL)."))) diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm index a54d4ecabd..3a9e88ad08 100644 --- a/gnu/packages/javascript.scm +++ b/gnu/packages/javascript.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,10 +61,10 @@ %build-inputs)) (let ((install-directory (string-append %output "/share/fonts/mathjax"))) (mkdir-p install-directory) - (zero? (system* "tar" "-C" install-directory "-xvf" - (assoc-ref %build-inputs "source") - ,(string-append "MathJax-" version "/fonts") - "--strip" "2")))))) + (invoke "tar" "-C" install-directory "-xvf" + (assoc-ref %build-inputs "source") + ,(string-append "MathJax-" version "/fonts") + "--strip" "2"))))) (native-inputs `(("gzip" ,gzip) ("tar" ,tar))) @@ -94,10 +95,10 @@ (list (assoc-ref %build-inputs "glibc-utf8-locales"))) (setenv "LANG" "en_US.UTF-8") (let ((install-directory (string-append %output "/share/javascript/mathjax"))) - (system* "tar" "xvf" (assoc-ref %build-inputs "source") - ,(string-append "MathJax-" (package-version font-mathjax) - "/unpacked") - "--strip" "2") + (invoke "tar" "xvf" (assoc-ref %build-inputs "source") + ,(string-append "MathJax-" (package-version font-mathjax) + "/unpacked") + "--strip" "2") (mkdir-p install-directory) (symlink (string-append (assoc-ref %build-inputs "font-mathjax") "/share/fonts/mathjax") @@ -118,7 +119,9 @@ (dump-port minified port))))) (else (install-file file (dirname installed)))))) - (find-files ".")))))) + (find-files ".")) + + #t)))) (native-inputs `(("font-mathjax" ,font-mathjax) ("glibc-utf8-locales" ,glibc-utf8-locales) @@ -159,9 +162,9 @@ be able to view it naturally and easily."))) %build-inputs)) (let ((install-directory (string-append %output "/share/javascript/respond/"))) - (system* "tar" "xvf" - (assoc-ref %build-inputs "source") - "--strip" "1") + (invoke "tar" "xvf" + (assoc-ref %build-inputs "source") + "--strip" "1") (mkdir-p install-directory) (let* ((file "src/respond.js") (installed (string-append install-directory "respond.min.js"))) @@ -368,6 +371,44 @@ to ES5 without causing run-time errors in older engines. In many cases, this means that these shams cause many ES5 methods to silently fail.") (license license:expat))) +(define-public js-filesaver + (package + (name "js-filesaver") + (version "1.3.8") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/eligrey/FileSaver.js/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "1rkhfqs5plaj628kzj7qgm5qahy4v7ihygifidqr6g6265mil97h")))) + (build-system minify-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-uglification + ;; Remove "export" keyword which prevents the file from being + ;; uglified by uglify-js. Moreover, that keyword is not present in + ;; the minified version of the library some projects are using, + ;; e.g., + ;; + (lambda _ + (substitute* "src/FileSaver.js" + (("export ") "")) + #t))))) + (home-page + "https://eligrey.com/blog/saving-generated-files-on-the-client-side/") + (synopsis "HTML5 saveAs() FileSaver implementation") + (description "@file{FileSaver.js} implements the @code{saveAs()} +FileSaver interface in browsers that do not natively support it. + +@file{FileSaver.js} is the solution to saving files on the +client-side, and is perfect for webapps that need to generate files, +or for saving sensitive information that shouldn't be sent to an +external server.") + (license license:expat))) + (define-public mujs (package (name "mujs") diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index b763a03476..7dc2cf37fe 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -117,7 +117,8 @@ (substitute* "modules/ECMGeneratePriFile.cmake" ;; Install pri-files into lib/qt5/mkspecs (("set\\(ECM_MKSPECS_INSTALL_DIR mkspecs/modules") - "set(ECM_MKSPECS_INSTALL_DIR lib/qt5/mkspecs/modules")))) + "set(ECM_MKSPECS_INSTALL_DIR lib/qt5/mkspecs/modules")) + #t)) ;; install and check phase are swapped to prevent install from failing ;; after testsuire has run (add-after 'install 'check-post-install @@ -141,7 +142,7 @@ common build settings used in software produced by the KDE community.") (define-public phonon (package (name "phonon") - (version "4.10.0") + (version "4.10.1") (source (origin (method url-fetch) (uri (string-append @@ -150,7 +151,7 @@ common build settings used in software produced by the KDE community.") name "-" version ".tar.xz")) (sha256 (base32 - "0gyhlnwamzfw31kw4qh0v6rj0m47k9wfygd6h07klg9ggp60xhg2")))) + "1dwdw0hm6685psrp7v9frhkhqvsxrbdnm3gw794j5z7g3brqvag5")))) (build-system cmake-build-system) (native-inputs ;; TODO: Think about adding pulseaudio. Is it required for sound? diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm index 4ef604d02a..22d74d32df 100644 --- a/gnu/packages/kerberos.scm +++ b/gnu/packages/kerberos.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2012, 2013 Nikita Karetnikov ;;; Copyright © 2012, 2017 Ludovic Courtès ;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017 Alex Vong ;;; ;;; This file is part of GNU Guix. ;;; @@ -135,27 +136,26 @@ secure manner through client-server mutual authentication via tickets.") (define-public heimdal (package (name "heimdal") - (version "1.5.3") + (version "7.5.0") (source (origin (method url-fetch) - (uri (string-append "http://www.h5l.org/dist/src/heimdal-" - version ".tar.gz")) + (uri (string-append + "https://github.com/heimdal/heimdal/releases/download/" + "heimdal-" version "/" "heimdal-" version ".tar.gz")) (sha256 (base32 - "19gypf9vzfrs2bw231qljfl4cqc1riyg0ai0xmm1nd1wngnpphma")) - (patches (search-patches "heimdal-CVE-2017-6594.patch" - "heimdal-CVE-2017-11103.patch")) + "1bdc682in55ygrxmhncs7cf4s239apcblci3z8i80wnc1w1s18n5")) (modules '((guix build utils))) (snippet - '(substitute* "configure" - (("User=.*$") "User=Guix\n") - (("Date=.*$") "Date=2017\n"))))) + '(begin + (substitute* "configure" + (("User=.*$") "User=Guix\n") + (("Host=.*$") "Host=GNU") + (("Date=.*$") "Date=2017\n")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags (list - ;; Work around a linker error. - "CFLAGS=-pthread" - ;; Avoid 7 MiB of .a files. "--disable-static" @@ -165,22 +165,40 @@ secure manner through client-server mutual authentication via tickets.") (assoc-ref %build-inputs "readline") "/lib") (string-append "--with-readline-include=" - (assoc-ref %build-inputs "readline") "/include")) + (assoc-ref %build-inputs "readline") "/include") + + ;; Do not build sqlite. + (string-append + "--with-sqlite3=" + (assoc-ref %build-inputs "sqlite"))) #:phases (modify-phases %standard-phases - (add-before 'check 'skip-tests + (add-before 'configure 'pre-configure (lambda _ - ;; The test simply runs 'ftp --version && ftp --help' - ;; but that fails in the chroot because 'ftp' tries to - ;; do a service lookup before printing the help/version. - (substitute* "appl/ftp/ftp/Makefile.in" - (("^CHECK_LOCAL =.*") - "CHECK_LOCAL = no-check-local\n")) - #t))))) - (native-inputs `(("e2fsprogs" ,e2fsprogs))) ;for 'compile_et' + (substitute* '("appl/afsutil/pagsh.c" + "tools/Makefile.in") + (("/bin/sh") (which "sh"))) + #t)) + (add-before 'check 'pre-check + (lambda _ + ;; For 'getxxyyy-test'. + (setenv "USER" (passwd:name (getpwuid (getuid)))) + + ;; Skip 'db' and 'kdc' tests for now. + ;; FIXME: figure out why 'kdc' tests fail. + (with-output-to-file "tests/db/have-db.in" + (lambda () + (format #t "#!~a~%exit 1~%" (which "sh")))) + #t))) + ;; Tests fail when run in parallel. + #:parallel-tests? #f)) + (native-inputs `(("e2fsprogs" ,e2fsprogs) ;for 'compile_et' + ("texinfo" ,texinfo) + ("unzip" ,unzip))) ;for tests (inputs `(("readline" ,readline) ("bdb" ,bdb) - ("e2fsprogs" ,e2fsprogs))) ;for libcom_err + ("e2fsprogs" ,e2fsprogs) ;for libcom_err + ("sqlite" ,sqlite))) (home-page "http://www.h5l.org/") (synopsis "Kerberos 5 network authentication") (description diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index ad66a846d4..6f8571d22a 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -146,8 +146,6 @@ generator library for C++.") '(#:tests? #f #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vif")))) (delete 'configure) (delete 'build) (replace 'install @@ -183,8 +181,6 @@ generator library for C++.") '(#:tests? #f #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vif")))) (delete 'configure) (delete 'build) (replace 'install @@ -220,8 +216,6 @@ generator library for C++.") '(#:tests? #f #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vif")))) (delete 'configure) (delete 'build) (replace 'install diff --git a/gnu/packages/ld-wrapper.in b/gnu/packages/ld-wrapper.in index 82bd2196cf..16780c58f6 100644 --- a/gnu/packages/ld-wrapper.in +++ b/gnu/packages/ld-wrapper.in @@ -15,7 +15,7 @@ main="(@ (gnu build-support ld-wrapper) ld-wrapper)" exec @GUILE@ -c "(load-compiled \"@SELF@.go\") (apply $main (cdr (command-line)))" "$@" !# ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -81,7 +81,19 @@ exec @GUILE@ -c "(load-compiled \"@SELF@.go\") (apply $main (cdr (command-line)) (define %allow-impurities? ;; Whether to allow references to libraries outside the store. - (getenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES")) + ;; Allow them by default for convenience. + (let ((value (getenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES"))) + (or (not value) + (let ((value (string-downcase value))) + (cond ((member value '("yes" "y" "t" "true" "1")) + #t) + ((member value '("no" "n" "f" "false" "0")) + #f) + (else + (format (current-error-port) + "ld-wrapper: ~s: invalid value for \ +'GUIX_LD_WRAPPER_ALLOW_IMPURITIES'~%" + value))))))) (define %debug? ;; Whether to emit debugging output. @@ -217,8 +229,8 @@ exec @GUILE@ -c "(load-compiled \"@SELF@.go\") (apply $main (cdr (command-line)) (begin (format (current-error-port) "ld-wrapper: error: attempt to use \ -impure library ~s~%" - file) +library outside of ~a: ~s~%" + %store-directory file) (exit 1))))) '() library-files)) @@ -270,7 +282,8 @@ impure library ~s~%" "ld-wrapper: libraries linked: ~s~%" libs) (format (current-error-port) "ld-wrapper: invoking `~a' with ~s~%" - %real-ld args)) + %real-ld args) + (force-output (current-error-port))) (apply execl %real-ld (basename %real-ld) args))) ;;; ld-wrapper.scm ends here diff --git a/gnu/packages/libbsd.scm b/gnu/packages/libbsd.scm index 3bfa2a3fec..58b0be872c 100644 --- a/gnu/packages/libbsd.scm +++ b/gnu/packages/libbsd.scm @@ -25,14 +25,14 @@ (define-public libbsd (package (name "libbsd") - (version "0.8.3") + (version "0.8.7") (source (origin (method url-fetch) (uri (string-append "https://libbsd.freedesktop.org/releases/" "libbsd-" version ".tar.xz")) (sha256 (base32 - "1a1l7afchlvvj2zfi7ajcg26bbkh5i98y2v5h9j5p1px9m7n6jwk")))) + "0c9bl49zs0xdddcwj5dh0lay9sxi2m1yi74848g8p87mb87g2j7m")))) (build-system gnu-build-system) (synopsis "Utility functions from BSD systems") (description "This library provides useful functions commonly found on BSD diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index d6b70a4f17..983c8625e4 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -121,14 +121,14 @@ limited support for fork events.") (define-public libuv (package (name "libuv") - (version "1.18.0") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append "https://dist.libuv.org/dist/v" version "/libuv-v" version ".tar.gz")) (sha256 (base32 - "125bzmzc32m52hd9iv8jvjlc7r3gadxgvp31a2fz2wlil16p7r2l")))) + "1msk9ac1z69whww88ibrwjqkd1apdla6l77cm2fwy5kigq0z5g3w")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -136,7 +136,7 @@ limited support for fork events.") (lambda _ ;; Fashionable people don't run 'make dist' these days, so ;; we need to do that ourselves. - (zero? (system* "sh" "autogen.sh"))))) + (invoke "sh" "autogen.sh")))) ;; XXX: Some tests want /dev/tty, attempt to make connections, etc. #:tests? #f)) diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm index 80a21c0264..0d54c305b2 100644 --- a/gnu/packages/libffi.scm +++ b/gnu/packages/libffi.scm @@ -36,29 +36,28 @@ #:use-module (guix build-system ruby)) (define-public libffi - (let ((post-install-phase - ;; Keep headers where libffi.pc expects them, but also make them - ;; available in $includedir where some users expect them. - '(lambda* (#:key outputs #:allow-other-keys) - (define out (assoc-ref outputs "out")) - (symlink (string-append out "/lib/libffi-3.2.1/include") - (string-append out "/include"))))) - (package + (package (name "libffi") (version "3.2.1") (source (origin - (method url-fetch) - (uri - (string-append "ftp://sourceware.org/pub/libffi/" - name "-" version ".tar.gz")) - (sha256 - (base32 - "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh")) - (patches (search-patches "libffi-3.2.1-complex-alpha.patch")))) + (method url-fetch) + (uri + (string-append "ftp://sourceware.org/pub/libffi/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh")) + (patches (search-patches "libffi-3.2.1-complex-alpha.patch")))) (build-system gnu-build-system) - (arguments `(#:phases (alist-cons-after 'install 'post-install - ,post-install-phase - %standard-phases))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (define out (assoc-ref outputs "out")) + (symlink (string-append out "/lib/libffi-3.2.1/include") + (string-append out "/include")) + #t))))) (outputs '("out" "debug")) (synopsis "Foreign function call interface library") (description @@ -75,7 +74,7 @@ conversions for values passed between the two languages.") (home-page "http://sources.redhat.com/libffi/") ;; See . - (license expat)))) + (license expat))) (define-public python-cffi (package diff --git a/gnu/packages/libidn.scm b/gnu/packages/libidn.scm index c2290b53af..249c3f8458 100644 --- a/gnu/packages/libidn.scm +++ b/gnu/packages/libidn.scm @@ -32,14 +32,14 @@ (define-public libidn (package (name "libidn") - (version "1.33") + (version "1.34") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libidn/libidn-" version ".tar.gz")) (sha256 (base32 - "068fjg2arlppjqqpzd714n1lf6gxkpac9v5yyvp1qwmv6nvam9s4")) + "0g3fzypp0xjcgr90c5cyj57apx1cmy0c6y9lvw2qdcigbyby469p")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index adcdff1ca1..33ecdc47f0 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -6,9 +6,10 @@ ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Andy Wingo -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2018 Ludovic Courtès ;;; Copyright © 2017, 2018 Marius Bakke ;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -78,20 +79,21 @@ (define-public ixion (package (name "ixion") - (version "0.12.2") + (version "0.13.0") (source (origin - (method url-fetch) - (uri (string-append "http://kohei.us/files/ixion/src/libixion-" - version ".tar.xz")) - (sha256 (base32 - "1bnsqbxpbijwbg42rrqq6mz06wvcxjpl0gjdzwyilkmv6s400i4b")))) + (method url-fetch) + (uri (string-append "http://kohei.us/files/ixion/src/libixion-" + version ".tar.xz")) + (sha256 + (base32 + "1rf76drzg593jzswwnh8kr2jangp8ylizqjspx57rld25g2n1qss")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) - (inputs - `(("mdds" ,mdds) - ("python" ,python))) + (inputs + `(("mdds" ,mdds) + ("python" ,python))) (home-page "https://gitlab.com/ixion/ixion") (synopsis "General purpose formula parser and interpreter") (description "Ixion is a library for calculating the results of formula @@ -103,22 +105,23 @@ their dependencies automatically upon calculation.") (define-public orcus (package (name "orcus") - (version "0.12.1") + (version "0.13.4") (source (origin - (method url-fetch) - (uri (string-append "http://kohei.us/files/" name "/src/lib" - name "-" version ".tar.xz")) - (sha256 (base32 - "171bmqa9hkk4xygz20qda5900rs4kq9fgl424ldkxlj4d733dffi")))) + (method url-fetch) + (uri (string-append "http://kohei.us/files/" name "/src/lib" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1r42waglxwmvvwl20fy49vzgfp1sis4j703f81iswzdyzqalq75p")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) - (inputs - `(("ixion" ,ixion) - ("mdds" ,mdds) - ("python" ,python) - ("zlib" ,zlib))) + (inputs + `(("ixion" ,ixion) + ("mdds" ,mdds) + ("python" ,python) + ("zlib" ,zlib))) (home-page "https://gitlab.com/orcus/orcus") (synopsis "File import filter library for spreadsheet documents") (description "Orcus is a library that provides a collection of standalone @@ -224,6 +227,34 @@ cellphones), TCR (simple compressed text format), TealDoc, zTXT, ZVR (simple compressed text format).") (license mpl2.0))) +(define-public libepubgen + (package + (name "libepubgen") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libepubgen/libepubgen-" + version "/libepubgen-" version ".tar.xz")) + (sha256 + (base32 + "1b8mc9zzrqypj1v9zdy3ybc48pw0rfr06cyi7n6grvybjjwq9q03")))) + (build-system gnu-build-system) + (native-inputs + `(("cppunit" ,cppunit) + ("pkg-config" ,pkg-config))) + (inputs + `(("libxml2" ,libxml2) + ("boost" ,boost))) + (propagated-inputs ; in Requires field of .pkg + `(("librevenge" ,librevenge))) + (home-page "https://sourceforge.net/projects/libepubgen/") + (synopsis "EPUB generator library for librevenge") + (description "libepubgen is an EPUB generator for librevenge. It supports +librevenge's text document interface and--currently in a very limited +way--presentation and vector drawing interfaces.") + (license mpl2.0))) + (define-public libwpg (package (name "libwpg") @@ -705,12 +736,6 @@ Zoner Draw version 4 and 5.") ("libtool" ,libtool))) (inputs `(("perl" ,perl))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "autoreconf" "-vfi") #t))))) (native-search-paths (list (search-path-specification (variable "DICPATH") (files '("share/hunspell"))))) @@ -752,8 +777,8 @@ word compounding or character encoding.") (doc (string-append out "/share/doc/" ,name)) (unzip (assoc-ref %build-inputs "unzip"))) - (system* (string-append unzip "/bin/unzip") - (assoc-ref %build-inputs "source")) + (invoke (string-append unzip "/bin/unzip") + (assoc-ref %build-inputs "source")) (for-each (cut install-file <> hunspell) (find-files "." ,(string-append variant @@ -841,10 +866,37 @@ and to return information on pronunciations, meanings and synonyms.") (license (non-copyleft "file://COPYING" "See COPYING in the distribution.")))) +(define-public libqxp + (package + (name "libqxp") + (version "0.0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://dev-www.libreoffice.org/src/libqxp/" + "libqxp-" version ".tar.xz")) + (sha256 + (base32 + "0wswz49y0lqwqw2nj9j7jaj5ag88hapcz8czgkxax57zhihpy9cc")))) + (build-system gnu-build-system) + (inputs + `(("boost" ,boost) + ("icu4c" ,icu4c) + ("zlib" ,zlib))) + (native-inputs + `(("cppunit" ,cppunit) + ("pkg-config" ,pkg-config))) + (propagated-inputs + `(("librevenge" ,librevenge))) ; mentioned in Requires field + (home-page "https://www.libreoffice.org") + (synopsis "Library and tools for the QuarkXPress file format") + (description "libqxp is a library and a set of tools for reading and +converting QuarkXPress file format. It supports versions 3.1 to 4.1.") + (license mpl2.0))) + (define-public libreoffice (package (name "libreoffice") - (version "5.4.6.2") + (version "6.0.5.1") (source (origin (method url-fetch) @@ -854,7 +906,8 @@ and to return information on pronunciations, meanings and synonyms.") (version-prefix version 3) "/libreoffice-" version ".tar.xz")) (sha256 (base32 - "0icd8h221gp2dsbn6d35flwhqhcfpx66cjc5dg8yifhhvrfam74i")))) + "0vnmb231hyhxm7klaqd8vp3rmvix145bq8iqzv19jgl1yaqkxl21")) + (patches (search-patches "libreoffice-icu.patch")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) @@ -886,6 +939,7 @@ and to return information on pronunciations, meanings and synonyms.") ("libcmis" ,libcmis) ("libjpeg-turbo" ,libjpeg-turbo) ("libe-book" ,libe-book) + ("libepubgen" ,libepubgen) ("libetonyek" ,libetonyek) ("libexttextcat" ,libexttextcat) ("libfreehand" ,libfreehand) @@ -896,6 +950,7 @@ and to return information on pronunciations, meanings and synonyms.") ("libmwaw" ,libmwaw) ("libodfgen" ,libodfgen) ("libpagemaker" ,libpagemaker) + ("libqxp" ,libqxp) ("libstaroffice" ,libstaroffice) ("libvisio" ,libvisio) ("libwpg" ,libwpg) @@ -933,34 +988,23 @@ and to return information on pronunciations, meanings and synonyms.") (modify-phases %standard-phases (add-before 'configure 'prepare-src (lambda* (#:key inputs #:allow-other-keys) - (let ((gpgme (assoc-ref inputs "gpgme"))) - (substitute* - "sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx" - ;; This header was renamed in Poppler 0.62.0. - (("UTF8.h") "UnicodeMapFuncs.h") - ;; And mapUCS2() was renamed to mapUTF16(). - (("UCS2") "UTF16")) - (substitute* + (substitute* (list "sysui/CustomTarget_share.mk" "solenv/gbuild/gbuild.mk" "solenv/gbuild/platform/unxgcc.mk") - (("/bin/sh") (which "sh"))) + (("/bin/sh") (which "sh"))) - ;; GPGME++ headers are installed in a gpgme++ subdirectory, - ;; but files in "xmlsecurity/source/gpg/" expect to find them - ;; on the include path without a prefix. - (substitute* "xmlsecurity/Library_xsec_xmlsec.mk" - (("\\$\\$\\(INCLUDE\\)") - (string-append "$$(INCLUDE) -I" gpgme "/include/gpgme++"))) + ;; GPGME++ headers are installed in a gpgme++ subdirectory, but + ;; files in "xmlsecurity/source/gpg/" and elsewhere expect to + ;; find them on the include path without a prefix. + (substitute* '("xmlsecurity/Library_xsec_xmlsec.mk" + "comphelper/Library_comphelper.mk") + (("\\$\\$\\(INCLUDE\\)") + (string-append "$$(INCLUDE) -I" + (assoc-ref inputs "gpgme") + "/include/gpgme++"))) - ;; XXX: When GTK2 is disabled, one header file is not included. - ;; This is likely fixed in later versions. See also - ;; . - (substitute* "vcl/unx/gtk3/gtk3gtkframe.cxx" - (("#include ") - "#include \n#include ")) - - #t))) + #t)) (add-after 'install 'bin-and-desktop-install ;; Create 'soffice' and 'libreoffice' symlinks to the executable ;; script. diff --git a/gnu/packages/libsigsegv.scm b/gnu/packages/libsigsegv.scm index 2a44819820..7f63bb26c4 100644 --- a/gnu/packages/libsigsegv.scm +++ b/gnu/packages/libsigsegv.scm @@ -26,14 +26,14 @@ (define-public libsigsegv (package (name "libsigsegv") - (version "2.11") + (version "2.12") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libsigsegv/libsigsegv-" version ".tar.gz")) (sha256 - (base32 "063swdvq7mbmc1clv0rnh20grwln1zfc2qnm0sa1hivcxyr2wz6x")))) + (base32 "1dlhqf4igzpqayms25lkhycjq1ccavisx8cnb3y4zapbkqsszq9s")))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/libsigsegv/") (synopsis "Library for handling page faults") diff --git a/gnu/packages/libunistring.scm b/gnu/packages/libunistring.scm index 1d421fb17d..6a3afd4f05 100644 --- a/gnu/packages/libunistring.scm +++ b/gnu/packages/libunistring.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2018 Efraim Flashner ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Eric Bavier @@ -32,7 +32,7 @@ (define-public libunistring (package (name "libunistring") - (version "0.9.8") + (version "0.9.9") (source (origin (method url-fetch) (uri (string-append @@ -40,7 +40,7 @@ version ".tar.xz")) (sha256 (base32 - "101gjj9q39pjlcaixylya6is5i7vlbnxr1w5w6raqvvhab7ki4vv")) + "0cx8v6862w7vvacbkcvg49kfx731ckdgaybmzw1zav71zkn97nd4")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index bd79972a6e..62c936c191 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -338,12 +338,6 @@ devices.") (base32 "0qdgyj9rgb7n0nk3ghfswrhzzknxqn4ibn3wj8g4r828pw07451w")))) (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) (inputs `(("libusb" ,libusb) ("udev" ,eudev))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b40f6d0dd6..d2e76b17fd 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver @@ -12,7 +12,7 @@ ;;; Copyright © 2016 Raymond Nicholson ;;; Copyright © 2016 Mathieu Lirzin ;;; Copyright © 2016, 2018 Nicolas Goaziou -;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016, 2018 Ricardo Wurmus ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016, 2017, 2018 Marius Bakke @@ -80,6 +80,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages netpbm) + #:use-module (gnu packages nettle) #:use-module (gnu packages networking) #:use-module (gnu packages ninja) #:use-module (gnu packages perl) @@ -159,13 +160,13 @@ defconfig. Return the appropriate make target if applicable, otherwise return (define-public linux-libre-headers (package (name "linux-libre-headers") - (version "4.9.59") + (version "4.14.26") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0z8hq8a6ic38xh33idzl0k0yi4isgd7ncl2g1d6mzf9ixw5krhvc")))) + "1m2zr17wpasg5riysbaa4g5i492jzr93py2jm088ki818s4a9cm3")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (arguments @@ -185,29 +186,29 @@ defconfig. Return the appropriate make target if applicable, otherwise return (%current-system))))) (setenv "ARCH" arch) (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")) - (and (zero? (system* "make" defconfig)) - (zero? (system* "make" "mrproper" "headers_check")))))) + (invoke "make" defconfig) + (invoke "make" "mrproper" "headers_check")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (and (zero? (system* "make" - (string-append "INSTALL_HDR_PATH=" out) - "headers_install")) - (begin - (mkdir (string-append out "/include/config")) - (call-with-output-file - (string-append out - "/include/config/kernel.release") - (lambda (p) - (format p "~a-default~%" ,version))) + (invoke "make" + (string-append "INSTALL_HDR_PATH=" out) + "headers_install") - ;; Remove the '.install' and '..install.cmd' files; the - ;; latter contains store paths, which pulls in bootstrap - ;; binaries in the build environment, and prevents bit - ;; reproducibility for the bootstrap binaries. - (for-each delete-file (find-files out "\\.install")) + (mkdir (string-append out "/include/config")) + (call-with-output-file + (string-append out + "/include/config/kernel.release") + (lambda (p) + (format p "~a-default~%" ,version))) - #t)))))) + ;; Remove the '.install' and '..install.cmd' files; the + ;; latter contains store paths, which pulls in bootstrap + ;; binaries in the build environment, and prevents bit + ;; reproducibility for the bootstrap binaries. + (for-each delete-file (find-files out "\\.install")) + + #t)))) #:allowed-references () #:tests? #f)) (home-page "https://www.gnu.org/software/linux-libre/") @@ -366,8 +367,10 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (for-each (lambda (file) (install-file file out)) (find-files "." "^(\\.config|bzImage|zImage|Image|vmlinuz|System\\.map)$")) ;; Install device tree files - (for-each (lambda (file) (install-file file dtbdir)) - (find-files "." "\\.dtb$")) + (unless (null? (find-files "." "\\.dtb$")) + (mkdir-p dtbdir) + (invoke "make" (string-append "INSTALL_DTBS_PATH=" dtbdir) + "dtbs_install")) ;; Install kernel modules (mkdir-p moddir) (invoke "make" @@ -386,14 +389,14 @@ It has been modified to remove all non-free binary blobs.") (license license:gpl2))) (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux")) +(define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")) ;; linux-libre configuration for armhf-linux is derived from Debian armmp. It ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.16.6") -(define %linux-libre-hash "069bxqx27xib1gz4aayy8ar2hfp68cpdi8h51g6453k0w14pkchn") +(define %linux-libre-version "4.17") +(define %linux-libre-hash "0abbqrq96kn97jr02mf4ahqg7hl9vhq95c1l2z0s7jqrmhv1n8pb") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -401,30 +404,30 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.38") -(define %linux-libre-4.14-hash "09lmz8zbd3c1qf8z3d2lkhcqcwawajh76s85zdhgqdmd2idpwach") +(define %linux-libre-4.14-version "4.14.48") +(define %linux-libre-4.14-hash "011lkq30gpvbgvg2p1nw2kqkig9a3qridy678rkx3fpah0ya4rhd") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version %linux-libre-4.14-hash - %linux-compatible-systems + '("x86_64-linux" "i686-linux" "armhf-linux") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.97" - "1xc3mj1qi51n1kr5bxmdf1rlpyj78x9imhfc7gihn8qjc6zsf1sp" + (make-linux-libre "4.9.107" + "0560sy53l42wi1jidwdbhjaa9p6kf46snk2hfcjk9f0ciiiiz5gi" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.130" - "15cayafj7d9y5fs9flg115kzrcrjycbvax9hgfzz6yym94v9k8lk" + (make-linux-libre "4.4.136" + "0bc278l9arl8bb2gvcg02x57h66b4r8iaan3r4kzqbmkfspkl2gi" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.1 - (make-linux-libre "4.1.51" - "0l8lpwjpckp44hjyx5qrxqdwwi97gyyc1n6pmk66cr3fpdhnk540" + (make-linux-libre "4.1.52" + "0a2flzf79kz9c1y9zpxdclsfivp38d2sgnwifg4gvyqixdy63sk9" %intel-compatible-systems #:configuration-file kernel-config)) @@ -556,7 +559,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (version "2.31") + (version "2.32") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -564,14 +567,15 @@ providing the system administrator with some help in common tasks.") name "-" version ".tar.xz")) (sha256 (base32 - "12nw108xjhm63sh2n5a0qs33vpvbvb6rln96l9j50p7wykf7rgpr")) + "0d2758kjll5xqm5fpp3sww1h66aahx161sf2b60jxqv4qymrfwvc")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet - ;; We take the 'logger' program from GNU Inetutils and 'kill' - ;; from GNU Coreutils. + ;; We take 'nologin' from Shadow, the 'logger' program from + ;; GNU Inetutils and 'kill' from GNU Coreutils. '(begin (substitute* "configure" + (("build_nologin=yes") "build_nologin=no") (("build_logger=yes") "build_logger=no") (("build_kill=yes") "build_kill=no")) #t)))) @@ -643,32 +647,6 @@ block devices, UUIDs, TTYs, and many other tools.") (license (list license:gpl3+ license:gpl2+ license:gpl2 license:lgpl2.0+ license:bsd-4 license:public-domain)))) -;; The patch 'util-linux-CVE-2018-7738.patch' fixes a security bug in -;; the Bash completions for `mount`. Since this bug doesn't affect -;; other programs that link against libraries from util-linux, we don't -;; need to use a graft to make the fix available. Instead, users -;; installing util-linux will get the fix in this newer version, and -;; (@ (gnu system) %base-packages) takes care to use this package. -;; This solution was suggested here: -;; -(define-public util-linux-2.31.1 - (package - (inherit util-linux) - (name "util-linux") - ;; XXX Don't update this without also updating %base-packages! - (version "2.31.1") - (source (origin - (inherit (package-source util-linux)) - (uri (string-append "mirror://kernel.org/linux/utils/" - name "/v" (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "04fzrnrr3pvqskvjn9f81y0knh0jvvqx4lmbz5pd4lfdm5pv2l8s")) - (patches - (append (origin-patches (package-source util-linux)) - (search-patches "util-linux-CVE-2018-7738.patch"))))))) - (define-public ddate (package (name "ddate") @@ -693,14 +671,14 @@ by Robert Shea and Robert Anton Wilson.") (define-public procps (package (name "procps") - (version "3.3.12") + (version "3.3.15") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/procps-ng/Production/" "procps-ng-" version ".tar.xz")) (sha256 (base32 - "1m57w6jmry84njd5sgk5afycbglql0al80grx027kwqqcfw5mmkf")))) + "0r84kwa5fl0sjdashcn4vh7hgfm7ahdcysig3mcjvpmkzi7p9g8h")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) @@ -709,15 +687,6 @@ by Robert Shea and Robert Anton Wilson.") (srfi srfi-26)) #:phases (modify-phases %standard-phases - (add-before 'check 'disable-strtod-test - (lambda _ - ;; Disable the 'strtod' test, which fails on 32-bit systems. - ;; This is what upstream does: - ;; . - (substitute* "Makefile" - (("^(TESTS|check_PROGRAMS) = .*$" all) - (string-append "# " all "\n"))) - #t)) (add-after 'install 'post-install ;; Remove commands and man pages redudant with @@ -741,7 +710,7 @@ slabtop, and skill.") (define-public usbutils (package (name "usbutils") - (version "009") + (version "010") (source (origin (method url-fetch) @@ -749,7 +718,7 @@ slabtop, and skill.") "usbutils-" version ".tar.xz")) (sha256 (base32 - "0q3iavmak2bs9xw486w4xfbjl0hbzii93ssgpr95mxmm9kjz1gwb")))) + "06aag4jfgsfjxk563xsp9ik9nadihmasrr37a1gb0vwqni5kdiv1")))) (build-system gnu-build-system) (inputs `(("libusb" ,libusb) @@ -775,7 +744,8 @@ slabtop, and skill.") name "-" version ".tar.xz")) (sha256 (base32 - "00ilv65dzcgiap435j89xk86shf7rrav3wsik7cahy789qijdcn9")))) + "00ilv65dzcgiap435j89xk86shf7rrav3wsik7cahy789qijdcn9")) + (patches (search-patches "e2fsprogs-glibc-2.27.patch")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (native-inputs `(("pkg-config" ,pkg-config) @@ -823,18 +793,18 @@ slabtop, and skill.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (lib (string-append out "/lib"))) - (and (zero? (system* "make" "install-libs")) + (invoke "make" "install-libs") - ;; Make the .a writable so that 'strip' works. - ;; Failing to do that, due to debug symbols, we - ;; retain a reference to the final - ;; linux-libre-headers, which refer to the - ;; bootstrap binaries. - (let ((archives (find-files lib "\\.a$"))) - (for-each (lambda (file) - (chmod file #o666)) - archives) - #t)))))))) + ;; Make the .a writable so that 'strip' works. + ;; Failing to do that, due to debug symbols, we + ;; retain a reference to the final + ;; linux-libre-headers, which refer to the + ;; bootstrap binaries. + (let ((archives (find-files lib "\\.a$"))) + (for-each (lambda (file) + (chmod file #o666)) + archives)) + #t)))))) (home-page "http://e2fsprogs.sourceforge.net/") (synopsis "Creating and checking ext2/ext3/ext4 file systems") (description @@ -877,7 +847,8 @@ slabtop, and skill.") (with-directory-excursion bin (copy-file e2fsck "e2fsck") (remove-store-references "e2fsck") - (chmod "e2fsck" #o555)))))) + (chmod "e2fsck" #o555)) + #t)))) (home-page (package-home-page e2fsprogs)) (synopsis "Statically-linked e2fsck command from e2fsprogs") (description "This package provides statically-linked e2fsck command taken @@ -949,6 +920,7 @@ Zerofree requires the file system to be unmounted or mounted read-only.") (method url-fetch) (uri (string-append home-page "/files/" version "/strace-" version ".tar.xz")) + (patches (search-patches "strace-kernel-4.16.patch")) (sha256 (base32 "17dkpnsjxmys1ydidm9wcvc3wscsz44fmlxw3dclspn9cj9d1306")))) @@ -1003,8 +975,15 @@ intercept and print the system calls executed by the program.") version ".tar.bz2")) (sha256 (base32 - "096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z")))) + "096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z")) + (patches (search-patches "alsa-lib-add-environment-variable.patch")))) (build-system gnu-build-system) + (native-search-paths + (list (search-path-specification + (variable "ALSA_PLUGIN_DIR") + (file-type 'regular) + (separator #f) ;single entry + (files '("lib/alsa-lib"))))) (home-page "https://www.alsa-project.org/") (synopsis "The Advanced Linux Sound Architecture libraries") (description @@ -1216,7 +1195,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") (define-public iproute (package (name "iproute2") - (version "4.16.0") + (version "4.17.0") (source (origin (method url-fetch) (uri (string-append @@ -1224,7 +1203,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") version ".tar.xz")) (sha256 (base32 - "02pfalg319jpbjz273ph725br8dnkzpfvi98azi9yd6p1w128p0c")))) + "0vmynikcamfhakvwyk5dsffy0ymgi5mdqiwybdvqfn1ijaq93abg")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite @@ -1311,7 +1290,8 @@ inadequately in modern network environments, and both should be deprecated.") ;; think about adding them later. (substitute* '("config.make" "config.h") (("^.*HAVE_(AFDECnet|HWSTRIP|HWTR|SELINUX|AFBLUETOOTH)[ =]1.*$") - ""))))) + "")) + #t))) (add-after 'install 'remove-redundant-commands (lambda* (#:key outputs #:allow-other-keys) ;; Remove commands and man pages redundant with Inetutils. @@ -1363,7 +1343,8 @@ configuration (iptunnel, ipmaddr).") (substitute* "Make.Rules" (("LDFLAGS := #-g") (string-append "LDFLAGS := -Wl,-rpath=" - %output "/lib")))))) + %output "/lib"))) + #t))) #:tests? #f ; no 'check' target #:make-flags (list "lib=lib" (string-append "prefix=" @@ -1399,7 +1380,7 @@ Linux-based operating systems.") (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (add-before 'bootstrap 'patch-stuff (lambda _ ;; Fix "field ‘ip6’ has incomplete type" errors. (substitute* "libbridge/libbridge.h" @@ -1412,7 +1393,7 @@ Linux-based operating systems.") (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;") "$(MAKE) $(MFLAGS) -C $$x || exit 1;")) - (zero? (system* "autoreconf" "-vf"))))) + #t))) #:tests? #f)) ; no 'check' target (home-page @@ -1720,16 +1701,19 @@ UnionFS-FUSE additionally supports copy-on-write.") (source (origin (inherit (package-source fuse)) (modules '((guix build utils))) (snippet - ;; Normally libfuse invokes mount(8) so that /etc/mtab is - ;; updated. Change calls to 'mtab_needs_update' to 0 so that - ;; it doesn't do that, allowing us to remove the dependency on - ;; util-linux (something that is useful in initrds.) - '(substitute* '("lib/mount_util.c" - "util/mount_util.c") - (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)") - "0") - (("/bin/") - ""))))))) + '(begin + ;; Normally libfuse invokes mount(8) so that /etc/mtab is + ;; updated. Change calls to 'mtab_needs_update' to 0 so + ;; that it doesn't do that, allowing us to remove the + ;; dependency on util-linux (something that is useful in + ;; initrds.) + (substitute* '("lib/mount_util.c" + "util/mount_util.c") + (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)") + "0") + (("/bin/") + "")) + #t)))))) (define-public unionfs-fuse/static (package (inherit unionfs-fuse) @@ -1738,11 +1722,13 @@ UnionFS-FUSE additionally supports copy-on-write.") (source (origin (inherit (package-source unionfs-fuse)) (modules '((guix build utils))) (snippet - ;; Add -ldl to the libraries, because libfuse.a needs that. - '(substitute* "src/CMakeLists.txt" - (("target_link_libraries(.*)\\)" _ libs) - (string-append "target_link_libraries" - libs " dl)")))))) + '(begin + ;; Add -ldl to the libraries, because libfuse.a needs that. + (substitute* "src/CMakeLists.txt" + (("target_link_libraries(.*)\\)" _ libs) + (string-append "target_link_libraries" + libs " dl)"))) + #t)))) (arguments '(#:tests? #f #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static") @@ -1904,7 +1890,8 @@ system.") (substitute* '("src/unicode_start" "src/unicode_stop") ;; Assume the Coreutils are in $PATH. (("/usr/bin/tty") - "tty")))))) + "tty")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -1917,7 +1904,8 @@ system.") (("gzip") (string-append gzip "/bin/gzip")) (("bzip2") - (string-append bzip2 "/bin/bzip2")))))) + (string-append bzip2 "/bin/bzip2"))) + #t))) (add-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) ;; Make sure these programs find their comrades. @@ -1926,7 +1914,8 @@ system.") (for-each (lambda (prog) (wrap-program (string-append bin "/" prog) `("PATH" ":" prefix (,bin)))) - '("unicode_start" "unicode_stop")))))))) + '("unicode_start" "unicode_stop")) + #t)))))) (inputs `(("check" ,check) ("gzip" ,gzip) ("bzip2" ,bzip2) @@ -1950,17 +1939,27 @@ for systems using the Linux kernel. This includes commands such as (define-public inotify-tools (package (name "inotify-tools") - (version "3.13") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/inotify-tools/inotify-tools/" - version "/inotify-tools-" version ".tar.gz")) + "https://github.com/rvoicilas/inotify-tools/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0icl4bx041axd5dvhg89kilfkysjj86hjakc7bk8n49cxjn4cha6")))) + "1b22c8x4pjnz3abx4dikpbj43zprjw79pdkd4xw111dsxlfwqcx4")))) (build-system gnu-build-system) - (home-page "http://inotify-tools.sourceforge.net/") + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (invoke "autoreconf" "-vif")))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (home-page "https://github.com/rvoicilas/inotify-tools/wiki") (synopsis "Monitor file accesses") (description "The inotify-tools packages provides a C library and command-line tools @@ -1970,7 +1969,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") (define-public kmod (package (name "kmod") - (version "24") + (version "25") (source (origin (method url-fetch) (uri @@ -1978,7 +1977,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") "kmod-" version ".tar.xz")) (sha256 (base32 - "15xkkkzvca9flvkm48gkh8y8f13vlm3sl7nz9ydc7b3jy4fqs2v1")) + "1kgixs4m3jvwk7fb3d18n6j77qhgi9qfv4csj35rs5ancr4ycrbi")) (patches (search-patches "kmod-module-directory.patch")))) (build-system gnu-build-system) (native-inputs @@ -1987,19 +1986,20 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") `(("xz" ,xz) ("zlib" ,zlib))) (arguments - `(#:tests? #f ; FIXME: Investigate test failures + `(#:tests? #f ; FIXME: Investigate test failures #:configure-flags '("--with-xz" "--with-zlib") - #:phases (alist-cons-after - 'install 'install-modprobe&co - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (for-each (lambda (tool) - (symlink "kmod" - (string-append bin "/" tool))) - '("insmod" "rmmod" "lsmod" "modprobe" - "modinfo" "depmod")))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-modprobe&co + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (for-each (lambda (tool) + (symlink "kmod" + (string-append bin "/" tool))) + '("insmod" "rmmod" "lsmod" "modprobe" + "modinfo" "depmod")) + #t)))))) (home-page "https://www.kernel.org/") (synopsis "Kernel module tools") (description "Kmod is a set of tools to handle common tasks with Linux @@ -2029,21 +2029,20 @@ from the module-init-tools project.") (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-before 'bootstrap 'patch-file-names (lambda* (#:key inputs #:allow-other-keys) (substitute* "man/make.sh" (("/usr/bin/xsltproc") (string-append (assoc-ref inputs "xsltproc") "/bin/xsltproc"))) - ;; Manual pages are regenerated here. - (zero? (system* "./autogen.sh")))) + #t)) (add-after 'install 'build-hwdb (lambda* (#:key outputs #:allow-other-keys) ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and ;; similar tools to display product names. (let ((out (assoc-ref outputs "out"))) - (zero? (system* (string-append out "/bin/udevadm") - "hwdb" "--update")))))) + (invoke (string-append out "/bin/udevadm") + "hwdb" "--update"))))) #:configure-flags (list "--enable-manpages"))) (native-inputs `(("autoconf" ,autoconf) @@ -2096,7 +2095,8 @@ time.") (("confdir = .*$") "confdir = @sysconfdir@\n") (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@") - "DEFAULT_SYS_DIR = @sysconfdir@")))) + "DEFAULT_SYS_DIR = @sysconfdir@")) + #t)) (patches (search-patches "lvm2-static-link.patch")))) (build-system gnu-build-system) (native-inputs @@ -2214,6 +2214,11 @@ interface.") (arguments '(#:phases (modify-phases %standard-phases (delete 'configure) + (add-after 'unpack 'gzip-determinism + (lambda _ + (substitute* "Makefile" + (("gzip") "gzip --no-name")) + #t)) (add-before 'build 'no-werror-no-ldconfig (lambda _ @@ -2281,10 +2286,17 @@ compliance.") "1f9mcp78sdd4sci6v32vxfcl1rfjpv205jisz1p93kkfnaisy7ip")) ;; We're building 'regulatory.bin' by ourselves. - (snippet '(delete-file "regulatory.bin")))) + (snippet '(begin + (delete-file "regulatory.bin") + #t)))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'gzip-determinism + (lambda _ + (substitute* "Makefile" + (("gzip") "gzip --no-name")) + #t)) (delete 'configure)) ;; The 'all' target of the makefile depends on $(REGDB_CHANGED), which @@ -2488,7 +2500,9 @@ in a digital read-out.") (package (name "perf") (version (package-version linux-libre)) - (source (package-source linux-libre)) + (source (origin + (inherit (package-source linux-libre)) + (patches (search-patches "perf-gcc-ice.patch")))) (build-system gnu-build-system) (arguments '(#:phases @@ -2562,6 +2576,52 @@ similar in functionality to chroot, although pflask provides better isolation thanks to the use of namespaces.") (license license:bsd-2))) +(define-public singularity + (package + (name "singularity") + (version "2.5.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/singularityware/singularity/" + "releases/download/" version + "/singularity-" version ".tar.gz")) + (sha256 + (base32 + "0f28dgf2qcy8ljjfix7p9q36q12j7rxyicfzzi4n0fl8zr8ab88g")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--disable-suid" + "--localstatedir=/var") + #:phases + (modify-phases %standard-phases + ;; Do not create directories in /var. + (add-after 'unpack 'disable-install-hook + (lambda _ + (substitute* "Makefile.in" + (("\\$\\(MAKE\\) .*install-data-hook") "")) + #t)) + (add-after 'unpack 'patch-reference-to-squashfs-tools + (lambda _ + (substitute* "libexec/cli/build.exec" + (("if ! singularity_which mksquashfs") "if 0") + (("if ! mksquashfs") + (string-append "if ! " (which "mksquashfs")))) + #t))))) + (inputs + `(("libarchive" ,libarchive) + ("python" ,python-wrapper) + ("nettle" ,nettle) + ("zlib" ,zlib) + ("squashfs-tools" ,squashfs-tools))) + (home-page "https://singularity.lbl.gov/") + (synopsis "Container platform") + (description "Singularity is a container platform supporting a number of +container image formats. It can build SquashFS container images or import +existing Docker images. Singularity requires kernel support for container +isolation or root privileges.") + (license license:bsd-3))) + (define-public hdparm (package (name "hdparm") @@ -2714,7 +2774,8 @@ also contains the libsysfs library.") "includedir = @includedir@")) (substitute* "configure" (("includedir='(\\$\\{prefix\\}/include)'" all orig) - (string-append "includedir='" orig "/sysfs'"))))))) + (string-append "includedir='" orig "/sysfs'"))) + #t)))) (synopsis "System utilities based on Linux sysfs (version 1.x)"))) (define-public cpufrequtils @@ -3131,16 +3192,15 @@ write access to exFAT devices.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; The tarball was not generated with 'make dist' so we ;; need to bootstrap things ourselves. (substitute* "autogen.sh" (("/bin/sh") (which "sh"))) - (and (zero? (system* "./autogen.sh")) - (begin - (patch-makefile-SHELL "Makefile.include.in") - #t))))) + (invoke "./autogen.sh") + (patch-makefile-SHELL "Makefile.include.in") + #t))) ;; Make sure programs find libgpm.so. #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" @@ -3164,7 +3224,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.14.1") + (version "4.15.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3172,14 +3232,15 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1palnddw3d50kyflwk1j4xapbc6jniid6j5i9dsr8l8a7nkv7ich")))) + "15izak6jg6pqr6ha9447cdrdj9k6kfiarvwlrj53cpvrsv02l437")) + (patches (search-patches "btrfs-progs-e-value-block.patch")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" (arguments '(#:phases (modify-phases %standard-phases (add-after 'build 'build-static - (lambda _ (zero? (system* "make" "static")))) + (lambda _ (invoke "make" "static"))) (add-after 'install 'install-bash-completion (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -3192,9 +3253,10 @@ and copy/paste text in the console and in xterm.") (let ((staticbin (string-append (assoc-ref %outputs "static") "/bin"))) (lambda _ - (zero? (system* "make" - (string-append "bindir=" staticbin) - "install-static")))))) + (invoke "make" + (string-append "bindir=" staticbin) + "install-static"))))) + #:tests? #f ; XXX: require the 'btrfs' kernel module. #:test-target "test" #:parallel-tests? #f)) ; tests fail when run in parallel (inputs `(("e2fsprogs" ,e2fsprogs) @@ -3213,7 +3275,9 @@ and copy/paste text in the console and in xterm.") ("docbook-xsl" ,docbook-xsl) ;; For tests. ("acl" ,acl) - ("which" ,which))) + ("which" ,which) + ;; The tests need 'grep' with perl regexp support. + ("grep" ,grep))) (home-page "https://btrfs.wiki.kernel.org/") (synopsis "Create and manage btrfs copy-on-write file systems") (description "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux @@ -3246,15 +3310,59 @@ repair and easy administration.") (mkdir-p (dirname target)) (copy-file source target) (remove-store-references target) - (chmod target #o555))))) + (chmod target #o555) + #t)))) (home-page (package-home-page btrfs-progs)) (synopsis "Statically-linked btrfs command from btrfs-progs") (description "This package provides the statically-linked @command{btrfs} from the btrfs-progs package. It is meant to be used in initrds.") (license (package-license btrfs-progs)))) +(define-public f2fs-tools-1.7 + (package + (name "f2fs-tools") + (version "1.7.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://git.kernel.org/cgit/linux/kernel/git/jaegeuk" + "/f2fs-tools.git/snapshot/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1m6bn1ibq0p53m0n97il91xqgjgn2pzlz74lb5bfzassx7159m1k")))) + + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-headers + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-include (string-append out "/include"))) + (install-file "include/f2fs_fs.h" out-include) + (install-file "mkfs/f2fs_format_utils.h" out-include) + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("libuuid" ,util-linux) + ("libselinux" ,libselinux))) + (home-page "https://f2fs.wiki.kernel.org/") + (synopsis "Userland tools for f2fs") + (description + "F2FS, the Flash-Friendly File System, is a modern file system +designed to be fast and durable on flash devices such as solid-state +disks and SD cards. This package provides the userland utilities.") + ;; The formatting utility, libf2fs and include/f2fs_fs.h is dual + ;; GPL2/LGPL2.1, everything else is GPL2 only. See 'COPYING'. + (license (list license:gpl2 license:lgpl2.1)))) + (define-public f2fs-tools (package + (inherit f2fs-tools-1.7) (name "f2fs-tools") (version "1.8.0") (source (origin @@ -3265,29 +3373,8 @@ from the btrfs-progs package. It is meant to be used in initrds.") (sha256 (base32 "1bir9ladb58ijlcvrjrq1fb1xv5ys50zdjaq0yzliib0apsyrnyl")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) (inputs - `(("libuuid" ,util-linux))) - (home-page "https://f2fs.wiki.kernel.org/") - (synopsis "Userland tools for f2fs") - (description - "F2FS, the Flash-Friendly File System, is a modern file system -designed to be fast and durable on flash devices such as solid-state -disks and SD cards. This package provides the userland utilities.") - ;; The formatting utility, libf2fs and include/f2fs_fs.h is dual - ;; GPL2/LGPL2.1, everything else is GPL2 only. See 'COPYING'. - (license (list license:gpl2 license:lgpl2.1)))) + `(("libuuid" ,util-linux))))) (define-public freefall (package @@ -3299,14 +3386,16 @@ disks and SD cards. This package provides the userland utilities.") '(#:phases (modify-phases %standard-phases (add-after 'unpack 'enter-subdirectory (lambda _ - (chdir "tools/laptop/freefall"))) + (chdir "tools/laptop/freefall") + #t)) (delete 'configure) (add-before 'build 'increase-timeout (lambda _ ;; The default of 2 seconds is too low: it assumes an ;; open lid and AC power without actually checking. (substitute* "freefall.c" - (("alarm\\(2\\)") "alarm(5)"))))) + (("alarm\\(2\\)") "alarm(5)")) + #t))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "CC=gcc") @@ -3336,9 +3425,10 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.") (modules '((guix build utils))) ;; Fix erroneous man page location in Makefile leading to ;; a compilation failure. - (snippet - '(substitute* "CMakeLists.txt" - (("thinkfan\\.1") "src/thinkfan.1"))))) + (snippet '(begin + (substitute* "CMakeLists.txt" + (("thinkfan\\.1") "src/thinkfan.1")) + #t)))) (build-system cmake-build-system) (arguments `(#:modules ((guix build cmake-build-system) @@ -3389,11 +3479,12 @@ from userspace.") (base32 "1mb228p80hv97pgk3myyvgp975r9mxq56c6bdn1n24kngcfh4niy")) (modules '((guix build utils))) - (snippet - ;; Install under $prefix. - '(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in") - (("/sbin") - "@sbindir@"))))) + (snippet '(begin + ;; Install under $prefix. + (substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in") + (("/sbin") + "@sbindir@")) + #t)))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux) ("fuse" ,fuse))) ;libuuid @@ -3403,7 +3494,19 @@ from userspace.") "--with-fuse=external" ;use our own FUSE "--enable-mount-helper" "--enable-posix-acls" - "--enable-xattr-mappings"))) + "--enable-xattr-mappings") + #:phases + (modify-phases %standard-phases + ;; If users install ntfs-3g, they probably want to make it the + ;; default driver as well, so we opt for sensible defaults and link + ;; mount.ntfs to mount.ntfs-3g. (libmount tries to run mount.ntfs to + ;; mount NTFS filesystems.) + (add-after 'install 'install-link + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (sbin (string-append out "/sbin"))) + (symlink "mount.ntfs-3g" + (string-append sbin "/mount.ntfs")))))))) (home-page "https://www.tuxera.com/community/open-source-ntfs-3g/") (synopsis "Read-write access to NTFS file systems") (description @@ -3436,11 +3539,11 @@ The package provides additional NTFS tools.") (modify-phases %standard-phases (replace 'build (lambda _ - (zero? (system* "ninja" - "-j" (number->string (parallel-job-count)))))) + (invoke "ninja" + "-j" (number->string (parallel-job-count))))) (replace 'install (lambda _ - (zero? (system* "ninja" "install"))))))) + (invoke "ninja" "install")))))) (native-inputs `(("ninja" ,ninja) ("pkg-config" ,pkg-config) @@ -3480,7 +3583,7 @@ The following service daemons are also provided: (define-public rng-tools (package (name "rng-tools") - (version "6.1") + (version "6.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/nhorman/rng-tools/" @@ -3488,16 +3591,11 @@ The following service daemons are also provided: (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00ywsknjpc9jd9kfmz2syk9l0xkiiwyx5qhl5zvhhc69v6682i31")))) + "0xy4qmfhvkr5z4jr9j55dn5gnajr2jccdp6n0xsxkipjcgag342j")))) (build-system gnu-build-system) (arguments `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. - #:configure-flags '("--without-nistbeacon") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "sh" "autogen.sh"))))))) + #:configure-flags '("--without-nistbeacon"))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -3694,9 +3792,12 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet - ;; The snapshots lack a .git directory, breaking ‘git describe’. - `(substitute* "Makefile" - (("\"unknown\"") (string-append "\"v" ,version "\"")))))) + `(begin + ;; The snapshots lack a .git directory, + ;; breaking ‘git describe’. + (substitute* "Makefile" + (("\"unknown\"") (string-append "\"v" ,version "\""))) + #t)))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -3820,7 +3921,7 @@ under OpenGL graphics workloads.") (define-public efivar (package (name "efivar") - (version "35") + (version "36") (source (origin (method url-fetch) (uri (string-append "https://github.com/rhinstaller/" name @@ -3828,7 +3929,7 @@ under OpenGL graphics workloads.") "-" version ".tar.bz2")) (sha256 (base32 - "153k2ifyl4giz5fkryxhz8z621diqjy7v25hfga4z94rs32ks0qy")))) + "0cqdikspdmj7imc646q0k7hhw10r8spxa22zm1w0ji49131crgwl")))) (build-system gnu-build-system) (arguments `(;; Tests require a UEFI system and is not detected in the chroot. @@ -4125,7 +4226,7 @@ re-use code and to avoid re-inventing the wheel.") (define-public libnftnl (package (name "libnftnl") - (version "1.0.9") + (version "1.1.0") (source (origin (method url-fetch) @@ -4133,7 +4234,7 @@ re-use code and to avoid re-inventing the wheel.") "libnftnl-" version ".tar.bz2")) (sha256 (base32 - "0d9nkdbdck8sg6msysqyv3m9kjr9sjif5amf26dfa0g3mqjdihgy")))) + "0v4gywcjvv2vg4zk632al1zv3ad0lx87nshynv110l8n3fhsq3pc")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -4244,24 +4345,23 @@ userspace queueing component and the logging subsystem.") (setenv "PATH" (string-append (getenv "PATH") ":/bin")) - (zero? (system* "make" "check" "-C" "tests" - ;;"V=1" - "-j" (number->string n)))))) + (invoke "make" "check" "-C" "tests" + ;;"V=1" + "-j" (number->string n))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) ;; The 'install' rule does nearly nothing. - (let ((out (assoc-ref outputs "out"))) - (and (zero? - ;; TODO: 'make install-care' (does not even - ;; build currently.) - (system* "make" "-C" "src" "install" - (string-append "PREFIX=" out))) - (let ((man1 (string-append out - "/share/man/man1"))) - (mkdir-p man1) - (copy-file "doc/proot/man.1" - (string-append man1 "/proot.1")) - #t)))))))) + (let* ((out (assoc-ref outputs "out")) + (man1 (string-append out "/share/man/man1"))) + ;; TODO: 'make install-care' (does not even + ;; build currently.) + (invoke "make" "-C" "src" "install" + (string-append "PREFIX=" out)) + + (mkdir-p man1) + (copy-file "doc/proot/man.1" + (string-append man1 "/proot.1")) + #t)))))) (native-inputs `(("which" ,which) ;; For 'mcookie', used by some of the tests. @@ -4727,3 +4827,26 @@ libpfm4 provides support for the @code{perf_events} interface, which was introduced in Linux 2.6.31.") (home-page "http://perfmon2.sourceforge.net/") (license license:expat))) + +(define-public libnfnetlink + (package + (name "libnfnetlink") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://www.netfilter.org/projects/libnfnetlink/files/" + "libnfnetlink-" version ".tar.bz2")) + (sha256 + (base32 + "06mm2x4b01k3m7wnrxblk9j0mybyr4pfz28ml7944xhjx6fy2w7j")))) + (build-system gnu-build-system) + (home-page "https://www.netfilter.org/projects/libnfnetlink/") + (synopsis "Low-level netfilter netlink communication library") + (description + "@code{libnfnetlink} is the low-level library for netfilter related +kernel/userspace communication. It provides a generic messaging +infrastructure for in-kernel netfilter subsystems (such as nfnetlink_log, +nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or +management tools in userspace.") + (license license:gpl2))) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 1f8e6ab427..258e9827a5 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -189,8 +189,10 @@ interface to the Tk widget system.") (modules '((guix build utils))) (snippet ;; Add ecl-bundle-systems to 'default-system-source-registry'. - `(substitute* "contrib/asdf/asdf.lisp" - ,@(asdf-substitutions name))))) + `(begin + (substitute* "contrib/asdf/asdf.lisp" + ,@(asdf-substitutions name)) + #t)))) (build-system gnu-build-system) ;; src/configure uses 'which' to confirm the existence of 'gzip'. (native-inputs `(("which" ,which))) @@ -313,8 +315,10 @@ an interpreter, a compiler, a debugger, and much more.") (modules '((guix build utils))) (snippet ;; Add sbcl-bundle-systems to 'default-system-source-registry'. - `(substitute* "contrib/asdf/asdf.lisp" - ,@(asdf-substitutions name))))) + `(begin + (substitute* "contrib/asdf/asdf.lisp" + ,@(asdf-substitutions name)) + #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) ;; Bootstrap with CLISP. @@ -607,10 +611,11 @@ The core is 12 builtin special forms and 33 builtin functions.") (snippet '(begin (substitute* "src/unix.c" - (("\\{ \"LUSH_DATE\", __DATE__ \\},") "") - (("\\{ \"LUSH_TIME\", __TIME__ \\},") "")) - (substitute* "src/main.c" - (("\" \\(built \" __DATE__ \"\\)\"") "")))) + (("\\{ \"LUSH_DATE\", __DATE__ \\},") "") + (("\\{ \"LUSH_TIME\", __TIME__ \\},") "")) + (substitute* "src/main.c" + (("\" \\(built \" __DATE__ \"\\)\"") "")) + #t)) (sha256 (base32 "02pkfn3nqdkm9fm44911dbcz0v3r0l53vygj8xigl6id5g3iwi4k")))) @@ -909,7 +914,8 @@ ANSI-compliant Common Lisp implementations.") (delete-file-recursively "demo") (delete-file "test/trapezoid.lisp") (substitute* "clx.asd" - (("\\(:file \"trapezoid\"\\)") "")))))) + (("\\(:file \"trapezoid\"\\)") "")) + #t)))) (build-system asdf-build-system/sbcl) (home-page "http://www.cliki.net/portable-clx") (synopsis "X11 client library for Common Lisp") @@ -1037,12 +1043,12 @@ productive, customizable lisp based systems.") (rename-file "contrib" "slynk/contrib") ;; Move slynk's contents into the base directory for easier ;; access - (for-each - (lambda (file) - (unless (string-prefix? "." file) - (rename-file (string-append "slynk/" file) - (string-append "./" (basename file))))) - (scandir "slynk")))))) + (for-each (lambda (file) + (unless (string-prefix? "." file) + (rename-file (string-append "slynk/" file) + (string-append "./" (basename file))))) + (scandir "slynk")) + #t)))) (build-system asdf-build-system/sbcl) (arguments `(#:tests? #f ; No test suite @@ -1214,7 +1220,8 @@ multiple inspectors with independent history.") (assoc-ref %outputs "image") "/bin/slynk") %outputs - #:dependencies ',slynk-systems))))))) + #:dependencies ',slynk-systems)) + #t))))) (define-public ecl-slynk (package @@ -1236,7 +1243,8 @@ multiple inspectors with independent history.") (match %build-inputs (((names . paths) ...) (union-build (assoc-ref %outputs "out") - paths)))))))) + paths) + #t))))))) (define-public sbcl-stumpwm+slynk (package diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 69180abeac..82ea6e02de 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -73,10 +73,10 @@ (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* "make" "install" - (string-append "INSTALL_TOP=" out) - (string-append "INSTALL_MAN=" out - "/share/man/man1"))))))))) + (invoke "make" "install" + (string-append "INSTALL_TOP=" out) + (string-append "INSTALL_MAN=" out + "/share/man/man1")))))))) (home-page "https://www.lua.org/") (synopsis "Embeddable scripting language") (description @@ -174,8 +174,8 @@ language.") (lambda _ (setenv "LUA_CPATH" "src/?.so;;") (setenv "LUA_PATH" "src/?.lua;;") - (and (zero? (system* "lua" "tests/test.lua")) - (zero? (system* "lua" "tests/test-lom.lua")))))))) + (invoke "lua" "tests/test.lua") + (invoke "lua" "tests/test-lom.lua")))))) (inputs `(("lua" ,lua-5.1) ("expat" ,expat))) @@ -210,8 +210,8 @@ language.") (setenv "LUA_CPATH" (string-append "src/?.so." ,version ";;")) (setenv "LUA_PATH" "src/?.lua;;") (when (zero? (primitive-fork)) - (system* "lua" "test/testsrvr.lua")) - (zero? (system* "lua" "test/testclnt.lua"))))))) + (invoke "lua" "test/testsrvr.lua")) + (invoke "lua" "test/testclnt.lua")))))) (inputs `(("lua" ,lua-5.1))) (home-page "http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/") diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index 67e66f8f6b..9a0d8e957d 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -48,7 +48,7 @@ (define-public libfm (package (name "libfm") - (version "1.3.0") + (version "1.3.0.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pcmanfm/" @@ -56,7 +56,7 @@ "%29/LibFM/" name "-" version ".tar.xz")) (sha256 (base32 - "151jyy8ipmp2h829gd9s4s429qafv1zxl7j6zaj1k1gzm9s5rmnb")))) + "0wkwbi1nyvqza3r1dhrq846axiiq0fy0dqgngnagh76fjrwnzl0q")))) (build-system gnu-build-system) (inputs `(("glib" ,glib) ("gtk+" ,gtk+-2))) @@ -363,7 +363,8 @@ in LXDE.") (and (string-suffix? ".c" file) (file-exists? (c->vala file)))))) (for-each delete-file - (find-files "." generated-c-file?)))))) + (find-files "." generated-c-file?)) + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -447,7 +448,7 @@ in LXDE.") (version (package-version lxde-common)) (source #f) (build-system trivial-build-system) - (arguments '(#:builder (mkdir %output))) + (arguments '(#:builder (begin (mkdir %output) #t))) (propagated-inputs ;; TODO: ;; lxshortcut, lxsession-edit diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index 4ead02559f..c84d26d4cb 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Nils Gillmann +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -138,7 +139,7 @@ for the LXQt desktop environment.") (define-public lxqt-build-tools (package (name "lxqt-build-tools") - (version "0.4.0") + (version "0.5.0") (source (origin (method url-fetch) @@ -147,10 +148,10 @@ for the LXQt desktop environment.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "1llbrjbgabxlq933a8cpg03b3mdmvd8983csnd4f7vrcj51nv0xh")))) + "13b5x26p6ycnwzlgg1cgvlc88wjrjmlb3snrrmzh0xgh9h6hhvd6")))) (build-system cmake-build-system) (arguments - `(#:tests? #f)) ;No tests + `(#:tests? #f)) ; no tests (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib))) diff --git a/gnu/packages/m4.scm b/gnu/packages/m4.scm index 32e7c2ae42..b223ce91d1 100644 --- a/gnu/packages/m4.scm +++ b/gnu/packages/m4.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2015 Ludovic Courtès +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,18 +41,19 @@ ;; proceeds and fails, unsurprisingly. #:tests? ,(not (%current-target-system)) - #:phases (alist-cons-before - 'check 'pre-check - (lambda* (#:key inputs #:allow-other-keys) - ;; Fix references to /bin/sh. - (let ((bash (assoc-ref inputs "bash"))) - (for-each patch-shebang - (find-files "tests" "\\.sh$")) - (substitute* (find-files "tests" - "posix_spawn") - (("/bin/sh") - (format #f "~a/bin/sh" bash))))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + ;; Fix references to /bin/sh. + (let ((bash (assoc-ref inputs "bash"))) + (for-each patch-shebang + (find-files "tests" "\\.sh$")) + (substitute* (find-files "tests" + "posix_spawn") + (("/bin/sh") + (format #f "~a/bin/sh" bash))) + #t)))))) (synopsis "Macro processor") (description "GNU M4 is an implementation of the M4 macro language, which features diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index f0d35484ea..15e4d45749 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1,9 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016, 2017 Marius Bakke ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Kei Kebreau ;;; Copyright © 2018 Mark Meyer ;;; Copyright © 2018 Ben Woodcroft ;;; Copyright © 2018 Fis Trivial @@ -36,6 +37,7 @@ #:use-module (guix build-system r) #:use-module (guix git-download) #:use-module (gnu packages) + #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages check) @@ -366,7 +368,7 @@ sample proximities between pairs of cases.") (define-public shogun (package (name "shogun") - (version "4.0.0") + (version "6.1.3") (source (origin (method url-fetch) @@ -376,7 +378,7 @@ sample proximities between pairs of cases.") "/sources/shogun-" version ".tar.bz2")) (sha256 (base32 - "159nlijnb7mnrv9za80wnm1shwvy45hgrqzn51hxy7gw4z6d6fdb")) + "1rn9skm3nw6hr7mr3lgp2gfqhi7ii0lyxck7qmqnf8avq349s5jp")) (modules '((guix build utils) (ice-9 rdelim))) (snippet @@ -408,8 +410,21 @@ sample proximities between pairs of cases.") (and skipping? (not skip-next?))) (display line out)) (loop (read-line in 'concat) skip-next?))))))) - (for-each delete-ifdefs (find-files "src/shogun/kernel/" - "^Kernel\\.(cpp|h)")))))) + (for-each delete-ifdefs + (append + (find-files "src/shogun/classifier/mkl" + "^MKLClassification\\.cpp") + (find-files "src/shogun/classifier/svm" + "^SVMLightOneClass\\.(cpp|h)") + (find-files "src/shogun/multiclass" + "^ScatterSVM\\.(cpp|h)") + (find-files "src/shogun/kernel/" + "^(Kernel|CombinedKernel|ProductKernel)\\.(cpp|h)") + (find-files "src/shogun/regression/svr" + "^(MKLRegression|SVRLight)\\.(cpp|h)") + (find-files "src/shogun/transfer/domain_adaptation" + "^DomainAdaptationSVM\\.(cpp|h)"))) + #t)))) (build-system cmake-build-system) (arguments '(#:tests? #f ;no check target @@ -422,62 +437,59 @@ sample proximities between pairs of cases.") "applications/easysvm/data" "applications/msplicer/data" "applications/ocr/data" - "examples/documented/data" - "examples/documented/matlab_static" - "examples/documented/octave_static" - "examples/undocumented/data" - "examples/undocumented/matlab_static" - "examples/undocumented/octave_static" - "tests/integration/data" - "tests/integration/matlab_static" - "tests/integration/octave_static" - "tests/integration/python_modular/tests")) + "examples/meta/data" + "examples/undocumented/data")) #t)) (add-after 'unpack 'change-R-target-path (lambda* (#:key outputs #:allow-other-keys) - (substitute* '("src/interfaces/r_modular/CMakeLists.txt" - "src/interfaces/r_static/CMakeLists.txt" - "examples/undocumented/r_modular/CMakeLists.txt") + (substitute* '("src/interfaces/r/CMakeLists.txt" + "examples/meta/r/CMakeLists.txt") (("\\$\\{R_COMPONENT_LIB_PATH\\}") (string-append (assoc-ref outputs "out") "/lib/R/library/"))) #t)) (add-after 'unpack 'fix-octave-modules (lambda* (#:key outputs #:allow-other-keys) - (substitute* '("src/interfaces/octave_modular/CMakeLists.txt" - "src/interfaces/octave_static/CMakeLists.txt") + (substitute* "src/interfaces/octave/CMakeLists.txt" (("^include_directories\\(\\$\\{OCTAVE_INCLUDE_DIRS\\}") - "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave")) - - ;; change target directory - (substitute* "src/interfaces/octave_modular/CMakeLists.txt" + "include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave") + ;; change target directory (("\\$\\{OCTAVE_OCT_LOCAL_API_FILE_DIR\\}") (string-append (assoc-ref outputs "out") "/share/octave/packages"))) + (substitute* '("src/interfaces/octave/swig_typemaps.i" + "src/interfaces/octave/sg_print_functions.cpp") + ;; "octave/config.h" and "octave/oct-obj.h" deprecated in Octave. + (("octave/config\\.h") "octave/octave-config.h") + (("octave/oct-obj.h") "octave/ovl.h")) #t)) + (add-after 'unpack 'move-rxcpp + (lambda* (#:key inputs #:allow-other-keys) + (let ((rxcpp-dir "shogun/third-party/rxcpp")) + (mkdir-p rxcpp-dir) + (install-file (assoc-ref inputs "rxcpp") rxcpp-dir) + #t))) (add-before 'build 'set-HOME ;; $HOME needs to be set at some point during the build phase (lambda _ (setenv "HOME" "/tmp") #t))) #:configure-flags (list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE" "-DUSE_SVMLIGHT=OFF" ;disable proprietary SVMLIGHT - ;;"-DJavaModular=ON" ;requires unpackaged jblas - ;;"-DRubyModular=ON" ;requires unpackaged ruby-narray - ;;"-DPerlModular=ON" ;"FindPerlLibs" does not exist - ;;"-DLuaModular=ON" ;fails because lua doesn't build pkgconfig file - "-DOctaveModular=ON" - "-DOctaveStatic=ON" - "-DPythonModular=ON" - "-DPythonStatic=ON" - "-DRModular=ON" - "-DRStatic=ON" - "-DCmdLineStatic=ON"))) + "-DBUILD_META_EXAMPLES=OFF" ;requires unpackaged ctags + ;;"-DINTERFACE_JAVA=ON" ;requires unpackaged jblas + ;;"-DINTERFACE_RUBY=ON" ;requires unpackaged ruby-narray + ;;"-DINTERFACE_PERL=ON" ;"FindPerlLibs" does not exist + ;;"-DINTERFACE_LUA=ON" ;fails because lua doesn't build pkgconfig file + "-DINTERFACE_OCTAVE=ON" + "-DINTERFACE_PYTHON=ON" + "-DINTERFACE_R=ON"))) (inputs `(("python" ,python) ("numpy" ,python-numpy) ("r-minimal" ,r-minimal) ("octave" ,octave) ("swig" ,swig) + ("eigen" ,eigen) ("hdf5" ,hdf5) ("atlas" ,atlas) ("arpack" ,arpack-ng) @@ -487,7 +499,8 @@ sample proximities between pairs of cases.") ("lzo" ,lzo) ("zlib" ,zlib))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("rxcpp" ,rxcpp))) ;; Non-portable SSE instructions are used so building fails on platforms ;; other than x86_64. (supported-systems '("x86_64-linux")) @@ -501,6 +514,47 @@ tools. This enables both rapid prototyping of data pipelines and extensibility in terms of new algorithms.") (license license:gpl3+))) +(define-public rxcpp + (package + (name "rxcpp") + (version "4.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/ReactiveX/RxCpp/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "0y2isr8dy2n1yjr9c5570kpc9lvdlch6jv0jvw000amwn5d3krsh")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-werror + (lambda _ + (substitute* (find-files ".") + (("-Werror") "")) + #t)) + (replace 'check + (lambda _ + (invoke "ctest")))))) + (native-inputs + `(("catch" ,catch-framework))) + (home-page "http://reactivex.io/") + (synopsis "Reactive Extensions for C++") + (description + "The Reactive Extensions for C++ (RxCpp) is a library of algorithms for +values-distributed-in-time. ReactiveX is a library for composing asynchronous +and event-based programs by using observable sequences. + +It extends the observer pattern to support sequences of data and/or events and +adds operators that allow you to compose sequences together declaratively while +abstracting away concerns about things like low-level threading, +synchronization, thread-safety, concurrent data structures, and non-blocking +I/O.") + (license license:asl2.0))) + (define-public r-adaptivesparsity (package (name "r-adaptivesparsity") @@ -538,14 +592,14 @@ geometric models.") (define-public r-kernlab (package (name "r-kernlab") - (version "0.9-25") + (version "0.9-26") (source (origin (method url-fetch) (uri (cran-uri "kernlab" version)) (sha256 (base32 - "0qnaq9x3j2xc6jrmmd98wc6hkzch487s4p3a9lnc00xvahkhgpmr")))) + "0xv0slf3ggw3sswsi34416lb1g3h1pqkrr2h7r1n1kvgii3l0jcm")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/kernlab") (synopsis "Kernel-based machine learning tools") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index c492f3163d..57edc6f535 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015, 2016 Eric Bavier ;;; Copyright © 2015 Andreas Enge -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Al McElrath ;;; Copyright © 2016 Leo Famulari @@ -19,13 +19,14 @@ ;;; Copyright © 2016 Clément Lassieur ;;; Copyright © 2016, 2017, 2018 Arun Isaac ;;; Copyright © 2016 John Darrington -;;; Copyright © 2016 Marius Bakke +;;; Copyright © 2016, 2018 Marius Bakke ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Kyle Meyer ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2018 Pierre Langlois ;;; Copyright © 2018 Alex Vong +;;; Copyright © 2018 Gábor Boskovits ;;; ;;; This file is part of GNU Guix. ;;; @@ -81,6 +82,7 @@ #:use-module (gnu packages m4) #:use-module (gnu packages ncurses) #:use-module (gnu packages openldap) + #:use-module (gnu packages onc-rpc) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages python) @@ -137,9 +139,11 @@ (snippet ;; For a rebuild of the Flex/Bison byproducts touched by the ;; patch above. - '(for-each delete-file - '("mh/mh_alias_lex.c" - "libmailutils/cfg/parser.c"))))) + '(begin + (for-each delete-file + '("mh/mh_alias_lex.c" + "libmailutils/cfg/parser.c")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -257,14 +261,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.9.5") + (version "1.10.0") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" "mutt-" version ".tar.gz")) (sha256 (base32 - "0lsp72lm3cw490x7lhzia7h8f591bab2mr7qpscaj22fmrj7wqdz")) + "0nskymwr2cdapxlfv0ysz3bjwhb4kcvl5a3c39237k7r1vwva582")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs @@ -395,7 +399,7 @@ It adds a large amount of new and improved features to mutt.") (define-public gmime (package (name "gmime") - (version "2.6.23") + (version "3.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gmime/" @@ -403,7 +407,7 @@ It adds a large amount of new and improved features to mutt.") "/gmime-" version ".tar.xz")) (sha256 (base32 - "0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi")))) + "1q6palbpf6lh6bvy9ly26q5apl5k0z0r4mvl6zzqh90rz4rn1v3m")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -427,7 +431,8 @@ It adds a large amount of new and improved features to mutt.") (let* ((base (basename prog-path)) (prog (which base))) (string-append pre - (or prog (error "not found: " base)))))))))))) + (or prog (error "not found: " base))))))) + #t))))) (home-page "http://spruce.sourceforge.net/gmime/") (synopsis "MIME message parser and creator library") (description @@ -436,6 +441,20 @@ the creation and parsing of messages using the Multipurpose Internet Mail Extension (MIME).") (license (list lgpl2.1+ gpl2+ gpl3+)))) +;; Some packages are not ready for GMime 3 yet. +(define-public gmime-2.6 + (package + (inherit gmime) + (version "2.6.23") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/gmime/" + (version-major+minor version) + "/gmime-" version ".tar.xz")) + (sha256 + (base32 + "0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi")))))) + (define-public bogofilter (package (name "bogofilter") @@ -595,7 +614,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") `(("xapian" ,xapian) ("guile" ,guile-2.2) ("glib" ,glib) - ("gmime" ,gmime))) + ("gmime" ,gmime-2.6))) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) @@ -1119,6 +1138,7 @@ delivery.") ("bzip2" ,bzip2) ("xz" ,xz) ("perl" ,perl) + ("libnsl" ,libnsl) ("libxt" ,libxt) ("libxaw" ,libxaw))) (native-inputs @@ -1352,11 +1372,13 @@ hashing schemes plugin for @code{Dovecot}.") `(("perl" ,perl))) (inputs `(("bdb" ,bdb) - ("openssl" ,openssl))) + ("cyrus-sasl" ,cyrus-sasl) + ("openssl" ,openssl) + ("zlib" ,zlib))) (home-page "http://isync.sourceforge.net/") (synopsis "Mailbox synchronization program") (description - "isync/mbsync is command line tool for two-way synchronization of + "isync/mbsync is a command-line tool for two-way synchronization of mailboxes. Currently Maildir and IMAP are supported types.") (license gpl2+))) @@ -1610,9 +1632,8 @@ program's primary purpose.") (file-name (string-append name "-" version "-checkout")))) (arguments `(#:phases (modify-phases %standard-phases - (add-before - 'configure 'autoconf - (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) + (replace 'bootstrap + (lambda _ (invoke "autoreconf" "-vfi")))))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) @@ -1816,7 +1837,7 @@ in Perl.") (mkdir-p bin) (with-directory-excursion bin (copy-file source "mb2md.gz") - (system* (string-append gzip "/bin/gzip") "-d" "mb2md.gz") + (invoke (string-append gzip "/bin/gzip") "-d" "mb2md.gz") (substitute* "mb2md" (("#!/usr/bin/perl") (string-append "#!/usr/bin/perl -I " perl5lib))) @@ -1977,7 +1998,9 @@ transfer protocols.") name "-" version ".tar.gz")) (sha256 (base32 - "10bsfsnlg9d9i6l2izdnxp05s3ri8fvwzqxvx1jmarc852382619")))) + "10bsfsnlg9d9i6l2izdnxp05s3ri8fvwzqxvx1jmarc852382619")) + ;; Fixed upstream: . + (patches (search-patches "opensmtpd-fix-crash.patch")))) (build-system gnu-build-system) (inputs `(("bdb" ,bdb) @@ -1998,17 +2021,24 @@ transfer protocols.") "--with-path-CAfile=/etc/ssl/certs/ca-certificates.crt") #:phases (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) + (substitute* "smtpd/smtpctl.c" + (("/bin/cat") (which "cat")) + (("/bin/sh") (which "sh"))) + #t)) ;; OpenSMTPD provides a single utility smtpctl to control the daemon and ;; the local submission subsystem. To accomodate systems that require ;; historical interfaces such as sendmail, newaliases or makemap, the ;; smtpctl utility can operate in compatibility mode if called with the ;; historical name. - (add-after 'install 'install-compabilitymode - (lambda _ - (let* ((out (assoc-ref %outputs "out")) + (add-after 'install 'install-compability-links + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) (sbin (string-append out "/sbin/"))) - (for-each (lambda (cmd) - (symlink "smtpctl" (string-append sbin cmd))) + (for-each (lambda (command) + (symlink "smtpctl" (string-append sbin command))) '("makemap" "sendmail" "send-mail" "newaliases" "mailq"))) #t))))) @@ -2426,7 +2456,7 @@ tools and applications: `(("cyrus-sasl" ,cyrus-sasl) ("enchant" ,enchant) ("gdk-pixbuf" ,gdk-pixbuf) - ("gmime" ,gmime) + ("gmime" ,gmime-2.6) ("gnutls" ,gnutls) ("gpgme" ,gpgme) ("gtk+" ,gtk+) @@ -2480,7 +2510,7 @@ killed threads.") (define-public pan (package (name "pan") - (version "0.144") + (version "0.145") (source (origin (method url-fetch) @@ -2488,7 +2518,7 @@ killed threads.") version "/source/" name "-" version ".tar.bz2")) (sha256 (base32 - "0l07y75z8jxhbmfv28slw81gjncs7i89x7fq44zif7xhq5vy7yli")))) + "1b4wamv33hprghcjk903bpvnd233yxyrm18qnh13alc8h1553nk8")))) (arguments `(#:configure-flags '("--with-gtk3" "--with-gtkspell" "--with-gnutls" "--enable-libnotify" "--enable-manual" @@ -2503,7 +2533,7 @@ killed threads.") "/bin/gpg\""))) #t))))) (inputs - `(("gmime" ,gmime) + `(("gmime" ,gmime-2.6) ("gnupg" ,gnupg) ("gnutls" ,gnutls) ("gtk+" ,gtk+) diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 99488fb4c4..475749bbf6 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -143,24 +145,24 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (arguments (substitute-keyword-arguments (package-arguments bzip2) ((#:phases phases) - `(alist-cons-before - 'build 'dash-static - (lambda _ - (substitute* "Makefile" - (("^LDFLAGS[[:blank:]]*=.*$") - "LDFLAGS = -static"))) - ,phases)))))) + `(modify-phases ,phases + (add-before 'build 'dash-static + (lambda _ + (substitute* "Makefile" + (("^LDFLAGS[[:blank:]]*=.*$") + "LDFLAGS = -static")) + #t)))))))) (xz (package (inherit xz) (arguments `(#:strip-flags '("--strip-all") - #:phases (alist-cons-before - 'configure 'static-executable - (lambda _ - ;; Ask Libtool for a static executable. - (substitute* "src/xz/Makefile.in" - (("^xz_LDADD =") - "xz_LDADD = -all-static"))) - %standard-phases))))) + #:phases (modify-phases %standard-phases + (add-before 'configure 'static-executable + (lambda _ + ;; Ask Libtool for a static executable. + (substitute* "src/xz/Makefile.in" + (("^xz_LDADD =") + "xz_LDADD = -all-static")) + #t))))))) (gawk (package (inherit gawk) (source (origin (inherit (package-source gawk)) (patches (cons (search-patch "gawk-shell.patch") @@ -175,28 +177,30 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ,@(substitute-keyword-arguments (package-arguments gawk) ((#:phases phases) - `(alist-cons-before - 'configure 'no-export-dynamic - (lambda _ - ;; Since we use `-static', remove - ;; `-export-dynamic'. - (substitute* "configure" - (("-Wl,-export-dynamic") ""))) - ,phases))))) + `(modify-phases ,phases + (add-before 'configure 'no-export-dynamic + (lambda _ + ;; Since we use `-static', remove + ;; `-export-dynamic'. + (substitute* "configure" + (("-Wl,-export-dynamic") "")) + #t))))))) (inputs (if (%current-target-system) `(("bash" ,static-bash)) '())))) (tar (package (inherit tar) (arguments - '(#:phases (modify-phases %standard-phases - (add-before 'build 'set-shell-file-name - (lambda _ - ;; Do not use "/bin/sh" to run programs; see - ;; . - (substitute* "src/system.c" - (("/bin/sh") "sh") - (("execv ") "execvp ")) - #t))))))) + (substitute-keyword-arguments (package-arguments tar) + ((#:phases phases) + `(modify-phases ,phases + (replace 'set-shell-file-name + (lambda _ + ;; Do not use "/bin/sh" to run programs; see + ;; . + (substitute* "src/system.c" + (("/bin/sh") "sh") + (("execv ") "execvp ")) + #t)))))))) ;; We don't want to retain a reference to /gnu/store in the bootstrap ;; versions of egrep/fgrep, so we remove the custom phase added since ;; grep@2.25. The effect is 'egrep' and 'fgrep' look for 'grep' in @@ -306,19 +310,19 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ((#:configure-flags flags _ ...) flags))) #:strip-flags '("--strip-all") - #:phases (alist-cons-before - 'configure 'all-static - (lambda _ - ;; The `-all-static' libtool flag can only be passed - ;; after `configure', since configure tests don't use - ;; libtool, and only for executables built with libtool. - (substitute* '("binutils/Makefile.in" - "gas/Makefile.in" - "ld/Makefile.in") - (("^LDFLAGS =(.*)$" line) - (string-append line - "\nAM_LDFLAGS = -static -all-static\n")))) - %standard-phases))))) + #:phases (modify-phases %standard-phases + (add-before 'configure 'all-static + (lambda _ + ;; The `-all-static' libtool flag can only be passed + ;; after `configure', since configure tests don't use + ;; libtool, and only for executables built with libtool. + (substitute* '("binutils/Makefile.in" + "gas/Makefile.in" + "ld/Makefile.in") + (("^LDFLAGS =(.*)$" line) + (string-append line + "\nAM_LDFLAGS = -static -all-static\n"))) + #t))))))) (define %binutils-static-stripped ;; The subset of Binutils that we need. @@ -424,18 +428,18 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (remove (cut string-match "--(.*plugin|enable-languages)" <>) ,flags))) ((#:phases phases) - `(alist-cons-after - 'pre-configure 'remove-lgcc_s - (lambda _ - ;; Remove the '-lgcc_s' added to GNU_USER_TARGET_LIB_SPEC in - ;; the 'pre-configure phase of our main gcc package, because - ;; that shared library is not present in this static gcc. See - ;; . - (substitute* (cons "gcc/config/rs6000/sysv4.h" - (find-files "gcc/config" - "^gnu-user.*\\.h$")) - ((" -lgcc_s}}") "}}"))) - ,phases))))) + `(modify-phases ,phases + (add-after 'pre-configure 'remove-lgcc_s + (lambda _ + ;; Remove the '-lgcc_s' added to GNU_USER_TARGET_LIB_SPEC in + ;; the 'pre-configure phase of our main gcc package, because + ;; that shared library is not present in this static gcc. See + ;; . + (substitute* (cons "gcc/config/rs6000/sysv4.h" + (find-files "gcc/config" + "^gnu-user.*\\.h$")) + ((" -lgcc_s}}") "}}")) + #t))))))) (native-inputs (if (%current-target-system) `(;; When doing a Canadian cross, we need GMP/MPFR/MPC both @@ -493,12 +497,14 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (string-append includedir "/c++")) ;; For native builds, check whether the binaries actually work. - ,(if (%current-target-system) - '#t - '(every (lambda (prog) - (zero? (system* (string-append gcc "/bin/" prog) - "--version"))) - '("gcc" "g++" "cpp"))))))) + ,@(if (%current-target-system) + '() + '((for-each (lambda (prog) + (invoke (string-append gcc "/bin/" prog) + "--version")) + '("gcc" "g++" "cpp")))) + + #t)))) (inputs `(("gcc" ,%gcc-static))))) (define %guile-static @@ -586,21 +592,22 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (mkdir (string-append out "/bin")) (copy-file guile1 guile2) - ;; Does the relocated Guile work? - (and ,(if (%current-target-system) - #t - '(zero? (system* guile2 "--version"))) - (begin - ;; Strip store references. - (remove-store-references guile2) + ;; Verify that the relocated Guile works. + ,@(if (%current-target-system) + '() + '((invoke guile2 "--version"))) - ;; Does the stripped Guile work? If it aborts, it could be - ;; that it tries to open iconv descriptors and fails because - ;; libc's iconv data isn't available (see - ;; `guile-default-utf8.patch'.) - ,(if (%current-target-system) - #t - '(zero? (system* guile2 "--version"))))))))) + ;; Strip store references. + (remove-store-references guile2) + + ;; Verify that the stripped Guile works. If it aborts, it could be + ;; that it tries to open iconv descriptors and fails because libc's + ;; iconv data isn't available (see `guile-default-utf8.patch'.) + ,@(if (%current-target-system) + '() + '((invoke guile2 "--version"))) + + #t)))) (inputs `(("guile" ,%guile-static))) (outputs '("out")) (synopsis "Minimal statically-linked and relocatable Guile"))) @@ -627,17 +634,17 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (mkdir out) (set-path-environment-variable "PATH" '("bin") (list tar xz)) (with-directory-excursion input - (zero? (system* "tar" "cJvf" - (string-append out "/" - ,name "-" ,version - "-" - ,(or (%current-target-system) - (%current-system)) - ".tar.xz") - "." - ;; avoid non-determinism in the archive - "--sort=name" "--mtime=@0" - "--owner=root:0" "--group=root:0")))))))))) + (invoke "tar" "cJvf" + (string-append out "/" + ,name "-" ,version + "-" + ,(or (%current-target-system) + (%current-system)) + ".tar.xz") + "." + ;; avoid non-determinism in the archive + "--sort=name" "--mtime=@0" + "--owner=root:0" "--group=root:0"))))))))) (define %bootstrap-binaries-tarball ;; A tarball with the statically-linked bootstrap binaries. diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 3c7fda7585..58e26d82ff 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -79,7 +79,8 @@ a flexible and convenient way.") (("#! /bin/sh") (string-append "#!" (which "sh"))))) (remove file-is-directory? - (find-files "src/tests" ".*")))))) + (find-files "src/tests" ".*"))) + #t))) (add-after 'unpack 'patch-iconv-path (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/man.c" @@ -150,7 +151,7 @@ the traditional flat-text whatis databases.") (define-public man-pages (package (name "man-pages") - (version "4.15") + (version "4.16") (source (origin (method url-fetch) (uri @@ -163,7 +164,7 @@ the traditional flat-text whatis databases.") "man-pages-" version ".tar.xz"))) (sha256 (base32 - "01n1rq1kvambax85xamriawbga94mh63s5mgjmjljjgf50m7yw6f")))) + "1d2d6llazg3inwjiz22cn46mbm5ydpbyh9qb55z4j3nm4w6wrzs7")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) @@ -189,7 +190,7 @@ Linux kernel and C library interfaces employed by user-space programs.") (define-public help2man (package (name "help2man") - (version "1.47.5") + (version "1.47.6") (source (origin (method url-fetch) @@ -197,7 +198,7 @@ Linux kernel and C library interfaces employed by user-space programs.") version ".tar.xz")) (sha256 (base32 - "1cb14kp380jzk1yi4i7x9d8qplc8c5mgcbgycgs9ggpx34jhp9kw")))) + "0vz4dlrvy4vc6l7w0a7n668pfa0rdm73wr2gar58wqranyah46yr")))) (build-system gnu-build-system) (arguments `(;; There's no `check' target. #:tests? #f)) diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm index fc8e2ceaa7..bce411d0bd 100644 --- a/gnu/packages/markup.scm +++ b/gnu/packages/markup.scm @@ -86,14 +86,15 @@ processing library written in C.") "/bin/unzip"))) (mkdir-p out) (with-directory-excursion out - (system* unzip source) + (invoke unzip source) (mkdir "bin") (mkdir-p "share/doc") (rename-file "Markdown_1.0.1/Markdown.pl" "bin/markdown") (rename-file "Markdown_1.0.1/Markdown Readme.text" "share/doc/README") (patch-shebang "bin/markdown" (list perlbd)) - (delete-file-recursively "Markdown_1.0.1")))))) + (delete-file-recursively "Markdown_1.0.1")) + #t)))) (native-inputs `(("unzip" ,unzip))) (inputs `(("perl" ,perl))) (home-page "http://daringfireball.net/projects/markdown") diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index c3a4edd1ea..88f64fdb66 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -923,12 +923,7 @@ icons on the MATE desktop. It works on local and remote file systems.") ("intltool" ,intltool) ("yelp-tools" ,yelp-tools) ("desktop-file-utils" ,desktop-file-utils) - ("kbproto" ,kbproto) - ("randrproto" ,randrproto) - ("renderproto" ,renderproto) - ("scrnsaverproto" ,scrnsaverproto) - ("xextpro" ,xextproto) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("xmodmap" ,xmodmap) ("gobject-introspection" ,gobject-introspection))) (inputs @@ -1142,7 +1137,7 @@ can be used as backgrounds in the MATE Desktop environment.") ("libxtst" ,libxtst) ("libx11" ,libx11) ("mate-panel" ,mate-panel) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (home-page "https://mate-desktop.org/") (synopsis "Tool for MATE on Netbooks") (description @@ -1194,15 +1189,10 @@ Re-decorates windows on un-maximise. ("autoconf" ,autoconf-wrapper) ("gettext" ,gettext-minimal) ("intltool" ,intltool) - ("kbproto" ,kbproto) ("mate-common" ,mate-common) ("pkg-config" ,pkg-config) - ("randrproto" ,randrproto) - ("renderproto" ,renderproto) - ("scrnsaverproto" ,scrnsaverproto) ("which" ,which) - ("xextpro" ,xextproto) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (inputs `(("cairo" ,cairo) ("dconf" ,dconf) @@ -1256,8 +1246,7 @@ can be used as backgrounds in the MATE Desktop environment.") ("libsm" ,libsm) ("pkg-config" ,pkg-config) ("scrollkeeper" ,scrollkeeper) - ("xextpro" ,xextproto) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("yelp-tools" ,yelp-tools))) (inputs `(("atk" ,atk) @@ -1534,7 +1523,8 @@ used to bring up authentication dialogs.") (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs ;; TODO: Add more packages `(("at-spi2-core" ,at-spi2-core) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 00f35659eb..ee5be3ed5d 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -25,6 +25,8 @@ ;;; Copyright © 2018 Jan Nieuwenhuizen ;;; Copyright © 2018 Joshua Sierles, Nextjournal ;;; Copyright © 2018 Nadya Voronova +;;; Copyright © 2018 Adam Massmann +;;; Copyright © 2018 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -53,6 +55,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system ocaml) + #:use-module (guix build-system python) #:use-module (guix build-system r) #:use-module (guix build-system ruby) #:use-module (gnu packages algebra) @@ -176,9 +179,11 @@ interactive dialogs to guide them.") (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. - '(for-each (lambda (d) - (delete-file-recursively (string-append "libcoda/" d))) - '("zlib" "pcre" "expat"))))) + '(begin + (for-each (lambda (d) + (delete-file-recursively (string-append "libcoda/" d))) + '("zlib" "pcre" "expat")) + #t)))) (native-inputs `(("fortran" ,gfortran) ("python" ,python) @@ -476,7 +481,10 @@ large scale eigenvalue problems.") (inputs `(("mpi" ,openmpi) ,@(package-inputs arpack-ng))) - (arguments `(#:configure-flags '("--enable-mpi"))) + (arguments + (substitute-keyword-arguments (package-arguments arpack-ng) + ((#:configure-flags _ '()) + ''("--enable-mpi")))) (synopsis "Fortran subroutines for solving eigenvalue problems with MPI"))) (define-public lapack @@ -517,19 +525,6 @@ problems in numerical linear algebra.") (license (license:non-copyleft "file://LICENSE" "See LICENSE in the distribution.")))) -(define-public lapack-3.5 - (package - (inherit lapack) - (version "3.5.0") - (source - (origin - (method url-fetch) - (uri (string-append "http://www.netlib.org/lapack/lapack-" - version ".tgz")) - (sha256 - (base32 - "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s")))))) - (define-public scalapack (package (name "scalapack") @@ -548,7 +543,16 @@ problems in numerical linear algebra.") ("fortran" ,gfortran) ("lapack" ,lapack))) ;for testing only (arguments - `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES"))) + `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES") + #:phases (modify-phases %standard-phases + (add-before 'check 'set-test-environment + (lambda _ + ;; By default, running the test suite would fail because + ;; 'ssh' could not be found in $PATH. Define this + ;; variable to placate Open MPI without adding a + ;; dependency on OpenSSH (the agent isn't used anyway.) + (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) + #t))))) (home-page "http://www.netlib.org/scalapack/") (synopsis "Library for scalable numerical linear algebra") (description @@ -562,7 +566,7 @@ singular value problems.") (define-public gnuplot (package (name "gnuplot") - (version "5.0.6") + (version "5.2.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" @@ -570,7 +574,7 @@ singular value problems.") version ".tar.gz")) (sha256 (base32 - "0q5lr6nala3ln6f3yp6g17ziymb9r9gx9zylnw1y3hjmwl9lggjv")))) + "18diyy7aib9mn098x07g25c7jij1x7wbfpicz0z8gwxx08px45m4")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("cairo" ,cairo) @@ -580,6 +584,9 @@ singular value problems.") (native-inputs `(("pkg-config" ,pkg-config) ("texlive" ,texlive-tiny))) + (arguments `(#:configure-flags (list (string-append + "--with-texdir=" %output + "/texmf-local/tex/latex/gnuplot")))) (home-page "http://www.gnuplot.info") (synopsis "Command-line driven graphing utility") (description "Gnuplot is a portable command-line driven graphing @@ -826,7 +833,8 @@ extremely large and complex data collections.") (for-each delete-file (list "SZip.tar.gz" "ZLib.tar.gz" "JPEG8d.tar.gz" "HDF4.tar.gz" "HDF5.tar.gz")) - (delete-file-recursively ,(string-append "hdfjava-" version "/lib")))))) + (delete-file-recursively ,(string-append "hdfjava-" version "/lib")) + #t)))) (build-system gnu-build-system) (native-inputs `(("jdk" ,icedtea "jdk") @@ -1229,7 +1237,9 @@ online as well as original implementations of various other algorithms.") (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. - '(delete-file-recursively "ThirdParty")))) + '(begin + (delete-file-recursively "ThirdParty") + #t)))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -1314,7 +1324,7 @@ can solve two kinds of problems: (define-public octave (package (name "octave") - (version "4.2.2") + (version "4.4.0") (source (origin (method url-fetch) @@ -1322,7 +1332,7 @@ can solve two kinds of problems: version ".tar.lz")) (sha256 (base32 - "0pkkz1vazsh7ipffb09q0nc2jgx6q27pkkngygjij6jrpcly5zsp")))) + "0nm766737gbkq9wqry54a026k3dg7rb1065kngfpwgjz8b544xbp")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack) @@ -1482,7 +1492,9 @@ Open CASCADE library.") (modules '((guix build utils))) (snippet ;; Remove non-free METIS code - '(delete-file-recursively "contrib/Metis")))) + '(begin + (delete-file-recursively "contrib/Metis") + #t)))) (build-system cmake-build-system) (propagated-inputs `(("fltk" ,fltk) @@ -1670,6 +1682,31 @@ scientific applications modeled by partial differential equations.") ,@(delete "--with-mpi=0" ,cf))))) (synopsis "Library to solve PDEs (with complex scalars and MPI support)"))) + +(define-public python-kiwisolver + (package + (name "python-kiwisolver") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "kiwisolver" version)) + (sha256 + (base32 + "0y22ci86znwwwfhbmvbgdfnbi6lv5gv2xkdlxvjw7lml43ayafyf")))) + (build-system python-build-system) + (home-page "https://github.com/nucleic/kiwi") + (synopsis "Fast implementation of the Cassowary constraint solver") + (description + "Kiwi is an efficient C++ implementation of the Cassowary constraint +solving algorithm. Kiwi has been designed from the ground up to be +lightweight and fast. Kiwi ranges from 10x to 500x faster than the original +Cassowary solver with typical use cases gaining a 40x improvement. Memory +savings are consistently > 5x.") + (license license:bsd-3))) + +(define-public python2-kiwisolver + (package-with-python2 python-kiwisolver)) + (define-public slepc (package (name "slepc") @@ -1752,6 +1789,18 @@ arising after the discretization of partial differential equations.") (define-public slepc-openmpi (package (inherit slepc) (name "slepc-openmpi") + (arguments + (substitute-keyword-arguments (package-arguments slepc) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-before 'check 'set-test-environment + (lambda _ + ;; By default, running the test suite would fail because 'ssh' + ;; could not be found in $PATH. Define this variable to + ;; placate Open MPI without adding a dependency on OpenSSH (the + ;; agent isn't used anyway.) + (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) + #t)))))) (inputs `(("mpi" ,openmpi) ("arpack" ,arpack-ng-openmpi) @@ -1921,11 +1970,18 @@ sparse system of linear equations A x = b using Guassian elimination.") (substitute-keyword-arguments (package-arguments mumps) ((#:phases phases) `(modify-phases ,phases - (replace - 'check - (lambda _ - ((assoc-ref ,phases 'check) - #:exec-prefix '("mpirun" "-n" "2")))))))) + (add-before 'check 'set-test-environment + (lambda _ + ;; By default, running the test suite would fail because 'ssh' + ;; could not be found in $PATH. Define this variable to + ;; placate Open MPI without adding a dependency on OpenSSH (the + ;; agent isn't used anyway.) + (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) + #t)) + (replace 'check + (lambda _ + ((assoc-ref ,phases 'check) + #:exec-prefix '("mpirun" "-n" "2")))))))) (synopsis "Multifrontal sparse direct solver (with MPI)"))) (define-public mumps-metis-openmpi @@ -2048,7 +2104,8 @@ void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g, (let ((line (read-line in 'concat))) (unless (regexp-exec rx line) (display line out) - (loop))))))))))) + (loop)))) + #t))))))) (build-system cmake-build-system) (native-inputs `(("tcsh" ,tcsh))) @@ -2075,38 +2132,38 @@ also provides threshold-based ILU factorization preconditioners.") (define-public superlu-dist (package (name "superlu-dist") - (version "3.3") + (version "5.3.0") (source (origin (method url-fetch) (uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/" "superlu_dist_" version ".tar.gz")) (sha256 - (base32 "1hnak09yxxp026blq8zhrl7685yip16svwngh1wysqxf8z48vzfj")) - (modules '((guix build utils))) + (base32 "0ja5ihqivkda1wd58y4lmzvmwssm9g91f70c5q0fzwhng6580h6y")) + (modules '((guix build utils))) (snippet ;; Replace the non-free implementation of MC64 with a stub '(begin (use-modules (ice-9 regex) (ice-9 rdelim)) - (call-with-output-file "SRC/mc64ad.c" + (call-with-output-file "SRC/mc64ad_dist.c" (lambda (port) (display " #include #include -void mc64id_(int *a) { +void mc64id_dist(int *a) { fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available. Aborting.\\n\"); abort (); } -void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g, +void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g, int *h, int *i, int *j, int *k, double *l, int *m, int *n) { fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available. Aborting.\\n\"); abort (); }\n" port))) - (delete-file "SRC/mc64ad.f.bak") (substitute* "SRC/util.c" ;adjust default algorithm (("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag") - "RowPerm = NOROWPERM")))) + "RowPerm = NOROWPERM")) + #t)) (patches (search-patches "superlu-dist-scotchmetis.patch")))) (build-system gnu-build-system) (native-inputs @@ -2168,6 +2225,11 @@ CDEFS = -DAdd_" #t)) (replace 'check (lambda _ + ;; By default, running the test suite would fail because 'ssh' + ;; could not be found in $PATH. Define this variable to placate + ;; Open MPI without adding a dependency on OpenSSH (the agent + ;; isn't used anyway.) + (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) (with-directory-excursion "EXAMPLE" (and (zero? (system* "mpirun" "-n" "2" @@ -2262,6 +2324,12 @@ YACC = bison -pscotchyy -y -b y (add-after 'build 'build-esmumps (lambda _ + ;; By default, running the test suite would fail because 'ssh' + ;; could not be found in $PATH. Define this variable to placate + ;; Open MPI without adding a dependency on OpenSSH (the agent + ;; isn't used anyway.) + (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) + (zero? (system* "make" (format #f "-j~a" (parallel-job-count)) "esmumps")))) @@ -2441,7 +2509,16 @@ schemes.") " -lopenblas") ,(string-append "LAPACK_LIBS=-L" (assoc-ref %build-inputs "lapack") - " -llapack")))) + " -llapack")) + #:phases (modify-phases %standard-phases + (add-before 'check 'set-test-environment + (lambda _ + ;; By default, running the test suite would fail because + ;; 'ssh' could not be found in $PATH. Define this + ;; variable to placate Open MPI without adding a + ;; dependency on OpenSSH (the agent isn't used anyway.) + (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) + #t))))) (home-page "http://www.p4est.org") (synopsis "Adaptive mesh refinement on forests of octrees") (description @@ -2957,7 +3034,9 @@ Fresnel integrals, and similar related functions as well.") (modules '((guix build utils))) (snippet ;; Remove bundled metis source - '(delete-file-recursively "metis-5.1.0")))) + '(begin + (delete-file-recursively "metis-5.1.0") + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f ;no "check" target @@ -3153,19 +3232,21 @@ specifications.") "12pj1idjz31r7c2mb5w03vy1cmvycvbkx9z29s40qdmkp1i7q6i0")) (modules '((guix build utils))) (snippet - '(substitute* (list "lp_solve/ccc" "lpsolve55/ccc") - (("^c=cc") "c=gcc") - ;; Pretend to be on a 64 bit platform to obtain a common directory - ;; name for the build results on all architectures; nothing else - ;; seems to depend on it. - (("^PLATFORM=.*$") "PLATFORM=ux64\n") + '(begin + (substitute* (list "lp_solve/ccc" "lpsolve55/ccc") + (("^c=cc") "c=gcc") + ;; Pretend to be on a 64 bit platform to obtain a common directory + ;; name for the build results on all architectures; nothing else + ;; seems to depend on it. + (("^PLATFORM=.*$") "PLATFORM=ux64\n") - ;; The check for 'isnan' as it is written fails with - ;; "non-floating-point argument in call to function - ;; ‘__builtin_isnan’", which leads to the 'NOISNAN' cpp macro - ;; definition, which in turn leads to bad things. Fix the feature - ;; test. - (("isnan\\(0\\)") "isnan(0.)"))))) + ;; The check for 'isnan' as it is written fails with + ;; "non-floating-point argument in call to function + ;; ‘__builtin_isnan’", which leads to the 'NOISNAN' cpp macro + ;; definition, which in turn leads to bad things. Fix the feature + ;; test. + (("isnan\\(0\\)") "isnan(0.)")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target @@ -3223,7 +3304,9 @@ revised simplex and the branch-and-bound methods.") (modules '((guix build utils))) (snippet ;; Remove bundled sources: UMFPACK, TBB, muParser, and boost - '(delete-file-recursively "bundled")))) + '(begin + (delete-file-recursively "bundled") + #t)))) (build-system cmake-build-system) (inputs `(("tbb" ,tbb) @@ -3420,6 +3503,7 @@ set.") (native-inputs `(("doc++" ,doc++) ("netpbm" ,netpbm) + ("perl" ,perl) ;needed to run 'ppmquant' during tests ("texlive" ,texlive) ;full package required for fonts ("ghostscript" ,ghostscript))) (inputs @@ -3497,7 +3581,17 @@ problems.") (substitute-keyword-arguments (package-arguments hypre) ((#:configure-flags flags) ``("--with-MPI" - ,@(delete "--without-MPI" ,flags))))) + ,@(delete "--without-MPI" ,flags))) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'check 'set-test-environment + (lambda _ + ;; By default, running the test suite would fail because 'ssh' + ;; could not be found in $PATH. Define this variable to + ;; placate Open MPI without adding a dependency on OpenSSH (the + ;; agent isn't used anyway.) + (setenv "OMPI_MCA_plm_rsh_agent" (which "cat")) + #t)))))) (synopsis "Parallel solvers and preconditioners for linear equations") (description "HYPRE is a software library of high performance preconditioners and @@ -3854,14 +3948,14 @@ are noisy or are discontinuous at the solution.") (define-public r-desolve (package (name "r-desolve") - (version "1.20") + (version "1.21") (source (origin (method url-fetch) (uri (cran-uri "deSolve" version)) (sha256 (base32 - "18nx3maww979a8p8ly4hv63y65mnjx8vbj2fpipd6rhcbf1lbsan")))) + "0qqc4mknw1jblzcmph1dg3k1p6w42yal0k1xjh8pqk7yb3a75hs5")))) (properties `((upstream-name . "deSolve"))) (build-system r-build-system) (native-inputs diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 81021f6461..473847c044 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -23,6 +23,7 @@ #:use-module (guix utils) #:use-module (guix build-system ant) #:use-module (gnu packages) + #:use-module (gnu packages compression) #:use-module (gnu packages java)) (define-public maven-resolver-api @@ -128,3 +129,436 @@ ease usage of the repository system."))) (synopsis "Maven repository connector implementation") (description "This package contains a repository connector implementation for repositories using URI-based layouts."))) + +(define-public maven-resolver-impl + (package + (inherit maven-resolver-api) + (name "maven-resolver-impl") + (arguments + `(#:jar-name "maven-resolver-impl.jar" + #:source-dir "maven-resolver-impl/src/main/java" + #:test-dir "maven-resolver-impl/src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-sisu + (lambda _ + (mkdir-p "build/classes/META-INF/sisu") + (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" + (lambda _ + (display + (string-append + ;; Build this list by looking for files containing "@Named" + "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n" + "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n" + "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n" + "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory\n" + "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n" + "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n" + "org.eclipse.aether.internal.impl.DefaultFileProcessor\n" + "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n" + "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n" + "org.eclipse.aether.internal.impl.DefaultDeployer\n" + "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n" + "org.eclipse.aether.internal.impl.DefaultInstaller\n" + "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n" + "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n" + "org.eclipse.aether.internal.impl.DefaultOfflineController\n" + "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n" + "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n" + "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n" + "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n" + "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n" + "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n" + "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n" + "org.eclipse.aether.internal.impl.DefaultDependencyCollector\n")))) + #t))))) + (inputs + `(("maven-resolver-api" ,maven-resolver-api) + ("maven-resolver-spi" ,maven-resolver-spi) + ("maven-resolver-util" ,maven-resolver-util) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("java-guice" ,java-guice) + ("java-guava" ,java-guava) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("jajva-aopalliance" ,java-aopalliance) + ("java-slf4j-api" ,java-slf4j-api))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("maven-resolver-test-util" ,maven-resolver-test-util))))) + +(define-public maven-shared-utils + (package + (name "maven-shared-utils") + (version "3.2.1") + (source (origin + (method url-fetch) + (uri (string-append "https://archive.apache.org/dist/maven/shared/" + "maven-shared-utils-" version "-source-release.zip")) + (sha256 + (base32 + "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "maven-shared-utils.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'check 'remove-cyclic-dep + (lambda _ + (delete-file + "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java") + #t))))) + (inputs + `(("java-jansi" ,java-jansi) + ("java-commons-io" ,java-commons-io) + ("java-jsr305" ,java-jsr305) + ("java-plexus-container-default" ,java-plexus-container-default))) + (native-inputs + `(("unzip" ,unzip) + ("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-commons-lang3" ,java-commons-lang3))) + (home-page "https://maven.apache.org/shared/maven-shared-utils/") + (synopsis "Plexus-util replacement for maven") + (description "This project aims to be a functional replacement for +plexus-utils in Maven. It is not a 100% API compatible replacement but a +replacement with improvements.") + (license license:asl2.0))) + +(define-public maven-artifact + (package + (name "maven-artifact") + (version "3.5.3") + (source (origin + (method url-fetch) + (uri (string-append "https://archive.apache.org/dist/maven/" + "maven-3/" version "/source/" + "apache-maven-" version "-src.tar.gz")) + (sha256 (base32 "06by23fz207lkvsndq883irfcf4p77jzkgf7n2q7hzyw1hs4h5s7")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file (find-files "." "\\.jar$")) + #t)) + (patches + (search-patches "maven-generate-component-xml.patch" + "maven-generate-javax-inject-named.patch")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "maven-artifact.jar" + #:source-dir "maven-artifact/src/main/java" + #:test-dir "maven-artifact/src/test" + #:main-class "org.apache.maven.artifact.versioning.ComparableVersion")) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("java-commons-lang3" ,java-commons-lang3))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "https://maven.apache.org/") + (synopsis "Build system") + (description "Apache Maven is a software project management and comprehension +tool. This package contains the Maven Artifact classes, providing the +@code{Artifact} interface, with its @code{DefaultArtifact} implementation. The +jar file is executable and provides a little tool to display how Maven parses +and compares versions:") + (license license:asl2.0))) + +(define-public maven-model + (package + (inherit maven-artifact) + (name "maven-model") + (arguments + `(#:jar-name "maven-model.jar" + #:source-dir "maven-model/src/main/java" + #:test-dir "maven-model/src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + file mode "maven-model/src/main/java" version + "false" "true")) + (let ((file "maven-model/src/main/mdo/maven.mdo")) + (modello-single-mode file "4.0.0" "java") + (modello-single-mode file "4.0.0" "xpp3-reader") + (modello-single-mode file "4.0.0" "xpp3-writer") + (modello-single-mode file "4.0.0" "xpp3-extended-reader")) + #t))))) + (inputs + `(("java-commons-lang3" ,java-commons-lang3) + ("java-plexus-utils" ,java-plexus-utils))) + (native-inputs + `(("java-modello-core" ,java-modello-core) + ;; for modello: + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-guice" ,java-guice) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-guava" ,java-guava) + ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) + ("java-sisu-build-api" ,java-sisu-build-api) + ;; modello plugins: + ("java-modello-plugins-java" ,java-modello-plugins-java) + ("java-modello-plugins-xml" ,java-modello-plugins-xml) + ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) + ;; for tests + ("java-junit" ,java-junit))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains the model for Maven @dfn{POM} (Project Object Model), +so really just plain Java objects."))) + +(define-public maven-builder-support + (package + (inherit maven-artifact) + (name "maven-builder-support") + (arguments + `(#:jar-name "maven-builder-support.jar" + #:source-dir "maven-builder-support/src/main/java" + #:jdk ,icedtea-8 + #:test-dir "maven-builder-support/src/test" + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-paths + (lambda _ + (with-directory-excursion "maven-builder-support/src/test/java" + (substitute* + '("org/apache/maven/building/FileSourceTest.java" + "org/apache/maven/building/UrlSourceTest.java") + (("target/test-classes") "maven-builder-support/src/test/resources"))) + #t))))) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("java-commons-lang3" ,java-commons-lang3))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains a support library for descriptor builders (model, +setting, toolchains)"))) + +(define-public maven-settings + (package + (inherit maven-artifact) + (name "maven-settings") + (arguments + `(#:jar-name "maven-settings.jar" + #:source-dir "maven-settings/src/main/java" + #:jdk ,icedtea-8 + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + file mode "maven-settings/src/main/java" version + "false" "true")) + (let ((file "maven-settings/src/main/mdo/settings.mdo")) + (modello-single-mode file "1.1.0" "java") + (modello-single-mode file "1.1.0" "xpp3-reader") + (modello-single-mode file "1.1.0" "xpp3-writer")) + #t))))) + (inputs '()) + (native-inputs + `(("java-modello-core" ,java-modello-core) + ;; for modello: + ;("container" ,java-plexus-container-default) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-guice" ,java-guice) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-plexus-utils" ,java-plexus-utils) + ("java-guava" ,java-guava) + ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) + ("java-sisu-build-api" ,java-sisu-build-api) + ;; modello plugins: + ("java-modello-plugins-java" ,java-modello-plugins-java) + ("java-modello-plugins-xml" ,java-modello-plugins-xml) + ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains strictly the model for Maven settings, that is +simply plain java objects."))) + +(define-public maven-settings-builder + (package + (inherit maven-artifact) + (name "maven-settings-builder") + (arguments + `(#:jar-name "maven-settings-builder.jar" + #:source-dir "maven-settings-builder/src/main/java" + #:jdk ,icedtea-8 + #:test-dir "maven-settings-builder/src/test" + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-components.xml + (lambda _ + (mkdir-p "build/classes/META-INF/plexus") + (chmod "components.sh" #o755) + (invoke "./components.sh" "maven-settings-builder/src/main/java" + "build/classes/META-INF/plexus/components.xml") + #t))))) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-plexus-interpolation" ,java-plexus-interpolation) + ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) + ("maven-builder-support" ,maven-builder-support) + ("maven-settings" ,maven-settings) + ("java-commons-lang3" ,java-commons-lang3))) + (native-inputs + `(("java-junit" ,java-junit))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains the effective model builder, with profile activation, +inheritance, interpolation, @dots{}"))) + +(define-public maven-model-builder + (package + (inherit maven-artifact) + (name "maven-model-builder") + (arguments + `(#:jar-name "maven-model-builder.jar" + #:source-dir "maven-model-builder/src/main/java" + #:jdk ,icedtea-8 + #:test-dir "maven-model-builder/src/test" + #:phases + (modify-phases %standard-phases + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "maven-model-builder/src/main/resources" + "build/classes") + #t)) + (add-before 'build 'generate-components.xml + (lambda _ + (mkdir-p "build/classes/META-INF/plexus") + (chmod "components.sh" #o755) + (invoke "./components.sh" "maven-model-builder/src/main/java" + "build/classes/META-INF/plexus/components.xml") + #t)) + (add-before 'check 'fix-paths + (lambda _ + (substitute* (find-files "maven-model-builder/src/test/java" ".*.java") + (("src/test") "maven-model-builder/src/test")) + #t))))) + (inputs + `(("model" ,maven-model) + ("artifact" ,maven-artifact) + ("support" ,maven-builder-support) + ("annotations" ,java-plexus-component-annotations) + ("utils" ,java-plexus-utils) + ("interpolation" ,java-plexus-interpolation) + ("lang3" ,java-commons-lang3) + ("guava" ,java-guava))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("guice" ,java-guice) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("sisu-inject" ,java-eclipse-sisu-inject) + ("javax-inject" ,java-javax-inject) + ("xmlunit" ,java-xmlunit) + ("xmlunit" ,java-xmlunit-legacy) + ("xbean" ,java-geronimo-xbean-reflect) + ("classworlds" ,java-plexus-classworlds))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains the effective model builder, with profile activation, +inheritance, interpolation, @dots{}"))) + +(define-public maven-repository-metadata + (package + (inherit maven-artifact) + (name "maven-repository-metadata") + (arguments + `(#:jar-name "maven-repository-metadata.jar" + #:source-dir "maven-repository-metadata/src/main/java" + #:jdk ,icedtea-8 + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + file mode "maven-repository-metadata/src/main/java" version + "false" "true")) + (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo")) + (modello-single-mode file "1.1.0" "java") + (modello-single-mode file "1.1.0" "xpp3-reader") + (modello-single-mode file "1.1.0" "xpp3-writer")) + #t))))) + (inputs '()) + (native-inputs + `(("modello" ,java-modello-core) + ;; for modello: + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-guice" ,java-guice) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-guava" ,java-guava) + ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) + ("java-sisu-build-api" ,java-sisu-build-api) + ;; modello plugins: + ("java-modello-plugins-java" ,java-modello-plugins-java) + ("java-modello-plugins-xml" ,java-modello-plugins-xml) + ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains strictly the model for Maven Repository Metadata, +so really just plain objects."))) + +(define-public maven-resolver-provider + (package + (inherit maven-artifact) + (name "maven-resolver-provider") + (arguments + `(#:jar-name "maven-resolver-provider.jar" + #:source-dir "maven-resolver-provider/src/main/java" + #:test-dir "maven-resolver-provider/src/test" + #:jdk ,icedtea-8 + #:tests? #f; dependency loop on maven-core (@Component RepositorySystem) + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-sisu-named + (lambda _ + (mkdir-p "build/classes/META-INF/sisu") + (chmod "./sisu.sh" #o755) + (invoke "./sisu.sh" "maven-resolver-provider/src/main/java" + "build/classes/META-INF/sisu/javax.inject.Named") + #t))))) + (inputs + `(("maven-resolver-spi" ,maven-resolver-spi) + ("maven-resolver-api" ,maven-resolver-api) + ("maven-resolver-impl" ,maven-resolver-impl) + ("maven-resolver-util" ,maven-resolver-util) + ("maven-model" ,maven-model) + ("maven-model-builder" ,maven-model-builder) + ("maven-builder-support" ,maven-builder-support) + ("maven-repository-metadata" ,maven-repository-metadata) + ("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-commons-lang3" ,java-commons-lang3) + ("java-guice" ,java-guice) + ("java-guava" ,java-guava) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject))))) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index d2ce394a03..a8a19854de 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Jan Nieuwenhuizen +;;; Copyright © 2017,2018 Jan Nieuwenhuizen ;;; Copyright © 2017, 2018 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; @@ -56,11 +56,24 @@ extensive examples, including parsers for the Javascript and C99 languages.") (home-page "https://savannah.nongnu.org/projects/nyacc") (license (list gpl3+ lgpl3+)))) +(define-public nyacc-for-mes + (package + (inherit nyacc) + (version "0.80.42") + (source (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/janneke/nyacc" + "/-/archive/v" version + "/nyacc-" version ".tar.gz")) + (sha256 + (base32 + "0c8c8kxir0h2d4nxr131xbkfs7c80haipmkp2g6677sh14wn0b3y")))))) + (define-public mes (let ((triplet "i686-unknown-linux-gnu")) (package (name "mes") - (version "0.13") + (version "0.14") (source (origin (method url-fetch) (uri (string-append "https://gitlab.com/janneke/mes" @@ -68,12 +81,12 @@ extensive examples, including parsers for the Javascript and C99 languages.") "/mes-" version ".tar.gz")) (sha256 (base32 - "0db4f32rak839ff3n7ywkkng9672457pd2pvvgvcsyndqmmdsqw0")))) + "1i23jk61iibjza2s3lka56ry4ma424g2fyk8pjd5bd1dyjd0yrzf")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (propagated-inputs `(("mescc-tools" ,mescc-tools) - ("nyacc" ,nyacc))) + ("nyacc" ,nyacc-for-mes))) (native-inputs `(("guile" ,guile-2.2) ,@(if (not (string-prefix? "i686-linux" (or (%current-target-system) @@ -85,7 +98,9 @@ extensive examples, including parsers for the Javascript and C99 languages.") '()) ("perl" ,perl))) ;build-aux/gitlog-to-changelog (arguments - `(#:phases + `(#:make-flags (list + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases (add-before 'install 'generate-changelog (lambda _ @@ -107,7 +122,7 @@ Guile-] Scheme interpreter prototype in C and a Nyacc-based C compiler in (define-public mescc-tools (package (name "mescc-tools") - (version "0.3") + (version "0.4") (source (origin (method url-fetch) (uri (string-append @@ -117,13 +132,18 @@ Guile-] Scheme interpreter prototype in C and a Nyacc-based C compiler in (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "04lvyyp7isamgddrnfpi92lgqdflzdzx5kc2x8fxmgsjisy0dgr4")))) + "1iwc8xqwzdaqckb4jkkisljrgn8ii4bl7dzk1l2kpv98hsyq9vi1")))) (build-system gnu-build-system) + (supported-systems '("i686-linux" "x86_64-linux")) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:test-target "test" #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure) + (add-after 'install 'install-2 + (lambda _ + (let ((out (assoc-ref %outputs "out"))) + (copy-file "bin/blood-elf" (string-append out "/bin/blood-elf")))))))) (synopsis "Tools for the full source bootstrapping process") (description "Mescc-tools is a collection of tools for use in a full source diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index fd1c330cea..e098a8b37e 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2018 Leo Famulari +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -131,7 +132,7 @@ keys, no previous conversation is compromised.") (define-public libsignal-protocol-c (package (name "libsignal-protocol-c") - (version "2.3.1") + (version "2.3.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/WhisperSystems/" @@ -140,7 +141,7 @@ keys, no previous conversation is compromised.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1klz9jvbnmfc3qy2x6qcswzw14a7kyzs51dlg18yllvir1f1kz0s")))) + "0380hl6fw3ppf265fg897pyrpqygpx4m9j8ifq118bim8lq6z0pk")))) (arguments `(;; Required for proper linking and for tests to run. #:configure-flags '("-DBUILD_SHARED_LIBS=on" "-DBUILD_TESTING=1"))) @@ -181,6 +182,9 @@ end-to-end encryption.") (add-after 'install 'install-etc (lambda* (#:key (make-flags '()) #:allow-other-keys) (zero? (apply system* "make" "install-etc" make-flags)))) + (add-after 'install-etc 'install-lib + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (zero? (apply system* "make" "install-dev" make-flags)))) (replace 'configure ;; bitlbee's configure script does not tolerate many of the ;; variable settings that Guix would pass to it. @@ -199,6 +203,49 @@ identi.ca and status.net).") (home-page "http://www.bitlbee.org/") (license (list license:gpl2+ license:bsd-2)))) +(define-public bitlbee-discord + (package + (name "bitlbee-discord") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri + (string-append "https://github.com/sm00th/bitlbee-discord/" + "archive/" version ".tar.gz")) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1bwqxlg6fwj3749y7w69n9jwsdzf5nl9xqiszbpv9k8x1422i1y1")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (let ((sh (which "sh"))) + (substitute* "autogen.sh" (("/bin/sh") sh)) + (setenv "CONFIG_SHELL" sh) + (zero? (system* "./autogen.sh"))))) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (invoke "./configure" + (string-append "--with-plugindir=" + (assoc-ref outputs "out") + "/lib/bitlbee/"))))))) + (inputs `(("glib" ,glib))) + (native-inputs `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo) + ("libtool" ,libtool) + ("bitlbee" ,bitlbee) ;needs bitlbee headers + ("bash" ,bash))) + (synopsis "Discord plugin for Bitlbee") + (description "Bitlbee-discord is a plugin for Bitlbee witch provides +access to servers running the Discord protocol.") + (home-page "https://github.com/sm00th/bitlbee-discord/") + (license license:gpl2+))) + (define-public hexchat (package (name "hexchat") @@ -440,32 +487,48 @@ compromised.") (define-public znc (package (name "znc") - (version "1.6.6") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append "http://znc.in/releases/archive/znc-" version ".tar.gz")) (sha256 (base32 - "09cmsnxvi7jg9a0dicf60fxnxdff4aprw7h8vjqlj5ywf6y43f3z")))) + "0vxra50418bsjfdpf8vl70fijv8syvasjqdxfyjliff6k91k2zn0")))) + ;; TODO: autotools support has been deprecated, and new features like i18n + ;; are only supported when building with cmake. (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'unpack-googletest (lambda* (#:key inputs #:allow-other-keys) - (zero? (system* "tar" "xf" - (assoc-ref inputs "googletest-source")))))) + (mkdir-p "googletest") + (copy-recursively (assoc-ref inputs "googletest-source") + "googletest") + #t))) #:configure-flags '("--enable-python" "--enable-perl" "--enable-cyrus" - ,(string-append "--with-gtest=" - "googletest-release-" - (package-version googletest) - "/googletest")) + "--with-gmock=googletest/googlemock" + "--with-gtest=googletest/googletest") #:test-target "test")) (native-inputs - `(("googletest-source" ,(package-source googletest)) + `(("googletest-source" + ;; ZNC 1.7 needs a newer, unreleased googletest (a release is planned + ;; , so don't update + ;; the public GOOGLETEST to an unstable version). The commit is taken + ;; from ‘third_party/googletest’ in the ZNC git repository. + ,(let ((commit "9737e63c69e94ac5777caa0bc77c77d5206467f3")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/googletest") + (commit commit))) + (file-name (git-file-name "googletest-for-znc" commit)) + (sha256 + (base32 + "0ya36n8d62zbxk6p22yffgx43mqhx2fz41gqqwbpdshjryf3wvxj"))))) ("pkg-config" ,pkg-config) ("perl" ,perl) ("python" ,python))) @@ -476,23 +539,23 @@ compromised.") ("cyrus-sasl" ,cyrus-sasl))) (home-page "https://znc.in") (synopsis "IRC network bouncer") - (description "ZNC is an IRC network bouncer or BNC. It can detach the -client from the actual IRC server, and also from selected channels. Multiple -clients from different locations can connect to a single ZNC account + (description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}. It can +detach the client from the actual IRC server, and also from selected channels. +Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC.") (license license:asl2.0))) (define-public python-nbxmpp (package (name "python-nbxmpp") - (version "0.6.4") + (version "0.6.6") (source (origin (method url-fetch) (uri (pypi-uri "nbxmpp" version)) (sha256 (base32 - "12rfmp613alh3mi8f94008sx7x1a8c1izs3icrvw7bf4gnf2pi31")))) + "0bp60syqc3qp2i28phvadxlpwizjbr6bxw4m363p9yn5fl687qnh")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; no tests @@ -510,7 +573,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.") (define-public gajim (package (name "gajim") - (version "1.0.1") + (version "1.0.3") (source (origin (method url-fetch) (uri (string-append "https://gajim.org/downloads/" @@ -518,7 +581,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.") "/gajim-" version ".tar.bz2")) (sha256 (base32 - "16ynws10vhx6rhjjjmzw6iyb3hc19823xhx4gsb14hrc7l8vzd1c")))) + "0ds4rqwfrpj89a489w6yih8gx5zi7qa4ffgld950fk7s0qxvcfnb")))) (build-system python-build-system) (arguments `(#:phases @@ -564,7 +627,15 @@ was initially a fork of xmpppy, but uses non-blocking sockets.") (with-directory-excursion icons (symlink adwaita "Adwaita") (copy-recursively hicolor "hicolor"))) - #t))))) + #t)) + (add-after 'install-icons 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/gajim") + ;; For GtkFileChooserDialog. + `("GSETTINGS_SCHEMA_DIR" = + (,(string-append (assoc-ref inputs "gtk+") + "/share/glib-2.0/schemas"))))))))) (native-inputs `(("intltool" ,intltool) ("xorg-server" ,xorg-server))) @@ -665,14 +736,14 @@ a graphical desktop environment like GNOME.") (define-public prosody (package (name "prosody") - (version "0.10.0") + (version "0.10.2") (source (origin (method url-fetch) (uri (string-append "https://prosody.im/downloads/source/" "prosody-" version ".tar.gz")) (sha256 (base32 - "1644jy5dk46vahmh6nna36s79k8k668sbi3qamjb4q3c4m3y853l")))) + "13knr7izscw0zx648b9582dx11aap4cq9bzfiqh5ykd7wwsz1dbm")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target @@ -1104,7 +1175,9 @@ into existing applications.") "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42")) ;; psycmp3 currently depends on MP3::List and rxaudio (shareware), ;; we can add it back when this is no longer the case. - (snippet '(delete-file "contrib/psycmp3")))) + (snippet '(begin + (delete-file "contrib/psycmp3") + #t)))) (build-system perl-build-system) (inputs `(("perl-curses" ,perl-curses) @@ -1409,12 +1482,6 @@ is also scriptable and extensible via Guile.") (base32 "0iaj56fkd5bjvqpvq3324ni895rmbj1akbfqipjydnghfwaym4z6")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'bootstrap - (lambda _ - (zero? (system* "./bootstrap.sh"))))))) (inputs `(("expat" ,expat) ("openssl" ,openssl))) @@ -1444,12 +1511,6 @@ manual SSL certificate verification.") (base32 "0vxfcyfnhnlaj6spm2b0ljw5i3knbphy6mvzpl5zv9b52ny4b08m")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'bootstrap - (lambda _ - (zero? (system* "./bootstrap.sh"))))))) (inputs `(("expat" ,expat) ("openssl" ,openssl))) diff --git a/gnu/packages/microcom.scm b/gnu/packages/microcom.scm index dcb864808f..67fd5fe355 100644 --- a/gnu/packages/microcom.scm +++ b/gnu/packages/microcom.scm @@ -39,12 +39,6 @@ (base32 "080ci5589bpyy5kcl51csmvpw9zysify189hw6awx69pi3cjnxly")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-i"))))))) (inputs `(("readline" ,readline))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf))) diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 31ec88db81..bbfa4957fc 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -55,9 +55,11 @@ (modules '((guix build utils))) (snippet ;; Ensure reproducibility. - '(substitute* (find-files "cgi" "\\.c$") - (("__DATE__") "\"1970-01-01\"") - (("__TIME__") "\"00:00:00\""))))) + '(begin + (substitute* (find-files "cgi" "\\.c$") + (("__DATE__") "\"1970-01-01\"") + (("__TIME__") "\"00:00:00\"")) + #t)))) (build-system gnu-build-system) (native-inputs `(("unzip" ,unzip))) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 48bf33235f..22aef058f4 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -120,7 +120,7 @@ versions of ID3v2.") "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97")) (modules '((guix build utils))) ;; Don't use bundled zlib - (snippet '(delete-file-recursively "zlib")) + (snippet '(begin (delete-file-recursively "zlib") #t)) (patches (search-patches "id3lib-CVE-2007-4460.patch")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) @@ -192,10 +192,12 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.") "042f1czcs9n2sbqvg4rsvfwlqib2gk976mfa2kxlfjghx5laqf04")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile" - (("/bin/rm") "rm") - (("/usr/bin/install") "install") - (("man/man1") "share/man/man1"))))) + '(begin + (substitute* "Makefile" + (("/bin/rm") "rm") + (("/usr/bin/install") "install") + (("man/man1") "share/man/man1")) + #t)))) (build-system gnu-build-system) (outputs '("out" "gui")) ;GTK+ interface in "gui" (arguments diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index a9d317eb7b..3c06fb0e64 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -88,7 +88,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.20.19") + (version "0.20.20") (source (origin (method url-fetch) (uri @@ -97,7 +97,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "1hsng4mnaz1jr2s3fy3q78vf2f6102lwphjdls7qln0pj8dyzk81")))) + "111m4z7zaz60xfxvz5xkxs1al4vzb8g2wwp7kmj65pvww335ir59")))) (build-system gnu-build-system) (arguments `(#:phases @@ -119,9 +119,10 @@ interfacing MPD in the C, C++ & Objective C languages.") ("flac" ,flac) ("glib" ,glib) ("icu4c" ,icu4c) + ;; The LAME decoder comes from FFmpeg, but is added here so that + ;; configure picks up the LAME encoder. ("lame" ,lame) ("libid3tag" ,libid3tag) - ("libmad" ,libmad) ("libmpdclient" ,libmpdclient) ("libsamplerate" ,libsamplerate) ("libsndfile" ,libsndfile) @@ -162,7 +163,7 @@ protocol.") (define-public mpd-mpc (package (name "mpd-mpc") - (version "0.29") + (version "0.30") (source (origin (method url-fetch) (uri @@ -171,7 +172,7 @@ protocol.") "/mpc-" version ".tar.xz")) (sha256 (base32 - "1lxr0z5i5yx4lcvy9nyxj6q32qlz473j3zm6va68zd1cj3ndmw82")))) + "1kkzhrypkp0v6xv4d6db415pd0h6jqki29kfpsnfkvrhhh55pz35")))) (build-system meson-build-system) (inputs `(("libmpdclient" ,libmpdclient))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 5dfb26ae75..f34b08e4ca 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -153,7 +153,7 @@ bind processes, and much more.") (define-public openmpi (package (name "openmpi") - (version "1.10.7") + (version "3.0.1") (source (origin (method url-fetch) @@ -162,16 +162,20 @@ bind processes, and much more.") "/downloads/openmpi-" version ".tar.bz2")) (sha256 (base32 - "142s1vny9gllkq336yafxayjgcirj2jv0ddabj879jgya7hyr2d0")))) + "0pbqrm5faf57nasy1s81wqivl7zvxmv8lzjh8hvb0f3qxv8m0d36")))) (build-system gnu-build-system) (inputs `(("hwloc" ,hwloc "lib") ("gfortran" ,gfortran) ("libfabric" ,libfabric) - ,@(match (%current-system) - ((member (package-supported-systems psm)) - `(("psm" ,psm))) - (_ `())) + ,@(if (and (not (%current-target-system)) + (member (%current-system) (package-supported-systems psm))) + `(("psm" ,psm)) + '()) + ,@(if (and (not (%current-target-system)) + (member (%current-system) (package-supported-systems psm2))) + `(("psm2" ,psm2)) + '()) ("rdma-core" ,rdma-core) ("valgrind" ,valgrind))) (native-inputs @@ -205,8 +209,8 @@ bind processes, and much more.") (("_ABSOLUTE") "")) ;; Avoid valgrind (which pulls in gdb etc.). (substitute* - '("./ompi/mca/io/romio/src/io_romio_component.c") - (("MCA_io_romio_COMPLETE_CONFIGURE_FLAGS") + '("./ompi/mca/io/romio314/src/io_romio314_component.c") + (("MCA_io_romio314_COMPLETE_CONFIGURE_FLAGS") "\"[elided to reduce closure]\"")) #t)) (add-before 'build 'scrub-timestamps ;reproducibility diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 6f5c802ad4..e185a98359 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Eric Bavier +;;; Copyright © 2018 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -91,13 +92,13 @@ algebra.") (define-public mpfr (package (name "mpfr") - (version "3.1.6") + (version "4.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mpfr/mpfr-" version ".tar.xz")) (sha256 (base32 - "0l598h9klpgkz2bp0rxiqb90mkqh9f2f81n5rpy191j00hdaqqks")))) + "0vp1lrc08gcmwdaqck6bpzllkrykvp06vz5gnqpyw0v3h9h4m1v7")))) (build-system gnu-build-system) (outputs '("out" "debug")) (propagated-inputs `(("gmp" ,gmp))) ; refers to @@ -112,14 +113,14 @@ correct rounding.") (define-public mpc (package (name "mpc") - (version "1.0.3") + (version "1.1.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mpc/mpc-" version ".tar.gz")) (sha256 (base32 - "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1")))) + "0biwnhjm3rx3hc0rfpvyniky4lpzsvdcwhmcn7f0h4iw2hwcb1b9")))) (build-system gnu-build-system) (outputs '("out" "debug")) (propagated-inputs `(("gmp" ,gmp) ; refers to both diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 7e98fa74cf..f06885d69e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -187,45 +187,47 @@ score, keyboard, guitar, drum and controller views.") ;; We don't use the latest release because it depends on Qt4. Instead we ;; download the sources from the tip of the "qt5" branch. (define-public clementine - (let ((commit "0a59257dc334b8df60a4d7d90b04f1766747efcf") - (revision "1")) + (let ((commit "4619a4c1ab3b17b13d4b2327ad477912917eaf36") + (revision "2")) (package (name "clementine") - (version (string-append "1.3.1-" revision "." (string-take commit 7))) + (version (git-version "1.3.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/clementine-player/Clementine.git") (commit commit))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 - "0cdcj7di7j9jgzc1ihjna1a5df64f9hnmx7b9kh8rlg76hc0l0hi")) + "1hximk3q0p8nw8is5w7215xgkb7k4flnfyr0pdz9svfwvcm05w1i")) (modules '((guix build utils))) (snippet - '(for-each + '(begin + (for-each (lambda (dir) (delete-file-recursively - (string-append "3rdparty/" dir))) + (string-append "3rdparty/" dir))) (list - ;; TODO: The following dependencies are still bundled: - ;; - "qxt": Appears to be unmaintained upstream. - ;; - "qsqlite" - ;; - "qtsingleapplication" - ;; - "qocoa" - ;; - "qtiocompressor" - ;; - "gmock": The tests crash when using our googletest - ;; package instead of the bundled gmock. - "SPMediaKeyTap" - "fancytabwidget" - "google-breakpad" - "libmygpo-qt" - "libmygpo-qt5" - "libprojectm" - "qtwin" - "sha2" ;; Replaced by openssl. - "taglib" - "tinysvcmdns"))) + ;; TODO: The following dependencies are still bundled: + ;; - "qxt": Appears to be unmaintained upstream. + ;; - "qsqlite" + ;; - "qtsingleapplication" + ;; - "qocoa" + ;; - "qtiocompressor" + ;; - "gmock": The tests crash when using our googletest + ;; package instead of the bundled gmock. + "SPMediaKeyTap" + "fancytabwidget" + "google-breakpad" + "libmygpo-qt" + "libmygpo-qt5" + "libprojectm" + "qtwin" + "sha2" ;; Replaced by openssl. + "taglib" + "tinysvcmdns")) + #t)) (patches (search-patches "clementine-use-openssl.patch" "clementine-remove-crypto++-dependency.patch")))) (build-system cmake-build-system) @@ -262,7 +264,6 @@ score, keyboard, guitar, drum and controller views.") ("gst-plugins-base" ,gst-plugins-base) ("libcdio" ,libcdio) ("libmygpo-qt" ,libmygpo-qt) - ("libechonest" ,libechonest) ;; TODO: Package libgpod. ("libmtp" ,libmtp) ("libxml2" ,libxml2) @@ -1183,6 +1184,19 @@ add_library( rapidjson INTERFACE IMPORTED )")) (("boost::rational duration\\(4, pos.getDurationType\\(\\)\\);") "boost::rational duration(4, static_cast(pos.getDurationType()));")) #t)) + ;; Fix build with Qt 5.11. + (add-after 'unpack 'add-missing-headers + (lambda _ + (substitute* (find-files "source/dialogs/" "\\.h$") + (("#include " m) + (string-append m "\n#include "))) + (substitute* "source/widgets/mixer/mixeritem.h" + (("#include " m) + (string-append m "\n#include "))) + (substitute* "source/widgets/playback/playbackwidget.h" + (("#include " m) + (string-append m "\n#include \n#include "))) + #t)) (add-before 'configure 'remove-third-party-libs (lambda* (#:key inputs #:allow-other-keys) ;; Link with required static libraries, because we're not @@ -1973,7 +1987,7 @@ capabilities, custom envelopes, effects, etc.") (define-public yoshimi (package (name "yoshimi") - (version "1.5.7") + (version "1.5.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/yoshimi/" @@ -1981,7 +1995,7 @@ capabilities, custom envelopes, effects, etc.") "/yoshimi-" version ".tar.bz2")) (sha256 (base32 - "1w916mmi6hh547a7icrgx6qr2kwxlxwlm6ampql427rshcz9r61k")))) + "0gwsr5srzy28hwqhfzrc8pswysmyra8kbww3bxfx8bq4mdjifdj6")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there are no tests @@ -2175,16 +2189,28 @@ from the command line.") (define-public qtractor (package (name "qtractor") - (version "0.9.0") + (version "0.9.1") (source (origin (method url-fetch) (uri (string-append "http://downloads.sourceforge.net/qtractor/" "qtractor-" version ".tar.gz")) (sha256 (base32 - "03892177k3jn2bsi366dhq28rcdsc1p9v5qqc0k6hg3cnrkh23na")))) + "07csbqr7q4m1j0pqg89kn7jdw0snd5lwna5rha0986s4plq4z1qb")))) (build-system gnu-build-system) - (arguments `(#:tests? #f)) ; no "check" target + (arguments + `(#:tests? #f ; no "check" target + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build-with-qt-5.11 + (lambda _ + (substitute* "src/qtractorMeter.h" + (("#include " m) + (string-append "#include \n" m))) + (substitute* "src/qtractorTrackButton.h" + (("#include " m) + (string-append "#include \n" m))) + #t))))) (inputs `(("qt" ,qtbase) ("qtx11extras" ,qtx11extras) @@ -2578,9 +2604,12 @@ Songs can be searched by artist, name or even by a part of the song text.") `(#:phases (modify-phases %standard-phases (add-after 'unpack 'set-HOME - (lambda _ (setenv "HOME" (string-append (getcwd) "/tmp")))) + (lambda _ + (setenv "HOME" (string-append (getcwd) "/tmp")) + #t)) (replace 'check - (lambda _ (zero? (system* "nosetests" "-v"))))))) + (lambda _ + (invoke "nosetests" "-v")))))) (native-inputs `(("python-beautifulsoup4" ,python-beautifulsoup4) ("python-flask" ,python-flask) @@ -2612,7 +2641,7 @@ of tools for manipulating and accessing your music.") (define-public milkytracker (package (name "milkytracker") - (version "1.01.00") + (version "1.02.00") (source (origin (method url-fetch) (uri (string-append "https://github.com/milkytracker/" @@ -2621,14 +2650,15 @@ of tools for manipulating and accessing your music.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1dvnddsnn9c83lz4dlm0cfjpc0m524amfkbalxbswdy0qc8cj1wv")) + "08v0l4ipvvwkwv4ywkc6c8a6xnpkyb02anj36w8q6gikxrs6xjvb")) (modules '((guix build utils))) ;; Remove non-FSDG compliant sample songs. (snippet '(begin (delete-file-recursively "resources/music") (substitute* "CMakeLists.txt" - (("add_subdirectory\\(resources/music\\)") "")))))) + (("add_subdirectory\\(resources/music\\)") "")) + #t)))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check target @@ -2666,9 +2696,11 @@ for improved Amiga ProTracker 2/3 compatibility.") (modules '((guix build utils))) (snippet ;; Remove use of __DATE__ and __TIME__ for reproducibility. - `(substitute* "schism/version.c" - (("Schism Tracker built %s %s.*$") - (string-append "Schism Tracker version " ,version "\");")))))) + `(begin + (substitute* "schism/version.c" + (("Schism Tracker built %s %s.*$") + (string-append "Schism Tracker version " ,version "\");"))) + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -3504,7 +3536,10 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke `(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out")) "USE_SYSTEM_FREETYPE=ON" - "DOWNLOAD_SOUNDFONT=OFF") + "DOWNLOAD_SOUNDFONT=OFF" + ;; The following is not supported since Qt 5.11. Can be + ;; removed in Musescore 2.2.2+. + "BUILD_WEBKIT=OFF") ;; There are tests, but no simple target to run. The command ;; used to run them is: ;; @@ -3516,6 +3551,14 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke #:tests? #f #:phases (modify-phases %standard-phases + ;; Fix Qt 5.11 upgrade. Should be fixed in 2.2.2+, see: + ;; + (add-after 'unpack 'patch-sources + (lambda _ + (substitute* "all.h" + (("#include ") "#include +#include ")) + #t)) (delete 'configure)))) (inputs `(("alsa-lib" ,alsa-lib) @@ -3533,7 +3576,6 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke ("qtdeclarative" ,qtdeclarative) ("qtscript" ,qtscript) ("qtsvg" ,qtsvg) - ("qtwebkit" ,qtwebkit) ("qtxmlpatterns" ,qtxmlpatterns))) (native-inputs `(("cmake" ,cmake) @@ -3809,33 +3851,6 @@ OSC connections.") the electronic or dubstep genre.") (license license:gpl3+))) -(define-public libechonest - (package - (name "libechonest") - (version "2.3.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://anongit.kde.org/libechonest.git") - (commit version))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0xbavf9f355dl1d3qv59x4ryypqrdanh9xdvw2d0q66l008crdkq")))) - (build-system cmake-build-system) - (arguments - '(#:tests? #f ; Tests require Internet access - #:configure-flags '("-DBUILD_WITH_QT4=OFF"))) - (inputs - `(("qtbase" ,qtbase) - ("qjson" ,qjson))) - (home-page "https://projects.kde.org/projects/playground/libs/libechonest") - (synopsis "C++/Qt classes to interface with The Echo Nest API") - (description "@code{libechonest} is a collection of C++/Qt classes -designed to make a developer's life easy when trying to use the APIs provided -by The Echo Nest.") - (license license:gpl2+))) - (define-public libmygpo-qt (package (name "libmygpo-qt") @@ -3846,12 +3861,19 @@ by The Echo Nest.") "libmygpo-qt/libmygpo-qt." version ".tar.gz")) (sha256 (base32 - "1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2")))) + "1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2")) + (patches (search-patches "libmygpo-qt-fix-qt-5.11.patch" + "libmygpo-qt-missing-qt5-modules.patch")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("qt" ,qtbase))) + (arguments + `(#:configure-flags '("-DMYGPO_BUILD_TESTS=ON") + ;; TODO: Enable tests when https://github.com/gpodder/gpodder/issues/446 + ;; is fixed. + #:tests? #f)) (home-page "http://wiki.gpodder.org/wiki/Libmygpo-qt") (synopsis "Qt/C++ library wrapping the gpodder web service") (description "@code{libmygpo-qt} is a Qt/C++ library wrapping the diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 6bb8c3f3ad..a7adfcd5d5 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -30,7 +30,7 @@ (define-public nano (package (name "nano") - (version "2.9.5") + (version "2.9.8") (source (origin (method url-fetch) @@ -38,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "06af9dzhgab53drpyq430fv5kf5sdba9mfw0lf3glhkznlf1i3bv")))) + "122lm0z97wk3mgnbn8m4d769d4j9rxyc9z7s89xd4gsdp8qsrpn2")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index 1f1b97f5f9..2f628a6fe9 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014, 2016 Mark H Weaver ;;; Copyright © 2015, 2017 Leo Famulari ;;; Copyright © 2016 Nils Gillmann @@ -40,7 +40,7 @@ (define-public ncurses (package (name "ncurses") - (version "6.0-20170930") + (version "6.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/ncurses/ncurses-" @@ -48,7 +48,7 @@ ".tar.gz")) (sha256 (base32 - "0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm")))) + "05qdmbmrrn88ii9f66rkcmcyzp1kb1ymkx7g040lfkd1nkp7w1da")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1 MiB of man pages @@ -56,7 +56,8 @@ (let ((patch-makefile-phase '(lambda _ (for-each patch-makefile-SHELL - (find-files "." "Makefile.in")))) + (find-files "." "Makefile.in")) + #t)) (configure-phase ;; The 'configure' script does not understand '--docdir', so we must ;; override that and use '--mandir' instead. @@ -64,21 +65,27 @@ #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (doc (assoc-ref outputs "doc"))) - (zero? (apply system* "./configure" - (string-append "SHELL=" (which "sh")) - (string-append "--build=" build) - (string-append "--prefix=" out) - (string-append "--mandir=" doc "/share/man") - (if target - (cons (string-append "--host=" target) - configure-flags) - configure-flags)))))) + (apply invoke "./configure" + (string-append "SHELL=" (which "sh")) + (string-append "--build=" build) + (string-append "--prefix=" out) + (string-append "--mandir=" doc "/share/man") + (if target + (cons (string-append "--host=" target) + configure-flags) + configure-flags)) + #t))) (apply-rollup-patch-phase + ;; Ncurses distributes "stable" patchsets to be applied on top + ;; of the release tarball. These are only available as shell + ;; scripts(!) so we decompress and apply them in a phase. + ;; See . '(lambda* (#:key inputs native-inputs #:allow-other-keys) (copy-file (assoc-ref (or native-inputs inputs) "rollup-patch") (string-append (getcwd) "/rollup-patch.sh.bz2")) - (and (zero? (system* "bzip2" "-d" "rollup-patch.sh.bz2")) - (zero? (system* "sh" "rollup-patch.sh"))))) + (invoke "bzip2" "-d" "rollup-patch.sh.bz2") + (invoke "sh" "rollup-patch.sh") + #t)) (remove-shebang-phase '(lambda _ ;; To avoid retaining a reference to the bootstrap Bash via the @@ -149,7 +156,8 @@ (when (file-exists? packagew.pc) (symlink packagew.pc package.pc)))) '()))) - '("curses" "ncurses" "form" "panel" "menu"))))))) + '("curses" "ncurses" "form" "panel" "menu"))) + #t)))) `(#:configure-flags ,(cons* 'quasiquote @@ -170,12 +178,17 @@ ;; correct RUNPATH. ,(list 'unquote '(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) + + ;; Starting from ncurses 6.1, "make install" runs "install -s" + ;; by default, which doesn't work for cross-compiled binaries + ;; because it invokes 'strip' instead of 'TRIPLET-strip'. Work + ;; around this. + ,@(if (%current-target-system) '("--disable-stripping") '()) + ;; MinGW: Use term-driver created for the MinGW port. ,@(if (target-mingw?) '("--enable-term-driver") '())))) #:tests? #f ; no "check" target #:phases (modify-phases %standard-phases - (add-after 'unpack 'apply-rollup-patch - ,apply-rollup-patch-phase) (replace 'configure ,configure-phase) (add-after 'install 'post-install ,post-install-phase) @@ -185,22 +198,7 @@ ,remove-shebang-phase))))) (self-native-input? #t) ; for `tic' (native-inputs - `(("pkg-config" ,pkg-config) - - ;; Ncurses distributes "stable" patchsets to be applied on top - ;; of the release tarball. These are only available as shell - ;; scripts(!) so we decompress and apply them in a phase. - ;; See . - ("rollup-patch" - ,(origin - (method url-fetch) - (uri (string-append - "https://invisible-mirror.net/archives/ncurses/" - (car (string-split version #\-)) - "/ncurses-" version "-patch.sh.bz2")) - (sha256 - (base32 - "08a1pp8wnj1fwpa1pz3fgrmd6xwp21idniswqz8lx3w3z2nb4ydi")))))) + `(("pkg-config" ,pkg-config))) (native-search-paths (list (search-path-specification (variable "TERMINFO_DIRS") diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm index 2d76d7e067..e5246660a2 100644 --- a/gnu/packages/netpbm.scm +++ b/gnu/packages/netpbm.scm @@ -94,7 +94,8 @@ (("^DATE=.*") "DATE=\"Thu Jan 01 00:00:00+0000 1970\"\n") (("^USER=.*") - "USER=Guix\n")))))) + "USER=Guix\n")) + #t)))) (build-system gnu-build-system) (inputs `(("ghostscript" ,ghostscript) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index b9fb0166f2..40e8f34443 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -15,10 +15,13 @@ ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017, 2018 Efraim Flashner -;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2017, 2018 Rutger Helling ;;; Copyright © 2017 Gábor Boskovits ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2018 Adam Van Ymeren +;;; Copyright © 2018 Fis Trivial +;;; Copyright © 2018 Tonton +;;; Copyright © 2018 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -53,9 +56,11 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages code) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages dejagnu) @@ -66,6 +71,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) + #:use-module (gnu packages image) #:use-module (gnu packages libidn) #:use-module (gnu packages linux) #:use-module (gnu packages lua) @@ -84,6 +90,7 @@ #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) #:use-module (gnu packages wm) + #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) #:use-module (ice-9 match)) @@ -348,14 +355,14 @@ containing both Producer and Consumer support.") (define-public libndp (package (name "libndp") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) (uri (string-append "http://libndp.org/files/" name "-" version ".tar.gz")) (sha256 (base32 - "03mczwrxqbp54msafxzzyhaazkvjdwm2kipjkrb5xg8kw22glz8c")))) + "1dlinhl39va00v55qygjc9ap77yqf7xvn4rwmvdr49xhzzxhlj1c")))) (build-system gnu-build-system) (home-page "http://libndp.org/") (synopsis "Library for Neighbor Discovery Protocol") @@ -399,9 +406,11 @@ Ethernet devices.") "045cbsq9ps32j24v8y5hpyqxnqn9mpaf3mgvirlhgpqyb9jsia0c")) (modules '((guix build utils))) (snippet - '(substitute* "Main.h" - (("#include ") - "#include \n#include "))))) + '(begin + (substitute* "Main.h" + (("#include ") + "#include \n#include ")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no "check" target @@ -495,7 +504,7 @@ and up to 1 Mbit/s downstream.") (define-public whois (package (name "whois") - (version "5.3.0") + (version "5.3.1") (source (origin (method url-fetch) @@ -503,7 +512,7 @@ and up to 1 Mbit/s downstream.") name "_" version ".tar.xz")) (sha256 (base32 - "08sp2gzv09rar1a5mnfmbc24pqvhpqqmz2hnmv436n7v7d09qy2d")))) + "0gl98l26dcgmlap0pxllbv4b9n2fr5b7zml3ijf8sf3a60qsskpg")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite @@ -517,8 +526,7 @@ and up to 1 Mbit/s downstream.") (setenv "HAVE_ICONV" "1") #t))))) (inputs - ;; TODO: Switch to libidn2 when >= 2.0.3 is ungrafted in master. - `(("libidn" ,libidn))) + `(("libidn2" ,libidn2))) (native-inputs `(("gettext" ,gettext-minimal) ("perl" ,perl) @@ -539,7 +547,7 @@ of the same name.") (define-public wireshark (package (name "wireshark") - (version "2.4.5") + (version "2.6.1") (source (origin (method url-fetch) @@ -547,7 +555,7 @@ of the same name.") version ".tar.xz")) (sha256 (base32 - "1mvgy67rvnwj2kbc43s4il81jvz5ai0bx2j3j2js7x50zclyrcmk")))) + "126dvd6myjbxjr69dy9vzzdda2lmjy1wwwc6gcs5djb46jy5nvmb")))) (build-system gnu-build-system) (inputs `(("c-ares" ,c-ares) ("glib" ,glib) @@ -558,12 +566,14 @@ of the same name.") ("libpcap" ,libpcap) ("libssh" ,libssh) ("libxml2" ,libxml2) + ("lz4" ,lz4) ("lua" ,lua-5.2) ;Lua 5.3 unsupported ("krb5" ,mit-krb5) - ("openssl" ,openssl) ("portaudio" ,portaudio) ("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia) ("sbc" ,sbc) + ("snappy" ,snappy) ("zlib" ,zlib))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -576,12 +586,28 @@ of the same name.") (string-append "--with-libcap=" (assoc-ref %build-inputs "libcap")) (string-append "--with-libssh=" (assoc-ref %build-inputs "libssh")) (string-append "--with-lua=" (assoc-ref %build-inputs "lua")) + (string-append "--with-lz4=" (assoc-ref %build-inputs "lz4")) (string-append "--with-pcap=" (assoc-ref %build-inputs "libpcap")) (string-append "--with-portaudio=" (assoc-ref %build-inputs "portaudio")) (string-append "--with-sbc=" (assoc-ref %build-inputs "sbc")) - (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")) - (string-append "--with-zlib=" (assoc-ref %build-inputs "zlib"))))) + (string-append "--with-snappy=" (assoc-ref %build-inputs "snappy")) + (string-append "--with-zlib=" (assoc-ref %build-inputs "zlib"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + ;; Fix build against Qt 5.11. + (substitute* "ui/qt/packet_format_group_box.cpp" + (("#include ") "#include +#include ")) + (substitute* "ui/qt/time_shift_dialog.cpp" + (("#include ") "#include +#include ")) + (substitute* "ui/qt/wireless_frame.cpp" + (("#include ") "#include +#include ")) + #t))))) (synopsis "Network traffic analyzer") (description "Wireshark is a network protocol analyzer, or @dfn{packet sniffer}, that lets you capture and interactively browse the contents of @@ -1198,7 +1224,7 @@ gone wild and are suddenly taking up your bandwidth.") (define-public nzbget (package (name "nzbget") - (version "19.1") + (version "20.0") (source (origin (method url-fetch) @@ -1207,7 +1233,7 @@ gone wild and are suddenly taking up your bandwidth.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0y713g7gd4n5chbhr8lv7k50rxkmzysrg13sscxam3s386mmlb1r")) + "0q93aqqyzccn5r9sny38499rmg846qdh9pi2v5kvf9m23v54yk60")) (modules '((guix build utils))) (snippet ;; Reported upstream as . @@ -1324,7 +1350,7 @@ networks.") (define-public speedtest-cli (package (name "speedtest-cli") - (version "1.0.7") + (version "2.0.0") (source (origin (method url-fetch) @@ -1333,7 +1359,7 @@ networks.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1fbq4kpx8sj50g74hwpixisfjjgxq6zyn40d3m28dxhn7mxbnlrq")))) + "16kcpba7nmszz2h0fq7qvv6src20syck2wlknaacg69kk88aybbk")))) (build-system python-build-system) (home-page "https://github.com/sivel/speedtest-cli") (synopsis "Internet bandwidth tester") @@ -1573,8 +1599,6 @@ interface and a programmable text output for scripting.") (modify-phases %standard-phases (add-after 'unpack 'chdir (lambda _ (chdir "libnet") #t)) - (add-after 'chdir 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-vif")))) (add-before 'build 'build-doc (lambda* (#:key make-flags #:allow-other-keys) (zero? (apply system* "make" "-C" "doc" "doc" @@ -1702,3 +1726,178 @@ file for more details.") ;; src/libstrongswan/plugins/blowfish/blowfish_crypter.c ;; src/libstrongswan/plugins/des/des_crypter.c license:bsd-4)))) + +(define-public amule + (package + (name "amule") + (version "2.3.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/amule-project/amule/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1wvcj0n9xz03xz5c2xwp6dwfp7sqjhhwbki3m0lwikskpn9lkzk2")) + ;; Patch for adopting crypto++ >= 6.0. + (patches (search-patches "amule-crypto-6.patch")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'autogen + (lambda _ + (invoke "sh" "autogen.sh") + #t))) + #:configure-flags + '("--disable-rpath" + "--enable-wxcas" + "--enable-cas" + "--enable-alc" + "--enable-alcc" + "--enable-xas" + "--enable-amulecmd" + "--enable-geoip" + "--enable-ccache" + "--enable-nls" + "--enable-optimize" + "--enable-amule-gui" + "--enable-amule-daemon" + "--enable-webserver" + "--with-denoise-level=0"))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext-minimal" ,gettext-minimal) + ("perl" ,perl))) + (inputs + `(("zlib" ,zlib) + ("crypto++" ,crypto++) + ("libpng" ,libpng) + ("wxwidgets-gtk2", wxwidgets-gtk2))) + (home-page "http://amule.org/") + (synopsis "Peer-to-peer client for the eD2K and Kademlia networks") + (description + "aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer +file sharing networks. It includes a graphical user interface (GUI), a daemon +allowing you to run a client with no graphical interface, and a Web GUI for +remote access. The @command{amulecmd} command allows you to control aMule +remotely.") + (license license:gpl2+))) + +(define-public zyre + (package + (name "zyre") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri + (string-append "https://github.com/zeromq/zyre/releases/download/v" + version "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "0qz2730bng1gs9xbqxhkw88qbsmszgmmrl2g9k6xrg6r3bqvsdc7")))) + (build-system gnu-build-system) + (inputs `(("zeromq" ,zeromq) + ("czmq" ,czmq) + ("libsodium" ,libsodium))) + (synopsis "Framework for proximity-based peer-to-peer applications") + (description "Zyre provides reliable group messaging over local area +networks using zeromq. It has these key characteristics: + +@itemize +@item Zyre needs no administration or configuration. +@item Peers may join and leave the network at any time. +@item Peers talk to each other without any central brokers or servers. +@item Peers can talk directly to each other. +@item Peers can join groups, and then talk to groups. +@item Zyre is reliable, and loses no messages even when the network is heavily loaded. +@item Zyre is fast and has low latency, requiring no consensus protocols. +@item Zyre is designed for WiFi networks, yet also works well on Ethernet networks. +@end itemize") + (home-page "https://github.com/zeromq/zyre") + (license license:mpl2.0))) + +(define-public can-utils + (package + (name "can-utils") + (version "2018.02.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/linux-can/can-utils.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r0zkm67bdcmbfypjr7z041d4zp0xzb379dyl8cvhmflh12fd2jb")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests exist. + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" + (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure)))) + (home-page "https://github.com/linux-can/can-utils") + (synopsis "CAN utilities") + (description "This package provides CAN utilities in the following areas: + +@itemize +@item Basic tools to display, record, generate and replay CAN traffic +@item CAN access via IP sockets +@item CAN in-kernel gateway configuration +@item CAN bus measurement and testing +@item ISO-TP (ISO15765-2:2016 - this means messages with a body larger than +eight bytes) tools +@item Log file converters +@item Serial Line Discipline configuration for slcan driver +@end itemize") + ;; Either BSD-3 or GPL-2 can be used. + (license (list license:bsd-3 license:gpl2)))) + +(define-public asio + (package + (name "asio") + (version "1.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chriskohlhoff/asio.git") + (commit (string-join (cons name (string-split version #\.)) + "-")))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04dg8kpgriay7q62mqcq2gl439k5y4mf761zghsd6wfl0farh3mx")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (inputs + `(("boost" ,boost) + ("openssl" ,openssl))) + (arguments + `(#:configure-flags + (list + (string-append "--with-boost=" (assoc-ref %build-inputs "boost")) + (string-append "--with-openssl=" (assoc-ref %build-inputs "openssl"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir-to-asio + (lambda _ + (chdir "asio"))) + (add-before 'configure 'bootstrap + (lambda _ + (invoke "sh" "autogen.sh")))))) + (home-page "https://think-async.com/Asio") + (synopsis "C++ library for ASynchronous network I/O") + (description "Asio is a cross-platform C++ library for network and +low-level I/O programming that provides developers with a consistent +asynchronous model using a modern C++ approach.") + (license license:boost1.0))) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 6a3a510ff2..1a79066eac 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -68,7 +68,8 @@ (("deps/http_parser/http_parser.gyp") "") (("deps/uv/include/\\*.h") "") (("deps/uv/uv.gyp") "") - (("deps/zlib/zlib.gyp") "")))))) + (("deps/zlib/zlib.gyp") "")) + #t)))) (build-system gnu-build-system) (arguments ;; TODO: Purge the bundled copies from the source. diff --git a/gnu/packages/nvi.scm b/gnu/packages/nvi.scm index 5f829aa6ee..ea02762a9b 100644 --- a/gnu/packages/nvi.scm +++ b/gnu/packages/nvi.scm @@ -50,7 +50,8 @@ conf-wrap) (newline conf-wrap) (close-output-port conf-wrap) - (chmod "configure" #o0755))))) + (chmod "configure" #o0755) + #t)))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index fc162759c2..864038fe99 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -100,7 +100,8 @@ ;; in OCaml's directory in the store, which is read-only. (substitute* "Makefile" (("--prefix") - "--libdir $(LIBDIR) --prefix"))))))) + "--libdir $(LIBDIR) --prefix")) + #t))))) ;; They also require almost the same set of arguments (define janestreet-arguments @@ -398,19 +399,20 @@ syntax of OCaml.") (mandir (string-append out "/share/man"))) ;; Custom configure script doesn't recognize ;; --prefix= syntax (with equals sign). - (zero? (system* "./configure" - "--prefix" out - "--mandir" mandir))))) + (invoke "./configure" + "--prefix" out + "--mandir" mandir)))) (replace 'build (lambda _ - (zero? (system* "make" "-j" (number->string - (parallel-job-count)) - "world.opt")))) + (invoke "make" "-j" (number->string + (parallel-job-count)) + "world.opt"))) ;; Required for findlib to find camlp5's libraries (add-after 'install 'install-meta (lambda* (#:key outputs #:allow-other-keys) (install-file "etc/META" (string-append (assoc-ref outputs "out") - "/lib/ocaml/camlp5/"))))))) + "/lib/ocaml/camlp5/")) + #t))))) (home-page "http://camlp5.gforge.inria.fr/") (synopsis "Pre-processor Pretty Printer for OCaml") (description @@ -454,14 +456,15 @@ written in Objective Caml.") (define-public coq (package (name "coq") - (version "8.7.0") + (version "8.8.0") (source (origin (method url-fetch) - (uri (string-append "https://coq.inria.fr/distrib/V" version - "/files/" name "-" version ".tar.gz")) + (uri (string-append "https://github.com/coq/coq/archive/V" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "15wjngjd5pyfqdl5yw92rvdxvy15xcjlpx0rqlkzvcsis1z20xpk")))) + "0g96k2x6lbddlmkmdaczvcpb2gwqi1ydbq9bv4gf9q38kv9w3xya")))) (native-search-paths (list (search-path-specification (variable "COQPATH") @@ -781,7 +784,8 @@ libpanel, librsvg and quartz.") ;; Without the '-fix' argument, the html file produced does not ;; have functioning internal hyperlinks. (substitute* "doc/Makefile" - (("hevea unison") "hevea -fix unison")))))) + (("hevea unison") "hevea -fix unison")) + #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.9 MiB of documentation @@ -873,7 +877,7 @@ to the other.") 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (system* + (invoke "./configure" "-bindir" (string-append out "/bin") "-config" (string-append out "/etc/ocamfind.conf") @@ -883,14 +887,15 @@ to the other.") (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* "make" "install" - (string-append "OCAML_CORE_STDLIB=" - out "/lib/ocaml/site-lib")))))) + (invoke "make" "install" + (string-append "OCAML_CORE_STDLIB=" + out "/lib/ocaml/site-lib"))))) (add-after 'install 'remove-camlp4 (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (delete-file-recursively - (string-append out "/lib/ocaml/site-lib/camlp4")))))))) + (string-append out "/lib/ocaml/site-lib/camlp4")) + #t)))))) (home-page "http://projects.camlcity.org/projects/findlib.html") (synopsis "Management tool for OCaml libraries") (description @@ -2196,17 +2201,19 @@ file (POSIX like) and filename.") "1ln7vc7ip6s5xbi20mhnn087xi4a2m5vqawx0703qqnfkzhmslqy")) (modules '((guix build utils))) (snippet - '(substitute* "test/test-main/Test.ml" - ;; most of these tests fail because ld cannot find crti.o, but according - ;; to the log file, the environment variables {LD_,}LIBRARY_PATH - ;; are set correctly whene LD_LIBRARY_PATH is defined beforhand. - (("TestBaseCompat.tests;") "") - (("TestExamples.tests;") "") - (("TestFull.tests;") "") - (("TestPluginDevFiles.tests;") "") - (("TestPluginInternal.tests;") "") - (("TestPluginOCamlbuild.tests;") "") - (("TestPluginOMake.tests;") ""))))) + '(begin + (substitute* "test/test-main/Test.ml" + ;; most of these tests fail because ld cannot find crti.o, but according + ;; to the log file, the environment variables {LD_,}LIBRARY_PATH + ;; are set correctly whene LD_LIBRARY_PATH is defined beforhand. + (("TestBaseCompat.tests;") "") + (("TestExamples.tests;") "") + (("TestFull.tests;") "") + (("TestPluginDevFiles.tests;") "") + (("TestPluginInternal.tests;") "") + (("TestPluginOCamlbuild.tests;") "") + (("TestPluginOMake.tests;") "")) + #t)))) (build-system ocaml-build-system) (native-inputs `(("ocamlify" ,ocamlify) @@ -3868,15 +3875,15 @@ cross-platform SDL C library.") (define-public coq-flocq (package (name "coq-flocq") - (version "2.6.0") + (version "2.6.1") (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/" - "latestfile/2228/flocq-" version ".tar.gz")) + "file/37454/flocq-" version ".tar.gz")) (sha256 (base32 - "13fv150dcwnjrk00d7zj2c5x9jwmxgrq0ay440gkr730l8mvk3l3")))) + "06msp1fwpqv6p98a3i1nnkj7ch9rcq3rm916yxq8dxf51lkghrin")))) (build-system gnu-build-system) (native-inputs `(("ocaml" ,ocaml) @@ -3918,14 +3925,14 @@ inside Coq.") (define-public coq-gappa (package (name "coq-gappa") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) - (uri (string-append "https://gforge.inria.fr/frs/download.php/file/36351/gappa-" + (uri (string-append "https://gforge.inria.fr/frs/download.php/file/36397/gappa-" version ".tar.gz")) (sha256 (base32 - "0924jr6f15fx22qfsvim5vc0qxqg30ivg9zxj34lf6slbgdl3j39")))) + "19kg2zldaqs4smy7bv9hp650sqg46xbx1ss7jnyagpxdscwn9apd")))) (build-system gnu-build-system) (native-inputs `(("ocaml" ,ocaml) @@ -3970,14 +3977,14 @@ assistant.") (define-public coq-mathcomp (package (name "coq-mathcomp") - (version "1.6.2") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/math-comp/math-comp/archive/mathcomp-" version ".tar.gz")) (sha256 (base32 - "0lg5ncr7p4y8qqq6pfw6brqc6a9xzlfa0drprwfdn0rnyaq5nca6")))) + "05zgyi4wmasi1rcyn5jq42w0bi9713q9m8dl1fdgl66nmacixh39")))) (build-system gnu-build-system) (native-inputs `(("ocaml" ,ocaml) @@ -4033,6 +4040,12 @@ part of the distribution.") "/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" @@ -4062,7 +4075,7 @@ theorems between the two libraries.") (define-public coq-bignums (package (name "coq-bignums") - (version "8.7.0") + (version "8.8.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/coq/bignums/archive/V" @@ -4070,7 +4083,7 @@ theorems between the two libraries.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "03iw9jiwq9jx45gsvp315y3lxr8m9ksppmcjvxs5c23qnky6zqjx")))) + "08m1cmq4hkaf4sb0vy978c11rgzvds71cphyadmr2iirpr5815r0")))) (build-system gnu-build-system) (native-inputs `(("ocaml" ,ocaml) diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index 44400ebe57..64887212d3 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2017 Ludovic Courtès +;;; Copyright © 2014, 2017, 2018 Ludovic Courtès ;;; Copyright © 2016 John Darrington ;;; Copyright © 2017, 2018 Leo Famulari ;;; Copyright © 2018 Tobias Geerinckx-Rice @@ -113,12 +113,6 @@ universal addresses.") (base32 "1y6kmxmv1difzvdhx7grqzw0j2v2b74mg4kjb803m8jcgkqqx8m5")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "sh" "autogen.sh")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index 3e3b2d8928..d952f412e2 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2017, 2018 Ricardo Wurmus +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,7 +41,7 @@ (define-public openldap (package (name "openldap") - (version "2.4.45") + (version "2.4.46") (source (origin (method url-fetch) @@ -57,7 +58,7 @@ "openldap-release/openldap-" version ".tgz"))) (sha256 (base32 - "091qvwk5dkcpp17ziabcnh3rg3m7qwzw2pihfcd1d5fdxgywzmnd")))) + "0bab1km8f2nan1x0zgwliknbxg0zlf2pafxrr867kblrdfwdr44s")))) (build-system gnu-build-system) (inputs `(("bdb" ,bdb-5.3) ("cyrus-sasl" ,cyrus-sasl) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 3e9fd375c9..64e05c4b0e 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -680,14 +680,14 @@ and better support for mocking results.") (define-public python-oslo.utils (package (name "python-oslo.utils") - (version "3.36.0") + (version "3.36.2") (source (origin (method url-fetch) (uri (pypi-uri "oslo.utils" version)) (sha256 (base32 - "0zvm31qdvqywxppqdjwbxxsqaga3dg4slpvbbmqqm9ig4n78mhay")))) + "1ipjcgg9z697wmibhcbg5lqpk5gafakdx4qkff3w255zr0mvw04r")))) (build-system python-build-system) (propagated-inputs `(("python-debtcollector" ,python-debtcollector) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index e834f643c4..18a848edc2 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -33,6 +33,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpio) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages file) @@ -94,8 +95,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.14.0") - (commit "ab85cf7185da366da56314c53d8e43276e1cccc4") - (revision 11)) + (commit "77a1aac6cccc79d7c8085762f610e22e6ebfb43b") + (revision 12)) (package (name "guix") @@ -111,7 +112,7 @@ (commit commit))) (sha256 (base32 - "1c00yr2vgsdl3kmlbjppyws47ssahamdx88y0wg26x73px71rd19")) + "0f0agvw3fizy0aaf51vc2d1rbsvxhg6vnzgjb1n1hbyym79f17j6")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -144,7 +145,7 @@ (ice-9 rdelim)) #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; Make sure 'msgmerge' can modify the PO files. (for-each (lambda (po) @@ -157,7 +158,7 @@ (lambda (port) (display ,version port))) - (zero? (system* "sh" "bootstrap")))) + (invoke "sh" "bootstrap"))) (add-before 'check 'copy-bootstrap-guile (lambda* (#:key system inputs #:allow-other-keys) ;; Copy the bootstrap guile tarball in the store used @@ -295,6 +296,15 @@ the Nix package manager.") (inherit guix) (properties `((hidden? . #t))) (name "guix-register") + + ;; Use a minimum set of dependencies. + (native-inputs + (fold alist-delete (package-native-inputs guix) + '("po4a" "graphviz" "help2man"))) + (propagated-inputs + `(("gnutls" ,gnutls) + ("guile-git" ,guile-git))) + (arguments (substitute-keyword-arguments (package-arguments guix) ((#:tests? #f #f) @@ -367,41 +377,24 @@ out) and returning a package that uses that as its 'source'." (define-public nix (package (name "nix") - (version "1.11.9") + (version "2.0.4") (source (origin (method url-fetch) (uri (string-append "http://nixos.org/releases/nix/nix-" version "/nix-" version ".tar.xz")) (sha256 (base32 - "1qg7qrfr60dysmyfg3ijgani71l23p1kqadhjs8kz11pgwkkx50f")))) + "0ss9svxlh1pvrdmnqjvjyqjmbqmrdbyfarvbb14i9d4bggzl0r8n")))) (build-system gnu-build-system) - ;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also - ;; need '--localstatedir=/var'. But then! The thing would use /var/nix - ;; instead of /var/guix. So in the end, we do nothing special. - (arguments - '(#:configure-flags - ;; Set the prefixes of Perl libraries to avoid propagation. - (let ((perl-libdir (lambda (p) - (string-append - (assoc-ref %build-inputs p) - "/lib/perl5/site_perl")))) - (list (string-append "--with-dbi=" - (perl-libdir "perl-dbi")) - (string-append "--with-dbd-sqlite=" - (perl-libdir "perl-dbd-sqlite")) - (string-append "--with-www-curl=" - (perl-libdir "perl-www-curl")))))) - (native-inputs `(("perl" ,perl) - ("pkg-config" ,pkg-config))) + (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("curl" ,curl) - ("openssl" ,openssl) - ("libgc" ,libgc) - ("sqlite" ,sqlite) ("bzip2" ,bzip2) - ("perl-www-curl" ,perl-www-curl) - ("perl-dbi" ,perl-dbi) - ("perl-dbd-sqlite" ,perl-dbd-sqlite))) + ("libgc" ,libgc) + ("libseccomp" ,libseccomp) + ("libsodium" ,libsodium) + ("openssl" ,openssl) + ("sqlite" ,sqlite) + ("xz" ,xz))) (home-page "https://nixos.org/nix/") (synopsis "The Nix package manager") (description @@ -535,13 +528,13 @@ transactions from C or Python.") (define-public diffoscope (package (name "diffoscope") - (version "93") + (version "95") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "0g90nf7817jk03hzk36l3hymky4xqs50iynfld3r0in7hffly5nj")))) + "0aksxxivxli6l3fylxgl771hw0h7l8x35l76cmj0d12zgx54w0a1")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 1dfafac4e7..716b433443 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -47,7 +47,7 @@ (define-public parallel (package (name "parallel") - (version "20180422") + (version "20180522") (source (origin (method url-fetch) @@ -55,7 +55,7 @@ version ".tar.bz2")) (sha256 (base32 - "0xsfpbxwgd4197gra981iv0nmjfk58c0d88dxx6dh6yrqz523klx")))) + "1khcz9pm7rjnq4gw8pn30k1d40x337a204dxj4y4qijpx8m7w0gb")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 923122903e..497963af63 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Steve Sprang -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2015 Aljosha Papsch ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Jessica Tallon @@ -18,6 +18,7 @@ ;;; Copyright © 2018 Marius Bakke ;;; Copyright © 2018 Konrad Hinsen ;;; Copyright © 2018 Thomas Sigurdsen +;;; Copyright © 2018 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +63,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages suckless) #:use-module (gnu packages tls) #:use-module (gnu packages qt) @@ -94,7 +96,7 @@ human.") (define-public keepassxc (package (name "keepassxc") - (version "2.3.1") + (version "2.3.3") (source (origin (method url-fetch) @@ -103,12 +105,22 @@ human.") version "-src.tar.xz")) (sha256 (base32 - "1gdrbpzwbs56anc3k5vklvcackcn214pc8gm5xh5zcymsi8q4zff")))) + "1m8alsp39vk21zgcvy5zswk0dc1xmajbwnccg7n0lndsi7pqbzyg")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DWITH_XC_NETWORKING=YES" "-DWITH_XC_BROWSER=YES" - "-DWITH_XC_SSHAGENT=YES"))) + "-DWITH_XC_SSHAGENT=YES") + #:phases + (modify-phases %standard-phases + ;; should be fixed in 2.3.3+, see: + ;; https://github.com/keepassxreboot/keepassxc/pull/1964 + (add-after 'unpack 'patch-sources + (lambda _ + (substitute* "src/gui/entry/EditEntryWidget.cpp" + (("#include ") "#include +#include ")) + #t))))) (inputs `(("argon2" ,argon2) ("curl" ,curl) ; XC_NETWORKING @@ -659,3 +671,30 @@ Upstream development seems to have stopped. It is therefore recommended to use a different password manager.") (home-page "https://als.regnet.cz/fpm2/") (license license:gpl2+))) + +(define-public pass-rotate + (package + (name "pass-rotate") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/SirCmpwn/pass-rotate/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1svm5nj8bczv2dg8lh2zqqhbsrljqsw9680r03qwgl9vlci90210")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system python-build-system) + (inputs + `(("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-docopt" ,python-docopt) + ("python-html5lib" ,python-html5lib) + ("python-requests" ,python-requests))) + (home-page "https://github.com/SirCmpwn/pass-rotate") + (synopsis "Rotate password on online services") + (description "pass-rotate is a command line utility and python library for +rotating passwords on various web services. It makes it easier to rotate your +passwords, one at a time or in bulk, when security events or routine upkeep of +your online accounts makes it necessary.") + (license license:expat))) diff --git a/gnu/packages/patches/adb-add-libraries.patch b/gnu/packages/patches/adb-add-libraries.patch new file mode 100644 index 0000000000..b014832f62 --- /dev/null +++ b/gnu/packages/patches/adb-add-libraries.patch @@ -0,0 +1,30 @@ +--- a/adb/Android.mk 2018-04-25 23:23:29.527198350 +0200 ++++ b/adb/Android.mk 2018-04-25 23:24:25.558632573 +0200 +@@ -226,7 +226,7 @@ + LOCAL_SRC_FILES := test_track_devices.cpp + LOCAL_SANITIZE := $(adb_host_sanitize) + LOCAL_SHARED_LIBRARIES := libbase +-LOCAL_STATIC_LIBRARIES := libadb libcrypto_static libcutils ++LOCAL_STATIC_LIBRARIES := libadb libbase libcrypto_static libcutils + LOCAL_LDLIBS += -lrt -ldl -lpthread + include $(BUILD_HOST_EXECUTABLE) + endif +@@ -278,6 +278,7 @@ + LOCAL_SANITIZE := $(adb_host_sanitize) + LOCAL_STATIC_LIBRARIES := \ + libadb \ ++ libcutils \ + libbase \ + libcrypto_static \ + libdiagnose_usb \ +--- a/adb/sysdeps_test.cpp 2018-05-09 23:58:46.583163684 +0200 ++++ b/adb/sysdeps_test.cpp 2018-05-09 23:56:41.356544648 +0200 +@@ -17,6 +17,8 @@ + #include + #include + #include ++#include ++#include + + #include "adb_io.h" + #include "sysdeps.h" diff --git a/gnu/packages/patches/alsa-lib-add-environment-variable.patch b/gnu/packages/patches/alsa-lib-add-environment-variable.patch new file mode 100644 index 0000000000..a468a7fc4f --- /dev/null +++ b/gnu/packages/patches/alsa-lib-add-environment-variable.patch @@ -0,0 +1,110 @@ +From 1822fb453128a1b5de93b4c590cd272d6488a077 Mon Sep 17 00:00:00 2001 +From: Julien Lepiller +Date: Fri, 25 May 2018 19:26:58 +0200 +Subject: [PATCH] Add support for a ALSA_PLUGIN_DIR environment variable. + +If it is not set, default to previous behavior. +--- + src/control/control.c | 6 +++++- + src/dlmisc.c | 9 +++++++-- + src/pcm/pcm.c | 9 +++++++-- + src/pcm/pcm_rate.c | 13 +++++++++---- + 4 files changed, 28 insertions(+), 9 deletions(-) + +diff --git a/src/control/control.c b/src/control/control.c +index 11f7815..9dba7dd 100644 +--- a/src/control/control.c ++++ b/src/control/control.c +@@ -1331,7 +1331,11 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name, + build_in++; + } + if (*build_in == NULL) { +- buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32); ++ char* plugdir = ALSA_PLUGIN_DIR; ++ char* envplugdir = getenv("ALSA_PLUGIN_DIR"); ++ if(envplugdir != NULL) ++ plugdir = envplugdir; ++ buf1 = malloc(strlen(str) + strlen(plugdir) + 32); + if (buf1 == NULL) { + err = -ENOMEM; + goto _err; +diff --git a/src/dlmisc.c b/src/dlmisc.c +index 3757d33..92aa864 100644 +--- a/src/dlmisc.c ++++ b/src/dlmisc.c +@@ -82,9 +82,14 @@ void *snd_dlopen(const char *name, int mode, char *errbuf, size_t errbuflen) + char *filename = NULL; + + if (name && name[0] != '/') { +- filename = alloca(sizeof(ALSA_PLUGIN_DIR) + 1 + strlen(name) + 1); ++ char* plugdir = ALSA_PLUGIN_DIR; ++ char* envplugdir = getenv("ALSA_PLUGIN_DIR"); ++ if(envplugdir != NULL) ++ plugdir = envplugdir; ++ ++ filename = malloc(strlen(plugdir) + 1 + strlen(name) + 1); + if (filename) { +- strcpy(filename, ALSA_PLUGIN_DIR); ++ strcpy(filename, plugdir); + strcat(filename, "/"); + strcat(filename, name); + handle = dlopen(filename, mode); +diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c +index 11aec80..590e8b6 100644 +--- a/src/pcm/pcm.c ++++ b/src/pcm/pcm.c +@@ -2496,13 +2496,18 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name, + build_in++; + } + if (*build_in == NULL) { +- buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32); ++ char* plugdir = ALSA_PLUGIN_DIR; ++ char* envplugdir = getenv("ALSA_PLUGIN_DIR"); ++ if(envplugdir != NULL) ++ plugdir = envplugdir; ++ buf1 = malloc(strlen(str) + strlen(plugdir) + 32); ++ + if (buf1 == NULL) { + err = -ENOMEM; + goto _err; + } + lib = buf1; +- sprintf(buf1, "%s/libasound_module_pcm_%s.so", ALSA_PLUGIN_DIR, str); ++ sprintf(buf1, "%s/libasound_module_pcm_%s.so", plugdir, str); + } + } + #ifndef PIC +diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c +index 4e0c7ca..8694a38 100644 +--- a/src/pcm/pcm_rate.c ++++ b/src/pcm/pcm_rate.c +@@ -1260,7 +1260,8 @@ static const char *const default_rate_plugins[] = { + + static int rate_open_func(snd_pcm_rate_t *rate, const char *type, const snd_config_t *converter_conf, int verbose) + { +- char open_name[64], open_conf_name[64], lib_name[128], *lib = NULL; ++ char open_name[64], open_conf_name[64], *lib = NULL; ++ char *buf1; + snd_pcm_rate_open_func_t open_func; + snd_pcm_rate_open_conf_func_t open_conf_func; + int err; +@@ -1268,9 +1269,13 @@ static int rate_open_func(snd_pcm_rate_t *rate, const char *type, const snd_conf + snprintf(open_name, sizeof(open_name), "_snd_pcm_rate_%s_open", type); + snprintf(open_conf_name, sizeof(open_conf_name), "_snd_pcm_rate_%s_open_conf", type); + if (!is_builtin_plugin(type)) { +- snprintf(lib_name, sizeof(lib_name), +- "%s/libasound_module_rate_%s.so", ALSA_PLUGIN_DIR, type); +- lib = lib_name; ++ char* plugdir = ALSA_PLUGIN_DIR; ++ char* envplugdir = getenv("ALSA_PLUGIN_DIR"); ++ if(envplugdir != NULL) ++ plugdir = envplugdir; ++ buf1 = malloc(strlen(type) + strlen(plugdir) + 32); ++ sprintf(buf1, "%s/libasound_module_rate_%s.so", plugdir, type); ++ lib = buf1; + } + + rate->rate_min = SND_PCM_PLUGIN_RATE_MIN; +-- +2.17.0 + diff --git a/gnu/packages/patches/amule-crypto-6.patch b/gnu/packages/patches/amule-crypto-6.patch new file mode 100644 index 0000000000..21a86ab0fa --- /dev/null +++ b/gnu/packages/patches/amule-crypto-6.patch @@ -0,0 +1,45 @@ +From d1d1368c7909ffd8423730afaa811ce7b6a3a8aa Mon Sep 17 00:00:00 2001 +From: Tommy Jerry Mairo +Date: Sun, 4 Feb 2018 12:42:00 -0800 +Subject: [PATCH 1/2] Bugfix: API mismatch with crypto++ 6.0.0 + +--- + src/ClientCreditsList.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ClientCreditsList.cpp b/src/ClientCreditsList.cpp +index 3bea9fe2d..a7ae1e34c 100644 +--- a/src/ClientCreditsList.cpp ++++ b/src/ClientCreditsList.cpp +@@ -312,7 +312,7 @@ void CClientCreditsList::InitalizeCrypting() + // calculate and store public key + CryptoPP::RSASSA_PKCS1v15_SHA_Verifier pubkey(*static_cast(m_pSignkey)); + CryptoPP::ArraySink asink(m_abyMyPublicKey, 80); +- pubkey.DEREncode(asink); ++ pubkey.AccessMaterial().Save(asink); + m_nMyPublicKeyLen = asink.TotalPutLength(); + asink.MessageEnd(); + } catch (const CryptoPP::Exception& e) { + +From 88ba0ac952b78382445f2fff73c6792c0474dc62 Mon Sep 17 00:00:00 2001 +From: Tommy Jerry Mairo +Date: Wed, 21 Mar 2018 11:56:28 -0700 +Subject: [PATCH 2/2] Update: Change AccessMaterial to GetMaterial + +--- + src/ClientCreditsList.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ClientCreditsList.cpp b/src/ClientCreditsList.cpp +index a7ae1e34c..69e881fd8 100644 +--- a/src/ClientCreditsList.cpp ++++ b/src/ClientCreditsList.cpp +@@ -312,7 +312,7 @@ void CClientCreditsList::InitalizeCrypting() + // calculate and store public key + CryptoPP::RSASSA_PKCS1v15_SHA_Verifier pubkey(*static_cast(m_pSignkey)); + CryptoPP::ArraySink asink(m_abyMyPublicKey, 80); +- pubkey.AccessMaterial().Save(asink); ++ pubkey.GetMaterial().Save(asink); + m_nMyPublicKeyLen = asink.TotalPutLength(); + asink.MessageEnd(); + } catch (const CryptoPP::Exception& e) { diff --git a/gnu/packages/patches/binutils-ld-new-dtags.patch b/gnu/packages/patches/binutils-ld-new-dtags.patch deleted file mode 100644 index 5f7a03fc38..0000000000 --- a/gnu/packages/patches/binutils-ld-new-dtags.patch +++ /dev/null @@ -1,16 +0,0 @@ -Turn on --enable-new-dtags by default to make the linker set RUNPATH -instead of RPATH on binaries. This is important because RUNPATH can -be overriden using LD_LIBRARY_PATH at runtime. - -Patch from Nixpkgs by Eelco Dolstra . - ---- binutils/ld/ldmain.c -+++ binutils/ld/ldmain.c -@@ -296,6 +296,7 @@ main (int argc, char **argv) - - link_info.allow_undefined_version = TRUE; - link_info.keep_memory = TRUE; -+ link_info.new_dtags = TRUE; - link_info.combreloc = TRUE; - link_info.strip_discarded = TRUE; - link_info.callbacks = &link_callbacks; diff --git a/gnu/packages/patches/boost-fix-icu-build.patch b/gnu/packages/patches/boost-fix-icu-build.patch new file mode 100644 index 0000000000..556f91b8f7 --- /dev/null +++ b/gnu/packages/patches/boost-fix-icu-build.patch @@ -0,0 +1,53 @@ +Pass -std=c++11 when compiling files that include the ICU headers. Without +this flag, compilation fails and causes Boost's build system to remove ICU +support. Note that $(pkg-config --variable=CXXFLAGS icu-uc) includes +"-std=c++11", but Boost's build system does not use 'pkg-config'. + +--- boost_1_66_0/libs/locale/build/Jamfile.v2.orig 2017-12-13 18:56:44.000000000 -0500 ++++ boost_1_66_0/libs/locale/build/Jamfile.v2 2018-04-08 15:18:58.673025760 -0400 +@@ -65,8 +65,8 @@ + + if $(ICU_LINK) + { +- ICU_OPTS = $(ICU_PATH)/include $(ICU_LINK) $(ICU_PATH)/bin shared ; +- ICU64_OPTS = $(ICU_PATH)/include $(ICU_LINK) $(ICU_PATH)/bin64 shared ; ++ ICU_OPTS = $(ICU_PATH)/include -std=c++11 $(ICU_LINK) $(ICU_PATH)/bin shared ; ++ ICU64_OPTS = $(ICU_PATH)/include -std=c++11 $(ICU_LINK) $(ICU_PATH)/bin64 shared ; + } + else + { +@@ -121,6 +121,7 @@ + explicit icuuc icudt icuin ; + + ICU_OPTS = $(ICU_PATH)/include ++ -std=c++11 + icuuc/shared/shared + icudt/shared/shared + icuin/shared/shared +@@ -180,6 +181,7 @@ + explicit icuuc_64 icudt_64 icuin_64 ; + + ICU64_OPTS = $(ICU_PATH)/include ++ -std=c++11 + icuuc_64/shared/shared + icudt_64/shared/shared + icuin_64/shared/shared +--- boost_1_66_0/libs/regex/build/Jamfile.v2.orig 2017-12-13 18:56:48.000000000 -0500 ++++ boost_1_66_0/libs/regex/build/Jamfile.v2 2018-04-08 15:20:40.865532505 -0400 +@@ -44,7 +44,7 @@ + + if $(ICU_LINK) + { +- ICU_OPTS = $(ICU_PATH)/include $(ICU_LINK) $(ICU_PATH)/bin BOOST_HAS_ICU=1 shared ; ++ ICU_OPTS = $(ICU_PATH)/include -std=c++11 $(ICU_LINK) $(ICU_PATH)/bin BOOST_HAS_ICU=1 shared ; + } + else + { +@@ -78,6 +78,7 @@ + + ICU_OPTS = + $(ICU_PATH)/include ++ -std=c++11 + shared:icuuc/shared + shared:icudt/shared + shared:icuin/shared diff --git a/gnu/packages/patches/btrfs-progs-e-value-block.patch b/gnu/packages/patches/btrfs-progs-e-value-block.patch new file mode 100644 index 0000000000..6365146431 --- /dev/null +++ b/gnu/packages/patches/btrfs-progs-e-value-block.patch @@ -0,0 +1,37 @@ +From c78f59a971ce4b543f3177e383b677862b2d9fb5 Mon Sep 17 00:00:00 2001 +From: Qu Wenruo +Date: Wed, 14 Mar 2018 08:56:57 +0800 +Subject: [PATCH] btrfs-progs: convert/ext2: Remove check for + ext2_ext_attr_entry->e_value_block + +In latest e2fsprogs (1.44.0) definition of ext2_ext_attr_entry has +removed member e_value_block, as currently ext* doesn't support it set +anyway. + +So remove such check so that we can pass compile. + +Issue: #110 +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199071 +Signed-off-by: Qu Wenruo +Signed-off-by: David Sterba +--- + convert/source-ext2.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/convert/source-ext2.c b/convert/source-ext2.c +index b1492c78..070126ec 100644 +--- a/convert/source-ext2.c ++++ b/convert/source-ext2.c +@@ -422,8 +422,7 @@ static int ext2_xattr_check_entry(struct ext2_ext_attr_entry *entry, + { + size_t value_size = entry->e_value_size; + +- if (entry->e_value_block != 0 || value_size > size || +- entry->e_value_offs + value_size > size) ++ if (value_size > size || entry->e_value_offs + value_size > size) + return -EIO; + return 0; + } +-- +2.16.3 + diff --git a/gnu/packages/patches/cmake-fix-tests.patch b/gnu/packages/patches/cmake-fix-tests.patch deleted file mode 100644 index 732b0023ab..0000000000 --- a/gnu/packages/patches/cmake-fix-tests.patch +++ /dev/null @@ -1,120 +0,0 @@ -From af0a62dadfb3db25880bc653e2e4c97435a604c9 Mon Sep 17 00:00:00 2001 -From: Efraim Flashner -Date: Mon, 29 Aug 2016 20:07:58 +0300 -Subject: [PATCH] cmake-fix-tests - ---- - Tests/CMakeLists.txt | 83 ++++++++++++++++++++++++++++------------------------ - 1 file changed, 44 insertions(+), 39 deletions(-) - -diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt -index f21e430..56014a2 100644 ---- a/Tests/CMakeLists.txt -+++ b/Tests/CMakeLists.txt -@@ -416,10 +416,12 @@ if(BUILD_TESTING) - endif() - - # run test for BundleUtilities on supported platforms/compilers -- if(MSVC OR -- MINGW OR -- CMAKE_SYSTEM_NAME MATCHES "Linux" OR -- CMAKE_SYSTEM_NAME MATCHES "Darwin") -+# if(MSVC OR -+# MINGW OR -+# CMAKE_SYSTEM_NAME MATCHES "Linux" OR -+# CMAKE_SYSTEM_NAME MATCHES "Darwin") -+# This test fails on Guix: skip it. -+ if(FALSE) - if(NOT "${CMAKE_GENERATOR}" STREQUAL "Watcom WMake") - - add_test(BundleUtilities ${CMAKE_CTEST_COMMAND} -@@ -2481,30 +2483,32 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release - PASS_REGULAR_EXPRESSION "Could not find executable" - FAIL_REGULAR_EXPRESSION "SegFault") - -- configure_file( -- "${CMake_SOURCE_DIR}/Tests/CTestTestUpload/test.cmake.in" -- "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -- @ONLY ESCAPE_QUOTES) -- add_test(CTestTestUpload ${CMAKE_CTEST_COMMAND} -- -S "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -V -- --output-log "${CMake_BINARY_DIR}/Tests/CTestTestUpload/testOut.log" -- ) -- set_tests_properties(CTestTestUpload PROPERTIES -- PASS_REGULAR_EXPRESSION "Upload\\.xml") -- -- configure_file( -- "${CMake_SOURCE_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake.in" -- "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake" -- @ONLY ESCAPE_QUOTES) -- add_test(CTestCoverageCollectGCOV ${CMAKE_CTEST_COMMAND} -- -C \${CTEST_CONFIGURATION_TYPE} -- -S "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake" -VV -- --output-log "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/testOut.log" -- ) -- set_tests_properties(CTestCoverageCollectGCOV PROPERTIES -- PASS_REGULAR_EXPRESSION -- "PASSED with correct output.*Testing/CoverageInfo/main.cpp.gcov") -- set_property(TEST CTestCoverageCollectGCOV PROPERTY ENVIRONMENT CTEST_PARALLEL_LEVEL=) -+# This test requires network connectivity: skip it. -+# configure_file( -+# "${CMake_SOURCE_DIR}/Tests/CTestTestUpload/test.cmake.in" -+# "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -+# @ONLY ESCAPE_QUOTES) -+# add_test(CTestTestUpload ${CMAKE_CTEST_COMMAND} -+# -S "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -V -+# --output-log "${CMake_BINARY_DIR}/Tests/CTestTestUpload/testOut.log" -+# ) -+# set_tests_properties(CTestTestUpload PROPERTIES -+# PASS_REGULAR_EXPRESSION "Upload\\.xml") -+ -+# This test times out -+# configure_file( -+# "${CMake_SOURCE_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake.in" -+# "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake" -+# @ONLY ESCAPE_QUOTES) -+# add_test(CTestCoverageCollectGCOV ${CMAKE_CTEST_COMMAND} -+# -C \${CTEST_CONFIGURATION_TYPE} -+# -S "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake" -VV -+# --output-log "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/testOut.log" -+# ) -+# set_tests_properties(CTestCoverageCollectGCOV PROPERTIES -+# PASS_REGULAR_EXPRESSION -+# "PASSED with correct output.*Testing/CoverageInfo/main.cpp.gcov") -+# set_property(TEST CTestCoverageCollectGCOV PROPERTY ENVIRONMENT CTEST_PARALLEL_LEVEL=) - - configure_file( - "${CMake_SOURCE_DIR}/Tests/CTestTestEmptyBinaryDirectory/test.cmake.in" -@@ -2860,17 +2864,18 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release - set_tests_properties(CTestTestStopTime PROPERTIES - PASS_REGULAR_EXPRESSION "The stop time has been passed") - -- configure_file( -- "${CMake_SOURCE_DIR}/Tests/CTestTestSubdir/test.cmake.in" -- "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake" -- @ONLY ESCAPE_QUOTES) -- add_test(CTestTestSubdir ${CMAKE_CTEST_COMMAND} -- -S "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake" -V -- --output-log "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/testOutput.log" -- ) -- #make sure all 3 subdirs were added -- set_tests_properties(CTestTestSubdir PROPERTIES -- PASS_REGULAR_EXPRESSION "0 tests failed out of 3") -+# This test fails to build 2 of the 3 tests -+# configure_file( -+# "${CMake_SOURCE_DIR}/Tests/CTestTestSubdir/test.cmake.in" -+# "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake" -+# @ONLY ESCAPE_QUOTES) -+# add_test(CTestTestSubdir ${CMAKE_CTEST_COMMAND} -+# -S "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake" -V -+# --output-log "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/testOutput.log" -+# ) -+# #make sure all 3 subdirs were added -+# set_tests_properties(CTestTestSubdir PROPERTIES -+# PASS_REGULAR_EXPRESSION "0 tests failed out of 3") - - configure_file( - "${CMake_SOURCE_DIR}/Tests/CTestTestTimeout/test.cmake.in" --- -2.9.3 - diff --git a/gnu/packages/patches/doxygen-gcc-ice.patch b/gnu/packages/patches/doxygen-gcc-ice.patch new file mode 100644 index 0000000000..fbfedcb7ab --- /dev/null +++ b/gnu/packages/patches/doxygen-gcc-ice.patch @@ -0,0 +1,25 @@ +Work around this GCC ICE: . It shows up +only when doing native compiles on armhf-linux. + +Yes it's a terrible patch, but it does the job. + +--- doxygen-1.8.13/qtools/qutfcodec.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ doxygen-1.8.13/qtools/qutfcodec.cpp 2018-06-08 14:14:29.614009929 +0200 +@@ -189,7 +189,7 @@ int QUtf16Codec::heuristicContentMatch(c + } + + +- ++volatile const void *bomPointer = &QChar::byteOrderMark; + + class QUtf16Encoder : public QTextEncoder { + bool headerdone; +@@ -209,7 +209,7 @@ public: + headerdone = TRUE; + len_in_out = (1+uc.length())*(int)sizeof(QChar); + QCString d(len_in_out); +- memcpy(d.rawData(),&QChar::byteOrderMark,sizeof(QChar)); ++ memcpy(d.rawData(),(void *)bomPointer,sizeof(QChar)); + memcpy(d.rawData()+sizeof(QChar),uc.unicode(),uc.length()*sizeof(QChar)); + return d; + } diff --git a/gnu/packages/patches/e2fsprogs-glibc-2.27.patch b/gnu/packages/patches/e2fsprogs-glibc-2.27.patch new file mode 100644 index 0000000000..f0bc7130c0 --- /dev/null +++ b/gnu/packages/patches/e2fsprogs-glibc-2.27.patch @@ -0,0 +1,56 @@ +Copied from: +https://github.com/openwrt/openwrt/blob/58a95f0f8ff768b43d68eed2b6a786e0f40f723b/tools/e2fsprogs/patches/005-misc-rename-copy_file_range-to-copy_file_chunk.patch + +From 01551bdba16ab16512a01affe02ade32c41ede8a Mon Sep 17 00:00:00 2001 +From: Palmer Dabbelt +Date: Fri, 29 Dec 2017 10:19:51 -0800 +Subject: [PATCH] misc: rename copy_file_range to copy_file_chunk + +As of 2.27, glibc will have a copy_file_range library call to wrap the +new copy_file_range system call. This conflicts with the function in +misc/create_inode.c, which this patch renames _copy_file_range. + +Signed-off-by: Palmer Dabbelt +Signed-off-by: Theodore Ts'o +--- + misc/create_inode.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/misc/create_inode.c ++++ b/misc/create_inode.c +@@ -392,7 +392,7 @@ static ssize_t my_pread(int fd, void *bu + } + #endif /* !defined HAVE_PREAD64 && !defined HAVE_PREAD */ + +-static errcode_t copy_file_range(ext2_filsys fs, int fd, ext2_file_t e2_file, ++static errcode_t copy_file_chunk(ext2_filsys fs, int fd, ext2_file_t e2_file, + off_t start, off_t end, char *buf, + char *zerobuf) + { +@@ -466,7 +466,7 @@ static errcode_t try_lseek_copy(ext2_fil + + data_blk = data & ~(fs->blocksize - 1); + hole_blk = (hole + (fs->blocksize - 1)) & ~(fs->blocksize - 1); +- err = copy_file_range(fs, fd, e2_file, data_blk, hole_blk, buf, ++ err = copy_file_chunk(fs, fd, e2_file, data_blk, hole_blk, buf, + zerobuf); + if (err) + return err; +@@ -516,7 +516,7 @@ static errcode_t try_fiemap_copy(ext2_fi + } + for (i = 0, ext = ext_buf; i < fiemap_buf->fm_mapped_extents; + i++, ext++) { +- err = copy_file_range(fs, fd, e2_file, ext->fe_logical, ++ err = copy_file_chunk(fs, fd, e2_file, ext->fe_logical, + ext->fe_logical + ext->fe_length, + buf, zerobuf); + if (err) +@@ -569,7 +569,7 @@ static errcode_t copy_file(ext2_filsys f + goto out; + #endif + +- err = copy_file_range(fs, fd, e2_file, 0, statbuf->st_size, buf, ++ err = copy_file_chunk(fs, fd, e2_file, 0, statbuf->st_size, buf, + zerobuf); + out: + ext2fs_free_mem(&zerobuf); diff --git a/gnu/packages/patches/elogind-glibc-2.27.patch b/gnu/packages/patches/elogind-glibc-2.27.patch new file mode 100644 index 0000000000..4ade587b5e --- /dev/null +++ b/gnu/packages/patches/elogind-glibc-2.27.patch @@ -0,0 +1,22 @@ +Look for memfd_create in sys/mman.h instead of linux/memfd.h. +Needed to build with glibc-2.27. + +--- a/configure.ac 1969-12-31 19:00:00.000000000 -0500 ++++ b/configure.ac 2018-03-27 23:54:15.414589005 -0400 +@@ -360,7 +360,7 @@ + # ------------------------------------------------------------------------------ + + AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])]) +-AC_CHECK_HEADERS([linux/memfd.h], [], []) ++AC_CHECK_HEADERS([sys/mman.h], [], []) + + AC_CHECK_HEADERS([printf.h], [have_printf_h=yes], [have_printf_h=no]) + AS_IF([test x$have_printf_h = xyes], [ +@@ -395,6 +395,7 @@ + [], [], [[ + #include + #include ++#include + #include + #include + #include diff --git a/gnu/packages/patches/emacs-fix-scheme-indent-function.patch b/gnu/packages/patches/emacs-fix-scheme-indent-function.patch index c5a426802c..4b7904ea3b 100644 --- a/gnu/packages/patches/emacs-fix-scheme-indent-function.patch +++ b/gnu/packages/patches/emacs-fix-scheme-indent-function.patch @@ -14,16 +14,16 @@ The fix is made by Mark H Weaver : --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el -@@ -482,6 +482,12 @@ - (> (length function) 3) - (string-match "\\`def" function))) - (lisp-indent-defform state indent-point)) +@@ -494,6 +494,12 @@ indentation." + (> (length function) 3) + (string-match "\\`def" function))) + (lisp-indent-defform state indent-point)) + ((and (null method) + (> (length function) 1) + ;; The '#' in '#:' seems to get lost, not sure why + (string-match "\\`:" function)) + (let ((lisp-body-indent 1)) + (lisp-indent-defform state indent-point))) - ((integerp method) - (lisp-indent-specform method state - indent-point normal-indent)) + ((integerp method) + (lisp-indent-specform method state + indent-point normal-indent)) diff --git a/gnu/packages/patches/enlightenment-fix-setuid-path.patch b/gnu/packages/patches/enlightenment-fix-setuid-path.patch new file mode 100644 index 0000000000..90e16d3e67 --- /dev/null +++ b/gnu/packages/patches/enlightenment-fix-setuid-path.patch @@ -0,0 +1,168 @@ +diff --git a/src/bin/e_auth.c b/src/bin/e_auth.c +index 00b0e5d84..98ab4518f 100644 +--- a/src/bin/e_auth.c ++++ b/src/bin/e_auth.c +@@ -9,8 +9,7 @@ e_auth_begin(char *passwd) + + if (strlen(passwd) == 0) goto out; + +- snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_ckpasswd", +- e_prefix_lib_get()); ++ snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_ckpasswd"); + + exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL); + if (ecore_exe_send(exe, passwd, strlen(passwd)) != EINA_TRUE) goto out; +diff --git a/src/bin/e_backlight.c b/src/bin/e_backlight.c +index 2bced6766..208e583ba 100644 +--- a/src/bin/e_backlight.c ++++ b/src/bin/e_backlight.c +@@ -521,8 +521,8 @@ _bl_sys_level_set(double val) + } + // fprintf(stderr, "SET: %1.3f\n", val); + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_backlight %i %s", +- e_prefix_lib_get(), (int)(val * 1000.0), bl_sysval); ++ "/run/setuid-programs/enlightenment_backlight %i %s", ++ (int)(val * 1000.0), bl_sysval); + bl_sys_set_exe = ecore_exe_run(buf, NULL); + } + #endif // HAVE_EEZE || __FreeBSD_kernel__ +diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c +index b7d9e3eba..d8a9eb82c 100644 +--- a/src/bin/e_fm/e_fm_main_eeze.c ++++ b/src/bin/e_fm/e_fm_main_eeze.c +@@ -318,7 +318,7 @@ _e_fm_main_eeze_volume_eject(E_Volume *v) + { + char buf[PATH_MAX]; + +- snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx)); ++ snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_sys"); + eeze_disk_mount_wrapper_set(v->disk, buf); + } + v->guard = ecore_timer_loop_add(E_FM_EJECT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_eject_timeout, v); +@@ -512,7 +512,7 @@ _e_fm_main_eeze_volume_unmount(E_Volume *v) + { + char buf[PATH_MAX]; + +- snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx)); ++ snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_sys"); + eeze_disk_mount_wrapper_set(v->disk, buf); + } + v->guard = ecore_timer_loop_add(E_FM_UNMOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_unmount_timeout, v); +@@ -548,7 +548,7 @@ _e_fm_main_eeze_volume_mount(E_Volume *v) + { + char buf2[PATH_MAX]; + +- snprintf(buf2, sizeof(buf2), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx)); ++ snprintf(buf2, sizeof(buf2), "/run/setuid-programs/enlightenment_sys"); + eeze_disk_mount_wrapper_set(v->disk, buf2); + } + v->guard = ecore_timer_loop_add(E_FM_MOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_mount_timeout, v); +diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c +index 6781a9b5a..8cd140f1b 100644 +--- a/src/bin/e_sys.c ++++ b/src/bin/e_sys.c +@@ -653,20 +653,16 @@ _e_sys_cb_timer(void *data EINA_UNUSED) + + e_init_status_set(_("Checking System Permissions")); + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_sys -t halt", +- e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_sys -t halt"); + _e_sys_halt_check_exe = ecore_exe_run(buf, NULL); + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_sys -t reboot", +- e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_sys -t reboot"); + _e_sys_reboot_check_exe = ecore_exe_run(buf, NULL); + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_sys -t suspend", +- e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_sys -t suspend"); + _e_sys_suspend_check_exe = ecore_exe_run(buf, NULL); + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_sys -t hibernate", +- e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_sys -t hibernate"); + _e_sys_hibernate_check_exe = ecore_exe_run(buf, NULL); + return ECORE_CALLBACK_CANCEL; + } +@@ -1079,8 +1075,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) + /* shutdown -h now */ + if (e_util_immortal_check()) return 0; + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_sys halt", +- e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_sys halt"); + if (_e_sys_exe) + { + if ((ecore_time_get() - _e_sys_begin_time) > 2.0) +@@ -1114,8 +1109,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) + /* shutdown -r now */ + if (e_util_immortal_check()) return 0; + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_sys reboot", +- e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_sys reboot"); + if (_e_sys_exe) + { + if ((ecore_time_get() - _e_sys_begin_time) > 2.0) +@@ -1148,8 +1142,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) + case E_SYS_SUSPEND: + /* /etc/acpi/sleep.sh force */ + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_sys suspend", +- e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_sys suspend"); + if (_e_sys_exe) + { + if ((ecore_time_get() - _e_sys_begin_time) > 2.0) +@@ -1208,8 +1201,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) + case E_SYS_HIBERNATE: + /* /etc/acpi/hibernate.sh force */ + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_sys hibernate", +- e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_sys hibernate"); + if (_e_sys_exe) + { + if ((ecore_time_get() - _e_sys_begin_time) > 2.0) +diff --git a/src/modules/bluez4/e_mod_main.c b/src/modules/bluez4/e_mod_main.c +index 4b5148634..47d34b07f 100644 +--- a/src/modules/bluez4/e_mod_main.c ++++ b/src/modules/bluez4/e_mod_main.c +@@ -49,8 +49,8 @@ _ebluez_l2ping_poller(void *data EINA_UNUSED) + + if (tmp) + { +- eina_strbuf_append_printf(buf, "%s/enlightenment/utils/enlightenment_sys l2ping %s", +- e_prefix_lib_get(), tmp); ++ eina_strbuf_append_printf(buf, "/run/setuid-programs/enlightenment_sys l2ping %s", ++ tmp); + autolock_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL); + } + +@@ -692,8 +692,7 @@ e_modapi_init(E_Module *m) + autolock_desklock = ecore_event_handler_add(E_EVENT_DESKLOCK, _ebluez_desklock, NULL); + + buf = eina_strbuf_new(); +- eina_strbuf_append_printf(buf, "%s/enlightenment/utils/enlightenment_sys -t l2ping", +- e_prefix_lib_get()); ++ eina_strbuf_append_printf(buf, "/run/setuid-programs/enlightenment_sys -t l2ping"); + autolock_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL); + eina_strbuf_free(buf); + +diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c +index f4ba259b6..ae228bae3 100644 +--- a/src/modules/cpufreq/e_mod_main.c ++++ b/src/modules/cpufreq/e_mod_main.c +@@ -1450,8 +1450,7 @@ e_modapi_init(E_Module *m) + } + E_CONFIG_LIMIT(cpufreq_config->poll_interval, 1, 1024); + +- snprintf(buf, sizeof(buf), "%s/%s/freqset", +- e_module_dir_get(m), MODULE_ARCH); ++ snprintf(buf, sizeof(buf), "/run/setuid-programs/freqset"); + cpufreq_config->set_exe_path = strdup(buf); + + if (stat(buf, &st) < 0) diff --git a/gnu/packages/patches/fifo-map-fix-flags-for-gcc.patch b/gnu/packages/patches/fifo-map-fix-flags-for-gcc.patch new file mode 100644 index 0000000000..59b7105220 --- /dev/null +++ b/gnu/packages/patches/fifo-map-fix-flags-for-gcc.patch @@ -0,0 +1,39 @@ +From 0871db30bd73d112a434f54572d34cca28de61c5 Mon Sep 17 00:00:00 2001 +From: fis +Date: Sat, 26 May 2018 22:58:37 +0800 +Subject: [PATCH 2/2] * CMakeLists.txt: Fix flags for gcc. + +--- + CMakeLists.txt | 18 ++---------------- + 1 file changed, 2 insertions(+), 16 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index eba147b..d60dcef 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,20 +6,6 @@ add_executable(unit src/fifo_map.hpp test/unit.cpp) + + target_include_directories(unit PRIVATE "test" "src") + +-if(MSVC) +- set(CMAKE_CXX_FLAGS +- "/EHsc" +- ) ++set(CMAKE_CXX_FLAGS "-std=c++11 -fpermissive") + +- STRING(REPLACE "/O2" "/Od" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) +- +- add_definitions(-D_SCL_SECURE_NO_WARNINGS) +-else(MSVC) +- set(CMAKE_CXX_FLAGS +- "-std=c++11 -stdlib=libc++" +- ) +-endif(MSVC) +- +-include_directories( +- src test +-) ++include_directories(src test) +-- +2.14.3 + diff --git a/gnu/packages/patches/fifo-map-remove-catch.hpp.patch b/gnu/packages/patches/fifo-map-remove-catch.hpp.patch new file mode 100644 index 0000000000..be4efd3e9a --- /dev/null +++ b/gnu/packages/patches/fifo-map-remove-catch.hpp.patch @@ -0,0 +1,30 @@ +From 20dcf90fd02511f8d78ea7cc8ac82c121fd2f6cf Mon Sep 17 00:00:00 2001 +From: fis +Date: Sat, 26 May 2018 22:56:29 +0800 +Subject: [PATCH 1/2] * CMakeLists.txt: Remove catch.hpp. + +--- + CMakeLists.txt | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6603c7f..eba147b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,11 +2,9 @@ cmake_minimum_required(VERSION 2.8) + + project(fifo_map LANGUAGES CXX) + +-add_executable(unit +- src/fifo_map.hpp test/thirdparty/catch/catch.hpp test/unit.cpp +-) ++add_executable(unit src/fifo_map.hpp test/unit.cpp) + +-target_include_directories(unit PRIVATE "test" "src" "test/thirdparty") ++target_include_directories(unit PRIVATE "test" "src") + + if(MSVC) + set(CMAKE_CXX_FLAGS +-- +2.14.3 + diff --git a/gnu/packages/patches/fontconfig-remove-debug-printf.patch b/gnu/packages/patches/fontconfig-remove-debug-printf.patch deleted file mode 100644 index 04924a45a4..0000000000 --- a/gnu/packages/patches/fontconfig-remove-debug-printf.patch +++ /dev/null @@ -1,18 +0,0 @@ -Fontconfig 2.12.5 and 2.12.6 was released with a stray debugging statement. -See . - -Patch copied from upstream source repository: -https://cgit.freedesktop.org/fontconfig/commit/?id=b56207a069be2574df455ede0a6ab61f44d5ca2b - -diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c -index 842a8b6..6cd5abd 100644 ---- a/fc-query/fc-query.c -+++ b/fc-query/fc-query.c -@@ -170,7 +170,6 @@ main (int argc, char **argv) - FcPattern *pat; - - id = ((instance_num << 16) + face_num); -- printf("id %d\n", id); - if (FT_New_Face (ftLibrary, argv[i], id, &face)) - break; - num_faces = face->num_faces; diff --git a/gnu/packages/patches/gawk-shell.patch b/gnu/packages/patches/gawk-shell.patch index 80e9c65475..46ca5e451f 100644 --- a/gnu/packages/patches/gawk-shell.patch +++ b/gnu/packages/patches/gawk-shell.patch @@ -4,31 +4,39 @@ absolute file name of `sh'. --- gawk-4.1.3/io.c 2015-05-19 15:37:20.000000000 +0200 +++ gawk-4.1.3/io.c 2015-06-09 18:39:36.918414881 +0200 -@@ -1945,7 +1945,7 @@ two_way_open(const char *str, struct red +@@ -2025,7 +2025,7 @@ - signal(SIGPIPE, SIG_DFL); + set_sigpipe_to_default(); -- execl("/bin/sh", "sh", "-c", str, NULL); -+ execlp("sh", "sh", "-c", str, NULL); - _exit(errno == ENOENT ? 127 : 126); +- execl("/bin/sh", "sh", "-c", command, NULL); ++ execlp("sh", "sh", "-c", command, NULL); + _exit(errno == ENOENT ? 127 : 126); - case -1: -@@ -2129,7 +2129,7 @@ use_pipes: + case -1: +@@ -2077,7 +2077,7 @@ + + signal(SIGPIPE, SIG_DFL); + +- execl("/bin/sh", "sh", "-c", command, NULL); ++ execlp("sh", "sh", "-c", command, NULL); + _exit(errno == ENOENT ? 127 : 126); + + case -1: +@@ -2422,7 +2422,7 @@ fatal(_("close of pipe failed (%s)"), strerror(errno)); /* stderr does NOT get dup'ed onto child's stdout */ - signal(SIGPIPE, SIG_DFL); + set_sigpipe_to_default(); - execl("/bin/sh", "sh", "-c", str, NULL); + execlp("sh", "sh", "-c", str, NULL); _exit(errno == ENOENT ? 127 : 126); } #endif /* NOT __EMX__, NOT __MINGW32__ */ -@@ -2323,7 +2323,7 @@ gawk_popen(const char *cmd, struct redir +@@ -2659,7 +2659,7 @@ if (close(p[0]) == -1 || close(p[1]) == -1) fatal(_("close of pipe failed (%s)"), strerror(errno)); - signal(SIGPIPE, SIG_DFL); + set_sigpipe_to_default(); - execl("/bin/sh", "sh", "-c", cmd, NULL); + execlp("sh", "sh", "-c", cmd, NULL); _exit(errno == ENOENT ? 127 : 126); } #endif /* NOT __EMX__, NOT __MINGW32__ */ - diff --git a/gnu/packages/patches/gcc-strmov-store-file-names.patch b/gnu/packages/patches/gcc-strmov-store-file-names.patch index 7951b87616..9f9162855d 100644 --- a/gnu/packages/patches/gcc-strmov-store-file-names.patch +++ b/gnu/packages/patches/gcc-strmov-store-file-names.patch @@ -2,23 +2,43 @@ Make sure that statements such as: strcpy (dst, "/gnu/store/…"); +or + + static const char str[] = "/gnu/store/…"; + … + strcpy (dst, str); + do not result in chunked /gnu/store strings that are undetectable by -Guix's GC and its grafting code. See . +Guix's GC and its grafting code. See +and . + --- gcc-5.3.0/gcc/builtins.c 2016-10-18 10:50:46.080616285 +0200 +++ gcc-5.3.0/gcc/builtins.c 2016-11-09 15:26:43.693042737 +0100 -@@ -3192,6 +3192,42 @@ determine_block_size (tree len, rtx len_ +@@ -3192,6 +3192,54 @@ determine_block_size (tree len, rtx len_ GET_MODE_MASK (GET_MODE (len_rtx))); } ++extern void debug_tree (tree); ++ +/* Return true if STR contains the string "/gnu/store". */ + -+static bool ++bool +store_reference_p (tree str) +{ ++ if (getenv ("GUIX_GCC_DEBUG") != NULL) ++ debug_tree (str); ++ + if (TREE_CODE (str) == ADDR_EXPR) + str = TREE_OPERAND (str, 0); + ++ if (TREE_CODE (str) == VAR_DECL ++ && TREE_STATIC (str) ++ && TREE_READONLY (str)) ++ /* STR may be a 'static const' variable whose initial value ++ is a string constant. See . */ ++ str = DECL_INITIAL (str); ++ + if (TREE_CODE (str) != STRING_CST) + return false; + @@ -57,10 +77,32 @@ Guix's GC and its grafting code. See . + /* Do not emit block moves, which translate to the 'movabs' instruction on + x86_64, when SRC refers to store items. That way, store references + remain visible to the Guix GC and grafting code. See -+ . */ ++ . */ + if (store_reference_p (src)) + return NULL_RTX; + /* If DEST is not a pointer type, call the normal function. */ if (dest_align == 0) return NULL_RTX; + +--- gcc-5.5.0/gcc/gimple-fold.c 2018-03-20 11:36:16.709442004 +0100 ++++ gcc-5.5.0/gcc/gimple-fold.c 2018-03-20 11:46:43.838487065 +0100 +@@ -769,6 +769,8 @@ var_decl_component_p (tree var) + return SSA_VAR_P (inner); + } + ++extern bool store_reference_p (tree); ++ + /* Fold function call to builtin mem{{,p}cpy,move}. Return + false if no simplification can be made. + If ENDP is 0, return DEST (like memcpy). +@@ -1099,6 +1101,9 @@ gimple_fold_builtin_memory_op (gimple_st + if (!srctype) + return false; + ++ if (store_reference_p (src)) ++ return false; ++ + src_align = get_pointer_alignment (src); + dest_align = get_pointer_alignment (dest); + if (dest_align < TYPE_ALIGN (desttype) diff --git a/gnu/packages/patches/gegl-CVE-2012-4433.patch b/gnu/packages/patches/gegl-CVE-2012-4433.patch deleted file mode 100644 index 7352b78dba..0000000000 --- a/gnu/packages/patches/gegl-CVE-2012-4433.patch +++ /dev/null @@ -1,117 +0,0 @@ -From: Michael Gilbert -Date: Mon, 9 Sep 2013 17:34:32 +0200 -Subject: Fix_CVE-2012-4433 - -Multiple buffer overflow issues. - -Closes: #692435 ---- - operations/external/ppm-load.c | 62 ++++++++++++++++++++++++++++++++++++------ - 1 file changed, 53 insertions(+), 9 deletions(-) - -diff --git a/operations/external/ppm-load.c b/operations/external/ppm-load.c -index efe6d56..465096d 100644 ---- a/operations/external/ppm-load.c -+++ b/operations/external/ppm-load.c -@@ -36,6 +36,7 @@ gegl_chant_file_path (path, _("File"), "", _("Path of file to load.")) - #include "gegl-chant.h" - #include - #include -+#include - - typedef enum { - PIXMAP_ASCII = 51, -@@ -44,8 +45,8 @@ typedef enum { - - typedef struct { - map_type type; -- gint width; -- gint height; -+ glong width; -+ glong height; - gsize numsamples; /* width * height * channels */ - gsize bpc; /* bytes per channel */ - guchar *data; -@@ -82,12 +83,33 @@ ppm_load_read_header(FILE *fp, - } - - /* Get Width and Height */ -- img->width = strtol (header,&ptr,0); -- img->height = atoi (ptr); -- img->numsamples = img->width * img->height * CHANNEL_COUNT; -+ errno = 0; -+ img->width = strtol (header,&ptr,10); -+ if (errno) -+ { -+ g_warning ("Error reading width: %s", strerror(errno)); -+ return FALSE; -+ } -+ else if (img->width < 0) -+ { -+ g_warning ("Error: width is negative"); -+ return FALSE; -+ } -+ -+ img->height = strtol (ptr,&ptr,10); -+ if (errno) -+ { -+ g_warning ("Error reading height: %s", strerror(errno)); -+ return FALSE; -+ } -+ else if (img->width < 0) -+ { -+ g_warning ("Error: height is negative"); -+ return FALSE; -+ } - - fgets (header,MAX_CHARS_IN_ROW,fp); -- maxval = strtol (header,&ptr,0); -+ maxval = strtol (header,&ptr,10); - - if ((maxval != 255) && (maxval != 65535)) - { -@@ -109,6 +131,16 @@ ppm_load_read_header(FILE *fp, - g_warning ("%s: Programmer stupidity error", G_STRLOC); - } - -+ /* Later on, img->numsamples is multiplied with img->bpc to allocate -+ * memory. Ensure it doesn't overflow. */ -+ if (!img->width || !img->height || -+ G_MAXSIZE / img->width / img->height / CHANNEL_COUNT < img->bpc) -+ { -+ g_warning ("Illegal width/height: %ld/%ld", img->width, img->height); -+ return FALSE; -+ } -+ img->numsamples = img->width * img->height * CHANNEL_COUNT; -+ - return TRUE; - } - -@@ -229,12 +261,24 @@ process (GeglOperation *operation, - if (!ppm_load_read_header (fp, &img)) - goto out; - -- rect.height = img.height; -- rect.width = img.width; -- - /* Allocating Array Size */ -+ -+ /* Should use g_try_malloc(), but this causes crashes elsewhere because the -+ * error signalled by returning FALSE isn't properly acted upon. Therefore -+ * g_malloc() is used here which aborts if the requested memory size can't be -+ * allocated causing a controlled crash. */ - img.data = (guchar*) g_malloc (img.numsamples * img.bpc); - -+ /* No-op without g_try_malloc(), see above. */ -+ if (! img.data) -+ { -+ g_warning ("Couldn't allocate %" G_GSIZE_FORMAT " bytes, giving up.", ((gsize)img.numsamples * img.bpc)); -+ goto out; -+ } -+ -+ rect.height = img.height; -+ rect.width = img.width; -+ - switch (img.bpc) - { - case 1: diff --git a/gnu/packages/patches/ghostscript-no-header-id.patch b/gnu/packages/patches/ghostscript-no-header-id.patch index 19b71aadb5..da1aa5530f 100644 --- a/gnu/packages/patches/ghostscript-no-header-id.patch +++ b/gnu/packages/patches/ghostscript-no-header-id.patch @@ -9,7 +9,7 @@ See: https://bugs.ghostscript.com/show_bug.cgi?id=698208 diff -ur orig/gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c --- orig/gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c 2017-07-09 23:30:28.960479189 +0200 +++ gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c 2017-07-09 23:34:34.306524488 +0200 -@@ -1580,8 +1580,11 @@ +@@ -1785,8 +1785,11 @@ * +1 for the linearisation dict and +1 for the primary hint stream. */ linear_params->FirsttrailerOffset = gp_ftell_64(linear_params->Lin_File.file); @@ -23,10 +23,10 @@ diff -ur orig/gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c gnu-ghostscript-9. fwrite(LDict, strlen(LDict), 1, linear_params->Lin_File.file); /* Write document catalog (Part 4) */ -@@ -2102,8 +2105,11 @@ - * in the missing values. - */ - code = gp_fseek_64(linear_params->sfile, linear_params->FirsttrailerOffset, SEEK_SET); +@@ -2321,8 +2324,11 @@ + if (code != 0) + return_error(gs_error_ioerror); + - gs_sprintf(LDict, "\ntrailer\n<>\nstartxref\r\n0\n%%%%EOF\n", - linear_params->LastResource + 3, pdev->ResourceUsage[linear_params->Info_id].NewObjectNumber, pdev->ResourceUsage[linear_params->Catalog_id].NewObjectNumber, fileID, fileID, mainxref); + gs_sprintf(LDict, "\ntrailer\n<sfile); code = gp_fseek_64(linear_params->sfile, pdev->ResourceUsage[HintStreamObj].LinearisedOffset, SEEK_SET); -@@ -2674,10 +2680,12 @@ +@@ -3016,10 +3022,12 @@ stream_puts(s, "trailer\n"); pprintld3(s, "<< /Size %ld /Root %ld 0 R /Info %ld 0 R\n", pdev->next_id, Catalog_id, Info_id); @@ -54,4 +54,3 @@ diff -ur orig/gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c gnu-ghostscript-9. if (pdev->OwnerPassword.size > 0) { pprintld1(s, "/Encrypt %ld 0 R ", Encrypt_id); } -Nur in gnu-ghostscript-9.14.0/devices/vector: gdevpdf.c.orig. diff --git a/gnu/packages/patches/gimp-CVE-2017-17784.patch b/gnu/packages/patches/gimp-CVE-2017-17784.patch deleted file mode 100644 index c791772fb5..0000000000 --- a/gnu/packages/patches/gimp-CVE-2017-17784.patch +++ /dev/null @@ -1,41 +0,0 @@ -Fix CVE-2017-17784: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17784 -https://bugzilla.gnome.org/show_bug.cgi?id=790784 - -Patch copied from upstream source repository: - -https://git.gnome.org/browse/gimp/commit/?id=c57f9dcf1934a9ab0cd67650f2dea18cb0902270 - -From c57f9dcf1934a9ab0cd67650f2dea18cb0902270 Mon Sep 17 00:00:00 2001 -From: Jehan -Date: Thu, 21 Dec 2017 12:25:32 +0100 -Subject: [PATCH] Bug 790784 - (CVE-2017-17784) heap overread in gbr parser / - load_image. - -We were assuming the input name was well formed, hence was -nul-terminated. As any data coming from external input, this has to be -thorougly checked. -Similar to commit 06d24a79af94837d615d0024916bb95a01bf3c59 but adapted -to older gimp-2-8 code. ---- - plug-ins/common/file-gbr.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/plug-ins/common/file-gbr.c b/plug-ins/common/file-gbr.c -index b028100bef..d3f01d9c56 100644 ---- a/plug-ins/common/file-gbr.c -+++ b/plug-ins/common/file-gbr.c -@@ -443,7 +443,8 @@ load_image (const gchar *filename, - { - gchar *temp = g_new (gchar, bn_size); - -- if ((read (fd, temp, bn_size)) < bn_size) -+ if ((read (fd, temp, bn_size)) < bn_size || -+ temp[bn_size - 1] != '\0') - { - g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED, - _("Error in GIMP brush file '%s'"), --- -2.15.1 - diff --git a/gnu/packages/patches/gimp-CVE-2017-17785.patch b/gnu/packages/patches/gimp-CVE-2017-17785.patch deleted file mode 100644 index 939b01f214..0000000000 --- a/gnu/packages/patches/gimp-CVE-2017-17785.patch +++ /dev/null @@ -1,171 +0,0 @@ -Fix CVE-2017-17785: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17785 -https://bugzilla.gnome.org/show_bug.cgi?id=739133 - -Patch copied from upstream source repository: - -https://git.gnome.org/browse/gimp/commit/?id=1882bac996a20ab5c15c42b0c5e8f49033a1af54 - -From 1882bac996a20ab5c15c42b0c5e8f49033a1af54 Mon Sep 17 00:00:00 2001 -From: Tobias Stoeckmann -Date: Sun, 29 Oct 2017 15:19:41 +0100 -Subject: [PATCH] Bug 739133 - (CVE-2017-17785) Heap overflow while parsing FLI - files. - -It is possible to trigger a heap overflow while parsing FLI files. The -RLE decoder is vulnerable to out of boundary writes due to lack of -boundary checks. - -The variable "framebuf" points to a memory area which was allocated -with fli_header->width * fli_header->height bytes. The RLE decoder -therefore must never write beyond that limit. - -If an illegal frame is detected, the parser won't stop, which means -that the next valid sequence is properly parsed again. This should -allow GIMP to parse FLI files as good as possible even if they are -broken by an attacker or by accident. - -While at it, I changed the variable xc to be of type size_t, because -the multiplication of width and height could overflow a 16 bit type. - -Signed-off-by: Tobias Stoeckmann -(cherry picked from commit edb251a7ef1602d20a5afcbf23f24afb163de63b) ---- - plug-ins/file-fli/fli.c | 50 ++++++++++++++++++++++++++++++++++--------------- - 1 file changed, 35 insertions(+), 15 deletions(-) - -diff --git a/plug-ins/file-fli/fli.c b/plug-ins/file-fli/fli.c -index 313efeb977..ffb651e2af 100644 ---- a/plug-ins/file-fli/fli.c -+++ b/plug-ins/file-fli/fli.c -@@ -25,6 +25,8 @@ - - #include "config.h" - -+#include -+ - #include - #include - -@@ -461,23 +463,27 @@ void fli_read_brun(FILE *f, s_fli_header *fli_header, unsigned char *framebuf) - unsigned short yc; - unsigned char *pos; - for (yc=0; yc < fli_header->height; yc++) { -- unsigned short xc, pc, pcnt; -+ unsigned short pc, pcnt; -+ size_t n, xc; - pc=fli_read_char(f); - xc=0; - pos=framebuf+(fli_header->width * yc); -+ n=(size_t)fli_header->width * (fli_header->height-yc); - for (pcnt=pc; pcnt>0; pcnt--) { - unsigned short ps; - ps=fli_read_char(f); - if (ps & 0x80) { - unsigned short len; -- for (len=-(signed char)ps; len>0; len--) { -+ for (len=-(signed char)ps; len>0 && xcwidth * fli_header->height); - firstline = fli_read_short(f); - numline = fli_read_short(f); -+ if (numline > fli_header->height || fli_header->height-numline < firstline) -+ return; -+ - for (yc=0; yc < numline; yc++) { -- unsigned short xc, pc, pcnt; -+ unsigned short pc, pcnt; -+ size_t n, xc; - pc=fli_read_char(f); - xc=0; - pos=framebuf+(fli_header->width * (firstline+yc)); -+ n=(size_t)fli_header->width * (fli_header->height-firstline-yc); - for (pcnt=pc; pcnt>0; pcnt--) { - unsigned short ps,skip; - skip=fli_read_char(f); - ps=fli_read_char(f); -- xc+=skip; -+ xc+=MIN(n-xc,skip); - if (ps & 0x80) { - unsigned char val; -+ size_t len; - ps=-(signed char)ps; - val=fli_read_char(f); -- memset(&(pos[xc]), val, ps); -- xc+=ps; -+ len=MIN(n-xc,ps); -+ memset(&(pos[xc]), val, len); -+ xc+=len; - } else { -- fread(&(pos[xc]), ps, 1, f); -- xc+=ps; -+ size_t len; -+ len=MIN(n-xc,ps); -+ fread(&(pos[xc]), len, 1, f); -+ xc+=len; - } - } - } -@@ -689,7 +704,8 @@ void fli_read_lc_2(FILE *f, s_fli_header *fli_header, unsigned char *old_framebu - yc=0; - numline = fli_read_short(f); - for (lc=0; lc < numline; lc++) { -- unsigned short xc, pc, pcnt, lpf, lpn; -+ unsigned short pc, pcnt, lpf, lpn; -+ size_t n, xc; - pc=fli_read_short(f); - lpf=0; lpn=0; - while (pc & 0x8000) { -@@ -700,26 +716,30 @@ void fli_read_lc_2(FILE *f, s_fli_header *fli_header, unsigned char *old_framebu - } - pc=fli_read_short(f); - } -+ yc=MIN(yc, fli_header->height); - xc=0; - pos=framebuf+(fli_header->width * yc); -+ n=(size_t)fli_header->width * (fli_header->height-yc); - for (pcnt=pc; pcnt>0; pcnt--) { - unsigned short ps,skip; - skip=fli_read_char(f); - ps=fli_read_char(f); -- xc+=skip; -+ xc+=MIN(n-xc,skip); - if (ps & 0x80) { - unsigned char v1,v2; - ps=-(signed char)ps; - v1=fli_read_char(f); - v2=fli_read_char(f); -- while (ps>0) { -+ while (ps>0 && xc+1 -Date: Wed, 20 Dec 2017 13:02:38 +0100 -Subject: [PATCH] Bug 739134 - (CVE-2017-17786) Out of bounds read / heap - overflow in... -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -... TGA importer. - -Be more thorough on valid TGA RGB and RGBA images. -In particular current TGA plug-in can import RGBA as 32 bits (8 bits per -channel) and 16 bits (5 bits per color channel and 1 bit for alpha), and -RGB as 15 and 24 bits. -Maybe there exist more variants, but if they do exist, we simply don't -support them yet. - -Thanks to Hanno Böck for the report and a first patch attempt. - -(cherry picked from commit 674b62ad45b6579ec6d7923dc3cb1ef4e8b5498b) ---- - plug-ins/common/file-tga.c | 12 ++++++++---- - 1 file changed, 8 insertions(+), 4 deletions(-) - -diff --git a/plug-ins/common/file-tga.c b/plug-ins/common/file-tga.c -index aef98702d4..426acc2925 100644 ---- a/plug-ins/common/file-tga.c -+++ b/plug-ins/common/file-tga.c -@@ -564,12 +564,16 @@ load_image (const gchar *filename, - } - break; - case TGA_TYPE_COLOR: -- if (info.bpp != 15 && info.bpp != 16 && -- info.bpp != 24 && info.bpp != 32) -+ if ((info.bpp != 15 && info.bpp != 16 && -+ info.bpp != 24 && info.bpp != 32) || -+ ((info.bpp == 15 || info.bpp == 24) && -+ info.alphaBits != 0) || -+ (info.bpp == 16 && info.alphaBits != 1) || -+ (info.bpp == 32 && info.alphaBits != 8)) - { -- g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u)", -+ g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u, alpha = %u)", - gimp_filename_to_utf8 (filename), -- info.imageType, info.bpp); -+ info.imageType, info.bpp, info.alphaBits); - return -1; - } - break; --- -2.15.1 - -From 22e2571c25425f225abdb11a566cc281fca6f366 Mon Sep 17 00:00:00 2001 -From: Jehan -Date: Wed, 20 Dec 2017 13:26:26 +0100 -Subject: [PATCH] plug-ins: TGA 16-bit RGB (without alpha bit) is also valid. - -According to some spec on the web, 16-bit RGB is also valid. In this -case, the last bit is simply ignored (at least that's how it is -implemented right now). - -(cherry picked from commit 8ea316667c8a3296bce2832b3986b58d0fdfc077) ---- - plug-ins/common/file-tga.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/plug-ins/common/file-tga.c b/plug-ins/common/file-tga.c -index 426acc2925..eb14a1dadc 100644 ---- a/plug-ins/common/file-tga.c -+++ b/plug-ins/common/file-tga.c -@@ -568,7 +568,8 @@ load_image (const gchar *filename, - info.bpp != 24 && info.bpp != 32) || - ((info.bpp == 15 || info.bpp == 24) && - info.alphaBits != 0) || -- (info.bpp == 16 && info.alphaBits != 1) || -+ (info.bpp == 16 && info.alphaBits != 1 && -+ info.alphaBits != 0) || - (info.bpp == 32 && info.alphaBits != 8)) - { - g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u, alpha = %u)", --- -2.15.1 - diff --git a/gnu/packages/patches/gimp-CVE-2017-17787.patch b/gnu/packages/patches/gimp-CVE-2017-17787.patch deleted file mode 100644 index b5310d33d9..0000000000 --- a/gnu/packages/patches/gimp-CVE-2017-17787.patch +++ /dev/null @@ -1,42 +0,0 @@ -Fix CVE-2017-17787: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17787 -https://bugzilla.gnome.org/show_bug.cgi?id=790853 - -Patch copied from upstream source repository: - -https://git.gnome.org/browse/gimp/commit/?id=87ba505fff85989af795f4ab6a047713f4d9381d - -From 87ba505fff85989af795f4ab6a047713f4d9381d Mon Sep 17 00:00:00 2001 -From: Jehan -Date: Thu, 21 Dec 2017 12:49:41 +0100 -Subject: [PATCH] Bug 790853 - (CVE-2017-17787) heap overread in psp importer. - -As any external data, we have to check that strings being read at fixed -length are properly nul-terminated. - -(cherry picked from commit eb2980683e6472aff35a3117587c4f814515c74d) ---- - plug-ins/common/file-psp.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/plug-ins/common/file-psp.c b/plug-ins/common/file-psp.c -index 4cbafe37b1..e350e4d88d 100644 ---- a/plug-ins/common/file-psp.c -+++ b/plug-ins/common/file-psp.c -@@ -890,6 +890,12 @@ read_creator_block (FILE *f, - g_free (string); - return -1; - } -+ if (string[length - 1] != '\0') -+ { -+ g_message ("Creator keyword data not nul-terminated"); -+ g_free (string); -+ return -1; -+ } - switch (keyword) - { - case PSP_CRTR_FLD_TITLE: --- -2.15.1 - diff --git a/gnu/packages/patches/gimp-CVE-2017-17789.patch b/gnu/packages/patches/gimp-CVE-2017-17789.patch deleted file mode 100644 index 6dfa435fd0..0000000000 --- a/gnu/packages/patches/gimp-CVE-2017-17789.patch +++ /dev/null @@ -1,48 +0,0 @@ -Fix CVE-2017-17789: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17789 -https://bugzilla.gnome.org/show_bug.cgi?id=790849 - -Patch copied from upstream source repository: - -https://git.gnome.org/browse/gimp/commit/?id=01898f10f87a094665a7fdcf7153990f4e511d3f - -From 01898f10f87a094665a7fdcf7153990f4e511d3f Mon Sep 17 00:00:00 2001 -From: Jehan -Date: Wed, 20 Dec 2017 16:44:20 +0100 -Subject: [PATCH] Bug 790849 - (CVE-2017-17789) CVE-2017-17789 Heap buffer - overflow... - -... in PSP importer. -Check if declared block length is valid (i.e. within the actual file) -before going further. -Consider the file as broken otherwise and fail loading it. - -(cherry picked from commit 28e95fbeb5720e6005a088fa811f5bf3c1af48b8) ---- - plug-ins/common/file-psp.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/plug-ins/common/file-psp.c b/plug-ins/common/file-psp.c -index ac0fff78f0..4cbafe37b1 100644 ---- a/plug-ins/common/file-psp.c -+++ b/plug-ins/common/file-psp.c -@@ -1771,6 +1771,15 @@ load_image (const gchar *filename, - { - block_start = ftell (f); - -+ if (block_start + block_total_len > st.st_size) -+ { -+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED, -+ _("Could not open '%s' for reading: %s"), -+ gimp_filename_to_utf8 (filename), -+ _("invalid block size")); -+ goto error; -+ } -+ - if (id == PSP_IMAGE_BLOCK) - { - if (block_number != 0) --- -2.15.1 - diff --git a/gnu/packages/patches/glib-respect-datadir.patch b/gnu/packages/patches/glib-respect-datadir.patch deleted file mode 100644 index 309ce9fc0b..0000000000 --- a/gnu/packages/patches/glib-respect-datadir.patch +++ /dev/null @@ -1,21 +0,0 @@ -On Guix, Python modules are in a different output from the executables, -so searching "../share/glib-2.0" will not work. - -This patch restores behaviour prior to this commit: - - ---- a/gio/gdbus-2.0/codegen/gdbus-codegen.in -+++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in -@@ -25,9 +25,12 @@ - - srcdir = os.getenv('UNINSTALLED_GLIB_SRCDIR', None) - filedir = os.path.dirname(__file__) -+datadir = os.path.join('@datadir@', 'glib-2.0') - - if srcdir is not None: - path = os.path.join(srcdir, 'gio', 'gdbus-2.0') -+elif os.path.exists(os.path.join(datadir, 'codegen')): -+ path = datadir - elif os.path.basename(filedir) == 'bin': - # Make the prefix containing gdbus-codegen 'relocatable' at runtime by - # adding /some/prefix/bin/../share/glib-2.0 to the python path diff --git a/gnu/packages/patches/glibc-2.27-git-fixes.patch b/gnu/packages/patches/glibc-2.27-git-fixes.patch new file mode 100644 index 0000000000..4ed67c7c25 --- /dev/null +++ b/gnu/packages/patches/glibc-2.27-git-fixes.patch @@ -0,0 +1,702 @@ +These commits are cherry-picked from the "release/2.27/master" branch. + +https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/release/2.27/master + +Currently, we have the following (with NEWS and ChangeLog entries omitted). + +56170e064e2b21ce204f0817733e92f1730541ea +516fa6080481a1433c173320b1c1432868e1e38a +f36553bf6a4f69070f99badbdab5802b43e6e211 +7c6304182b9f422b782ace1cdd3efbde056aec36 +78a90c2f74a2012dd3eff302189e47ff6779a757 +1e52d8e65a58c49a48549053a1b89c06240e0c6c +55ad82e45c313454de657931898e974a7a036cad + +From 56170e064e2b21ce204f0817733e92f1730541ea Mon Sep 17 00:00:00 2001 +From: Igor Gnatenko +Date: Wed, 7 Feb 2018 13:53:10 +0100 +Subject: [PATCH] Linux: use reserved name __key in pkey_get [BZ #22797] + +_key is not reserved name and we should avoid using that. It seems that +it was simple typo when pkey_* was implemented. + +(cherry picked from commit 388ff7bd0d57d7061fdd39a2f26f65687e8058da) + +diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h +index 7715e680ca..d15ba95c9d 100644 +--- a/sysdeps/unix/sysv/linux/bits/mman-shared.h ++++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h +@@ -61,7 +61,7 @@ int pkey_set (int __key, unsigned int __access_rights) __THROW; + + /* Return the access rights for the current thread for KEY, which must + have been allocated using pkey_alloc. */ +-int pkey_get (int _key) __THROW; ++int pkey_get (int __key) __THROW; + + /* Free an allocated protection key, which must have been allocated + using pkey_alloc. */ + +From 516fa6080481a1433c173320b1c1432868e1e38a Mon Sep 17 00:00:00 2001 +From: "Dmitry V. Levin" +Date: Fri, 29 Dec 2017 23:19:32 +0000 +Subject: [PATCH] linux/aarch64: sync sys/ptrace.h with Linux 4.15 [BZ #22433] + +Remove compat-specific constants that were never exported by kernel +headers under these names. Before linux commit v3.7-rc1~16^2~1 they +were exported with COMPAT_ prefix, and since that commit they are not +exported at all. + +* sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (__ptrace_request): +Remove arm-specific PTRACE_GET_THREAD_AREA, PTRACE_GETHBPREGS, +and PTRACE_SETHBPREGS. + +(cherry picked from commit 2fd4bbaa1446f1be700e10c526cf585a796c4991) + +diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h +index 4be45b95ff..444edbb702 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h +@@ -78,18 +78,10 @@ enum __ptrace_request + PTRACE_DETACH = 17, + #define PT_DETACH PTRACE_DETACH + +- PTRACE_GET_THREAD_AREA = 22, +- + /* Continue and stop at the next entry to or return from syscall. */ + PTRACE_SYSCALL = 24, + #define PT_SYSCALL PTRACE_SYSCALL + +- /* Get all hardware breakpoint registers. */ +- PTRACE_GETHBPREGS = 29, +- +- /* Set all hardware breakpoint registers. */ +- PTRACE_SETHBPREGS = 30, +- + /* Set ptrace filter options. */ + PTRACE_SETOPTIONS = 0x4200, + #define PT_SETOPTIONS PTRACE_SETOPTIONS + +From f36553bf6a4f69070f99badbdab5802b43e6e211 Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Mon, 19 Feb 2018 21:59:30 +0100 +Subject: [PATCH] =?UTF-8?q?Add=20missing=20=E2=80=9Creorder-end=E2=80=9D?= + =?UTF-8?q?=20in=20LC=5FCOLLATE=20of=20et=5FEE=20[BZ=20#22517]?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + + [BZ #22517] + * localedata/locales/et_EE (LC_COLLATE): add missing “reorder-end” + +(cherry picked from commit 7ec5f9465e732e668d0dc94ac078ba68056d6d0a) + +diff --git a/localedata/locales/et_EE b/localedata/locales/et_EE +index 9cb55b568f..bab7493c98 100644 +--- a/localedata/locales/et_EE ++++ b/localedata/locales/et_EE +@@ -103,6 +103,8 @@ reorder-after + ;;;IGNORE % ü + ;;;IGNORE % Ü + ++reorder-end ++ + END LC_COLLATE + + LC_CTYPE + +From 7c6304182b9f422b782ace1cdd3efbde056aec36 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Thu, 1 Mar 2018 23:20:45 -0500 +Subject: [PATCH] [BZ #22342] Fix netgroup cache keys. + +Unlike other nscd caches, the netgroup cache contains two types of +records - those for "iterate through a netgroup" (i.e. setnetgrent()) +and those for "is this user in this netgroup" (i.e. innetgr()), +i.e. full and partial records. The timeout code assumes these records +have the same key for the group name, so that the collection of records +that is "this netgroup" can be expired as a unit. + +However, the keys are not the same, as the in-netgroup key is generated +by nscd rather than being passed to it from elsewhere, and is generated +without the trailing NUL. All other keys have the trailing NUL, and as +noted in the linked BZ, debug statements confirm that two keys for the +same netgroup are added to the cache with two different lengths. + +The result of this is that as records in the cache expire, the purge +code only cleans out one of the two types of entries, resulting in +stale, possibly incorrect, and possibly inconsistent cache data. + +The patch simply includes the existing NUL in the computation for the +key length ('key' points to the char after the NUL, and 'group' to the +first char of the group, so 'key-group' includes the first char to the +NUL, inclusive). + + [BZ #22342] + * nscd/netgroupcache.c (addinnetgrX): Include trailing NUL in + key value. + +Reviewed-by: Carlos O'Donell +(cherry picked from commit 1c81d55fc4b07b51adf68558ba74ce975153e580) + +diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c +index b832c9315f..2f187b208c 100644 +--- a/nscd/netgroupcache.c ++++ b/nscd/netgroupcache.c +@@ -480,7 +480,7 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req, + { + const char *group = key; + key = (char *) rawmemchr (key, '\0') + 1; +- size_t group_len = key - group - 1; ++ size_t group_len = key - group; + const char *host = *key++ ? key : NULL; + if (host != NULL) + key = (char *) rawmemchr (key, '\0') + 1; + +From 78a90c2f74a2012dd3eff302189e47ff6779a757 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Fri, 2 Mar 2018 23:07:14 +0100 +Subject: [PATCH] Fix multiple definitions of __nss_*_database (bug 22918) + +(cherry picked from commit eaf6753f8aac33a36deb98c1031d1bad7b593d2d) + +diff --git a/nscd/gai.c b/nscd/gai.c +index d081747797..576fd0045b 100644 +--- a/nscd/gai.c ++++ b/nscd/gai.c +@@ -45,3 +45,6 @@ + #ifdef HAVE_LIBIDN + # include + #endif ++ ++/* Some variables normally defined in libc. */ ++service_user *__nss_hosts_database attribute_hidden; +diff --git a/nss/nsswitch.c b/nss/nsswitch.c +index d5e655974f..b0f0c11a3e 100644 +--- a/nss/nsswitch.c ++++ b/nss/nsswitch.c +@@ -62,7 +62,7 @@ static service_library *nss_new_service (name_database *database, + + /* Declare external database variables. */ + #define DEFINE_DATABASE(name) \ +- extern service_user *__nss_##name##_database attribute_hidden; \ ++ service_user *__nss_##name##_database attribute_hidden; \ + weak_extern (__nss_##name##_database) + #include "databases.def" + #undef DEFINE_DATABASE +diff --git a/nss/nsswitch.h b/nss/nsswitch.h +index eccb535ef5..63573b9ebc 100644 +--- a/nss/nsswitch.h ++++ b/nss/nsswitch.h +@@ -226,10 +226,10 @@ libc_hidden_proto (__nss_hostname_digits_dots) + #define MAX_NR_ADDRS 48 + + /* Prototypes for __nss_*_lookup2 functions. */ +-#define DEFINE_DATABASE(arg) \ +- service_user *__nss_##arg##_database attribute_hidden; \ +- int __nss_##arg##_lookup2 (service_user **, const char *, \ +- const char *, void **); \ ++#define DEFINE_DATABASE(arg) \ ++ extern service_user *__nss_##arg##_database attribute_hidden; \ ++ int __nss_##arg##_lookup2 (service_user **, const char *, \ ++ const char *, void **); \ + libc_hidden_proto (__nss_##arg##_lookup2) + #include "databases.def" + #undef DEFINE_DATABASE +diff --git a/posix/tst-rfc3484-2.c b/posix/tst-rfc3484-2.c +index f509534ca9..8c64ac59ff 100644 +--- a/posix/tst-rfc3484-2.c ++++ b/posix/tst-rfc3484-2.c +@@ -58,6 +58,7 @@ _res_hconf_init (void) + #undef USE_NSCD + #include "../sysdeps/posix/getaddrinfo.c" + ++service_user *__nss_hosts_database attribute_hidden; + + /* This is the beginning of the real test code. The above defines + (among other things) the function rfc3484_sort. */ +diff --git a/posix/tst-rfc3484-3.c b/posix/tst-rfc3484-3.c +index ae44087a10..1c61aaf844 100644 +--- a/posix/tst-rfc3484-3.c ++++ b/posix/tst-rfc3484-3.c +@@ -58,6 +58,7 @@ _res_hconf_init (void) + #undef USE_NSCD + #include "../sysdeps/posix/getaddrinfo.c" + ++service_user *__nss_hosts_database attribute_hidden; + + /* This is the beginning of the real test code. The above defines + (among other things) the function rfc3484_sort. */ +diff --git a/posix/tst-rfc3484.c b/posix/tst-rfc3484.c +index 7f191abbbc..8f45848e44 100644 +--- a/posix/tst-rfc3484.c ++++ b/posix/tst-rfc3484.c +@@ -58,6 +58,7 @@ _res_hconf_init (void) + #undef USE_NSCD + #include "../sysdeps/posix/getaddrinfo.c" + ++service_user *__nss_hosts_database attribute_hidden; + + /* This is the beginning of the real test code. The above defines + (among other things) the function rfc3484_sort. */ + +From 1e52d8e65a58c49a48549053a1b89c06240e0c6c Mon Sep 17 00:00:00 2001 +From: Adhemerval Zanella +Date: Fri, 17 Nov 2017 16:04:29 -0200 +Subject: [PATCH] i386: Fix i386 sigaction sa_restorer initialization + (BZ#21269) + +This patch fixes the i386 sa_restorer field initialization for sigaction +syscall for kernel with vDSO. As described in bug report, i386 Linux +(and compat on x86_64) interprets SA_RESTORER clear with nonzero +sa_restorer as a request for stack switching if the SS segment is 'funny'. +This means that anything that tries to mix glibc's signal handling with +segmentation (for instance through modify_ldt syscall) is randomly broken +depending on what values lands in sa_restorer. + +The testcase added is based on Linux test tools/testing/selftests/x86/ldt_gdt.c, +more specifically in do_multicpu_tests function. The main changes are: + + - C11 atomics instead of plain access. + + - Remove x86_64 support which simplifies the syscall handling and fallbacks. + + - Replicate only the test required to trigger the issue. + +Checked on i686-linux-gnu. + + [BZ #21269] + * sysdeps/unix/sysv/linux/i386/Makefile (tests): Add tst-bz21269. + * sysdeps/unix/sysv/linux/i386/sigaction.c (SET_SA_RESTORER): Clear + sa_restorer for vDSO case. + * sysdeps/unix/sysv/linux/i386/tst-bz21269.c: New file. + +(cherry picked from commit 68448be208ee06e76665918b37b0a57e3e00c8b4) + +diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile +index 4080b8c966..da716e2c1b 100644 +--- a/sysdeps/unix/sysv/linux/i386/Makefile ++++ b/sysdeps/unix/sysv/linux/i386/Makefile +@@ -3,6 +3,9 @@ default-abi := 32 + + ifeq ($(subdir),misc) + sysdep_routines += ioperm iopl vm86 ++ ++tests += tst-bz21269 ++$(objpfx)tst-bz21269: $(shared-thread-library) + endif + + ifeq ($(subdir),elf) +diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c +index a5eb9e0d3e..177ff60ee6 100644 +--- a/sysdeps/unix/sysv/linux/i386/sigaction.c ++++ b/sysdeps/unix/sysv/linux/i386/sigaction.c +@@ -42,7 +42,6 @@ extern void restore_rt (void) asm ("__restore_rt") attribute_hidden; + #endif + extern void restore (void) asm ("__restore") attribute_hidden; + +- + /* If ACT is not NULL, change the action for SIG to *ACT. + If OACT is not NULL, put the old action for SIG in *OACT. */ + int +@@ -65,6 +64,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) + kact.sa_restorer = ((act->sa_flags & SA_SIGINFO) + ? &restore_rt : &restore); + } ++ else ++ kact.sa_restorer = NULL; + } + + /* XXX The size argument hopefully will have to be changed to the +diff --git a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c +new file mode 100644 +index 0000000000..353e36507d +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c +@@ -0,0 +1,233 @@ ++/* Test for i386 sigaction sa_restorer handling (BZ#21269) ++ Copyright (C) 2017 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This is based on Linux test tools/testing/selftests/x86/ldt_gdt.c, ++ more specifically in do_multicpu_tests function. The main changes ++ are: ++ ++ - C11 atomics instead of plain access. ++ - Remove x86_64 support which simplifies the syscall handling ++ and fallbacks. ++ - Replicate only the test required to trigger the issue for the ++ BZ#21269. */ ++ ++#include ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++static int ++xset_thread_area (struct user_desc *u_info) ++{ ++ long ret = syscall (SYS_set_thread_area, u_info); ++ TEST_VERIFY_EXIT (ret == 0); ++ return ret; ++} ++ ++static void ++xmodify_ldt (int func, const void *ptr, unsigned long bytecount) ++{ ++ TEST_VERIFY_EXIT (syscall (SYS_modify_ldt, 1, ptr, bytecount) == 0); ++} ++ ++static int ++futex (int *uaddr, int futex_op, int val, void *timeout, int *uaddr2, ++ int val3) ++{ ++ return syscall (SYS_futex, uaddr, futex_op, val, timeout, uaddr2, val3); ++} ++ ++static void ++xsethandler (int sig, void (*handler)(int, siginfo_t *, void *), int flags) ++{ ++ struct sigaction sa = { 0 }; ++ sa.sa_sigaction = handler; ++ sa.sa_flags = SA_SIGINFO | flags; ++ TEST_VERIFY_EXIT (sigemptyset (&sa.sa_mask) == 0); ++ TEST_VERIFY_EXIT (sigaction (sig, &sa, 0) == 0); ++} ++ ++static jmp_buf jmpbuf; ++ ++static void ++sigsegv_handler (int sig, siginfo_t *info, void *ctx_void) ++{ ++ siglongjmp (jmpbuf, 1); ++} ++ ++/* Points to an array of 1024 ints, each holding its own index. */ ++static const unsigned int *counter_page; ++static struct user_desc *low_user_desc; ++static struct user_desc *low_user_desc_clear; /* Used to delete GDT entry. */ ++static int gdt_entry_num; ++ ++static void ++setup_counter_page (void) ++{ ++ long page_size = sysconf (_SC_PAGE_SIZE); ++ TEST_VERIFY_EXIT (page_size > 0); ++ unsigned int *page = xmmap (NULL, page_size, PROT_READ | PROT_WRITE, ++ MAP_ANONYMOUS | MAP_PRIVATE | MAP_32BIT, -1); ++ for (int i = 0; i < (page_size / sizeof (unsigned int)); i++) ++ page[i] = i; ++ counter_page = page; ++} ++ ++static void ++setup_low_user_desc (void) ++{ ++ low_user_desc = xmmap (NULL, 2 * sizeof (struct user_desc), ++ PROT_READ | PROT_WRITE, ++ MAP_ANONYMOUS | MAP_PRIVATE | MAP_32BIT, -1); ++ ++ low_user_desc->entry_number = -1; ++ low_user_desc->base_addr = (unsigned long) &counter_page[1]; ++ low_user_desc->limit = 0xffff; ++ low_user_desc->seg_32bit = 1; ++ low_user_desc->contents = 0; ++ low_user_desc->read_exec_only = 0; ++ low_user_desc->limit_in_pages = 1; ++ low_user_desc->seg_not_present = 0; ++ low_user_desc->useable = 0; ++ ++ xset_thread_area (low_user_desc); ++ ++ low_user_desc_clear = low_user_desc + 1; ++ low_user_desc_clear->entry_number = gdt_entry_num; ++ low_user_desc_clear->read_exec_only = 1; ++ low_user_desc_clear->seg_not_present = 1; ++} ++ ++/* Possible values of futex: ++ 0: thread is idle. ++ 1: thread armed. ++ 2: thread should clear LDT entry 0. ++ 3: thread should exit. */ ++static atomic_uint ftx; ++ ++static void * ++threadproc (void *ctx) ++{ ++ while (1) ++ { ++ futex ((int *) &ftx, FUTEX_WAIT, 1, NULL, NULL, 0); ++ while (atomic_load (&ftx) != 2) ++ { ++ if (atomic_load (&ftx) >= 3) ++ return NULL; ++ } ++ ++ /* clear LDT entry 0. */ ++ const struct user_desc desc = { 0 }; ++ xmodify_ldt (1, &desc, sizeof (desc)); ++ ++ /* If ftx == 2, set it to zero, If ftx == 100, quit. */ ++ if (atomic_fetch_add (&ftx, -2) != 2) ++ return NULL; ++ } ++} ++ ++ ++/* As described in testcase, for historical reasons x86_32 Linux (and compat ++ on x86_64) interprets SA_RESTORER clear with nonzero sa_restorer as a ++ request for stack switching if the SS segment is 'funny' (this is default ++ scenario for vDSO system). This means that anything that tries to mix ++ signal handling with segmentation should explicit clear the sa_restorer. ++ ++ This testcase check if sigaction in fact does it by changing the local ++ descriptor table (LDT) through the modify_ldt syscall and triggering ++ a synchronous segfault on iret fault by trying to install an invalid ++ segment. With a correct zeroed sa_restorer it should not trigger an ++ 'real' SEGSEGV and allows the siglongjmp in signal handler. */ ++ ++static int ++do_test (void) ++{ ++ setup_counter_page (); ++ setup_low_user_desc (); ++ ++ pthread_t thread; ++ unsigned short orig_ss; ++ ++ xsethandler (SIGSEGV, sigsegv_handler, 0); ++ /* 32-bit kernels send SIGILL instead of SIGSEGV on IRET faults. */ ++ xsethandler (SIGILL, sigsegv_handler, 0); ++ ++ thread = xpthread_create (0, threadproc, 0); ++ ++ asm volatile ("mov %%ss, %0" : "=rm" (orig_ss)); ++ ++ for (int i = 0; i < 5; i++) ++ { ++ if (sigsetjmp (jmpbuf, 1) != 0) ++ continue; ++ ++ /* Make sure the thread is ready after the last test. */ ++ while (atomic_load (&ftx) != 0) ++ ; ++ ++ struct user_desc desc = { ++ .entry_number = 0, ++ .base_addr = 0, ++ .limit = 0xffff, ++ .seg_32bit = 1, ++ .contents = 0, ++ .read_exec_only = 0, ++ .limit_in_pages = 1, ++ .seg_not_present = 0, ++ .useable = 0 ++ }; ++ ++ xmodify_ldt (0x11, &desc, sizeof (desc)); ++ ++ /* Arm the thread. */ ++ ftx = 1; ++ futex ((int*) &ftx, FUTEX_WAKE, 0, NULL, NULL, 0); ++ ++ asm volatile ("mov %0, %%ss" : : "r" (0x7)); ++ ++ /* Fire up thread modify_ldt call. */ ++ atomic_store (&ftx, 2); ++ ++ while (atomic_load (&ftx) != 0) ++ ; ++ ++ /* On success, modify_ldt will segfault us synchronously and we will ++ escape via siglongjmp. */ ++ support_record_failure (); ++ } ++ ++ atomic_store (&ftx, 100); ++ futex ((int*) &ftx, FUTEX_WAKE, 0, NULL, NULL, 0); ++ ++ xpthread_join (thread); ++ ++ return 0; ++} ++ ++#include + +From 55ad82e45c313454de657931898e974a7a036cad Mon Sep 17 00:00:00 2001 +From: Andrew Senkevich +Date: Fri, 23 Mar 2018 16:19:45 +0100 +Subject: [PATCH] Fix i386 memmove issue (bug 22644). + + [BZ #22644] + * sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S: Fixed + branch conditions. + * string/test-memmove.c (do_test2): New testcase. + +(cherry picked from commit cd66c0e584c6d692bc8347b5e72723d02b8a8ada) + +diff --git a/string/test-memmove.c b/string/test-memmove.c +index edc7a4c3bf..64e3651ba4 100644 +--- a/string/test-memmove.c ++++ b/string/test-memmove.c +@@ -24,6 +24,7 @@ + # define TEST_NAME "memmove" + #endif + #include "test-string.h" ++#include + + char *simple_memmove (char *, const char *, size_t); + +@@ -245,6 +246,60 @@ do_random_tests (void) + } + } + ++static void ++do_test2 (void) ++{ ++ size_t size = 0x20000000; ++ uint32_t * large_buf; ++ ++ large_buf = mmap ((void*) 0x70000000, size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANON, -1, 0); ++ ++ if (large_buf == MAP_FAILED) ++ error (EXIT_UNSUPPORTED, errno, "Large mmap failed"); ++ ++ if ((uintptr_t) large_buf > 0x80000000 - 128 ++ || 0x80000000 - (uintptr_t) large_buf > 0x20000000) ++ { ++ error (0, 0, "Large mmap allocated improperly"); ++ ret = EXIT_UNSUPPORTED; ++ munmap ((void *) large_buf, size); ++ return; ++ } ++ ++ size_t bytes_move = 0x80000000 - (uintptr_t) large_buf; ++ size_t arr_size = bytes_move / sizeof (uint32_t); ++ size_t i; ++ ++ FOR_EACH_IMPL (impl, 0) ++ { ++ for (i = 0; i < arr_size; i++) ++ large_buf[i] = (uint32_t) i; ++ ++ uint32_t * dst = &large_buf[33]; ++ ++#ifdef TEST_BCOPY ++ CALL (impl, (char *) large_buf, (char *) dst, bytes_move); ++#else ++ CALL (impl, (char *) dst, (char *) large_buf, bytes_move); ++#endif ++ ++ for (i = 0; i < arr_size; i++) ++ { ++ if (dst[i] != (uint32_t) i) ++ { ++ error (0, 0, ++ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", ++ impl->name, dst, large_buf, i); ++ ret = 1; ++ break; ++ } ++ } ++ } ++ ++ munmap ((void *) large_buf, size); ++} ++ + int + test_main (void) + { +@@ -284,6 +339,9 @@ test_main (void) + } + + do_random_tests (); ++ ++ do_test2 (); ++ + return ret; + } + +diff --git a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S +index 9c3bbe7e17..9aa17de99c 100644 +--- a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S ++++ b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S +@@ -72,7 +72,7 @@ ENTRY (MEMCPY) + cmp %edx, %eax + + # ifdef USE_AS_MEMMOVE +- jg L(check_forward) ++ ja L(check_forward) + + L(mm_len_0_or_more_backward): + /* Now do checks for lengths. We do [0..16], [16..32], [32..64], [64..128] +@@ -81,7 +81,7 @@ L(mm_len_0_or_more_backward): + jbe L(mm_len_0_16_bytes_backward) + + cmpl $32, %ecx +- jg L(mm_len_32_or_more_backward) ++ ja L(mm_len_32_or_more_backward) + + /* Copy [0..32] and return. */ + movdqu (%eax), %xmm0 +@@ -92,7 +92,7 @@ L(mm_len_0_or_more_backward): + + L(mm_len_32_or_more_backward): + cmpl $64, %ecx +- jg L(mm_len_64_or_more_backward) ++ ja L(mm_len_64_or_more_backward) + + /* Copy [0..64] and return. */ + movdqu (%eax), %xmm0 +@@ -107,7 +107,7 @@ L(mm_len_32_or_more_backward): + + L(mm_len_64_or_more_backward): + cmpl $128, %ecx +- jg L(mm_len_128_or_more_backward) ++ ja L(mm_len_128_or_more_backward) + + /* Copy [0..128] and return. */ + movdqu (%eax), %xmm0 +@@ -132,7 +132,7 @@ L(mm_len_128_or_more_backward): + add %ecx, %eax + cmp %edx, %eax + movl SRC(%esp), %eax +- jle L(forward) ++ jbe L(forward) + PUSH (%esi) + PUSH (%edi) + PUSH (%ebx) +@@ -269,7 +269,7 @@ L(check_forward): + add %edx, %ecx + cmp %eax, %ecx + movl LEN(%esp), %ecx +- jle L(forward) ++ jbe L(forward) + + /* Now do checks for lengths. We do [0..16], [0..32], [0..64], [0..128] + separately. */ diff --git a/gnu/packages/patches/glibc-bootstrap-system.patch b/gnu/packages/patches/glibc-bootstrap-system.patch index 2f8e7da7e1..addeed6dbd 100644 --- a/gnu/packages/patches/glibc-bootstrap-system.patch +++ b/gnu/packages/patches/glibc-bootstrap-system.patch @@ -15,16 +15,16 @@ instead uses the hard-coded absolute file name of `bash'. } else if (pid < (pid_t) 0) ---- b/libio/iopopen.c 2012-06-30 21:12:34.000000000 +0200 -+++ b/libio/iopopen.c 2012-12-19 12:52:29.000000000 +0100 -@@ -226,7 +226,7 @@ _IO_new_proc_open (fp, command, mode) - _IO_close (fd); +--- a/libio/iopopen.c ++++ b/libio/iopopen.c +@@ -145,7 +145,7 @@ _IO_new_proc_open (fp, command, mode) + __close_nocancel (fd); } -- _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0); +- execl ("/bin/sh", "sh", "-c", command, (char *) 0); + execlp ("sh", "sh", "-c", command, (char *) 0); - _IO__exit (127); + _exit (127); } - _IO_close (child_end); + __close_nocancel (child_end); diff --git a/gnu/packages/patches/glibc-hidden-visibility-ldconfig.patch b/gnu/packages/patches/glibc-hidden-visibility-ldconfig.patch new file mode 100644 index 0000000000..c796946d7e --- /dev/null +++ b/gnu/packages/patches/glibc-hidden-visibility-ldconfig.patch @@ -0,0 +1,16 @@ +Fix a regression in glibc 2.27 when built without ldconfig. See + for details. + +diff --git a/include/libc-symbols.h b/include/libc-symbols.h +index 6137304b0b..7d630f36d8 100644 +--- a/include/libc-symbols.h ++++ b/include/libc-symbols.h +@@ -508,7 +508,7 @@ for linking") + # ifndef __ASSEMBLER__ + # if !defined SHARED && IS_IN (libc) && !defined LIBC_NONSHARED \ + && (!defined PIC || !defined NO_HIDDEN_EXTERN_FUNC_IN_PIE) \ +- && !defined NO_HIDDEN ++ && !defined NO_HIDDEN && defined USE_LDCONFIG + # define __hidden_proto_hiddenattr(attrs...) \ + __attribute__ ((visibility ("hidden"), ##attrs)) + # define hidden_proto(name, attrs...) \ diff --git a/gnu/packages/patches/glibc-locales.patch b/gnu/packages/patches/glibc-locales.patch index 3a125e845e..31ee6c1ff3 100644 --- a/gnu/packages/patches/glibc-locales.patch +++ b/gnu/packages/patches/glibc-locales.patch @@ -9,9 +9,9 @@ in a package separate from glibc. place, and because otherwise, 'localedef' fails with: "cannot write output files to `(null)'". ---- glibc-2.22/localedata/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ glibc-2.22/localedata/Makefile 2015-09-25 14:18:34.698941752 +0200 -@@ -195,7 +195,7 @@ INSTALL-SUPPORTED-LOCALES=$(addprefix in +--- glibc-2.27/localedata/Makefile ++++ glibc-2.27/localedata/Makefile +@@ -199,7 +199,7 @@ INSTALL-SUPPORTED-LOCALES=$(addprefix install-, $(SUPPORTED-LOCALES)) # Sometimes the whole collection of locale files should be installed. LOCALEDEF=I18NPATH=. GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \ @@ -20,10 +20,10 @@ in a package separate from glibc. install-locales: $(INSTALL-SUPPORTED-LOCALES) install-locales-dir: -@@ -212,7 +212,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo +@@ -224,7 +224,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-locales-dir input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ - $(LOCALEDEF) --alias-file=../intl/locale.alias \ - -i locales/$$input -c -f charmaps/$$charset \ + $(LOCALEDEF) $$flags --alias-file=../intl/locale.alias \ + -i locales/$$input -f charmaps/$$charset \ - $(addprefix --prefix=,$(install_root)) $$locale \ + $(addprefix --prefix=,$(install_root)) $(inst_complocaledir)/$$locale \ && echo ' done'; \ diff --git a/gnu/packages/patches/glibc-reinstate-prlimit64-fallback.patch b/gnu/packages/patches/glibc-reinstate-prlimit64-fallback.patch new file mode 100644 index 0000000000..ccc153c12a --- /dev/null +++ b/gnu/packages/patches/glibc-reinstate-prlimit64-fallback.patch @@ -0,0 +1,127 @@ +This patch reinstates fallback code when the 'prlimit64' system call is +missing by reverting the relevant part of this upstream commit: + + commit 695d7d138eda449678a1650a8b8b58181033353f + Author: Joseph Myers + Date: Tue May 9 14:05:09 2017 +0000 + + Assume prlimit64 is available. + +The fallback code is useful on systems that lack 'prlimit64', such as the +2.6.32-on-steroid kernel found on RHEL 6: + + + +diff --git a/sysdeps/unix/sysv/linux/getrlimit64.c b/sysdeps/unix/sysv/linux/getrlimit64.c +index 37c173286f..56af3c0646 100644 +--- b/sysdeps/unix/sysv/linux/getrlimit64.c ++++ a/sysdeps/unix/sysv/linux/getrlimit64.c +@@ -35,7 +35,40 @@ + int + __getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits) + { +- return INLINE_SYSCALL_CALL (prlimit64, 0, resource, NULL, rlimits); ++#ifdef __NR_prlimit64 ++ int res = INLINE_SYSCALL_CALL (prlimit64, 0, resource, NULL, rlimits); ++ if (res == 0 || errno != ENOSYS) ++ return res; ++#endif ++ ++/* The fallback code only makes sense if the platform supports either ++ __NR_ugetrlimit and/or __NR_getrlimit. */ ++#if defined (__NR_ugetrlimit) || defined (__NR_getrlimit) ++# ifndef __NR_ugetrlimit ++# define __NR_ugetrlimit __NR_getrlimit ++# endif ++# if __RLIM_T_MATCHES_RLIM64_T ++# define rlimits32 (*rlimits) ++# else ++ struct rlimit rlimits32; ++# endif ++ ++ if (INLINE_SYSCALL_CALL (ugetrlimit, resource, &rlimits32) < 0) ++ return -1; ++ ++# if !__RLIM_T_MATCHES_RLIM64_T ++ if (rlimits32.rlim_cur == RLIM_INFINITY) ++ rlimits->rlim_cur = RLIM64_INFINITY; ++ else ++ rlimits->rlim_cur = rlimits32.rlim_cur; ++ if (rlimits32.rlim_max == RLIM_INFINITY) ++ rlimits->rlim_max = RLIM64_INFINITY; ++ else ++ rlimits->rlim_max = rlimits32.rlim_max; ++# endif /* !__RLIM_T_MATCHES_RLIM64_T */ ++#endif /* defined (__NR_ugetrlimit) || defined (__NR_getrlimit) */ ++ ++ return 0; + } + libc_hidden_def (__getrlimit64) + +diff --git a/sysdeps/unix/sysv/linux/setrlimit.c b/sysdeps/unix/sysv/linux/setrlimit.c +index 01812ac355..8773c78236 100644 +--- b/sysdeps/unix/sysv/linux/setrlimit.c ++++ a/sysdeps/unix/sysv/linux/setrlimit.c +@@ -34,6 +34,7 @@ + int + __setrlimit (enum __rlimit_resource resource, const struct rlimit *rlim) + { ++# ifdef __NR_prlimit64 + struct rlimit64 rlim64; + + if (rlim->rlim_cur == RLIM_INFINITY) +@@ -45,7 +46,11 @@ + else + rlim64.rlim_max = rlim->rlim_max; + +- return INLINE_SYSCALL_CALL (prlimit64, 0, resource, &rlim64, NULL); ++ int res = INLINE_SYSCALL_CALL (prlimit64, 0, resource, &rlim64, NULL); ++ if (res == 0 || errno != ENOSYS) ++ return res; ++# endif ++ return INLINE_SYSCALL_CALL (setrlimit, resource, rlim); + } + + # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2) +diff --git a/sysdeps/unix/sysv/linux/setrlimit64.c b/sysdeps/unix/sysv/linux/setrlimit64.c +index 2dd129d99e..db1960fc18 100644 +--- b/sysdeps/unix/sysv/linux/setrlimit64.c ++++ a/sysdeps/unix/sysv/linux/setrlimit64.c +@@ -36,7 +36,36 @@ + int + __setrlimit64 (enum __rlimit_resource resource, const struct rlimit64 *rlimits) + { +- return INLINE_SYSCALL_CALL (prlimit64, 0, resource, rlimits, NULL); ++ int res; ++ ++#ifdef __NR_prlimit64 ++ res = INLINE_SYSCALL_CALL (prlimit64, 0, resource, rlimits, NULL); ++ if (res == 0 || errno != ENOSYS) ++ return res; ++#endif ++ ++/* The fallback code only makes sense if the platform supports ++ __NR_setrlimit. */ ++#ifdef __NR_setrlimit ++# if !__RLIM_T_MATCHES_RLIM64_T ++ struct rlimit rlimits32; ++ ++ if (rlimits->rlim_cur >= RLIM_INFINITY) ++ rlimits32.rlim_cur = RLIM_INFINITY; ++ else ++ rlimits32.rlim_cur = rlimits->rlim_cur; ++ if (rlimits->rlim_max >= RLIM_INFINITY) ++ rlimits32.rlim_max = RLIM_INFINITY; ++ else ++ rlimits32.rlim_max = rlimits->rlim_max; ++# else ++# define rlimits32 (*rlimits) ++# endif ++ ++ res = INLINE_SYSCALL_CALL (setrlimit, resource, &rlimits32); ++#endif ++ ++ return res; + } + weak_alias (__setrlimit64, setrlimit64) + diff --git a/gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch b/gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch new file mode 100644 index 0000000000..306d4d348b --- /dev/null +++ b/gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch @@ -0,0 +1,50 @@ +Fix CVE-2018-12020: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-12020 +https://lists.gnupg.org/pipermail/gnupg-announce/2018q2/000425.html + +Patch copied from upstream source repository: + +https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=2326851c60793653069494379b16d84e4c10a0ac + +From 2326851c60793653069494379b16d84e4c10a0ac Mon Sep 17 00:00:00 2001 +From: Werner Koch +Date: Fri, 8 Jun 2018 10:45:21 +0200 +Subject: [PATCH] gpg: Sanitize diagnostic with the original file name. + +* g10/mainproc.c (proc_plaintext): Sanitize verbose output. +-- + +This fixes a forgotten sanitation of user supplied data in a verbose +mode diagnostic. The mention CVE is about using this to inject +status-fd lines into the stderr output. Other harm good as well be +done. Note that GPGME based applications are not affected because +GPGME does not fold status output into stderr. + +CVE-id: CVE-2018-12020 +GnuPG-bug-id: 4012 +(cherry picked from commit 13f135c7a252cc46cff96e75968d92b6dc8dce1b) +--- + g10/mainproc.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/g10/mainproc.c b/g10/mainproc.c +index 33a654b34..ffa7ef6d8 100644 +--- a/g10/mainproc.c ++++ b/g10/mainproc.c +@@ -638,7 +638,11 @@ proc_plaintext( CTX c, PACKET *pkt ) + if( pt->namelen == 8 && !memcmp( pt->name, "_CONSOLE", 8 ) ) + log_info(_("NOTE: sender requested \"for-your-eyes-only\"\n")); + else if( opt.verbose ) +- log_info(_("original file name='%.*s'\n"), pt->namelen, pt->name); ++ { ++ char *tmp = make_printable_string (pt->name, pt->namelen, 0); ++ log_info (_("original file name='%.*s'\n"), (int)strlen (tmp), tmp); ++ xfree (tmp); ++ } + free_md_filter_context( &c->mfx ); + c->mfx.md = md_open( 0, 0); + /* fixme: we may need to push the textfilter if we have sigclass 1 +-- +2.17.1 + diff --git a/gnu/packages/patches/graphite2-ffloat-store.patch b/gnu/packages/patches/graphite2-ffloat-store.patch deleted file mode 100644 index f6ee56973e..0000000000 --- a/gnu/packages/patches/graphite2-ffloat-store.patch +++ /dev/null @@ -1,34 +0,0 @@ -Fix test failures of awamicmp1 and awamicmp2. - -Debian bug report: - -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=855814 - -Patch adapted from upstream source repository: - -https://github.com/silnrsi/graphite/commit/f7bbdd87d510d587c872e314d6458160c0069c65 - -From f7bbdd87d510d587c872e314d6458160c0069c65 Mon Sep 17 00:00:00 2001 -From: Martin Hosken -Date: Tue, 14 Feb 2017 17:00:03 +0000 -Subject: [PATCH] try -ffloat-store for fp stability. Remove nested const to - work around VS bug - ---- - src/CMakeLists.txt | 2 +- - src/inc/locale2lcid.h | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 4f1e7e5..5b61b5c 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -108,7 +108,7 @@ set_target_properties(graphite2 PROPERTIES PUBLIC_HEADER "${GRAPHITE_HEADERS}" - - if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - set_target_properties(graphite2 PROPERTIES -- COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wendif-labels -Wshadow -Wctor-dtor-privacy -Wnon-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fno-stack-protector" -+ COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wendif-labels -Wshadow -Wctor-dtor-privacy -Wnon-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fno-stack-protector -ffloat-store" - LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" - LINKER_LANGUAGE C) - if (CMAKE_COMPILER_IS_GNUCXX) diff --git a/gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch b/gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch new file mode 100644 index 0000000000..df74bdbaba --- /dev/null +++ b/gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch @@ -0,0 +1,98 @@ +From 3dbdc68093e90f0ef9b77b70490d8e0b1dcfbf8f Mon Sep 17 00:00:00 2001 +From: Julien Lepiller +Date: Sun, 17 Sep 2017 21:08:45 +0200 +Subject: [PATCH] Add ExceptionUtilsGenerator.java. + +A gradle task (in gradle/utils.gradle) is normally used to generate an +ExceptionUtils class. Since gradle depends on groovy, we cannot use it, so +we copy the code from the gradle task to a new file. Running this file then +generates the required class. +--- + .../codehaus/groovy/ExceptionUtilsGenerator.java | 75 ++++++++++++++++++++++ + 1 file changed, 75 insertions(+) + create mode 100644 config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java + +diff --git a/config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java b/config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java +new file mode 100644 +index 0000000..41f006d +--- /dev/null ++++ b/config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java +@@ -0,0 +1,75 @@ ++package org.codehaus.groovy; ++ ++import org.objectweb.asm.*; ++ ++import java.io.BufferedOutputStream; ++import java.io.File; ++import java.io.FileOutputStream; ++import java.io.IOException; ++import java.util.logging.Logger; ++ ++public class ExceptionUtilsGenerator implements Opcodes { ++ private final static Logger LOGGER = Logger.getLogger(ExceptionUtilsGenerator.class.getName()); ++ ++ public static void main(String... args) { ++ if (args==null || args.length==0) { ++ throw new IllegalArgumentException("You must specify at least one file"); ++ } ++ ++ ClassWriter cw = new ClassWriter(0); ++ MethodVisitor mv; ++ ++ cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, "org/codehaus/groovy/runtime/ExceptionUtils", null, "java/lang/Object", null); ++ ++ cw.visitSource("ExceptionUtils.java", null); ++ ++ mv = cw.visitMethod(ACC_PUBLIC, "", "()V", null, null); ++ mv.visitCode(); ++ Label l0 = new Label(); ++ mv.visitLabel(l0); ++ mv.visitLineNumber(18, l0); ++ mv.visitVarInsn(ALOAD, 0); ++ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "", "()V"); ++ mv.visitInsn(RETURN); ++ Label l1 = new Label(); ++ mv.visitLabel(l1); ++ mv.visitLocalVariable("this", "Lorg/codehaus/groovy/runtime/ExceptionUtils;", null, l0, l1, 0); ++ mv.visitMaxs(1, 1); ++ mv.visitEnd(); ++ ++ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "sneakyThrow", "(Ljava/lang/Throwable;)V", null, null); ++ mv.visitCode(); ++ Label l2 = new Label(); ++ mv.visitLabel(l2); ++ mv.visitLineNumber(20, l2); ++ mv.visitVarInsn(ALOAD, 0); ++ mv.visitInsn(ATHROW); ++ Label l3 = new Label(); ++ mv.visitLabel(l3); ++ mv.visitLocalVariable("e", "Ljava/lang/Throwable;", null, l2, l3, 0); ++ mv.visitMaxs(1, 1); ++ mv.visitEnd(); ++ ++ cw.visitEnd(); ++ ++ LOGGER.info("Generating ExceptionUtils"); ++ byte[] bytes = cw.toByteArray(); ++ for (String classFilePath : args) { ++ File classFile = new File(classFilePath); ++ if (classFile.getParentFile().exists() || classFile.getParentFile().mkdirs()) { ++ try { ++ if (classFile.exists()) { ++ classFile.delete(); ++ } ++ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(classFile)); ++ bos.write(bytes); ++ bos.close(); ++ } catch (IOException e) { ++ LOGGER.warning("Unable to write file "+classFile); ++ } ++ } else { ++ LOGGER.warning("Unable to create directory "+classFile.getParentFile()); ++ } ++ } ++ } ++} +-- +2.14.1 + diff --git a/gnu/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch b/gnu/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch new file mode 100644 index 0000000000..e6b578bdb7 --- /dev/null +++ b/gnu/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch @@ -0,0 +1,53 @@ +From 1da99396dc65993ba34ac0370ca5d6acda6a3322 Mon Sep 17 00:00:00 2001 +From: Mark H Weaver +Date: Sun, 18 Mar 2018 07:02:37 -0400 +Subject: [PATCH] Add support for gdbm-1.14. + +As of gdbm-1.14, 'gdbm_errno' no longer exists as a binary interface. +It has been replaced by 'gdbm_errno_location', a function that returns +int*. We now use this new interface if it's available. +--- + gdbm.scm | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git a/gdbm.scm b/gdbm.scm +index b92992f..4d38cc3 100644 +--- a/gdbm.scm ++++ b/gdbm.scm +@@ -17,6 +17,9 @@ + ;; You should have received a copy of the GNU General Public License + ;; along with this program. If not, see . + ++;; Modified by Mark H Weaver in March 2018 to support ++;; gdbm-1.14 with its new 'gdbm_errno_location' interface. ++ + (define-module (gdbm) + #:use-module (system foreign) + #:use-module (rnrs bytevectors) +@@ -151,10 +154,21 @@ + + ;;; errors + +-(define %errno (dynamic-pointer "gdbm_errno" libgdbm)) ++(define %list-int ++ (list int)) ++ ++(define (dereference-int ptr) ++ (apply (lambda (errno) errno) ++ (parse-c-struct ptr %list-int))) ++ ++(define %errno-location ++ (or (false-if-exception ++ (let ((func (dynamic-func "gdbm_errno_location" libgdbm))) ++ (pointer->procedure '* func '()))) ++ (const (dynamic-pointer "gdbm_errno" libgdbm)))) + + (define (gdbm-errno) +- (pointer-address (dereference-pointer %errno))) ++ (dereference-int (%errno-location))) + + (define (gdbm-error) + (error (pointer->string (%gdbm-strerror (gdbm-errno))))) +-- +2.16.2 + diff --git a/gnu/packages/patches/heimdal-CVE-2017-11103.patch b/gnu/packages/patches/heimdal-CVE-2017-11103.patch deleted file mode 100644 index d76f0df369..0000000000 --- a/gnu/packages/patches/heimdal-CVE-2017-11103.patch +++ /dev/null @@ -1,45 +0,0 @@ -Fix CVE-2017-11103: - -https://orpheus-lyre.info/ -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11103 -https://security-tracker.debian.org/tracker/CVE-2017-11103 - -Patch lifted from upstream source repository: - -https://github.com/heimdal/heimdal/commit/6dd3eb836bbb80a00ffced4ad57077a1cdf227ea - -From 6dd3eb836bbb80a00ffced4ad57077a1cdf227ea Mon Sep 17 00:00:00 2001 -From: Jeffrey Altman -Date: Wed, 12 Apr 2017 15:40:42 -0400 -Subject: [PATCH] CVE-2017-11103: Orpheus' Lyre KDC-REP service name validation - -In _krb5_extract_ticket() the KDC-REP service name must be obtained from -encrypted version stored in 'enc_part' instead of the unencrypted version -stored in 'ticket'. Use of the unecrypted version provides an -opportunity for successful server impersonation and other attacks. - -Identified by Jeffrey Altman, Viktor Duchovni and Nico Williams. - -Change-Id: I45ef61e8a46e0f6588d64b5bd572a24c7432547c ---- - lib/krb5/ticket.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/krb5/ticket.c b/lib/krb5/ticket.c -index d95d96d1b..b8d81c6ad 100644 ---- a/lib/krb5/ticket.c -+++ b/lib/krb5/ticket.c -@@ -705,8 +705,8 @@ _krb5_extract_ticket(krb5_context context, - /* check server referral and save principal */ - ret = _krb5_principalname2krb5_principal (context, - &tmp_principal, -- rep->kdc_rep.ticket.sname, -- rep->kdc_rep.ticket.realm); -+ rep->enc_part.sname, -+ rep->enc_part.srealm); - if (ret) - goto out; - if((flags & EXTRACT_TICKET_ALLOW_SERVER_MISMATCH) == 0){ --- -2.13.3 - diff --git a/gnu/packages/patches/heimdal-CVE-2017-6594.patch b/gnu/packages/patches/heimdal-CVE-2017-6594.patch deleted file mode 100644 index 714af60304..0000000000 --- a/gnu/packages/patches/heimdal-CVE-2017-6594.patch +++ /dev/null @@ -1,85 +0,0 @@ -Fix CVE-2017-6594: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6594 -https://security-tracker.debian.org/tracker/CVE-2017-6594 - -Patch lifted from upstream source repository: - -https://github.com/heimdal/heimdal/commit/b1e699103f08d6a0ca46a122193c9da65f6cf837 - -To apply the patch to Heimdal 1.5.3 release tarball, the changes to 'NEWS' and -files in 'tests/' are removed, and hunk #4 of 'kdc/krb5tgs.c' is modified. - -From b1e699103f08d6a0ca46a122193c9da65f6cf837 Mon Sep 17 00:00:00 2001 -From: Viktor Dukhovni -Date: Wed, 10 Aug 2016 23:31:14 +0000 -Subject: [PATCH] Fix transit path validation CVE-2017-6594 - -Commit f469fc6 (2010-10-02) inadvertently caused the previous hop realm -to not be added to the transit path of issued tickets. This may, in -some cases, enable bypass of capath policy in Heimdal versions 1.5 -through 7.2. - -Note, this may break sites that rely on the bug. With the bug some -incomplete [capaths] worked, that should not have. These may now break -authentication in some cross-realm configurations. ---- - NEWS | 14 ++++++++++++++ - kdc/krb5tgs.c | 12 ++++++++++-- - tests/kdc/check-kdc.in | 17 +++++++++++++++++ - tests/kdc/krb5.conf.in | 4 ++++ - 4 files changed, 45 insertions(+), 2 deletions(-) - -diff --git a/kdc/krb5tgs.c b/kdc/krb5tgs.c -index 6048b9c55..98503812f 100644 ---- a/kdc/krb5tgs.c -+++ b/kdc/krb5tgs.c -@@ -655,8 +655,12 @@ fix_transited_encoding(krb5_context context, - "Decoding transited encoding"); - return ret; - } -+ -+ /* -+ * If the realm of the presented tgt is neither the client nor the server -+ * realm, it is a transit realm and must be added to transited set. -+ */ - if(strcmp(client_realm, tgt_realm) && strcmp(server_realm, tgt_realm)) { -- /* not us, so add the previous realm to transited set */ - if (num_realms + 1 > UINT_MAX/sizeof(*realms)) { - ret = ERANGE; - goto free_realms; -@@ -737,6 +741,7 @@ tgs_make_reply(krb5_context context, - const char *server_name, - hdb_entry_ex *client, - krb5_principal client_principal, -+ const char *tgt_realm, - hdb_entry_ex *krbtgt, - krb5_enctype krbtgt_etype, - krb5_principals spp, -@@ -798,7 +803,7 @@ tgs_make_reply(krb5_context context, - &tgt->transited, &et, - krb5_principal_get_realm(context, client_principal), - krb5_principal_get_realm(context, server->entry.principal), -- krb5_principal_get_realm(context, krbtgt->entry.principal)); -+ tgt_realm); - if(ret) - goto out; - -@@ -1519,4 +1524,6 @@ tgs_build_reply(krb5_context context, - krb5_keyblock sessionkey; - krb5_kvno kvno; - krb5_data rspac; -+ const char *tgt_realm = /* Realm of TGT issuer */ -+ krb5_principal_get_realm(context, krbtgt->entry.principal); - -@@ -2324,6 +2331,7 @@ server_lookup: - spn, - client, - cp, -+ tgt_realm, - krbtgt_out, - tkey_sign->key.keytype, - spp, --- -2.13.3 - diff --git a/gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch b/gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch new file mode 100644 index 0000000000..b776640133 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch @@ -0,0 +1,441 @@ +Based on +Adapted to apply cleanly to GNU IceCat. + +# HG changeset patch +# User Ryan VanderMeulen +# Date 1523630807 14400 +# Node ID 608e76ec5ba25cec2271d2b400c7bce2d4c5ef79 +# Parent 10b7f43b536f93151201d44d304c991aa9af5d0c +Bug 1452075 - Backport some upstream pdf.js fixes to ESR52. r=bdahl, r=yury, a=RyanVM + +diff --git a/browser/extensions/pdfjs/content/PdfStreamConverter.jsm b/browser/extensions/pdfjs/content/PdfStreamConverter.jsm +--- a/browser/extensions/pdfjs/content/PdfStreamConverter.jsm ++++ b/browser/extensions/pdfjs/content/PdfStreamConverter.jsm +@@ -24,17 +24,18 @@ const Cc = Components.classes; + const Ci = Components.interfaces; + const Cr = Components.results; + const Cu = Components.utils; + // True only if this is the version of pdf.js that is included with icecat. + const MOZ_CENTRAL = JSON.parse('true'); + const PDFJS_EVENT_ID = 'pdf.js.message'; + const PDF_CONTENT_TYPE = 'application/pdf'; + const PREF_PREFIX = 'pdfjs'; +-const PDF_VIEWER_WEB_PAGE = 'resource://pdf.js/web/viewer.html'; ++const PDF_VIEWER_ORIGIN = "resource://pdf.js"; ++const PDF_VIEWER_WEB_PAGE = "resource://pdf.js/web/viewer.html"; + const MAX_NUMBER_OF_PREFS = 50; + const MAX_STRING_PREF_LENGTH = 128; + + Cu.import('resource://gre/modules/XPCOMUtils.jsm'); + Cu.import('resource://gre/modules/Services.jsm'); + Cu.import('resource://gre/modules/NetUtil.jsm'); + + XPCOMUtils.defineLazyModuleGetter(this, 'NetworkManager', +@@ -105,21 +106,25 @@ function log(aMsg) { + if (!getBoolPref(PREF_PREFIX + '.pdfBugEnabled', false)) { + return; + } + var msg = 'PdfStreamConverter.js: ' + (aMsg.join ? aMsg.join('') : aMsg); + Services.console.logStringMessage(msg); + dump(msg + '\n'); + } + +-function getDOMWindow(aChannel) { ++function getDOMWindow(aChannel, aPrincipal) { + var requestor = aChannel.notificationCallbacks ? + aChannel.notificationCallbacks : + aChannel.loadGroup.notificationCallbacks; + var win = requestor.getInterface(Components.interfaces.nsIDOMWindow); ++ // Ensure the window wasn't navigated to something that is not PDF.js. ++ if (!win.document.nodePrincipal.equals(aPrincipal)) { ++ return null; ++ } + return win; + } + + function getLocalizedStrings(path) { + var stringBundle = Cc['@mozilla.org/intl/stringbundle;1']. + getService(Ci.nsIStringBundleService). + createBundle('chrome://pdf.js/locale/' + path); + +@@ -627,31 +632,31 @@ var RangedChromeActions = (function Rang + data = this.dataListener.readData(); + + this.dataListener.onprogress = function (loaded, total) { + self.domWindow.postMessage({ + pdfjsLoadAction: 'progressiveRead', + loaded: loaded, + total: total, + chunk: self.dataListener.readData() +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + }; + this.dataListener.oncomplete = function () { + self.dataListener = null; + }; + } + + this.domWindow.postMessage({ + pdfjsLoadAction: 'supportsRangedLoading', + rangeEnabled: this.rangeEnabled, + streamingEnabled: this.streamingEnabled, + pdfUrl: this.pdfUrl, + length: this.contentLength, + data: data +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + + return true; + }; + + proto.requestDataRange = function RangedChromeActions_requestDataRange(args) { + if (!this.rangeEnabled) { + return; + } +@@ -663,23 +668,23 @@ var RangedChromeActions = (function Rang + // errors from chrome code for non-range requests, so this doesn't + // seem high-pri + this.networkManager.requestRange(begin, end, { + onDone: function RangedChromeActions_onDone(args) { + domWindow.postMessage({ + pdfjsLoadAction: 'range', + begin: args.begin, + chunk: args.chunk +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + }, + onProgress: function RangedChromeActions_onProgress(evt) { + domWindow.postMessage({ + pdfjsLoadAction: 'rangeProgress', + loaded: evt.loaded, +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + } + }); + }; + + proto.abortLoading = function RangedChromeActions_abortLoading() { + this.networkManager.abortAllRequests(); + if (this.originalRequest) { + this.originalRequest.cancel(Cr.NS_BINDING_ABORTED); +@@ -718,26 +723,26 @@ var StandardChromeActions = (function St + var self = this; + + this.dataListener.onprogress = function ChromeActions_dataListenerProgress( + loaded, total) { + self.domWindow.postMessage({ + pdfjsLoadAction: 'progress', + loaded: loaded, + total: total +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + }; + + this.dataListener.oncomplete = + function StandardChromeActions_dataListenerComplete(data, errorCode) { + self.domWindow.postMessage({ + pdfjsLoadAction: 'complete', + data: data, + errorCode: errorCode +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + + self.dataListener = null; + self.originalRequest = null; + }; + + return true; + }; + +@@ -972,31 +977,35 @@ PdfStreamConverter.prototype = { + var proxy = { + onStartRequest: function(request, context) { + listener.onStartRequest(aRequest, aContext); + }, + onDataAvailable: function(request, context, inputStream, offset, count) { + listener.onDataAvailable(aRequest, aContext, inputStream, + offset, count); + }, +- onStopRequest: function(request, context, statusCode) { +- // We get the DOM window here instead of before the request since it +- // may have changed during a redirect. +- var domWindow = getDOMWindow(channel); ++ onStopRequest(request, context, statusCode) { ++ var domWindow = getDOMWindow(channel, resourcePrincipal); ++ if (!Components.isSuccessCode(statusCode) || !domWindow) { ++ // The request may have been aborted and the document may have been ++ // replaced with something that is not PDF.js, abort attaching. ++ listener.onStopRequest(aRequest, context, statusCode); ++ return; ++ } + var actions; + if (rangeRequest || streamRequest) { + actions = new RangedChromeActions( + domWindow, contentDispositionFilename, aRequest, + rangeRequest, streamRequest, dataListener); + } else { + actions = new StandardChromeActions( + domWindow, contentDispositionFilename, aRequest, dataListener); + } + var requestListener = new RequestListener(actions); +- domWindow.addEventListener(PDFJS_EVENT_ID, function(event) { ++ domWindow.document.addEventListener(PDFJS_EVENT_ID, function(event) { + requestListener.receive(event); + }, false, true); + if (actions.supportsIntegratedFind()) { + var findEventManager = new FindEventManager(domWindow); + findEventManager.bind(); + } + listener.onStopRequest(aRequest, aContext, statusCode); + +diff --git a/browser/extensions/pdfjs/content/build/pdf.worker.js b/browser/extensions/pdfjs/content/build/pdf.worker.js +--- a/browser/extensions/pdfjs/content/build/pdf.worker.js ++++ b/browser/extensions/pdfjs/content/build/pdf.worker.js +@@ -41648,16 +41648,32 @@ + var error = sharedUtil.error; + var info = sharedUtil.info; + var isArray = sharedUtil.isArray; + var isBool = sharedUtil.isBool; + var isDict = corePrimitives.isDict; + var isStream = corePrimitives.isStream; + var PostScriptLexer = corePsParser.PostScriptLexer; + var PostScriptParser = corePsParser.PostScriptParser; ++ function toNumberArray(arr) { ++ if (!Array.isArray(arr)) { ++ return null; ++ } ++ var length = arr.length; ++ for (var i = 0; i < length; i++) { ++ if (typeof arr[i] !== 'number') { ++ var result = new Array(length); ++ for (var j = 0; j < length; j++) { ++ result[j] = +arr[j]; ++ } ++ return result; ++ } ++ } ++ return arr; ++ } + var PDFFunction = function PDFFunctionClosure() { + var CONSTRUCT_SAMPLED = 0; + var CONSTRUCT_INTERPOLATED = 2; + var CONSTRUCT_STICHED = 3; + var CONSTRUCT_POSTSCRIPT = 4; + return { + getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps, str) { + var i, ii; +@@ -41747,43 +41763,43 @@ + out[index] = [ + arr[i], + arr[i + 1] + ]; + ++index; + } + return out; + } +- var domain = dict.getArray('Domain'); +- var range = dict.getArray('Range'); ++ var domain = toNumberArray(dict.getArray('Domain')); ++ var range = toNumberArray(dict.getArray('Range')); + if (!domain || !range) { + error('No domain or range'); + } + var inputSize = domain.length / 2; + var outputSize = range.length / 2; + domain = toMultiArray(domain); + range = toMultiArray(range); +- var size = dict.get('Size'); ++ var size = toNumberArray(dict.get('Size')); + var bps = dict.get('BitsPerSample'); + var order = dict.get('Order') || 1; + if (order !== 1) { + // No description how cubic spline interpolation works in PDF32000:2008 + // As in poppler, ignoring order, linear interpolation may work as good + info('No support for cubic spline interpolation: ' + order); + } +- var encode = dict.getArray('Encode'); ++ var encode = toNumberArray(dict.getArray('Encode')); + if (!encode) { + encode = []; + for (var i = 0; i < inputSize; ++i) { +- encode.push(0); +- encode.push(size[i] - 1); +- } +- } +- encode = toMultiArray(encode); +- var decode = dict.getArray('Decode'); ++ encode.push([0, size[i] - 1]); ++ } ++ } else { ++ encode = toMultiArray(encode); ++ } ++ var decode = toNumberArray(dict.getArray('Decode')); + if (!decode) { + decode = range; + } else { + decode = toMultiArray(decode); + } + var samples = this.getSampleArray(size, outputSize, bps, str); + return [ + CONSTRUCT_SAMPLED, +@@ -41868,22 +41884,19 @@ + // Decode_2j, Decode_2j+1) + rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); + // y_j = min(max(r_j, range_2j), range_2j+1) + dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]); + } + }; + }, + constructInterpolated: function PDFFunction_constructInterpolated(str, dict) { +- var c0 = dict.getArray('C0') || [0]; +- var c1 = dict.getArray('C1') || [1]; ++ var c0 = toNumberArray(dict.getArray('C0')) || [0]; ++ var c1 = toNumberArray(dict.getArray('C1')) || [1]; + var n = dict.get('N'); +- if (!isArray(c0) || !isArray(c1)) { +- error('Illegal dictionary for interpolated function'); +- } + var length = c0.length; + var diff = []; + for (var i = 0; i < length; ++i) { + diff.push(c1[i] - c0[i]); + } + return [ + CONSTRUCT_INTERPOLATED, + c0, +@@ -41899,49 +41912,45 @@ + return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) { + var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n); + for (var j = 0; j < length; ++j) { + dest[destOffset + j] = c0[j] + x * diff[j]; + } + }; + }, + constructStiched: function PDFFunction_constructStiched(fn, dict, xref) { +- var domain = dict.getArray('Domain'); ++ var domain = toNumberArray(dict.getArray('Domain')); + if (!domain) { + error('No domain'); + } + var inputSize = domain.length / 2; + if (inputSize !== 1) { + error('Bad domain for stiched function'); + } + var fnRefs = dict.get('Functions'); + var fns = []; + for (var i = 0, ii = fnRefs.length; i < ii; ++i) { +- fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i]))); +- } +- var bounds = dict.getArray('Bounds'); +- var encode = dict.getArray('Encode'); ++ fns.push(PDFFunction.parse(xref, xref.fetchIfRef(fnRefs[i]))); ++ } ++ var bounds = toNumberArray(dict.getArray('Bounds')); ++ var encode = toNumberArray(dict.getArray('Encode')); + return [ + CONSTRUCT_STICHED, + domain, + bounds, + encode, + fns + ]; + }, + constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) { + var domain = IR[1]; + var bounds = IR[2]; + var encode = IR[3]; +- var fnsIR = IR[4]; +- var fns = []; ++ var fns = IR[4]; + var tmpBuf = new Float32Array(1); +- for (var i = 0, ii = fnsIR.length; i < ii; i++) { +- fns.push(PDFFunction.fromIR(fnsIR[i])); +- } + return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) { + var clip = function constructStichedFromIRClip(v, min, max) { + if (v > max) { + v = max; + } else if (v < min) { + v = min; + } + return v; +@@ -41968,18 +41977,18 @@ + // Prevent the value from becoming NaN as a result + // of division by zero (fixes issue6113.pdf). + tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); + // call the appropriate function + fns[i](tmpBuf, 0, dest, destOffset); + }; + }, + constructPostScript: function PDFFunction_constructPostScript(fn, dict, xref) { +- var domain = dict.getArray('Domain'); +- var range = dict.getArray('Range'); ++ var domain = toNumberArray(dict.getArray('Domain')); ++ var range = toNumberArray(dict.getArray('Range')); + if (!domain) { + error('No domain.'); + } + if (!range) { + error('No range.'); + } + var lexer = new PostScriptLexer(fn); + var parser = new PostScriptParser(lexer); +@@ -42928,18 +42937,18 @@ + case 'IndexedCS': + var baseIndexedCS = IR[1]; + var hiVal = IR[2]; + var lookup = IR[3]; + return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup); + case 'AlternateCS': + var numComps = IR[1]; + var alt = IR[2]; +- var tintFnIR = IR[3]; +- return new AlternateCS(numComps, ColorSpace.fromIR(alt), PDFFunction.fromIR(tintFnIR)); ++ var tintFn = IR[3]; ++ return new AlternateCS(numComps, ColorSpace.fromIR(alt), tintFn); + case 'LabCS': + whitePoint = IR[1]; + blackPoint = IR[2]; + var range = IR[3]; + return new LabCS(whitePoint, blackPoint, range); + default: + error('Unknown name ' + name); + } +@@ -43067,22 +43076,22 @@ + var name = xref.fetchIfRef(cs[1]); + numComps = 1; + if (isName(name)) { + numComps = 1; + } else if (isArray(name)) { + numComps = name.length; + } + alt = ColorSpace.parseToIR(cs[2], xref, res); +- var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3])); ++ var tintFn = PDFFunction.parse(xref, xref.fetchIfRef(cs[3])); + return [ + 'AlternateCS', + numComps, + alt, +- tintFnIR ++ tintFn + ]; + case 'Lab': + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray('WhitePoint'); + blackPoint = params.getArray('BlackPoint'); + var range = params.getArray('Range'); + return [ + 'LabCS', +@@ -52483,9 +52492,9 @@ + initializeWorker(); + } + exports.setPDFNetworkStreamClass = setPDFNetworkStreamClass; + exports.WorkerTask = WorkerTask; + exports.WorkerMessageHandler = WorkerMessageHandler; + })); + }.call(pdfjsLibs)); + exports.WorkerMessageHandler = pdfjsLibs.pdfjsCoreWorker.WorkerMessageHandler; +-})); +\ No newline at end of file ++})); + diff --git a/gnu/packages/patches/lcms-CVE-2016-10165.patch b/gnu/packages/patches/lcms-CVE-2016-10165.patch deleted file mode 100644 index fa4d75c9ee..0000000000 --- a/gnu/packages/patches/lcms-CVE-2016-10165.patch +++ /dev/null @@ -1,36 +0,0 @@ -Fix CVE-2016-10165, an out-of-bounds heap read in Type_MLU_Read(): - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10165 -http://seclists.org/oss-sec/2016/q3/288 -https://bugzilla.redhat.com/show_bug.cgi?id=1367357 -https://security-tracker.debian.org/tracker/CVE-2016-10165 - -Patch copied from upstream source repository: - -https://github.com/mm2/Little-CMS/commit/5ca71a7bc18b6897ab21d815d15e218e204581e2 - -From 5ca71a7bc18b6897ab21d815d15e218e204581e2 Mon Sep 17 00:00:00 2001 -From: Marti -Date: Mon, 15 Aug 2016 23:31:39 +0200 -Subject: [PATCH] Added an extra check to MLU bounds - -Thanks to Ibrahim el-sayed for spotting the bug ---- - src/cmstypes.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/cmstypes.c b/src/cmstypes.c -index cb61860..c7328b9 100644 ---- a/src/cmstypes.c -+++ b/src/cmstypes.c -@@ -1460,6 +1460,7 @@ void *Type_MLU_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* io, cmsU - - // Check for overflow - if (Offset < (SizeOfHeader + 8)) goto Error; -+ if ((Offset + Len) > SizeOfTag + 8) goto Error; - - // True begin of the string - BeginOfThisString = Offset - SizeOfHeader - 8; --- -2.11.0 - diff --git a/gnu/packages/patches/libgpg-error-aarch64-logging-fix.patch b/gnu/packages/patches/libgpg-error-aarch64-logging-fix.patch new file mode 100644 index 0000000000..d848d639b2 --- /dev/null +++ b/gnu/packages/patches/libgpg-error-aarch64-logging-fix.patch @@ -0,0 +1,58 @@ +https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=patch;h=791177de023574223eddf7288eb7c5a0721ac623 + +From 791177de023574223eddf7288eb7c5a0721ac623 Mon Sep 17 00:00:00 2001 +From: Werner Koch +Date: Sun, 18 Mar 2018 17:39:43 +0100 +Subject: [PATCH] core: Fix regression on arm64 due to invalid use of va_list. + +* src/logging.c (_gpgrt_log_printhex): Provide a dummy arg instead of +NULL. +-- + +Fix +Suggested-by: Jakub Wilk + +Signed-off-by: Werner Koch +--- + src/logging.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/src/logging.c b/src/logging.c +index 1a4f620..d01f974 100644 +--- a/src/logging.c ++++ b/src/logging.c +@@ -1090,9 +1090,10 @@ _gpgrt_log_flush (void) + + + /* Print a hexdump of (BUFFER,LENGTH). With FMT passed as NULL print +- * just the raw dump, with FMT being an empty string, print a trailing +- * linefeed, otherwise print an entire debug line with the expanded +- * FMT followed by a possible wrapped hexdump and a final LF. */ ++ * just the raw dump (in this case ARG_PTR is not used), with FMT ++ * being an empty string, print a trailing linefeed, otherwise print ++ * an entire debug line with the expanded FMT followed by a possible ++ * wrapped hexdump and a final LF. */ + void + _gpgrt_logv_printhex (const void *buffer, size_t length, + const char *fmt, va_list arg_ptr) +@@ -1150,7 +1151,16 @@ _gpgrt_log_printhex (const void *buffer, size_t length, + va_end (arg_ptr); + } + else +- _gpgrt_logv_printhex (buffer, length, NULL, NULL); ++ { ++ /* va_list is not necessary a pointer and thus we can't use NULL ++ * because that would conflict with platforms using a straight ++ * struct for it (e.g. arm64). We use a dummy variable instead; ++ * the static is a simple way zero it out so to not get ++ * complains about uninitialized use. */ ++ static va_list dummy_argptr; ++ ++ _gpgrt_logv_printhex (buffer, length, NULL, dummy_argptr); ++ } + } + + +-- +2.8.0.rc3 + diff --git a/gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch b/gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch new file mode 100644 index 0000000000..69673c90ee --- /dev/null +++ b/gnu/packages/patches/libmygpo-qt-fix-qt-5.11.patch @@ -0,0 +1,78 @@ +From 1b53767b988b339aac8b353327a1542b2a0c0610 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner +Date: Sun, 15 Apr 2018 22:29:33 +0200 +Subject: [PATCH] Fix build with Qt 5.11_beta3 (dropping qt5_use_modules) + +--- + CMakeLists.txt | 3 --- + src/CMakeLists.txt | 8 ++++++-- + tests/CMakeLists.txt | 12 +++++++++--- + 3 files changed, 15 insertions(+), 8 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index eb006d9..fa4b0cb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -34,9 +34,6 @@ else() + set( QT_DONT_USE_QTGUI TRUE ) + include( ${QT_USE_FILE} ) + +- macro(qt5_use_modules) +- endmacro() +- + macro(qt_wrap_cpp) + qt4_wrap_cpp(${ARGN}) + endmacro() +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 802125b..253e81e 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -79,9 +79,13 @@ QT_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${LIBMYGPO_QT_MOC_H} ) + + add_library( ${MYGPO_QT_TARGET_NAME} SHARED ${LIBMYGPO_QT_SRC} ${LIBMYGPO_QT_MOC_SRC} ) + +-target_link_libraries( ${MYGPO_QT_TARGET_NAME} ${QJSON_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ) + set_target_properties( ${MYGPO_QT_TARGET_NAME} PROPERTIES VERSION ${MYGPO_QT_VERSION} SOVERSION ${MYGPO_QT_SONAME} DEFINE_SYMBOL MYGPO_MAKEDLL) +-qt5_use_modules( ${MYGPO_QT_TARGET_NAME} Core Network ) ++ ++if( NOT BUILD_WITH_QT4 ) ++ target_link_libraries( ${MYGPO_QT_TARGET_NAME} Qt5::Core Qt5::Network) ++else() ++ target_link_libraries( ${MYGPO_QT_TARGET_NAME} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QJSON_LIBRARIES}) ++endif() + + install( TARGETS ${MYGPO_QT_TARGET_NAME} EXPORT ${MYGPO_QT_TARGET_NAME}Export DESTINATION ${LIB_INSTALL_DIR} ) + +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index a3e3223..4f77158 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -11,11 +11,15 @@ include_directories( ${QJSON_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CU + + # UrlBuilder library + add_library( UrlBuilder ${TESTOBJECTS_SRCDIR}/UrlBuilder.cpp ${TESTOBJECTS_SRCDIR}/Config.cpp ) +-qt5_use_modules( UrlBuilder Core ) ++if( NOT BUILD_WITH_QT4 ) ++ target_link_libraries( UrlBuilder Qt5::Core ) ++endif() + # JSONCreator library + QT_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${TESTOBJECTS_SRCDIR}/EpisodeAction.h ${TESTOBJECTS_SRCDIR}/EpisodeAction_p.h ) + add_library( JsonCreator ${TESTOBJECTS_SRCDIR}/JsonCreator.cpp ${TESTOBJECTS_SRCDIR}/EpisodeAction.cpp ${TESTOBJECTS_SRCDIR}/qjsonwrapper/Json.cpp ${LIBMYGPO_QT_MOC_SRC}) +-qt5_use_modules( JsonCreator Core Network ) ++if( NOT BUILD_WITH_QT4 ) ++ target_link_libraries( JsonCreator Qt5::Core Qt5::Network ) ++endif() + + set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} ) + +@@ -25,7 +29,9 @@ macro(add_libmygpo_test _source) + add_executable(${_name} ${_source} ${${_name}_MOC_SRC}) + target_link_libraries(${_name} ${QT_QTCORE_LIBRARY} ${QT_QTTEST_LIBRARY} ${QT_QTNETWORK_LIBRARY}) + add_test(${_name}-test ${EXECUTABLE_OUTPUT_PATH}/${_name}) +- qt5_use_modules(${_name} Network Test) ++ if( NOT BUILD_WITH_QT4 ) ++ target_link_libraries(${_name} Qt5::Network Qt5::Test) ++ endif() + endmacro(add_libmygpo_test) + + add_libmygpo_test( UrlBuilderTest.cpp ) diff --git a/gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch b/gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch new file mode 100644 index 0000000000..aa9ed2c0f7 --- /dev/null +++ b/gnu/packages/patches/libmygpo-qt-missing-qt5-modules.patch @@ -0,0 +1,51 @@ +From 0d76d960727018bddf04c6cc89552af69aaa7e55 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner +Date: Sun, 15 Apr 2018 22:20:34 +0200 +Subject: [PATCH] Add missing Qt5Network, Qt5Test, make BUILD_WITH_QT4 more + strict + +--- + CMakeLists.txt | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2a1f652..eb006d9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,25 +5,25 @@ project( libmygpo-qt ) + set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII" ) + +-option(BUILD_WITH_QT4 "Build libmygpo-qt with Qt4 no matter if Qt5 was found" OFF) ++option(BUILD_WITH_QT4 "Build libmygpo-qt with Qt4" OFF) + + if( NOT BUILD_WITH_QT4 ) +- find_package(Qt5Core QUIET) +- if( Qt5Core_DIR ) +- set(MYGPO_QT_VERSION_SUFFIX 5) +- +- macro(qt_wrap_cpp) +- qt5_wrap_cpp(${ARGN}) +- endmacro() ++ if( MYGPO_BUILD_TESTS ) ++ find_package(Qt5 REQUIRED COMPONENTS Core Network Test CONFIG) ++ else() ++ find_package(Qt5 REQUIRED COMPONENTS Core Network CONFIG) + endif() ++ set(MYGPO_QT_VERSION_SUFFIX 5) ++ ++ macro(qt_wrap_cpp) ++ qt5_wrap_cpp(${ARGN}) ++ endmacro() + + # pkg-config names of QtCore and QtNetwork are Qt5Core and Qt5Network for + # Qt5 + set(MYGPO_QT_MAJOR_VERSION "5") + set(MYGPO_QT4_QJSON_DEP "") +-endif() +- +-if( NOT Qt5Core_DIR ) ++else() + message(STATUS "Could not find Qt5, searching for Qt4 instead...") + message(STATUS "Qt4 Support is deprecated, building with Qt4 is no longer officially supported") + if( MYGPO_BUILD_TESTS ) diff --git a/gnu/packages/patches/liboop-mips64-deplibs-fix.patch b/gnu/packages/patches/liboop-mips64-deplibs-fix.patch deleted file mode 100644 index b91754a8cc..0000000000 --- a/gnu/packages/patches/liboop-mips64-deplibs-fix.patch +++ /dev/null @@ -1,17 +0,0 @@ -Patch configure script to choose pass_all deplibs check method for -linux-gnu* systems on mips64. This is a temporary hack until liboop -bootstraps their build system with a newer libtool. - -Patch by Mark H Weaver . - ---- liboop/configure.orig 2003-10-26 11:41:19.000000000 -0500 -+++ liboop/configure 2013-11-02 18:09:11.079995796 -0400 -@@ -3395,7 +3395,7 @@ - # This must be Linux ELF. - linux*) - case $host_cpu in -- alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | powerpc* | sparc* | s390* | sh*) -+ alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | mips64 | mips64el | powerpc* | sparc* | s390* | sh*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM diff --git a/gnu/packages/patches/libreoffice-icu.patch b/gnu/packages/patches/libreoffice-icu.patch new file mode 100644 index 0000000000..2985d564aa --- /dev/null +++ b/gnu/packages/patches/libreoffice-icu.patch @@ -0,0 +1,126 @@ +This patch fixes the build of Libreoffice 6.0.5 with icu 61.1. +It was downloaded from https://bugs.gentoo.org/651702. + +--- a/forms/source/xforms/datatypes.hxx ++++ a/forms/source/xforms/datatypes.hxx +@@ -36,6 +36,8 @@ + + #include + ++using icu::RegexMatcher; ++ + + namespace xforms + { +--- a/i18npool/inc/collator_unicode.hxx ++++ a/i18npool/inc/collator_unicode.hxx +@@ -26,6 +26,8 @@ + + #include + ++using icu::RuleBasedCollator; ++ + // ---------------------------------------------------- + // class Collator_Unicode + // ---------------------------------------------------- +--- a/i18npool/source/breakiterator/breakiterator_unicode.cxx ++++ a/i18npool/source/breakiterator/breakiterator_unicode.cxx +@@ -30,6 +30,9 @@ + #include + #include + ++using icu::BreakIterator; ++using icu::RuleBasedBreakIterator; ++ + U_CDECL_BEGIN + extern const char OpenOffice_dat[]; + U_CDECL_END +--- a/i18npool/source/collator/collator_unicode.cxx ++++ a/i18npool/source/collator/collator_unicode.cxx +@@ -29,6 +29,8 @@ + #include + #include + ++using icu::Collator; ++ + using namespace ::com::sun::star; + using namespace ::com::sun::star::i18n; + using namespace ::com::sun::star::lang; +--- a/i18npool/source/collator/gencoll_rule.cxx ++++ a/i18npool/source/collator/gencoll_rule.cxx +@@ -31,6 +31,8 @@ + + #include + ++using icu::RuleBasedCollator; ++ + /* Main Procedure */ + + void data_write(char* file, char* name, sal_uInt8 *data, sal_Int32 len) +--- a/i18npool/source/ordinalsuffix/ordinalsuffix.cxx ++++ a/i18npool/source/ordinalsuffix/ordinalsuffix.cxx +@@ -29,6 +29,8 @@ + #include + #include + ++using icu::NumberFormat; ++ + using namespace ::com::sun::star::i18n; + using namespace ::com::sun::star::uno; + using namespace ::com::sun::star; +--- a/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx ++++ a/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx +@@ -12,6 +12,8 @@ + #include + #include + ++using icu::UnicodeString; ++ + namespace i18npool { + + ignoreDiacritics_CTL::ignoreDiacritics_CTL() +--- a/i18nutil/source/utility/unicode.cxx ++++ a/i18nutil/source/utility/unicode.cxx +@@ -34,6 +34,9 @@ + // which (obviously) breaks UnicodeType::CURRENCY_SYMBOL + #undef CURRENCY_SYMBOL + ++using icu::NumberFormat; ++using icu::UnicodeString; ++ + using namespace ::com::sun::star::i18n; + + template +--- a/lotuswordpro/source/filter/localtime.cxx ++++ a/lotuswordpro/source/filter/localtime.cxx +@@ -57,6 +57,8 @@ + #include + #include + ++using icu::TimeZone; ++ + const long DAY_SEC =24 * 60 * 60; + const long YEAR_SEC = 365 * DAY_SEC; + const long FOURYEAR_SEC = 4 * YEAR_SEC + DAY_SEC; +--- a/opencl/source/openclconfig.cxx ++++ a/opencl/source/openclconfig.cxx +@@ -17,6 +17,8 @@ + #include + #include + ++using icu::RegexMatcher; ++ + OpenCLConfig::OpenCLConfig() : + mbUseOpenCL(true) + { +--- a/vcl/inc/scrptrun.h ++++ a/vcl/inc/scrptrun.h +@@ -45,6 +45,8 @@ + #include + #include + ++using icu::UObject; ++ + namespace vcl { + + struct ParenStackEntry diff --git a/gnu/packages/patches/libtasn1-CVE-2017-10790.patch b/gnu/packages/patches/libtasn1-CVE-2017-10790.patch deleted file mode 100644 index 6cec0c8030..0000000000 --- a/gnu/packages/patches/libtasn1-CVE-2017-10790.patch +++ /dev/null @@ -1,63 +0,0 @@ -Fix CVE-2017-10790: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10790 - -Patch copied from upstream source repository: - -https://git.savannah.nongnu.org/cgit/libtasn1.git/commit/?id=d8d805e1f2e6799bb2dff4871a8598dc83088a39 - -From d8d805e1f2e6799bb2dff4871a8598dc83088a39 Mon Sep 17 00:00:00 2001 -From: Nikos Mavrogiannopoulos -Date: Thu, 22 Jun 2017 16:31:37 +0200 -Subject: [PATCH] _asn1_check_identifier: safer access to values read - -Signed-off-by: Nikos Mavrogiannopoulos ---- - lib/parser_aux.c | 17 ++++++++++++----- - 1 file changed, 12 insertions(+), 5 deletions(-) - -diff --git a/lib/parser_aux.c b/lib/parser_aux.c -index 976ab38..786ea64 100644 ---- a/lib/parser_aux.c -+++ b/lib/parser_aux.c -@@ -955,7 +955,7 @@ _asn1_check_identifier (asn1_node node) - if (p2 == NULL) - { - if (p->value) -- _asn1_strcpy (_asn1_identifierMissing, p->value); -+ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p->value); - else - _asn1_strcpy (_asn1_identifierMissing, "(null)"); - return ASN1_IDENTIFIER_NOT_FOUND; -@@ -968,9 +968,15 @@ _asn1_check_identifier (asn1_node node) - if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT)) - { - _asn1_str_cpy (name2, sizeof (name2), node->name); -- _asn1_str_cat (name2, sizeof (name2), "."); -- _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); -- _asn1_strcpy (_asn1_identifierMissing, p2->value); -+ if (p2->value) -+ { -+ _asn1_str_cat (name2, sizeof (name2), "."); -+ _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); -+ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value); -+ } -+ else -+ _asn1_strcpy (_asn1_identifierMissing, "(null)"); -+ - p2 = asn1_find_node (node, name2); - if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) || - !(p2->type & CONST_ASSIGN)) -@@ -990,7 +996,8 @@ _asn1_check_identifier (asn1_node node) - _asn1_str_cpy (name2, sizeof (name2), node->name); - _asn1_str_cat (name2, sizeof (name2), "."); - _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); -- _asn1_strcpy (_asn1_identifierMissing, p2->value); -+ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value); -+ - p2 = asn1_find_node (node, name2); - if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) - || !(p2->type & CONST_ASSIGN)) --- -2.13.3 - diff --git a/gnu/packages/patches/libtasn1-CVE-2018-6003.patch b/gnu/packages/patches/libtasn1-CVE-2018-6003.patch deleted file mode 100644 index 3e6140518d..0000000000 --- a/gnu/packages/patches/libtasn1-CVE-2018-6003.patch +++ /dev/null @@ -1,73 +0,0 @@ -Fix CVE-2018-6003: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6003 -https://lists.gnu.org/archive/html/help-libtasn1/2018-01/msg00000.html - -Patch copied from upstream source repository: - -https://gitlab.com/gnutls/libtasn1/commit/c593ae84cfcde8fea45787e53950e0ac71e9ca97 - -From c593ae84cfcde8fea45787e53950e0ac71e9ca97 Mon Sep 17 00:00:00 2001 -From: Nikos Mavrogiannopoulos -Date: Thu, 4 Jan 2018 10:52:05 +0100 -Subject: [PATCH] _asn1_decode_simple_ber: restrict the levels of recursion to 3 - -On indefinite string decoding, setting a maximum level of recursions -protects the BER decoder from a stack exhaustion due to large amounts -of recursion. - -Signed-off-by: Nikos Mavrogiannopoulos ---- - lib/decoding.c | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - -diff --git a/lib/decoding.c b/lib/decoding.c -index 2240b09..0ee35d3 100644 ---- a/lib/decoding.c -+++ b/lib/decoding.c -@@ -45,6 +45,13 @@ - - #define DECODE_FLAG_HAVE_TAG 1 - #define DECODE_FLAG_INDEFINITE (1<<1) -+/* On indefinite string decoding, allow this maximum levels -+ * of recursion. Allowing infinite recursion, makes the BER -+ * decoder susceptible to stack exhaustion due to that recursion. -+ */ -+#define DECODE_FLAG_LEVEL1 (1<<2) -+#define DECODE_FLAG_LEVEL2 (1<<3) -+#define DECODE_FLAG_LEVEL3 (1<<4) - - #define DECR_LEN(l, s) do { \ - l -= s; \ -@@ -2216,7 +2223,8 @@ _asn1_decode_simple_ber (unsigned int etype, const unsigned char *der, - } - - /* indefinite constructed */ -- if (((dflags & DECODE_FLAG_INDEFINITE) || class == ASN1_CLASS_STRUCTURED) && ETYPE_IS_STRING(etype)) -+ if ((((dflags & DECODE_FLAG_INDEFINITE) || class == ASN1_CLASS_STRUCTURED) && ETYPE_IS_STRING(etype)) && -+ !(dflags & DECODE_FLAG_LEVEL3)) - { - len_len = 1; - -@@ -2236,8 +2244,17 @@ _asn1_decode_simple_ber (unsigned int etype, const unsigned char *der, - do - { - unsigned tmp_len; -+ unsigned flags = DECODE_FLAG_HAVE_TAG; -+ -+ if (dflags & DECODE_FLAG_LEVEL1) -+ flags |= DECODE_FLAG_LEVEL2; -+ else if (dflags & DECODE_FLAG_LEVEL2) -+ flags |= DECODE_FLAG_LEVEL3; -+ else -+ flags |= DECODE_FLAG_LEVEL1; - -- result = asn1_decode_simple_ber(etype, p, der_len, &out, &out_len, &tmp_len); -+ result = _asn1_decode_simple_ber(etype, p, der_len, &out, &out_len, &tmp_len, -+ flags); - if (result != ASN1_SUCCESS) - { - warn(); --- -libgit2 0.26.0 - diff --git a/gnu/packages/patches/libusb-for-axoloti.patch b/gnu/packages/patches/libusb-for-axoloti.patch index 76a45e801d..fb94c489b0 100644 --- a/gnu/packages/patches/libusb-for-axoloti.patch +++ b/gnu/packages/patches/libusb-for-axoloti.patch @@ -1,8 +1,8 @@ -diff -rpu4 libusb-1.0.22.orig/libusb/descriptor.c libusb-1.0.22/libusb/descriptor.c ---- libusb-1.0.22.orig/libusb/descriptor.c 2018-03-17 08:23:37.000000000 +0100 -+++ libusb-1.0.22/libusb/descriptor.c 2018-03-29 10:36:09.968429473 +0200 -@@ -1173,9 +1173,9 @@ int API_EXPORTED libusb_get_string_descr - if (tbuf[1] != LIBUSB_DT_STRING) +diff --git a/libusb/descriptor.c b/libusb/descriptor.c +index 74d6de5..0b0e314 100644 +--- a/libusb/descriptor.c ++++ b/libusb/descriptor.c +@@ -1174,7 +1174,7 @@ int API_EXPORTED libusb_get_string_descriptor_ascii(libusb_device_handle *dev_ha return LIBUSB_ERROR_IO; if (tbuf[0] > r) @@ -11,4 +11,6 @@ diff -rpu4 libusb-1.0.22.orig/libusb/descriptor.c libusb-1.0.22/libusb/descripto di = 0; for (si = 2; si < tbuf[0]; si += 2) { - if (di >= (length - 1)) +-- +2.17.0 + diff --git a/gnu/packages/patches/libutils-add-includes.patch b/gnu/packages/patches/libutils-add-includes.patch new file mode 100644 index 0000000000..354c59b735 --- /dev/null +++ b/gnu/packages/patches/libutils-add-includes.patch @@ -0,0 +1,11 @@ +--- a/libutils/CallStack.cpp 2018-04-25 20:13:06.348665241 +0200 ++++ b/libutils/CallStack.cpp 2018-04-25 20:13:18.360510763 +0200 +@@ -17,7 +17,7 @@ + #define LOG_TAG "CallStack" + + #include +- ++#include + #include + #include + #include diff --git a/gnu/packages/patches/libutils-remove-damaging-includes.patch b/gnu/packages/patches/libutils-remove-damaging-includes.patch new file mode 100644 index 0000000000..7867dd3b80 --- /dev/null +++ b/gnu/packages/patches/libutils-remove-damaging-includes.patch @@ -0,0 +1,21 @@ +--- a/include/utils/StrongPointer.h 2018-04-25 18:42:34.321003602 +0200 ++++ b/include/utils/StrongPointer.h 2018-04-25 18:42:42.180912201 +0200 +@@ -17,8 +17,6 @@ + #ifndef ANDROID_STRONG_POINTER_H + #define ANDROID_STRONG_POINTER_H + +-#include +- + #include + #include + #include +--- a/libutils/Trace.cpp 2018-04-25 20:41:48.775049786 +0200 ++++ b/libutils/Trace.cpp 2018-04-25 20:42:13.674744182 +0200 +@@ -21,5 +21,7 @@ + + static void traceInit() + { ++#if defined(__ANDROID__) + ::android::add_sysprop_change_callback(atrace_update_tags, 0); ++#endif + } diff --git a/gnu/packages/patches/libvorbis-CVE-2017-14632.patch b/gnu/packages/patches/libvorbis-CVE-2017-14632.patch deleted file mode 100644 index 99debf2104..0000000000 --- a/gnu/packages/patches/libvorbis-CVE-2017-14632.patch +++ /dev/null @@ -1,63 +0,0 @@ -Fix CVE-2017-14632: - -https://gitlab.xiph.org/xiph/vorbis/issues/2328 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14632 - -Patch copied from upstream source repository: - -https://gitlab.xiph.org/xiph/vorbis/commit/c1c2831fc7306d5fbd7bc800324efd12b28d327f - -From c1c2831fc7306d5fbd7bc800324efd12b28d327f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Guido=20G=C3=BCnther?= -Date: Wed, 15 Nov 2017 18:22:59 +0100 -Subject: [PATCH] CVE-2017-14632: vorbis_analysis_header_out: Don't clear opb - if not initialized - -If the number of channels is not within the allowed range -we call oggback_writeclear altough it's not initialized yet. - -This fixes - - =23371== Invalid free() / delete / delete[] / realloc() - ==23371== at 0x4C2CE1B: free (vg_replace_malloc.c:530) - ==23371== by 0x829CA31: oggpack_writeclear (in /usr/lib/x86_64-linux-gnu/libogg.so.0.8.2) - ==23371== by 0x84B96EE: vorbis_analysis_headerout (info.c:652) - ==23371== by 0x9FBCBCC: ??? (in /usr/lib/x86_64-linux-gnu/sox/libsox_fmt_vorbis.so) - ==23371== by 0x4E524F1: ??? (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) - ==23371== by 0x4E52CCA: sox_open_write (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) - ==23371== by 0x10D82A: open_output_file (sox.c:1556) - ==23371== by 0x10D82A: process (sox.c:1753) - ==23371== by 0x10D82A: main (sox.c:3012) - ==23371== Address 0x68768c8 is 488 bytes inside a block of size 880 alloc'd - ==23371== at 0x4C2BB1F: malloc (vg_replace_malloc.c:298) - ==23371== by 0x4C2DE9F: realloc (vg_replace_malloc.c:785) - ==23371== by 0x4E545C2: lsx_realloc (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) - ==23371== by 0x9FBC9A0: ??? (in /usr/lib/x86_64-linux-gnu/sox/libsox_fmt_vorbis.so) - ==23371== by 0x4E524F1: ??? (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) - ==23371== by 0x4E52CCA: sox_open_write (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) - ==23371== by 0x10D82A: open_output_file (sox.c:1556) - ==23371== by 0x10D82A: process (sox.c:1753) - ==23371== by 0x10D82A: main (sox.c:3012) - -as seen when using the testcase from CVE-2017-11333 with -008d23b782be09c8d75ba8190b1794abd66c7121 applied. However the error was -there before. ---- - lib/info.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/info.c b/lib/info.c -index 7bc4ea4..8d0b2ed 100644 ---- a/lib/info.c -+++ b/lib/info.c -@@ -589,6 +589,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v, - private_state *b=v->backend_state; - - if(!b||vi->channels<=0||vi->channels>256){ -+ b = NULL; - ret=OV_EFAULT; - goto err_out; - } --- -2.15.1 - diff --git a/gnu/packages/patches/libvorbis-CVE-2017-14633.patch b/gnu/packages/patches/libvorbis-CVE-2017-14633.patch deleted file mode 100644 index ec6bf5265c..0000000000 --- a/gnu/packages/patches/libvorbis-CVE-2017-14633.patch +++ /dev/null @@ -1,43 +0,0 @@ -Fix CVE-2017-14633: - -https://gitlab.xiph.org/xiph/vorbis/issues/2329 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14633 - -Patch copied from upstream source repository: - -https://gitlab.xiph.org/xiph/vorbis/commit/a79ec216cd119069c68b8f3542c6a425a74ab993 - -From a79ec216cd119069c68b8f3542c6a425a74ab993 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Guido=20G=C3=BCnther?= -Date: Tue, 31 Oct 2017 18:32:46 +0100 -Subject: [PATCH] CVE-2017-14633: Don't allow for more than 256 channels - -Otherwise - - for(i=0;ichannels;i++){ - /* the encoder setup assumes that all the modes used by any - specific bitrate tweaking use the same floor */ - int submap=info->chmuxlist[i]; - -overreads later in mapping0_forward since chmuxlist is a fixed array of -256 elements max. ---- - lib/info.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/info.c b/lib/info.c -index fe759ed..7bc4ea4 100644 ---- a/lib/info.c -+++ b/lib/info.c -@@ -588,7 +588,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v, - oggpack_buffer opb; - private_state *b=v->backend_state; - -- if(!b||vi->channels<=0){ -+ if(!b||vi->channels<=0||vi->channels>256){ - ret=OV_EFAULT; - goto err_out; - } --- -2.15.1 - diff --git a/gnu/packages/patches/libxcb-python-3.5-compat.patch b/gnu/packages/patches/libxcb-python-3.5-compat.patch deleted file mode 100644 index f652498aad..0000000000 --- a/gnu/packages/patches/libxcb-python-3.5-compat.patch +++ /dev/null @@ -1,64 +0,0 @@ -Fix compatibility issue with Python 3.5. - -Patch copied from upstream source repository: - -https://cgit.freedesktop.org/xcb/libxcb/commit/?id=8740a288ca468433141341347aa115b9544891d3 - -From 8740a288ca468433141341347aa115b9544891d3 Mon Sep 17 00:00:00 2001 -From: Thomas Klausner -Date: Thu, 19 May 2016 17:31:18 +0200 -Subject: [PATCH] Fix inconsistent use of tabs vs. space. - -Needed for at least python-3.5.x. - -Signed-off-by: Thomas Klausner -Signed-off-by: Uli Schlachter ---- - src/c_client.py | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/src/c_client.py b/src/c_client.py -index 57de3fb..043338d 100644 ---- a/src/c_client.py -+++ b/src/c_client.py -@@ -1364,7 +1364,7 @@ def _c_serialize(context, self): - _c(' unsigned int xcb_align_to = 0;') - if self.is_switch: - _c(' unsigned int xcb_padding_offset = %d;', -- self.get_align_offset() ) -+ self.get_align_offset() ) - prefix = [('_aux', '->', self)] - aux_ptr = 'xcb_out' - -@@ -1390,7 +1390,7 @@ def _c_serialize(context, self): - _c(' unsigned int xcb_align_to = 0;') - if self.is_switch: - _c(' unsigned int xcb_padding_offset = %d;', -- self.get_align_offset() ) -+ self.get_align_offset() ) - - elif 'sizeof' == context: - param_names = [p[2] for p in params] -@@ -1930,14 +1930,14 @@ def _c_accessors_list(self, field): - # from the request size and divide that by the member size - return '(((R->length * 4) - sizeof('+ self.c_type + '))/'+'sizeof('+field.type.member.c_wiretype+'))' - else: -- # use the accessor to get the start of the list, then -- # compute the length of it by subtracting it from -+ # use the accessor to get the start of the list, then -+ # compute the length of it by subtracting it from - # the adress of the first byte after the end of the - # request -- after_end_of_request = '(((char*)R) + R->length * 4)' -- start_of_list = '%s(R)' % (field.c_accessor_name) -+ after_end_of_request = '(((char*)R) + R->length * 4)' -+ start_of_list = '%s(R)' % (field.c_accessor_name) - bytesize_of_list = '%s - (char*)(%s)' % (after_end_of_request, start_of_list) -- return '(%s) / sizeof(%s)' % (bytesize_of_list, field.type.member.c_wiretype) -+ return '(%s) / sizeof(%s)' % (bytesize_of_list, field.type.member.c_wiretype) - else: - raise Exception( - "lengthless lists with varsized members are not supported. Fieldname '%s'" --- -2.11.1 - diff --git a/gnu/packages/patches/libziparchive-add-includes.patch b/gnu/packages/patches/libziparchive-add-includes.patch new file mode 100644 index 0000000000..41137105a0 --- /dev/null +++ b/gnu/packages/patches/libziparchive-add-includes.patch @@ -0,0 +1,10 @@ +--- a/libziparchive/zip_writer.cc 2018-04-25 22:33:05.472674164 +0200 ++++ b/libziparchive/zip_writer.cc 2018-04-25 22:33:21.296519518 +0200 +@@ -22,6 +22,7 @@ + + #include + ++#include + #include + #include + #include diff --git a/gnu/packages/patches/make-glibc-compat.patch b/gnu/packages/patches/make-glibc-compat.patch new file mode 100644 index 0000000000..9ce7f2b5bf --- /dev/null +++ b/gnu/packages/patches/make-glibc-compat.patch @@ -0,0 +1,52 @@ +Work with the new glob interface in glibc 2.27. + +Taken from this upstream commit: +https://git.savannah.gnu.org/cgit/make.git/commit/?id=193f1e81edd6b1b56b0eb0ff8aa4b41c7b4257b4 + +diff --git a/dir.c b/dir.c +index adbb8a9..c343e4c 100644 +--- a/dir.c ++++ b/dir.c +@@ -1299,15 +1299,40 @@ local_stat (const char *path, struct stat *buf) + } + #endif + ++/* Similarly for lstat. */ ++#if !defined(lstat) && !defined(WINDOWS32) || defined(VMS) ++# ifndef VMS ++# ifndef HAVE_SYS_STAT_H ++int lstat (const char *path, struct stat *sbuf); ++# endif ++# else ++ /* We are done with the fake lstat. Go back to the real lstat */ ++# ifdef lstat ++# undef lstat ++# endif ++# endif ++# define local_lstat lstat ++#elif defined(WINDOWS32) ++/* Windows doesn't support lstat(). */ ++# define local_lstat local_stat ++#else ++static int ++local_lstat (const char *path, struct stat *buf) ++{ ++ int e; ++ EINTRLOOP (e, lstat (path, buf)); ++ return e; ++} ++#endif ++ + void + dir_setup_glob (glob_t *gl) + { + gl->gl_opendir = open_dirstream; + gl->gl_readdir = read_dirstream; + gl->gl_closedir = free; ++ gl->gl_lstat = local_lstat; + gl->gl_stat = local_stat; +- /* We don't bother setting gl_lstat, since glob never calls it. +- The slot is only there for compatibility with 4.4 BSD. */ + } + + void diff --git a/gnu/packages/patches/maven-generate-component-xml.patch b/gnu/packages/patches/maven-generate-component-xml.patch new file mode 100644 index 0000000000..6cb23c7858 --- /dev/null +++ b/gnu/packages/patches/maven-generate-component-xml.patch @@ -0,0 +1,171 @@ +From da9e282d834f0e2128501a8154128dc95b4c599d Mon Sep 17 00:00:00 2001 +From: Julien Lepiller +Date: Sat, 9 Sep 2017 20:34:38 +0200 +Subject: [PATCH] Add a script to generate component.xml files. + +plexus-component-metadata is normally used for this task, but it +depends on maven-core, which depends on maven-model-builder, which needs +plexus-component-metadata. This script is meant to break this dependency +cycle. +--- + components.sh | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 132 insertions(+) + create mode 100755 components.sh + +diff --git a/components.sh b/components.sh +new file mode 100755 +index 0000000..c6748bd +--- /dev/null ++++ b/components.sh +@@ -0,0 +1,148 @@ ++## This script generates a rough plexus/components.xml file. It is meant to ++## replace plexus-component-metadata as it eventually has a recursive dependency ++## on itself. ++## ++## This script must be run in the source directory (usually src/main/java). ++ ++# Finds the complete name from a class name. ++function find_role() { ++ role=$1 ++ # Find role ++ case $role in ++ "SettingsWriter" | "SettingsReader") ++ role=org.apache.maven.settings.io.$role ++ ;; ++ "SecDispatcher") ++ role=org.sonatype.plexus.components.sec.dispatcher.$role ++ ;; ++ "SettingsDecrypter") ++ role=org.apache.maven.settings.crypto.$role ++ ;; ++ "SettingsBuilder") ++ role=org.apache.maven.settings.building.$role ++ ;; ++ "SettingsValidator") ++ role=org.apache.maven.settings.validation.$role ++ ;; ++ "LoggerFactory") ++ role=org.eclipse.aether.spi.log.$role ++ ;; ++ "RemoteRepositoryManager" | "VersionResolver" | "VersionRangeResolver" \ ++ | "ArtifactResolver" | "RepositoryEventDispatcher" | "MetadataResolver" \ ++ | "SyncContextFactory" | "MetadataGeneratorFactory" | "MetadatResolver" \ ++ | "ArtifactDescriptorReader") ++ role=org.eclipse.aether.impl.$role ++ ;; ++ "ModelBuilder" | "ModelProcessor") ++ role=org.apache.maven.model.building.$role ++ ;; ++ "ModelValidator") ++ role=org.apache.maven.model.validation.$role ++ ;; ++ "ProfileInjector" | "ProfileSelector") ++ role=org.apache.maven.model.profile.$role ++ ;; ++ "ProfileActivator") ++ role=org.apache.maven.model.profile.activation.$role ++ ;; ++ "SuperPomProvider") ++ role=org.apache.maven.model.superpom.$role ++ ;; ++ "ReportConfigurationExpander" | "PluginConfigurationExpander" \ ++ | "ReportingConverter" | "LifecycleBindingsInjector") ++ role=org.apache.maven.model.plugin.$role ++ ;; ++ "ModelLocator") ++ role=org.apache.maven.model.locator.$role ++ ;; ++ "ModelPathTranslator" | "PathTranslator" | "UrlNormalizer" | "ModelUrlNormalizer") ++ role=org.apache.maven.model.path.$role ++ ;; ++ "DependencyManagementInjector" | "PluginManagementInjector") ++ role=org.apache.maven.model.management.$role ++ ;; ++ "ModelWriter" | "ModelReader") ++ role=org.apache.maven.model.io.$role ++ ;; ++ "DependencyManagementImporter") ++ role=org.apache.maven.model.composition.$role ++ ;; ++ "ModelNormalizer") ++ role=org.apache.maven.model.normalization.$role ++ ;; ++ "ModelInterpolator") ++ role=org.apache.maven.model.interpolation.$role ++ ;; ++ "InheritanceAssembler") ++ role=org.apache.maven.model.inheritance.$role ++ ;; ++ *) ++ role=$role ++ ;; ++ esac ++ echo $role ++} ++ ++function generate_xml() { ++echo "" ++echo "" ++echo "" ++ ++for file in `find -name '*.java'`; do ++ annot=`grep "@Component" $file` ++ if [ "$?" == "0" ]; then ++ # We have a component! ++ role=$(echo $annot | sed 's|.*role = \(.*\).class.*|\1|') ++ role_hint=$(echo $annot | sed 's|.*hint = "\(.*\)" .*|\1|') ++ if [ "$role_hint" = "$annot" ]; then ++ role_hint=default ++ fi ++ implem=$(echo $file | sed -e 's|^\./||' -e 's|\.java||' -e 's|/|.|g') ++ role=$(find_role $role) ++ ++ echo "" ++ echo " $role" ++ echo " $role_hint" ++ echo " $implem" ++ echo " " ++ echo " false" ++ echo " " ++ reqn=1 ++ cont=true ++ while [ "$cont" = "true" ]; do ++ requirement=$(grep "@Requirement" $file -A1 | head -n ${reqn} | tail -1) ++ ((reqn++)) ++ property=$(grep "@Requirement" $file -A1 | head -n ${reqn} | tail -1) ++ if (echo $requirement | grep "@Requirement" >/dev/null); then ++ ((reqn++)) ++ ((reqn++)) ++ optional=$(echo $requirement | sed 's|.*optional = \(.*\) .*|\1|') ++ req_role=$(echo $requirement | sed 's|.*role = \(.*\).class .*|\1|') ++ if (echo $req_role | grep "@Requirement" >/dev/null); then ++ req_role=$(echo $property | sed 's|.*private \(.*\) .*|\1|') ++ fi ++ req_role=$(find_role $req_role) ++ req_name=$(echo $property | sed 's|[^ ]* [^ ]* \([^ ;]*\).*|\1|') ++ echo " " ++ echo " $req_role" ++ echo " $req_name" ++ if (echo $optional | grep "@Requirement" >/dev/null); then ++ : ++ else ++ echo " $optional" ++ fi ++ echo " " ++ else ++ cont=false ++ fi ++ done ++ echo " " ++ echo "" ++ fi ++done ++ ++echo "" ++echo "" ++} ++ ++(cd $1; generate_xml) > $2 +-- +2.14.1 + diff --git a/gnu/packages/patches/maven-generate-javax-inject-named.patch b/gnu/packages/patches/maven-generate-javax-inject-named.patch new file mode 100644 index 0000000000..b8eba5ab90 --- /dev/null +++ b/gnu/packages/patches/maven-generate-javax-inject-named.patch @@ -0,0 +1,31 @@ +From 1d20c0e403f1a38d4aca830e0eb4db03ba43efd3 Mon Sep 17 00:00:00 2001 +From: Julien Lepiller +Date: Tue, 19 Sep 2017 22:21:29 +0200 +Subject: [PATCH] Add sisu-maven-plugin replacement + +--- + sisu.sh | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + create mode 100755 sisu.sh + +diff --git a/sisu.sh b/sisu.sh +new file mode 100755 +index 0000000..979f373 +--- /dev/null ++++ b/sisu.sh +@@ -0,0 +1,12 @@ ++## This script generates a rough javax.inject.Named file. It is meant to ++## replace sisu-maven-plugin as it eventually has a recursive dependency ++## on maven. ++## ++## This script must be run in the source directory (usually src/main/java). ++ ++for file in `(cd $1; find -name '*.java')`; do ++ annot=`grep "^@Named" $1/$file` ++ if [ "$annot" != "" ]; then ++ echo $file | sed -e 's|^\./||' -e 's|\.java||' -e 's|/|.|g' ++ fi ++done > $2 +-- +2.14.1 + diff --git a/gnu/packages/patches/mumble-1.2.19-abs.patch b/gnu/packages/patches/mumble-1.2.19-abs.patch new file mode 100644 index 0000000000..683325f4bc --- /dev/null +++ b/gnu/packages/patches/mumble-1.2.19-abs.patch @@ -0,0 +1,31 @@ +From ea861fe86743c8402bbad77d8d1dd9de8dce447e Mon Sep 17 00:00:00 2001 +From: Mikkel Krautz +Date: Fri, 29 Dec 2017 14:47:25 +0100 +Subject: [PATCH] AudioOutput: do not use non-existant template version of + std::abs. + +This change fixes AudioOutput to use the float overload of std::abs: + + float std::abs(float); + +instead of a non-existant template version (for newer Boost 1.66). + +Fixes mumble-voip/mumble#3281 + +--- + src/mumble/AudioOutput.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/mumble/AudioOutput.cpp b/src/mumble/AudioOutput.cpp +index cbe0c0e2b..7a0a5e2ab 100644 +--- a/src/mumble/AudioOutput.cpp ++++ b/src/mumble/AudioOutput.cpp +@@ -437,7 +437,7 @@ bool AudioOutput::mix(void *outbuff, unsigned int nsamp) { + top[2] = 0.0f; + } + +- if (std::abs(front[0] * top[0] + front[1] * top[1] + front[2] * top[2]) > 0.01f) { ++ if (std::abs(front[0] * top[0] + front[1] * top[1] + front[2] * top[2]) > 0.01f) { + // Not perpendicular. Assume Y up and rotate 90 degrees. + + float azimuth = 0.0f; diff --git a/gnu/packages/patches/mupdf-CVE-2017-17858.patch b/gnu/packages/patches/mupdf-CVE-2017-17858.patch deleted file mode 100644 index 66df127509..0000000000 --- a/gnu/packages/patches/mupdf-CVE-2017-17858.patch +++ /dev/null @@ -1,111 +0,0 @@ -Fix CVE-2017-17858: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17858 -https://bugs.ghostscript.com/show_bug.cgi?id=698819 -https://github.com/mzet-/Security-Advisories/blob/master/mzet-adv-2017-01.md - -Patch copied from upstream source repository: - -https://git.ghostscript.com/?p=mupdf.git;a=commit;h=55c3f68d638ac1263a386e0aaa004bb6e8bde731 - -From 55c3f68d638ac1263a386e0aaa004bb6e8bde731 Mon Sep 17 00:00:00 2001 -From: Sebastian Rasmussen -Date: Mon, 11 Dec 2017 14:09:15 +0100 -Subject: [PATCH] Bugs 698804/698810/698811: Keep PDF object numbers below - limit. - -This ensures that: - * xref tables with objects pointers do not grow out of bounds. - * other readers, e.g. Adobe Acrobat can parse PDFs written by mupdf. ---- - include/mupdf/pdf/object.h | 3 +++ - source/pdf/pdf-repair.c | 5 +---- - source/pdf/pdf-xref.c | 21 ++++++++++++--------- - 3 files changed, 16 insertions(+), 13 deletions(-) - -diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h -index 21ed8595..4177112b 100644 ---- a/include/mupdf/pdf/object.h -+++ b/include/mupdf/pdf/object.h -@@ -3,6 +3,9 @@ - - typedef struct pdf_document_s pdf_document; - -+/* Defined in PDF 1.7 according to Acrobat limit. */ -+#define PDF_MAX_OBJECT_NUMBER 8388607 -+ - /* - * Dynamic objects. - * The same type of objects as found in PDF and PostScript. -diff --git a/source/pdf/pdf-repair.c b/source/pdf/pdf-repair.c -index ca149bd3..0c29758e 100644 ---- a/source/pdf/pdf-repair.c -+++ b/source/pdf/pdf-repair.c -@@ -6,9 +6,6 @@ - - /* Scan file for objects and reconstruct xref table */ - --/* Define in PDF 1.7 to be 8388607, but mupdf is more lenient. */ --#define MAX_OBJECT_NUMBER (10 << 20) -- - struct entry - { - int num; -@@ -436,7 +433,7 @@ pdf_repair_xref(fz_context *ctx, pdf_document *doc) - break; - } - -- if (num <= 0 || num > MAX_OBJECT_NUMBER) -+ if (num <= 0 || num > PDF_MAX_OBJECT_NUMBER) - { - fz_warn(ctx, "ignoring object with invalid object number (%d %d R)", num, gen); - goto have_next_token; -diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c -index 00586dbd..6284e70b 100644 ---- a/source/pdf/pdf-xref.c -+++ b/source/pdf/pdf-xref.c -@@ -868,11 +868,12 @@ pdf_read_old_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf) - fz_seek(ctx, file, -(2 + (int)strlen(s)), SEEK_CUR); - } - -- if (ofs < 0) -- fz_throw(ctx, FZ_ERROR_GENERIC, "out of range object num in xref: %d", (int)ofs); -- if (ofs > INT64_MAX - len) -- fz_throw(ctx, FZ_ERROR_GENERIC, "xref section object numbers too big"); -- -+ if (ofs < 0 || ofs > PDF_MAX_OBJECT_NUMBER -+ || len < 0 || len > PDF_MAX_OBJECT_NUMBER -+ || ofs + len - 1 > PDF_MAX_OBJECT_NUMBER) -+ { -+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range"); -+ } - /* broken pdfs where size in trailer undershoots entries in xref sections */ - if (ofs + len > xref_len) - { -@@ -933,10 +934,8 @@ pdf_read_new_xref_section(fz_context *ctx, pdf_document *doc, fz_stream *stm, in - pdf_xref_entry *table; - int i, n; - -- if (i0 < 0 || i1 < 0 || i0 > INT_MAX - i1) -- fz_throw(ctx, FZ_ERROR_GENERIC, "negative xref stream entry index"); -- //if (i0 + i1 > pdf_xref_len(ctx, doc)) -- // fz_throw(ctx, FZ_ERROR_GENERIC, "xref stream has too many entries"); -+ if (i0 < 0 || i0 > PDF_MAX_OBJECT_NUMBER || i1 < 0 || i1 > PDF_MAX_OBJECT_NUMBER || i0 + i1 - 1 > PDF_MAX_OBJECT_NUMBER) -+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range"); - - table = pdf_xref_find_subsection(ctx, doc, i0, i1); - for (i = i0; i < i0 + i1; i++) -@@ -2086,6 +2085,10 @@ pdf_create_object(fz_context *ctx, pdf_document *doc) - /* TODO: reuse free object slots by properly linking free object chains in the ofs field */ - pdf_xref_entry *entry; - int num = pdf_xref_len(ctx, doc); -+ -+ if (num > PDF_MAX_OBJECT_NUMBER) -+ fz_throw(ctx, FZ_ERROR_GENERIC, "too many objects stored in pdf"); -+ - entry = pdf_get_incremental_xref_entry(ctx, doc, num); - entry->type = 'f'; - entry->ofs = -1; --- -2.16.1 - diff --git a/gnu/packages/patches/mupdf-CVE-2018-1000051.patch b/gnu/packages/patches/mupdf-CVE-2018-1000051.patch deleted file mode 100644 index bb78c46f80..0000000000 --- a/gnu/packages/patches/mupdf-CVE-2018-1000051.patch +++ /dev/null @@ -1,88 +0,0 @@ -Fix CVE-2018-1000051: - -https://bugs.ghostscript.com/show_bug.cgi?id=698873 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000051 - -Patch copied from upstream source repository: - -https://git.ghostscript.com/?p=mupdf.git;a=commit;h=321ba1de287016b0036bf4a56ce774ad11763384 - -From 321ba1de287016b0036bf4a56ce774ad11763384 Mon Sep 17 00:00:00 2001 -From: Sebastian Rasmussen -Date: Tue, 19 Dec 2017 23:47:47 +0100 -Subject: [PATCH] Bug 698825: Do not drop borrowed colorspaces. - -Previously the borrowed colorspace was dropped when updating annotation -appearances, leading to use after free warnings from valgrind/ASAN. ---- - source/pdf/pdf-appearance.c | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) - -diff --git a/source/pdf/pdf-appearance.c b/source/pdf/pdf-appearance.c -index 70f684f4..d7a1dddd 100644 ---- a/source/pdf/pdf-appearance.c -+++ b/source/pdf/pdf-appearance.c -@@ -2170,7 +2170,6 @@ void pdf_update_free_text_annot_appearance(fz_context *ctx, pdf_document *doc, p - fz_device *dev = NULL; - font_info font_rec; - fz_text *text = NULL; -- fz_colorspace *cs = NULL; - fz_matrix page_ctm; - - pdf_page_transform(ctx, annot->page, NULL, &page_ctm); -@@ -2184,11 +2183,11 @@ void pdf_update_free_text_annot_appearance(fz_context *ctx, pdf_document *doc, p - fz_var(dlist); - fz_var(dev); - fz_var(text); -- fz_var(cs); - fz_try(ctx) - { - char *contents = pdf_to_str_buf(ctx, pdf_dict_get(ctx, obj, PDF_NAME_Contents)); - char *da = pdf_to_str_buf(ctx, pdf_dict_get(ctx, obj, PDF_NAME_DA)); -+ fz_colorspace *cs; - fz_point pos; - fz_rect rect; - -@@ -2223,7 +2222,6 @@ void pdf_update_free_text_annot_appearance(fz_context *ctx, pdf_document *doc, p - fz_drop_display_list(ctx, dlist); - font_info_fin(ctx, &font_rec); - fz_drop_text(ctx, text); -- fz_drop_colorspace(ctx, cs); - } - fz_catch(ctx) - { -@@ -2359,7 +2357,6 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot - fz_device *dev = NULL; - font_info font_rec; - fz_text *text = NULL; -- fz_colorspace *cs = NULL; - fz_path *path = NULL; - fz_buffer *fzbuf = NULL; - fz_matrix page_ctm; -@@ -2375,7 +2372,6 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot - fz_var(dlist); - fz_var(dev); - fz_var(text); -- fz_var(cs); - fz_var(fzbuf); - fz_try(ctx) - { -@@ -2384,6 +2380,7 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot - fz_rect logo_bounds; - fz_matrix logo_tm; - fz_rect rect; -+ fz_colorspace *cs = fz_device_rgb(ctx); /* Borrowed reference */ - - pdf_to_rect(ctx, pdf_dict_get(ctx, annot->obj, PDF_NAME_Rect), &annot_rect); - rect = annot_rect; -@@ -2396,7 +2393,6 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot - fz_bound_path(ctx, path, NULL, &fz_identity, &logo_bounds); - center_rect_within_rect(&logo_bounds, &rect, &logo_tm); - fz_concat(&logo_tm, &logo_tm, &page_ctm); -- cs = fz_device_rgb(ctx); /* Borrowed reference */ - fz_fill_path(ctx, dev, path, 0, &logo_tm, cs, logo_color, 1.0f, NULL); - - get_font_info(ctx, doc, dr, da, &font_rec); --- -2.16.3 - diff --git a/gnu/packages/patches/mupdf-CVE-2018-6544.patch b/gnu/packages/patches/mupdf-CVE-2018-6544.patch deleted file mode 100644 index b2c8f849f3..0000000000 --- a/gnu/packages/patches/mupdf-CVE-2018-6544.patch +++ /dev/null @@ -1,109 +0,0 @@ -Fix CVE-2018-6544: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6544 -https://bugs.ghostscript.com/show_bug.cgi?id=698830 -https://bugs.ghostscript.com/show_bug.cgi?id=698965 - -Patches copied from upstream source repository: - -https://git.ghostscript.com/?p=mupdf.git;h=26527eef77b3e51c2258c8e40845bfbc015e405d -https://git.ghostscript.com/?p=mupdf.git;h=b03def134988da8c800adac1a38a41a1f09a1d89 - -From b03def134988da8c800adac1a38a41a1f09a1d89 Mon Sep 17 00:00:00 2001 -From: Sebastian Rasmussen -Date: Thu, 1 Feb 2018 16:36:14 +0100 -Subject: [PATCH] Bug 698830: Avoid recursion when loading object streams - objects. - -If there were indirect references in the object stream dictionary and -one of those indirect references referred to an object inside the object -stream itself, mupdf would previously enter recursion only bounded by the -exception stack. After this commit the object stream is checked if it is -marked immediately after being loaded. If it is marked then we terminate -the recursion at this point, if it is not marked then mark it and -attempt to load the desired object within. We also take care to unmark -the stream object when done or upon exception. ---- - source/pdf/pdf-xref.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c -index 723b543c..ed09094c 100644 ---- a/source/pdf/pdf-xref.c -+++ b/source/pdf/pdf-xref.c -@@ -1576,6 +1576,19 @@ pdf_load_obj_stm(fz_context *ctx, pdf_document *doc, int num, pdf_lexbuf *buf, i - { - objstm = pdf_load_object(ctx, doc, num); - -+ if (pdf_obj_marked(ctx, objstm)) -+ fz_throw(ctx, FZ_ERROR_GENERIC, "recursive object stream lookup"); -+ } -+ fz_catch(ctx) -+ { -+ pdf_drop_obj(ctx, objstm); -+ fz_rethrow(ctx); -+ } -+ -+ fz_try(ctx) -+ { -+ pdf_mark_obj(ctx, objstm); -+ - count = pdf_to_int(ctx, pdf_dict_get(ctx, objstm, PDF_NAME_N)); - first = pdf_to_int(ctx, pdf_dict_get(ctx, objstm, PDF_NAME_First)); - -@@ -1655,6 +1668,7 @@ pdf_load_obj_stm(fz_context *ctx, pdf_document *doc, int num, pdf_lexbuf *buf, i - fz_drop_stream(ctx, stm); - fz_free(ctx, ofsbuf); - fz_free(ctx, numbuf); -+ pdf_unmark_obj(ctx, objstm); - pdf_drop_obj(ctx, objstm); - } - fz_catch(ctx) --- -2.16.3 - -From 26527eef77b3e51c2258c8e40845bfbc015e405d Mon Sep 17 00:00:00 2001 -From: Sebastian Rasmussen -Date: Mon, 29 Jan 2018 02:00:48 +0100 -Subject: [PATCH] Bug 698830: Don't drop unkept stream if running out of error - stack. - -Under normal conditions where fz_keep_stream() is called inside -fz_try() we may call fz_drop_stream() in fz_catch() upon exceptions. -The issue comes when fz_keep_stream() has not yet been called but is -dropped in fz_catch(). This happens in the PDF from the bug when -fz_try() runs out of exception stack, and next the code in fz_catch() -runs, dropping the caller's reference to the filter chain stream! - -The simplest way of fixing this it to always keep the filter chain -stream before fz_try() is called. That way fz_catch() may drop the -stream whether an exception has occurred or if the fz_try() ran out of -exception stack. ---- - source/pdf/pdf-stream.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/source/pdf/pdf-stream.c b/source/pdf/pdf-stream.c -index c89da5c4..c6ba7ad3 100644 ---- a/source/pdf/pdf-stream.c -+++ b/source/pdf/pdf-stream.c -@@ -303,14 +303,13 @@ pdf_open_raw_filter(fz_context *ctx, fz_stream *chain, pdf_document *doc, pdf_ob - *orig_gen = 0; - } - -- fz_var(chain); -+ chain = fz_keep_stream(ctx, chain); - - fz_try(ctx) - { - len = pdf_to_int(ctx, pdf_dict_get(ctx, stmobj, PDF_NAME_Length)); - -- /* don't close chain when we close this filter */ -- chain2 = fz_keep_stream(ctx, chain); -+ chain2 = chain; - chain = NULL; - chain = fz_open_null(ctx, chain2, len, offset); - --- -2.16.3 - diff --git a/gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch b/gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch deleted file mode 100644 index d5c9c60242..0000000000 --- a/gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch +++ /dev/null @@ -1,27 +0,0 @@ -Make it possible to build MuPDF with OpenJPEG 2.3, which is the latest -release series and contains many important bug fixes. - -Patch adapted from Debian: - -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745246 - -And related to this upstream commit: - -http://git.ghostscript.com/?p=mupdf.git;a=commit;h=f88bfe2e62dbadb96d4f52d7aa025f0a516078da - -diff --git a/source/fitz/load-jpx.c b/source/fitz/load-jpx.c -index 65699ba..ea84778 100644 ---- a/source/fitz/load-jpx.c -+++ b/source/fitz/load-jpx.c -@@ -445,11 +445,6 @@ fz_load_jpx_info(fz_context *ctx, const unsigned char *data, size_t size, int *w - - #else /* HAVE_LURATECH */ - --#define OPJ_STATIC --#define OPJ_HAVE_INTTYPES_H --#if !defined(_MSC_VER) || _MSC_VER >= 1600 --#define OPJ_HAVE_STDINT_H --#endif - #define USE_JPIP - - #include diff --git a/gnu/packages/patches/myrepos-CVE-2018-7032.patch b/gnu/packages/patches/myrepos-CVE-2018-7032.patch new file mode 100644 index 0000000000..ce9493e5f9 --- /dev/null +++ b/gnu/packages/patches/myrepos-CVE-2018-7032.patch @@ -0,0 +1,69 @@ +http://source.myrepos.branchable.com/?p=source.git;a=patch;h=40a3df21c73f1bb1b6915cc6fa503f50814664c8 +This can be removed with the next release. It was modified slightly to apply + +From 40a3df21c73f1bb1b6915cc6fa503f50814664c8 Mon Sep 17 00:00:00 2001 +From: Paul Wise +Date: Sun, 11 Feb 2018 21:57:49 +0800 +Subject: [PATCH] Mitigate vulnerabilities caused by some git remotes being + able to execute code + +Set GIT_PROTOCOL_FROM_USER=0 with git versions newer than 2.12. + +Prevent remote websites from causing cloning of local repositories. + +Manually whitelist known-safe protocols (http, https, git, ssh) +when using git versions older than 2.12. + +Fixes: CVE-2018-7032 +Fixes: https://bugs.debian.org/840014 +Suggestions-by: Jakub Wilk +Reported-by: Jakub Wilk +--- + webcheckout | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) + +diff --git a/webcheckout b/webcheckout +index e98da5c..de497ba 100755 +--- a/webcheckout ++++ b/webcheckout +@@ -71,6 +71,16 @@ use Getopt::Long; + use warnings; + use strict; + ++# Mitigate some git remote types being dangerous ++my $git_unsafe = 1; ++my $git_version = `git --version`; ++$git_version =~ s{^git version }{}; ++my ($major, $minor) = split(/\./, $git_version); ++if (int($major) >= 2 && int($minor) >= 12) { ++ $ENV{GIT_PROTOCOL_FROM_USER} = 0; ++ $git_unsafe = 0; ++} ++ + # What to download. + my $url; + +@@ -89,7 +99,17 @@ my $destdir; + + # how to perform checkouts + my %handlers=( +- git => sub { doit("git", "clone", shift, $destdir) }, +- svn => sub { doit("svn", "checkout", shift, $destdir) }, +- bzr => sub { doit("bzr", "branch", shift, $destdir) }, ++ git => sub { ++ my $git_url = shift; ++ # Reject unsafe URLs with older versions of git ++ # that do not already check the URL safety. ++ if ($git_unsafe && $git_url !~ m{^(?:(?:https?|git|ssh):[^:]|(?:[-_.A-Za-z0-9]+@)?[-_.A-Za-z0-9]+:(?!:|//))}) { ++ print STDERR "potentially unsafe git URL, may fail, touch local files or execute arbitrary code\n"; ++ return 1; ++ } ++ # Reject cloning local directories too, webcheckout is for remote repos ++ doit(qw(git -c protocol.file.allow=user clone --), $git_url, $destdir) ++ }, ++ svn => sub { doit(qw(svn checkout --), shift, $destdir) }, ++ bzr => sub { doit(qw(bzr branch --), shift, $destdir) }, + ); +-- +2.11.0 + diff --git a/gnu/packages/patches/opensmtpd-fix-crash.patch b/gnu/packages/patches/opensmtpd-fix-crash.patch new file mode 100644 index 0000000000..0030167533 --- /dev/null +++ b/gnu/packages/patches/opensmtpd-fix-crash.patch @@ -0,0 +1,44 @@ +From 9b5f70b93e038df5446bd37a4adac5a0380748e7 Mon Sep 17 00:00:00 2001 +From: johannes +Date: Wed, 21 Feb 2018 23:57:11 +0100 +Subject: [PATCH] crypt_checkpass: include HAVE_CRYPT_H definition, add NULL + check + +--- + openbsd-compat/crypt_checkpass.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/openbsd-compat/crypt_checkpass.c b/openbsd-compat/crypt_checkpass.c +index dafd2dae..d10b3a57 100644 +--- a/openbsd-compat/crypt_checkpass.c ++++ b/openbsd-compat/crypt_checkpass.c +@@ -1,5 +1,6 @@ + /* OPENBSD ORIGINAL: lib/libc/crypt/cryptutil.c */ + ++#include "includes.h" + #include + #ifdef HAVE_CRYPT_H + #include +@@ -10,6 +11,8 @@ + int + crypt_checkpass(const char *pass, const char *goodhash) + { ++ char *c; ++ + if (goodhash == NULL) + goto fail; + +@@ -17,7 +20,11 @@ crypt_checkpass(const char *pass, const char *goodhash) + if (strlen(goodhash) == 0 && strlen(pass) == 0) + return 0; + +- if (strcmp(crypt(pass, goodhash), goodhash) == 0) ++ c = crypt(pass, goodhash); ++ if (c == NULL) ++ goto fail; ++ ++ if (strcmp(c, goodhash) == 0) + return 0; + + fail: + diff --git a/gnu/packages/patches/patch-hurd-path-max.patch b/gnu/packages/patches/patch-hurd-path-max.patch index 81e37930c2..1845a5803b 100644 --- a/gnu/packages/patches/patch-hurd-path-max.patch +++ b/gnu/packages/patches/patch-hurd-path-max.patch @@ -13,7 +13,7 @@ Subject: [PATCH] Do not rely on PATH_MAX when reading a symlink target. 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/util.c b/src/util.c -index 82a7e37..c4c0f9d 100644 +index 1cc08ba..67dbd3a 100644 --- a/src/util.c +++ b/src/util.c @@ -460,12 +460,12 @@ move_file (char const *from, bool *from_needs_removal, @@ -31,18 +31,19 @@ index 82a7e37..c4c0f9d 100644 size += i; if (i != 0 || close (fd) != 0) read_fatal (); -@@ -610,9 +610,9 @@ copy_file (char const *from, char const *to, struct stat *tost, +@@ -610,10 +610,10 @@ copy_file (char const *from, char const *to, struct stat *tost, if (S_ISLNK (mode)) { -- char *buffer = xmalloc (PATH_MAX); +- char *buffer = xmalloc (PATH_MAX + 1); + char *buffer = xmalloc (tost->st_size + 1); + ssize_t r; -- if (safe_readlink (from, buffer, PATH_MAX) < 0) -+ if (safe_readlink (from, buffer, tost->st_size) < 0) +- if ((r = safe_readlink (from, buffer, PATH_MAX)) < 0) ++ if ((r = safe_readlink (from, buffer, tost->st_size)) < 0) pfatal ("Can't read %s %s", "symbolic link", from); + buffer[r] = '\0'; if (safe_symlink (buffer, to) != 0) - pfatal ("Can't create %s %s", "symbolic link", to); -- -2.4.2 +2.16.2 diff --git a/gnu/packages/patches/pcre2-CVE-2017-7186.patch b/gnu/packages/patches/pcre2-CVE-2017-7186.patch deleted file mode 100644 index 5c16955aaa..0000000000 --- a/gnu/packages/patches/pcre2-CVE-2017-7186.patch +++ /dev/null @@ -1,68 +0,0 @@ -Patch for -taken from . - ---- trunk/src/pcre2_internal.h 2016/11/19 12:46:24 600 -+++ trunk/src/pcre2_internal.h 2017/02/24 18:25:32 670 -@@ -1774,10 +1774,17 @@ - /* UCD access macros */ - - #define UCD_BLOCK_SIZE 128 --#define GET_UCD(ch) (PRIV(ucd_records) + \ -+#define REAL_GET_UCD(ch) (PRIV(ucd_records) + \ - PRIV(ucd_stage2)[PRIV(ucd_stage1)[(int)(ch) / UCD_BLOCK_SIZE] * \ - UCD_BLOCK_SIZE + (int)(ch) % UCD_BLOCK_SIZE]) - -+#if PCRE2_CODE_UNIT_WIDTH == 32 -+#define GET_UCD(ch) ((ch > MAX_UTF_CODE_POINT)? \ -+ PRIV(dummy_ucd_record) : REAL_GET_UCD(ch)) -+#else -+#define GET_UCD(ch) REAL_GET_UCD(ch) -+#endif -+ - #define UCD_CHARTYPE(ch) GET_UCD(ch)->chartype - #define UCD_SCRIPT(ch) GET_UCD(ch)->script - #define UCD_CATEGORY(ch) PRIV(ucp_gentype)[UCD_CHARTYPE(ch)] -@@ -1834,6 +1841,9 @@ - #define _pcre2_default_compile_context PCRE2_SUFFIX(_pcre2_default_compile_context_) - #define _pcre2_default_match_context PCRE2_SUFFIX(_pcre2_default_match_context_) - #define _pcre2_default_tables PCRE2_SUFFIX(_pcre2_default_tables_) -+#if PCRE2_CODE_UNIT_WIDTH == 32 -+#define _pcre2_dummy_ucd_record PCRE2_SUFFIX(_pcre2_dummy_ucd_record_) -+#endif - #define _pcre2_hspace_list PCRE2_SUFFIX(_pcre2_hspace_list_) - #define _pcre2_vspace_list PCRE2_SUFFIX(_pcre2_vspace_list_) - #define _pcre2_ucd_caseless_sets PCRE2_SUFFIX(_pcre2_ucd_caseless_sets_) -@@ -1858,6 +1868,9 @@ - extern const uint32_t PRIV(vspace_list)[]; - extern const uint32_t PRIV(ucd_caseless_sets)[]; - extern const ucd_record PRIV(ucd_records)[]; -+#if PCRE2_CODE_UNIT_WIDTH == 32 -+extern const ucd_record PRIV(dummy_ucd_record)[]; -+#endif - extern const uint8_t PRIV(ucd_stage1)[]; - extern const uint16_t PRIV(ucd_stage2)[]; - extern const uint32_t PRIV(ucp_gbtable)[]; - ---- trunk/src/pcre2_ucd.c 2015/07/17 15:44:51 316 -+++ trunk/src/pcre2_ucd.c 2017/02/24 18:25:32 670 -@@ -41,6 +41,20 @@ - - const char *PRIV(unicode_version) = "8.0.0"; - -+/* If the 32-bit library is run in non-32-bit mode, character values -+greater than 0x10ffff may be encountered. For these we set up a -+special record. */ -+ -+#if PCRE2_CODE_UNIT_WIDTH == 32 -+const ucd_record PRIV(dummy_ucd_record)[] = {{ -+ ucp_Common, /* script */ -+ ucp_Cn, /* type unassigned */ -+ ucp_gbOther, /* grapheme break property */ -+ 0, /* case set */ -+ 0, /* other case */ -+ }}; -+#endif -+ - /* When recompiling tables with a new Unicode version, please check the - types in this structure definition from pcre2_internal.h (the actual - field names will be different): diff --git a/gnu/packages/patches/pcre2-CVE-2017-8786.patch b/gnu/packages/patches/pcre2-CVE-2017-8786.patch deleted file mode 100644 index 6071d58f07..0000000000 --- a/gnu/packages/patches/pcre2-CVE-2017-8786.patch +++ /dev/null @@ -1,155 +0,0 @@ -Fix CVE-2017-8786: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8786 -https://bugs.exim.org/show_bug.cgi?id=2079 -https://blogs.gentoo.org/ago/2017/04/29/libpcre-heap-based-buffer-overflow-write-in-pcre2test-c/ - -Patch copied from upstream source repository: - -https://vcs.pcre.org/pcre2?view=revision&revision=696 -https://vcs.pcre.org/pcre2?view=revision&revision=697 - ---- trunk/doc/pcre2api.3 2017/03/21 16:48:40 695 -+++ trunk/doc/pcre2api.3 2017/03/21 17:46:21 696 -@@ -1,4 +1,4 @@ --.TH PCRE2API 3 "24 December 2016" "PCRE2 10.23" -+.TH PCRE2API 3 "21 March 2017" "PCRE2 10.30" - .SH NAME - PCRE2 - Perl-compatible regular expressions (revised API) - .sp -@@ -2633,8 +2633,8 @@ - A text message for an error code from any PCRE2 function (compile, match, or - auxiliary) can be obtained by calling \fBpcre2_get_error_message()\fP. The code - is passed as the first argument, with the remaining two arguments specifying a --code unit buffer and its length, into which the text message is placed. Note --that the message is returned in code units of the appropriate width for the -+code unit buffer and its length in code units, into which the text message is -+placed. The message is returned in code units of the appropriate width for the - library that is being used. - .P - The returned message is terminated with a trailing zero, and the function -@@ -3321,6 +3321,6 @@ - .rs - .sp - .nf --Last updated: 23 December 2016 --Copyright (c) 1997-2016 University of Cambridge. -+Last updated: 21 March 2017 -+Copyright (c) 1997-2017 University of Cambridge. - .fi ---- trunk/src/pcre2_error.c 2017/03/21 16:48:40 695 -+++ trunk/src/pcre2_error.c 2017/03/21 17:46:21 696 -@@ -271,7 +271,7 @@ - Arguments: - enumber error number - buffer where to put the message (zero terminated) -- size size of the buffer -+ size size of the buffer in code units - - Returns: length of message if all is well - negative on error ---- trunk/src/pcre2test.c 2017/03/21 17:46:21 696 -+++ trunk/src/pcre2test.c 2017/03/21 18:36:13 697 -@@ -1017,9 +1017,9 @@ - if (test_mode == PCRE8_MODE) \ - r = pcre2_get_error_message_8(a,G(b,8),G(G(b,8),_size)); \ - else if (test_mode == PCRE16_MODE) \ -- r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size)); \ -+ r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size/2)); \ - else \ -- r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size)) -+ r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size/4)) - - #define PCRE2_GET_OVECTOR_COUNT(a,b) \ - if (test_mode == PCRE8_MODE) \ -@@ -1399,6 +1399,9 @@ - - /* ----- Common macros for two-mode cases ----- */ - -+#define BYTEONE (BITONE/8) -+#define BYTETWO (BITTWO/8) -+ - #define CASTFLD(t,a,b) \ - ((test_mode == G(G(PCRE,BITONE),_MODE))? (t)(G(a,BITONE)->b) : \ - (t)(G(a,BITTWO)->b)) -@@ -1481,9 +1484,9 @@ - - #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ - if (test_mode == G(G(PCRE,BITONE),_MODE)) \ -- r = G(pcre2_get_error_message_,BITONE)(a,G(b,BITONE),G(G(b,BITONE),_size)); \ -+ r = G(pcre2_get_error_message_,BITONE)(a,G(b,BITONE),G(G(b,BITONE),_size/BYTEONE)); \ - else \ -- r = G(pcre2_get_error_message_,BITTWO)(a,G(b,BITTWO),G(G(b,BITTWO),_size)) -+ r = G(pcre2_get_error_message_,BITTWO)(a,G(b,BITTWO),G(G(b,BITTWO),_size/BYTETWO)) - - #define PCRE2_GET_OVECTOR_COUNT(a,b) \ - if (test_mode == G(G(PCRE,BITONE),_MODE)) \ -@@ -1904,7 +1907,7 @@ - #define PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j) \ - a = pcre2_dfa_match_16(G(b,16),(PCRE2_SPTR16)c,d,e,f,G(g,16),h,i,j) - #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ -- r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size)) -+ r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size/2)) - #define PCRE2_GET_OVECTOR_COUNT(a,b) a = pcre2_get_ovector_count_16(G(b,16)) - #define PCRE2_GET_STARTCHAR(a,b) a = pcre2_get_startchar_16(G(b,16)) - #define PCRE2_JIT_COMPILE(r,a,b) r = pcre2_jit_compile_16(G(a,16),b) -@@ -2000,7 +2003,7 @@ - #define PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j) \ - a = pcre2_dfa_match_32(G(b,32),(PCRE2_SPTR32)c,d,e,f,G(g,32),h,i,j) - #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ -- r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size)) -+ r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size/4)) - #define PCRE2_GET_OVECTOR_COUNT(a,b) a = pcre2_get_ovector_count_32(G(b,32)) - #define PCRE2_GET_STARTCHAR(a,b) a = pcre2_get_startchar_32(G(b,32)) - #define PCRE2_JIT_COMPILE(r,a,b) r = pcre2_jit_compile_32(G(a,32),b) ---- trunk/src/pcre2test.c 2017/03/21 16:48:40 695 -+++ trunk/src/pcre2test.c 2017/03/21 17:46:21 696 -@@ -2889,7 +2889,7 @@ - { - if (pbuffer32 != NULL) free(pbuffer32); - pbuffer32_size = 4*len + 4; -- if (pbuffer32_size < 256) pbuffer32_size = 256; -+ if (pbuffer32_size < 512) pbuffer32_size = 512; - pbuffer32 = (uint32_t *)malloc(pbuffer32_size); - if (pbuffer32 == NULL) - { -@@ -7600,7 +7600,8 @@ - int errcode; - char *endptr; - --/* Ensure the relevant non-8-bit buffer is available. */ -+/* Ensure the relevant non-8-bit buffer is available. Ensure that it is at -+least 128 code units, because it is used for retrieving error messages. */ - - #ifdef SUPPORT_PCRE2_16 - if (test_mode == PCRE16_MODE) -@@ -7620,7 +7621,7 @@ - #ifdef SUPPORT_PCRE2_32 - if (test_mode == PCRE32_MODE) - { -- pbuffer32_size = 256; -+ pbuffer32_size = 512; - pbuffer32 = (uint32_t *)malloc(pbuffer32_size); - if (pbuffer32 == NULL) - { ---- trunk/testdata/testinput2 2017/03/21 16:48:40 695 -+++ trunk/testdata/testinput2 2017/03/21 17:46:21 696 -@@ -5017,4 +5017,6 @@ - - /(?. + +--- linux-4.16.13/tools/perf/util/header.c 2018-06-04 11:30:39.368146035 +0200 ++++ linux-4.16.13/tools/perf/util/header.c 2018-06-04 11:34:04.667212378 +0200 +@@ -135,7 +135,7 @@ int do_write(struct feat_fd *ff, const v + int write_padded(struct feat_fd *ff, const void *bf, + size_t count, size_t count_aligned) + { +- static const char zero_buf[NAME_ALIGN]; ++ static const char zero_buf[NAME_ALIGN] = { 0 }; + int err = do_write(ff, bf, count); + + if (!err) diff --git a/gnu/packages/patches/pius.patch b/gnu/packages/patches/pius.patch new file mode 100644 index 0000000000..da39731d4d --- /dev/null +++ b/gnu/packages/patches/pius.patch @@ -0,0 +1,38 @@ +See https://github.com/jaymzh/pius/pull/96 + +commit 4dba0bf75ab351969622f7b9c38484657411a528 +Author: Martin Kletzander +Date: Thu May 17 17:55:27 2018 +0200 + + Don't fail on ENCRYPTION_COMPLIANCE_MODE line from too new GnuPG (#96) + + GnuPG started printing information about encryption compliance in [commit + f31dc2540acf](https://dev.gnupg.org/rGf31dc2540acf7cd7f09fd94658e815822222bfcb) + and since then signing with pius fails. + + Closes #95 + + Signed-off-by: Martin Kletzander + +diff --git a/libpius/signer.py b/libpius/signer.py +index 3c7262f..13013bb 100644 +--- a/libpius/signer.py ++++ b/libpius/signer.py +@@ -45,6 +45,7 @@ class PiusSigner(object): + GPG_PINENTRY_LAUNCHED = '[GNUPG:] PINENTRY_LAUNCHED' + GPG_KEY_CONSIDERED = '[GNUPG:] KEY_CONSIDERED' + GPG_WARN_VERSION = '[GNUPG:] WARNING server_version_mismatch' ++ GPG_ENC_COMPLIANT_MODE = '[GNUPG:] ENCRYPTION_COMPLIANCE_MODE' + + def __init__(self, signer, force_signer, mode, keyring, gpg_path, tmpdir, + outdir, encrypt_outfiles, mail, mailer, verbose, sort_keyring, +@@ -431,6 +432,9 @@ class PiusSigner(object): + if PiusSigner.GPG_ENC_BEG in line: + debug('Got GPG_ENC_BEG') + continue ++ elif PiusSigner.GPG_ENC_COMPLIANT_MODE in line: ++ debug('Got ENCRYPTION_COMPLIANCE_MODE') ++ continue + elif PiusSigner.GPG_ENC_END in line: + debug('Got GPG_ENC_END') + break diff --git a/gnu/packages/patches/pulseaudio-glibc-2.27.patch b/gnu/packages/patches/pulseaudio-glibc-2.27.patch new file mode 100644 index 0000000000..79d86abeee --- /dev/null +++ b/gnu/packages/patches/pulseaudio-glibc-2.27.patch @@ -0,0 +1,67 @@ +Copied from: +https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=dfb0460fb4743aec047cdf755a660a9ac2d0f3fb + + +From dfb0460fb4743aec047cdf755a660a9ac2d0f3fb Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Wed, 24 Jan 2018 03:51:49 +0200 +Subject: [PATCH] memfd-wrappers: only define memfd_create() if not already + defined + +glibc 2.27 is to be released soon, and it will provide memfd_create(). +If glibc provides the function, we must not define it ourselves, +otherwise building fails due to conflict between the two implementations +of the same function. + +BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=104733 +--- + configure.ac | 3 +++ + src/pulsecore/memfd-wrappers.h | 7 ++++--- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 0084c86e..0eb44b08 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -610,6 +610,9 @@ AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"], + [AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory. + *** Use linux v3.17 or higher for such a feature.])]) + ++AS_IF([test "x$HAVE_MEMFD" = "x1"], ++ AC_CHECK_FUNCS([memfd_create])) ++ + AC_SUBST(HAVE_MEMFD) + AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1]) + AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.])) +diff --git a/src/pulsecore/memfd-wrappers.h b/src/pulsecore/memfd-wrappers.h +index 3bed9b2b..c7aadfd3 100644 +--- a/src/pulsecore/memfd-wrappers.h ++++ b/src/pulsecore/memfd-wrappers.h +@@ -20,13 +20,14 @@ + License along with PulseAudio; if not, see . + ***/ + +-#ifdef HAVE_MEMFD ++#if defined(HAVE_MEMFD) && !defined(HAVE_MEMFD_CREATE) + + #include + #include + + /* +- * No glibc wrappers exist for memfd_create(2), so provide our own. ++ * Before glibc version 2.27 there was no wrapper for memfd_create(2), ++ * so we have to provide our own. + * + * Also define memfd fcntl sealing macros. While they are already + * defined in the kernel header file , that file as +@@ -63,6 +64,6 @@ static inline int memfd_create(const char *name, unsigned int flags) { + #define F_SEAL_WRITE 0x0008 /* prevent writes */ + #endif + +-#endif /* HAVE_MEMFD */ ++#endif /* HAVE_MEMFD && !HAVE_MEMFD_CREATE */ + + #endif +-- +2.16.2 + diff --git a/gnu/packages/patches/pycairo-wscript.patch b/gnu/packages/patches/pycairo-wscript.patch deleted file mode 100644 index c49f0afcb3..0000000000 --- a/gnu/packages/patches/pycairo-wscript.patch +++ /dev/null @@ -1,31 +0,0 @@ -Update the wscript to work with waf-1.8.8. Based on: -http://cgit.freedesktop.org/pycairo/commit/?id=c57cd129407c904f8c2f752a59d0183df7b01a5e - - ---- pycairo-1.10.0.orig/wscript 2011-04-18 15:42:29.000000000 +0800 -+++ pycairo-1.10.0/wscript 2015-04-20 13:01:45.383756898 +0800 -@@ -13,18 +13,18 @@ - - def options(ctx): - print(' %s/options()' %d) -- ctx.tool_options('gnu_dirs') -- ctx.tool_options('compiler_cc') -- ctx.tool_options('python') # options for disabling pyc or pyo compilation -+ ctx.load('gnu_dirs') -+ ctx.load('compiler_c') -+ ctx.load('python') # options for disabling pyc or pyo compilation - - - def configure(ctx): - print(' %s/configure()' %d) - - env = ctx.env -- ctx.check_tool('gnu_dirs') -- ctx.check_tool('compiler_cc') -- ctx.check_tool('python') -+ ctx.load('gnu_dirs') -+ ctx.load('compiler_c') -+ ctx.load('python') - ctx.check_python_version((3,1,0)) - ctx.check_python_headers() - ctx.check_cfg(package='cairo', atleast_version=cairo_version_required, diff --git a/gnu/packages/patches/python-3-search-paths.patch b/gnu/packages/patches/python-3-search-paths.patch index 7feddb8e30..73e3f4ccf5 100644 --- a/gnu/packages/patches/python-3-search-paths.patch +++ b/gnu/packages/patches/python-3-search-paths.patch @@ -3,17 +3,14 @@ looking for headers and libraries. --- setup.py 2015-10-07 23:32:58.891329173 +0200 +++ setup.py 2015-10-07 23:46:29.653349924 +0200 -@@ -507,11 +507,8 @@ class PyBuildExt(build_ext): +@@ -575,8 +575,8 @@ # if a file is found in one of those directories, it can # be assumed that no additional -I,-L directives are needed. if not cross_compiling: -- lib_dirs = self.compiler.library_dirs + [ -- '/lib64', '/usr/lib64', -- '/lib', '/usr/lib', -- ] -- inc_dirs = self.compiler.include_dirs + ['/usr/include'] +- lib_dirs = self.compiler.library_dirs + system_lib_dirs +- inc_dirs = self.compiler.include_dirs + system_include_dirs + lib_dirs = os.getenv('LIBRARY_PATH', '').split(os.pathsep) + inc_dirs = os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) else: - lib_dirs = self.compiler.library_dirs[:] - inc_dirs = self.compiler.include_dirs[:] + # Add the sysroot paths. 'sysroot' is a compiler option used to + # set the logical path of the standard system headers and diff --git a/gnu/packages/patches/python-statsmodels-fix-tests.patch b/gnu/packages/patches/python-statsmodels-fix-tests.patch deleted file mode 100644 index f910b4b5a5..0000000000 --- a/gnu/packages/patches/python-statsmodels-fix-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -This drops a test that fails with numpy 1.12. - -Upstream bug URL: https://github.com/statsmodels/statsmodels/issues/3541 - ---- a/statsmodels/discrete/tests/test_discrete.py 2017-03-06 15:29:19.947343331 +0000 -+++ b/statsmodels/discrete/tests/test_discrete.py 2017-03-06 15:29:37.759328845 +0000 -@@ -1329,21 +1329,6 @@ - res = mod.fit(start_params=-np.ones(4), method='newton', disp=0) - assert_(not res.mle_retvals['converged']) - --def test_issue_339(): -- # make sure MNLogit summary works for J != K. -- data = sm.datasets.anes96.load() -- exog = data.exog -- # leave out last exog column -- exog = exog[:,:-1] -- exog = sm.add_constant(exog, prepend=True) -- res1 = sm.MNLogit(data.endog, exog).fit(method="newton", disp=0) -- # strip the header from the test -- smry = "\n".join(res1.summary().as_text().split('\n')[9:]) -- cur_dir = os.path.dirname(os.path.abspath(__file__)) -- test_case_file = os.path.join(cur_dir, 'results', 'mn_logit_summary.txt') -- test_case = open(test_case_file, 'r').read() -- np.testing.assert_equal(smry, test_case[:-1]) -- - def test_issue_341(): - data = sm.datasets.anes96.load() - exog = data.exog diff --git a/gnu/packages/patches/qemu-glibc-2.27.patch b/gnu/packages/patches/qemu-glibc-2.27.patch new file mode 100644 index 0000000000..b1f354ac1c --- /dev/null +++ b/gnu/packages/patches/qemu-glibc-2.27.patch @@ -0,0 +1,55 @@ +From 75e5b70e6b5dcc4f2219992d7cffa462aa406af0 Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Tue, 28 Nov 2017 11:51:27 +0100 +Subject: [PATCH] memfd: fix configure test +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf8 +Content-Transfer-Encoding: 8bit + +Recent glibc added memfd_create in sys/mman.h. This conflicts with +the definition in util/memfd.c: + + /builddir/build/BUILD/qemu-2.11.0-rc1/util/memfd.c:40:12: error: static declaration of memfd_create follows non-static declaration + +Fix the configure test, and remove the sys/memfd.h inclusion since the +file actually does not exist---it is a typo in the memfd_create(2) man +page. + +Cc: Marc-André Lureau +Signed-off-by: Paolo Bonzini +--- + configure | 2 +- + util/memfd.c | 4 +--- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/configure b/configure +index 9c8aa5a..99ccc17 100755 +--- a/configure ++++ b/configure +@@ -3923,7 +3923,7 @@ fi + # check if memfd is supported + memfd=no + cat > $TMPC << EOF +-#include ++#include + + int main(void) + { +diff --git a/util/memfd.c b/util/memfd.c +index 4571d1a..412e94a 100644 +--- a/util/memfd.c ++++ b/util/memfd.c +@@ -31,9 +31,7 @@ + + #include "qemu/memfd.h" + +-#ifdef CONFIG_MEMFD +-#include +-#elif defined CONFIG_LINUX ++#if defined CONFIG_LINUX && !defined CONFIG_MEMFD + #include + #include + +-- +1.8.3.1 + diff --git a/gnu/packages/patches/quassel-qt-5.11.patch b/gnu/packages/patches/quassel-qt-5.11.patch new file mode 100644 index 0000000000..545f8b7610 --- /dev/null +++ b/gnu/packages/patches/quassel-qt-5.11.patch @@ -0,0 +1,72 @@ +https://github.com/quassel/quassel/commit/92f4dca367c3a6f0536a1e0f3fbb44bb6ed4da62.patch +This can be removed after quassel 0.12.5. + +From 92f4dca367c3a6f0536a1e0f3fbb44bb6ed4da62 Mon Sep 17 00:00:00 2001 +From: Manuel Nickschas +Date: Thu, 3 May 2018 23:19:34 +0200 +Subject: [PATCH] cmake: Fix build with Qt 5.11 + +Qt 5.11 removes the qt5_use_modules function, so add a copy. If +present, the Qt-provided function will be used instead. + +Closes GH-355. +--- + cmake/QuasselMacros.cmake | 38 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 38 insertions(+) + +diff --git a/cmake/QuasselMacros.cmake b/cmake/QuasselMacros.cmake +index 652c0042d..d77ba1cfb 100644 +--- a/cmake/QuasselMacros.cmake ++++ b/cmake/QuasselMacros.cmake +@@ -5,6 +5,9 @@ + # The qt4_use_modules function was taken from CMake's Qt4Macros.cmake: + # (C) 2005-2009 Kitware, Inc. + # ++# The qt5_use_modules function was taken from Qt 5.10.1 (and modified): ++# (C) 2005-2011 Kitware, Inc. ++# + # Redistribution and use is allowed according to the terms of the BSD license. + # For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +@@ -43,6 +46,41 @@ function(qt4_use_modules _target _link_type) + endforeach() + endfunction() + ++# Qt 5.11 removed the qt5_use_modules function, so we need to provide it until we can switch to a modern CMake version. ++# If present, the Qt-provided version will be used automatically instead. ++function(qt5_use_modules _target _link_type) ++ if (NOT TARGET ${_target}) ++ message(FATAL_ERROR "The first argument to qt5_use_modules must be an existing target.") ++ endif() ++ if ("${_link_type}" STREQUAL "LINK_PUBLIC" OR "${_link_type}" STREQUAL "LINK_PRIVATE" ) ++ set(_qt5_modules ${ARGN}) ++ set(_qt5_link_type ${_link_type}) ++ else() ++ set(_qt5_modules ${_link_type} ${ARGN}) ++ endif() ++ ++ if ("${_qt5_modules}" STREQUAL "") ++ message(FATAL_ERROR "qt5_use_modules requires at least one Qt module to use.") ++ endif() ++ foreach(_module ${_qt5_modules}) ++ if (NOT Qt5${_module}_FOUND) ++ find_package(Qt5${_module} PATHS "${_Qt5_COMPONENT_PATH}" NO_DEFAULT_PATH) ++ if (NOT Qt5${_module}_FOUND) ++ message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.") ++ endif() ++ endif() ++ target_link_libraries(${_target} ${_qt5_link_type} ${Qt5${_module}_LIBRARIES}) ++ set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${Qt5${_module}_INCLUDE_DIRS}) ++ set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${Qt5${_module}_COMPILE_DEFINITIONS}) ++ if (Qt5_POSITION_INDEPENDENT_CODE ++ AND (CMAKE_VERSION VERSION_LESS 2.8.12 ++ AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU" ++ OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0))) ++ set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ${Qt5_POSITION_INDEPENDENT_CODE}) ++ endif() ++ endforeach() ++endfunction() ++ + # Some wrappers for simplifying dual-Qt support + + function(qt_use_modules) diff --git a/gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch b/gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch new file mode 100644 index 0000000000..53c184230a --- /dev/null +++ b/gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch @@ -0,0 +1,28 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2efc649..8903b52 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -93,7 +95,7 @@ + find_package(XKB REQUIRED) + + # Qt 5 +-find_package(Qt5 5.6.0 CONFIG REQUIRED Core DBus Gui Qml Quick LinguistTools) ++find_package(Qt5 5.8.0 CONFIG REQUIRED Core DBus Gui Qml Quick LinguistTools Test) + + # find qt5 imports dir + get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION) +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index c9d935a..bb85ddd 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -2,9 +2,8 @@ + + include_directories(../src/common) + +- + set(ConfigurationTest_SRCS ConfigurationTest.cpp ../src/common/ConfigReader.cpp) + add_executable(ConfigurationTest ${ConfigurationTest_SRCS}) + add_test(NAME Configuration COMMAND ConfigurationTest) + +-qt5_use_modules(ConfigurationTest Test) ++target_link_libraries(ConfigurationTest Qt5::Core Qt5::Test) diff --git a/gnu/packages/patches/shadow-CVE-2018-7169.patch b/gnu/packages/patches/shadow-CVE-2018-7169.patch deleted file mode 100644 index eeae5b9b71..0000000000 --- a/gnu/packages/patches/shadow-CVE-2018-7169.patch +++ /dev/null @@ -1,191 +0,0 @@ -Fix CVE-2018-7169: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7169 - -Patch copied from upstream source repository: - -https://github.com/shadow-maint/shadow/commit/fb28c99b8a66ff2605c5cb96abc0a4d975f92de0 - -From fb28c99b8a66ff2605c5cb96abc0a4d975f92de0 Mon Sep 17 00:00:00 2001 -From: Aleksa Sarai -Date: Thu, 15 Feb 2018 23:49:40 +1100 -Subject: [PATCH] newgidmap: enforce setgroups=deny if self-mapping a group - -This is necessary to match the kernel-side policy of "self-mapping in a -user namespace is fine, but you cannot drop groups" -- a policy that was -created in order to stop user namespaces from allowing trivial privilege -escalation by dropping supplementary groups that were "blacklisted" from -certain paths. - -This is the simplest fix for the underlying issue, and effectively makes -it so that unless a user has a valid mapping set in /etc/subgid (which -only administrators can modify) -- and they are currently trying to use -that mapping -- then /proc/$pid/setgroups will be set to deny. This -workaround is only partial, because ideally it should be possible to set -an "allow_setgroups" or "deny_setgroups" flag in /etc/subgid to allow -administrators to further restrict newgidmap(1). - -We also don't write anything in the "allow" case because "allow" is the -default, and users may have already written "deny" even if they -technically are allowed to use setgroups. And we don't write anything if -the setgroups policy is already "deny". - -Ref: https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/1729357 -Fixes: CVE-2018-7169 -Reported-by: Craig Furman -Signed-off-by: Aleksa Sarai ---- - src/newgidmap.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 80 insertions(+), 9 deletions(-) - -diff --git a/src/newgidmap.c b/src/newgidmap.c -index b1e33513..59a2e75c 100644 ---- a/src/newgidmap.c -+++ b/src/newgidmap.c -@@ -46,32 +46,37 @@ - */ - const char *Prog; - --static bool verify_range(struct passwd *pw, struct map_range *range) -+ -+static bool verify_range(struct passwd *pw, struct map_range *range, bool *allow_setgroups) - { - /* An empty range is invalid */ - if (range->count == 0) - return false; - -- /* Test /etc/subgid */ -- if (have_sub_gids(pw->pw_name, range->lower, range->count)) -+ /* Test /etc/subgid. If the mapping is valid then we allow setgroups. */ -+ if (have_sub_gids(pw->pw_name, range->lower, range->count)) { -+ *allow_setgroups = true; - return true; -+ } - -- /* Allow a process to map its own gid */ -- if ((range->count == 1) && (pw->pw_gid == range->lower)) -+ /* Allow a process to map its own gid. */ -+ if ((range->count == 1) && (pw->pw_gid == range->lower)) { -+ /* noop -- if setgroups is enabled already we won't disable it. */ - return true; -+ } - - return false; - } - - static void verify_ranges(struct passwd *pw, int ranges, -- struct map_range *mappings) -+ struct map_range *mappings, bool *allow_setgroups) - { - struct map_range *mapping; - int idx; - - mapping = mappings; - for (idx = 0; idx < ranges; idx++, mapping++) { -- if (!verify_range(pw, mapping)) { -+ if (!verify_range(pw, mapping, allow_setgroups)) { - fprintf(stderr, _( "%s: gid range [%lu-%lu) -> [%lu-%lu) not allowed\n"), - Prog, - mapping->upper, -@@ -89,6 +94,70 @@ static void usage(void) - exit(EXIT_FAILURE); - } - -+void write_setgroups(int proc_dir_fd, bool allow_setgroups) -+{ -+ int setgroups_fd; -+ char *policy, policy_buffer[4096]; -+ -+ /* -+ * Default is "deny", and any "allow" will out-rank a "deny". We don't -+ * forcefully write an "allow" here because the process we are writing -+ * mappings for may have already set themselves to "deny" (and "allow" -+ * is the default anyway). So allow_setgroups == true is a noop. -+ */ -+ policy = "deny\n"; -+ if (allow_setgroups) -+ return; -+ -+ setgroups_fd = openat(proc_dir_fd, "setgroups", O_RDWR|O_CLOEXEC); -+ if (setgroups_fd < 0) { -+ /* -+ * If it's an ENOENT then we are on too old a kernel for the setgroups -+ * code to exist. Emit a warning and bail on this. -+ */ -+ if (ENOENT == errno) { -+ fprintf(stderr, _("%s: kernel doesn't support setgroups restrictions\n"), Prog); -+ goto out; -+ } -+ fprintf(stderr, _("%s: couldn't open process setgroups: %s\n"), -+ Prog, -+ strerror(errno)); -+ exit(EXIT_FAILURE); -+ } -+ -+ /* -+ * Check whether the policy is already what we want. /proc/self/setgroups -+ * is write-once, so attempting to write after it's already written to will -+ * fail. -+ */ -+ if (read(setgroups_fd, policy_buffer, sizeof(policy_buffer)) < 0) { -+ fprintf(stderr, _("%s: failed to read setgroups: %s\n"), -+ Prog, -+ strerror(errno)); -+ exit(EXIT_FAILURE); -+ } -+ if (!strncmp(policy_buffer, policy, strlen(policy))) -+ goto out; -+ -+ /* Write the policy. */ -+ if (lseek(setgroups_fd, 0, SEEK_SET) < 0) { -+ fprintf(stderr, _("%s: failed to seek setgroups: %s\n"), -+ Prog, -+ strerror(errno)); -+ exit(EXIT_FAILURE); -+ } -+ if (dprintf(setgroups_fd, "%s", policy) < 0) { -+ fprintf(stderr, _("%s: failed to setgroups %s policy: %s\n"), -+ Prog, -+ policy, -+ strerror(errno)); -+ exit(EXIT_FAILURE); -+ } -+ -+out: -+ close(setgroups_fd); -+} -+ - /* - * newgidmap - Set the gid_map for the specified process - */ -@@ -103,6 +172,7 @@ int main(int argc, char **argv) - struct stat st; - struct passwd *pw; - int written; -+ bool allow_setgroups = false; - - Prog = Basename (argv[0]); - -@@ -145,7 +215,7 @@ int main(int argc, char **argv) - (unsigned long) getuid ())); - return EXIT_FAILURE; - } -- -+ - /* Get the effective uid and effective gid of the target process */ - if (fstat(proc_dir_fd, &st) < 0) { - fprintf(stderr, _("%s: Could not stat directory for target %u\n"), -@@ -177,8 +247,9 @@ int main(int argc, char **argv) - if (!mappings) - usage(); - -- verify_ranges(pw, ranges, mappings); -+ verify_ranges(pw, ranges, mappings, &allow_setgroups); - -+ write_setgroups(proc_dir_fd, allow_setgroups); - write_mapping(proc_dir_fd, ranges, mappings, "gid_map"); - sub_gid_close(); - --- -2.16.2 - diff --git a/gnu/packages/patches/strace-kernel-4.16.patch b/gnu/packages/patches/strace-kernel-4.16.patch new file mode 100644 index 0000000000..e86d3be439 --- /dev/null +++ b/gnu/packages/patches/strace-kernel-4.16.patch @@ -0,0 +1,92 @@ +Fix test failure when using Linux-Libre >= 4.16. + +Taken from upstream: +https://github.com/strace/strace/commit/bcff87c31c0f27c678a43d6b7f67dab363a974fa + +From bcff87c31c0f27c678a43d6b7f67dab363a974fa Mon Sep 17 00:00:00 2001 +From: Masatake YAMATO +Date: Wed, 2 May 2018 17:11:07 +0900 +Subject: [PATCH] tests/ioctl_kvm_run.c: handle cpuid at the end of vcpu dentry + +Since Linux 4.16, kernel appends the cpuid as suffix to the entry +for a kvm vcpu in /proc/$pid/fd like: + + anon_inode:kvm-vcpu:0 + +That was + + anon_inode:kvm-vcpu + +This kernel change causes the test case failure on newer kernels. +Update the test to deal with the new name as well as the old one. + +* tests/ioctl_kvm_run.c: Include unistd.h for using readlink(2). +(vcpu_dev_should_have_cpuid): New function for detecting whether +a proc entry for given fd has the cpuid suffix or not. +(main): Trim vcpu_dev to remove the cpuid suffix if needed. +(vcpu_dev): Remove const modifier. +--- + tests/ioctl_kvm_run.c | 29 ++++++++++++++++++++++++++++- + 1 file changed, 28 insertions(+), 1 deletion(-) + +diff --git a/tests/ioctl_kvm_run.c b/tests/ioctl_kvm_run.c +index 179461430..e1bef5796 100644 +--- a/tests/ioctl_kvm_run.c ++++ b/tests/ioctl_kvm_run.c +@@ -40,6 +40,7 @@ + # include + # include + # include ++# include + # include + + static int +@@ -56,7 +57,7 @@ kvm_ioctl(int fd, unsigned long cmd, const char *cmd_str, void *arg) + + static const char dev[] = "/dev/kvm"; + static const char vm_dev[] = "anon_inode:kvm-vm"; +-static const char vcpu_dev[] = "anon_inode:kvm-vcpu"; ++static char vcpu_dev[] = "anon_inode:kvm-vcpu:0"; + static size_t page_size; + + extern const char code[]; +@@ -165,6 +166,23 @@ run_kvm(const int vcpu_fd, struct kvm_run *const run, const size_t mmap_size, + } + } + ++static int ++vcpu_dev_should_have_cpuid(int fd) ++{ ++ int r = 0; ++ char *filename = NULL; ++ char buf[sizeof(vcpu_dev)]; ++ ++ if (asprintf(&filename, "/proc/%d/fd/%d", getpid(), fd) < 0) ++ error_msg_and_fail("asprintf"); ++ ++ if (readlink(filename, buf, sizeof(buf)) == sizeof(buf) - 1 ++ && (memcmp(buf, vcpu_dev, sizeof(buf) - 1) == 0)) ++ r = 1; ++ free(filename); ++ return r; ++} ++ + int + main(void) + { +@@ -208,6 +226,15 @@ main(void) + (unsigned long) page_size, (unsigned long) page_size, mem); + + int vcpu_fd = KVM_IOCTL(vm_fd, KVM_CREATE_VCPU, NULL); ++ if (!vcpu_dev_should_have_cpuid(vcpu_fd)) ++ /* ++ * This is an older kernel that doesn't place a cpuid ++ * at the end of the dentry associated with vcpu_fd. ++ * Trim the cpuid part of vcpu_dev like: ++ * "anon_inode:kvm-vcpu:0" -> "anon_inode:kvm-vcpu" ++ */ ++ vcpu_dev[strlen (vcpu_dev) - 2] = '\0'; ++ + printf("ioctl(%d<%s>, KVM_CREATE_VCPU, 0) = %d<%s>\n", + vm_fd, vm_dev, vcpu_fd, vcpu_dev); + diff --git a/gnu/packages/patches/tar-CVE-2016-6321.patch b/gnu/packages/patches/tar-CVE-2016-6321.patch deleted file mode 100644 index b79be9bc94..0000000000 --- a/gnu/packages/patches/tar-CVE-2016-6321.patch +++ /dev/null @@ -1,51 +0,0 @@ -Fix CVE-2016-6321: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6321 -https://security-tracker.debian.org/tracker/CVE-2016-6321 - -Patch adapted from upstream source repository (the changes to 'NEWS' -don't apply to the Tar 1.29 release tarball). - -http://git.savannah.gnu.org/cgit/tar.git/commit/?id=7340f67b9860ea0531c1450e5aa261c50f67165d - -From 7340f67b9860ea0531c1450e5aa261c50f67165d Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Sat, 29 Oct 2016 21:04:40 -0700 -Subject: [PATCH] When extracting, skip ".." members - -* NEWS: Document this. -* src/extract.c (extract_archive): Skip members whose names -contain "..". ---- - NEWS | 8 +++++++- - src/extract.c | 8 ++++++++ - 2 files changed, 15 insertions(+), 1 deletion(-) - -diff --git a/src/extract.c b/src/extract.c -index f982433..7904148 100644 ---- a/src/extract.c -+++ b/src/extract.c -@@ -1629,12 +1629,20 @@ extract_archive (void) - { - char typeflag; - tar_extractor_t fun; -+ bool skip_dotdot_name; - - fatal_exit_hook = extract_finish; - - set_next_block_after (current_header); - -+ skip_dotdot_name = (!absolute_names_option -+ && contains_dot_dot (current_stat_info.orig_file_name)); -+ if (skip_dotdot_name) -+ ERROR ((0, 0, _("%s: Member name contains '..'"), -+ quotearg_colon (current_stat_info.orig_file_name))); -+ - if (!current_stat_info.file_name[0] -+ || skip_dotdot_name - || (interactive_option - && !confirm ("extract", current_stat_info.file_name))) - { --- -2.11.0 - diff --git a/gnu/packages/patches/tar-remove-wholesparse-check.patch b/gnu/packages/patches/tar-remove-wholesparse-check.patch new file mode 100644 index 0000000000..41f53e86aa --- /dev/null +++ b/gnu/packages/patches/tar-remove-wholesparse-check.patch @@ -0,0 +1,68 @@ +This patch is needed in order to build Guix on a Btrfs file system. + + +From da922703282b0d3b8837a99a9c7fdd32f1d20d49 Mon Sep 17 00:00:00 2001 +From: Mark H Weaver +Date: Tue, 9 Jan 2018 20:16:14 -0500 +Subject: [PATCH] Remove nonportable check for files containing only zeroes. + +This check benefitted only one unlikely case (large files containing +only zeroes, on systems that do not support SEEK_HOLE) and was based +on an assumption about file system behavior that is not mandated by +POSIX and no longer holds in practice, namely that for sufficiently +large files, (st_blocks == 0) implies that the file contains only +zeroes. Examples of file systems that violate this assumption include +Linux's /proc file system and Btrfs. + +* src/sparse.c (sparse_scan_file_wholesparse): Remove this function. +(sparse_scan_file_seek): Remove the initial check for files containing +only zeroes. +--- + src/sparse.c | 24 ------------------------ + 1 file changed, 24 deletions(-) + +diff --git a/src/sparse.c b/src/sparse.c +index d41c0ea..3de6560 100644 +--- a/src/sparse.c ++++ b/src/sparse.c +@@ -261,26 +261,6 @@ sparse_scan_file_raw (struct tar_sparse_file *file) + return tar_sparse_scan (file, scan_end, NULL); + } + +-static bool +-sparse_scan_file_wholesparse (struct tar_sparse_file *file) +-{ +- struct tar_stat_info *st = file->stat_info; +- struct sp_array sp = {0, 0}; +- +- /* Note that this function is called only for truly sparse files of size >= 1 +- block size (checked via ST_IS_SPARSE before). See the thread +- http://www.mail-archive.com/bug-tar@gnu.org/msg04209.html for more info */ +- if (ST_NBLOCKS (st->stat) == 0) +- { +- st->archive_file_size = 0; +- sp.offset = st->stat.st_size; +- sparse_add_map (st, &sp); +- return true; +- } +- +- return false; +-} +- + #ifdef SEEK_HOLE + /* Try to engage SEEK_HOLE/SEEK_DATA feature. */ + static bool +@@ -343,10 +323,6 @@ sparse_scan_file_seek (struct tar_sparse_file *file) + static bool + sparse_scan_file (struct tar_sparse_file *file) + { +- /* always check for completely sparse files */ +- if (sparse_scan_file_wholesparse (file)) +- return true; +- + switch (hole_detection) + { + case HOLE_DETECTION_DEFAULT: +-- +2.15.1 + diff --git a/gnu/packages/patches/util-linux-CVE-2018-7738.patch b/gnu/packages/patches/util-linux-CVE-2018-7738.patch deleted file mode 100644 index 080e2f56ba..0000000000 --- a/gnu/packages/patches/util-linux-CVE-2018-7738.patch +++ /dev/null @@ -1,49 +0,0 @@ -Fix CVE-2018-7738: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7738 - -Patch copied from upstream source repository: - -https://github.com/karelzak/util-linux/commit/75f03badd7ed9f1dd951863d75e756883d3acc55 - -From 75f03badd7ed9f1dd951863d75e756883d3acc55 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Thu, 16 Nov 2017 16:27:32 +0100 -Subject: [PATCH] bash-completion: (umount) use findmnt, escape a space in - paths - - # mount /dev/sdc1 /mnt/test/foo\ bar - # umount - -has to return "/mnt/test/foo\ bar". - -Changes: - - * don't use mount | awk output, we have findmnt - * force compgen use \n as entries separator - -Addresses: https://github.com/karelzak/util-linux/issues/539 -Signed-off-by: Karel Zak ---- - bash-completion/umount | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/bash-completion/umount b/bash-completion/umount -index d76cb9fff..98c90d61a 100644 ---- a/bash-completion/umount -+++ b/bash-completion/umount -@@ -40,9 +40,10 @@ _umount_module() - return 0 - ;; - esac -- local DEVS_MPOINTS -- DEVS_MPOINTS="$(mount | awk '{print $1, $3}')" -- COMPREPLY=( $(compgen -W "$DEVS_MPOINTS" -- $cur) ) -- return 0 -+ -+ local oldifs=$IFS -+ IFS=$'\n' -+ COMPREPLY=( $( compgen -W '$(findmnt -lno TARGET | sed "s/\([[:blank:]]\)/\\\\\1/g")' -- "$cur" ) ) -+ IFS=$oldifs - } - complete -F _umount_module umount diff --git a/gnu/packages/patches/util-linux-tests.patch b/gnu/packages/patches/util-linux-tests.patch index f436299b7f..bb5be66515 100644 --- a/gnu/packages/patches/util-linux-tests.patch +++ b/gnu/packages/patches/util-linux-tests.patch @@ -5,14 +5,14 @@ using 'getpwnam' in libmount. This doesn't work in the chroot because --- util-linux-2.25.2/tests/ts/libmount/optstr 2015-01-23 13:58:41.181151194 +0100 +++ util-linux-2.25.2/tests/ts/libmount/optstr 2015-01-23 13:58:42.829161716 +0100 -@@ -84,10 +84,6 @@ ts_init_subtest "apply-user" # add user, - ts_valgrind $TESTPROG --apply --user "noexec,nosuid,loop=/dev/looop0" 0x408 &> $TS_OUTPUT +@@ -108,10 +108,6 @@ + ts_run $TESTPROG --apply --user "noexec,nosuid,loop=/dev/looop0" 0x408 &> $TS_OUTPUT ts_finalize_subtest -ts_init_subtest "fix" --ts_valgrind $TESTPROG --fix "uid=root,gid=root" &> $TS_OUTPUT +-ts_run $TESTPROG --fix "uid=root,gid=root" &> $TS_OUTPUT -ts_finalize_subtest - ts_init_subtest "deduplicate" - ts_valgrind $TESTPROG --dedup bbb,ccc,AAA,xxx,AAA=a,AAA=bbb,ddd,AAA=ccc,fff=eee AAA &> $TS_OUTPUT + ts_run $TESTPROG --dedup bbb,ccc,AAA,xxx,AAA=a,AAA=bbb,ddd,AAA=ccc,fff=eee AAA &> $TS_OUTPUT ts_finalize_subtest diff --git a/gnu/packages/patches/xcb-proto-python3-print.patch b/gnu/packages/patches/xcb-proto-python3-print.patch deleted file mode 100644 index 7d5dc9bc27..0000000000 --- a/gnu/packages/patches/xcb-proto-python3-print.patch +++ /dev/null @@ -1,75 +0,0 @@ -Patch copied from upstream source repository: - -https://cgit.freedesktop.org/xcb/proto/commit/?id=bea5e1c85bdc0950913790364e18228f20395a3d - -From bea5e1c85bdc0950913790364e18228f20395a3d Mon Sep 17 00:00:00 2001 -From: Thomas Klausner -Date: Thu, 19 May 2016 17:30:05 +0200 -Subject: [PATCH] print() is a function and needs parentheses. - -Fixes build with python-3.x. - -Signed-off-by: Thomas Klausner -Signed-off-by: Uli Schlachter ---- - xcbgen/xtypes.py | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py -index c3b5758..b83b119 100644 ---- a/xcbgen/xtypes.py -+++ b/xcbgen/xtypes.py -@@ -501,7 +501,7 @@ class ComplexType(Type): - int(required_start_align_element.get('align', "4"), 0), - int(required_start_align_element.get('offset', "0"), 0)) - if verbose_align_log: -- print "Explicit start-align for %s: %s\n" % (self, self.required_start_align) -+ print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align)) - - def resolve(self, module): - if self.resolved: -@@ -592,7 +592,7 @@ class ComplexType(Type): - if verbose_align_log: - print ("calc_required_start_align: %s has start-align %s" - % (str(self), str(self.required_start_align))) -- print "Details:\n" + str(log) -+ print ("Details:\n" + str(log)) - if self.required_start_align.offset != 0: - print (("WARNING: %s\n\thas start-align with non-zero offset: %s" - + "\n\tsuggest to add explicit definition with:" -@@ -619,12 +619,12 @@ class ComplexType(Type): - for offset in range(0,align): - align_candidate = Alignment(align, offset) - if verbose_align_log: -- print "trying %s for %s" % (str(align_candidate), str(self)) -+ print ("trying %s for %s" % (str(align_candidate), str(self))) - my_log = AlignmentLog() - if self.is_possible_start_align(align_candidate, callstack, my_log): - log.append(my_log) - if verbose_align_log: -- print "found start-align %s for %s" % (str(align_candidate), str(self)) -+ print ("found start-align %s for %s" % (str(align_candidate), str(self))) - return align_candidate - else: - my_ok_count = my_log.ok_count() -@@ -641,7 +641,7 @@ class ComplexType(Type): - # none of the candidates applies - # this type has illegal internal aligns for all possible start_aligns - if verbose_align_log: -- print "didn't find start-align for %s" % str(self) -+ print ("didn't find start-align for %s" % str(self)) - log.append(best_log) - return None - -@@ -900,7 +900,7 @@ class SwitchType(ComplexType): - # aux function for unchecked_get_alignment_after - def get_align_for_selected_case_field(self, case_field, start_align, callstack, log): - if verbose_align_log: -- print "get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field)) -+ print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))) - total_align = start_align - for field in self.bitcases: - my_callstack = callstack[:] --- -2.11.1 - diff --git a/gnu/packages/patches/xcb-proto-python3-whitespace.patch b/gnu/packages/patches/xcb-proto-python3-whitespace.patch deleted file mode 100644 index f0509138b2..0000000000 --- a/gnu/packages/patches/xcb-proto-python3-whitespace.patch +++ /dev/null @@ -1,217 +0,0 @@ -Fixes compatibility issue with python > 3.5. - -Patch copied from upstream source repository: - -https://cgit.freedesktop.org/xcb/proto/commit/?id=ea7a3ac6c658164690e0febb55f4467cb9e0bcac - -From ea7a3ac6c658164690e0febb55f4467cb9e0bcac Mon Sep 17 00:00:00 2001 -From: Thomas Klausner -Date: Thu, 19 May 2016 17:30:04 +0200 -Subject: [PATCH] Make whitespace use consistent. - -At least python-3.5.x complains about this forcefully. - -Signed-off-by: Thomas Klausner -Signed-off-by: Uli Schlachter ---- - xcbgen/align.py | 96 ++++++++++++++++++++++++++++----------------------------- - 1 file changed, 48 insertions(+), 48 deletions(-) - -diff --git a/xcbgen/align.py b/xcbgen/align.py -index 5e31838..d4c12ee 100644 ---- a/xcbgen/align.py -+++ b/xcbgen/align.py -@@ -16,12 +16,12 @@ class Alignment(object): - return self.align == other.align and self.offset == other.offset - - def __str__(self): -- return "(align=%d, offset=%d)" % (self.align, self.offset) -+ return "(align=%d, offset=%d)" % (self.align, self.offset) - - @staticmethod - def for_primitive_type(size): -- # compute the required start_alignment based on the size of the type -- if size % 8 == 0: -+ # compute the required start_alignment based on the size of the type -+ if size % 8 == 0: - # do 8-byte primitives require 8-byte alignment in X11? - return Alignment(8,0) - elif size % 4 == 0: -@@ -33,7 +33,7 @@ class Alignment(object): - - - def align_after_fixed_size(self, size): -- new_offset = (self.offset + size) % self.align -+ new_offset = (self.offset + size) % self.align - return Alignment(self.align, new_offset) - - -@@ -41,7 +41,7 @@ class Alignment(object): - ''' - Assuming the given external_align, checks whether - self is fulfilled for all cases. -- Returns True if yes, False otherwise. -+ Returns True if yes, False otherwise. - ''' - if self.align == 1 and self.offset == 0: - # alignment 1 with offset 0 is always fulfilled -@@ -55,9 +55,9 @@ class Alignment(object): - # the external align guarantees less alignment -> not guaranteed - return False - -- if external_align.align % self.align != 0: -+ if external_align.align % self.align != 0: - # the external align cannot be divided by our align -- # -> not guaranteed -+ # -> not guaranteed - # (this can only happen if there are alignments that are not - # a power of 2, which is highly discouraged. But better be - # safe and check for it) -@@ -72,7 +72,7 @@ class Alignment(object): - - def combine_with(self, other): - # returns the alignment that is guaranteed when -- # both, self or other, can happen -+ # both, self or other, can happen - new_align = gcd(self.align, other.align) - new_offset_candidate1 = self.offset % new_align - new_offset_candidate2 = other.offset % new_align -@@ -83,8 +83,8 @@ class Alignment(object): - new_align = gcd(new_align, offset_diff) - new_offset_candidate1 = self.offset % new_align - new_offset_candidate2 = other.offset % new_align -- assert new_offset_candidate1 == new_offset_candidate2 -- new_offset = new_offset_candidate1 -+ assert new_offset_candidate1 == new_offset_candidate2 -+ new_offset = new_offset_candidate1 - # return the result - return Alignment(new_align, new_offset) - -@@ -92,44 +92,44 @@ class Alignment(object): - class AlignmentLog(object): - - def __init__(self): -- self.ok_list = [] -- self.fail_list = [] -- self.verbosity = 1 -+ self.ok_list = [] -+ self.fail_list = [] -+ self.verbosity = 1 - - def __str__(self): -- result = "" -+ result = "" - -- # output the OK-list -- for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list: -- stacksize = len(callstack) -+ # output the OK-list -+ for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list: -+ stacksize = len(callstack) - indent = ' ' * stacksize -- if self.ok_callstack_is_relevant(callstack): -+ if self.ok_callstack_is_relevant(callstack): - if field_name is None or field_name == "": -- result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n" -- % (indent, str(type_obj), indent, str(align_before), str(align_after))) -- else: -- result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n" -- % (indent, str(field_name), str(type_obj), -- indent, str(align_before), str(align_after))) -+ result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n" -+ % (indent, str(type_obj), indent, str(align_before), str(align_after))) -+ else: -+ result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n" -+ % (indent, str(field_name), str(type_obj), -+ indent, str(align_before), str(align_after))) - if self.verbosity >= 1: -- result += self.callstack_to_str(indent, callstack) -+ result += self.callstack_to_str(indent, callstack) - -- # output the fail-list -- for (align_before, field_name, type_obj, callstack, reason) in self.fail_list: -- stacksize = len(callstack) -+ # output the fail-list -+ for (align_before, field_name, type_obj, callstack, reason) in self.fail_list: -+ stacksize = len(callstack) - indent = ' ' * stacksize -- if field_name is None or field_name == "": -- result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n" -- % (indent, str(align_before), indent, str(type_obj), indent, reason)) -- else: -- result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n" -- % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason)) -+ if field_name is None or field_name == "": -+ result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n" -+ % (indent, str(align_before), indent, str(type_obj), indent, reason)) -+ else: -+ result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n" -+ % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason)) - - if self.verbosity >= 1: -- result += self.callstack_to_str(indent, callstack) -+ result += self.callstack_to_str(indent, callstack) - - -- return result -+ return result - - - def callstack_to_str(self, indent, callstack): -@@ -137,41 +137,41 @@ class AlignmentLog(object): - for stack_elem in callstack: - result += "\t %s%s\n" % (indent, str(stack_elem)) - result += "\t%s]\n" % indent -- return result -+ return result - - - def ok_callstack_is_relevant(self, ok_callstack): - # determine whether an ok callstack is relevant for logging -- if self.verbosity >= 2: -- return True -+ if self.verbosity >= 2: -+ return True - - # empty callstacks are always relevant -- if len(ok_callstack) == 0: -+ if len(ok_callstack) == 0: - return True - -- # check whether the ok_callstack is a subset or equal to a fail_callstack -+ # check whether the ok_callstack is a subset or equal to a fail_callstack - for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list: - if len(ok_callstack) <= len(fail_callstack): - zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)]) -- is_subset = all([i == j for i, j in zipped]) -- if is_subset: -+ is_subset = all([i == j for i, j in zipped]) -+ if is_subset: - return True - - return False - - - def ok(self, align_before, field_name, type_obj, callstack, align_after): -- self.ok_list.append((align_before, field_name, type_obj, callstack, align_after)) -+ self.ok_list.append((align_before, field_name, type_obj, callstack, align_after)) - - def fail(self, align_before, field_name, type_obj, callstack, reason): -- self.fail_list.append((align_before, field_name, type_obj, callstack, reason)) -+ self.fail_list.append((align_before, field_name, type_obj, callstack, reason)) - - def append(self, other): -- self.ok_list.extend(other.ok_list) -- self.fail_list.extend(other.fail_list) -+ self.ok_list.extend(other.ok_list) -+ self.fail_list.extend(other.fail_list) - - def ok_count(self): -- return len(self.ok_list) -+ return len(self.ok_list) - - - --- -2.11.1 - diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index e77aa3f288..d972761586 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -72,7 +72,7 @@ (replace 'install (lambda* (#:key outputs #:allow-other-keys) ;; Install the commands, library, and .pc files. - (zero? (system* "make" "install" "install-lib"))))) + (invoke "make" "install" "install-lib")))) ;; Make sure programs have an RPATH so they can find libpciutils.so. #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index ee853d5015..5719b7bb45 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Ludovic Courtès ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -75,7 +76,7 @@ POSIX regular expression API.") (define-public pcre2 (package (name "pcre2") - (version "10.23") + (version "10.31") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pcre/pcre2/" @@ -83,9 +84,7 @@ POSIX regular expression API.") (sha256 (base32 - "0vn5g0mkkp99mmzpissa06hpyj6pk9s4mlwbjqrjvw3ihy8rpiyz")) - (patches (search-patches "pcre2-CVE-2017-7186.patch" - "pcre2-CVE-2017-8786.patch")))) + "1b389pzw91k1hzydsh4smdsxyppwz4pv74m3nrvy8rda0j3m6zg0")))) (build-system gnu-build-system) (inputs `(("bzip2" ,bzip2) ("readline" ,readline) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 048225a6ec..1ae6b0de10 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -5,12 +5,12 @@ ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 Nils Gillmann -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Marius Bakke ;;; Copyright © 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Julien Lepiller ;;; Copyright © 2016 Arun Isaac -;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017, 2018 Leo Famulari ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice @@ -80,14 +80,14 @@ (define-public poppler (package (name "poppler") - (version "0.62.0") + (version "0.63.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 - "1ii9ly1pngyvs0aiq2wxpya08hidpl54y7nsb8b1vxnnskgp76jv")))) + "04d1z1ygyb3llzc6s6c99wxafvljj2sc5b76djif34f7mzfqmk17")))) (build-system cmake-build-system) ;; FIXME: ;; use libcurl: no @@ -125,6 +125,36 @@ (license license:gpl2+) (home-page "https://poppler.freedesktop.org/"))) +(define-public poppler-data + (package + (name "poppler-data") + (version "0.4.9") + (source (origin + (method url-fetch) + (uri (string-append "https://poppler.freedesktop.org/poppler-data" + "-" version ".tar.gz")) + (sha256 + (base32 + "04i0wgdkn5lhda8cyxd1ll4a2p41pwqrwd47n9mdpl7cx5ypx70z")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no test suite + #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + ;; The package only provides some data files, so there is nothing to + ;; build. + (delete 'configure) + (delete 'build)))) + (synopsis "Poppler encoding files for rendering of CJK and Cyrillic text") + (description "This package provides optional encoding files for Poppler. +When present, Poppler is able to correctly render CJK and Cyrillic text.") + (home-page (package-home-page poppler)) + ;; See COPYING in the source distribution for more information about + ;; the licensing. + (license (list license:bsd-3 + license:gpl2)))) + (define-public poppler-qt4 (package (inherit poppler) (name "poppler-qt4") @@ -596,21 +626,17 @@ extracting content or merging files.") (define-public mupdf (package (name "mupdf") - (version "1.12.0") + (version "1.13.0") (source (origin (method url-fetch) (uri (string-append "https://mupdf.com/downloads/archive/" name "-" version "-source.tar.xz")) - (patches (search-patches "mupdf-build-with-latest-openjpeg.patch" - "mupdf-CVE-2017-17858.patch" - "mupdf-CVE-2018-6544.patch" - "mupdf-CVE-2018-1000051.patch")) (sha256 (base32 - "0b9j0gqbc3jhmx87r6idcsh8lnb30840c3hyx6dk2gdjqqh3hysp")) + "0129k92bav692l6lyw10ryldx7h2f9khjpgnp3f3n4fdsph9hrkl")) (modules '((guix build utils))) - (snippet '(delete-file-recursively "thirdparty")))) + (snippet '(begin (delete-file-recursively "thirdparty") #t)))) (build-system gnu-build-system) (inputs `(("curl" ,curl) @@ -662,12 +688,14 @@ line tools for batch rendering @command{pdfdraw}, rewriting files (snippet ;; Replace shebang with the bi-lingual shell/Perl trick to remove ;; dependency on Perl. - '(substitute* "qpdf/fix-qdf" - (("#!/usr/bin/env perl") - "\ + '(begin + (substitute* "qpdf/fix-qdf" + (("#!/usr/bin/env perl") + "\ eval '(exit $?0)' && eval 'exec perl -wS \"$0\" ${1+\"$@\"}' & eval 'exec perl -wS \"$0\" $argv:q' - if 0;\n"))))) + if 0;\n")) + #t)))) (build-system gnu-build-system) (arguments `(#:disallowed-references (,perl) @@ -681,7 +709,8 @@ eval '(exit $?0)' && eval 'exec perl -wS \"$0\" ${1+\"$@\"}' (substitute* (append '("qtest/bin/qtest-driver") (find-files "." "\\.test")) - (("/usr/bin/env") (which "env")))))))) + (("/usr/bin/env") (which "env"))) + #t))))) (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) @@ -702,7 +731,7 @@ program capable of converting PDF into other formats.") (define-public xournal (package (name "xournal") - (version "0.4.8") + (version "0.4.8.2016") (source (origin (method url-fetch) @@ -710,7 +739,7 @@ program capable of converting PDF into other formats.") "/xournal-" version ".tar.gz")) (sha256 (base32 - "0c7gjcqhygiyp0ypaipdaxgkbivg6q45vhsj8v5jsi9nh6iqff13")))) + "09i88v3wacmx7f96dmq0l3afpyv95lh6jrx16xzm0jd1szdrhn5j")))) (build-system gnu-build-system) (inputs `(("gtk" ,gtk+-2) @@ -985,7 +1014,7 @@ PDF. Indeed @command{pdfposter} was inspired by @command{poster}.") (define-public pdfgrep (package (name "pdfgrep") - (version "2.0.1") + (version "2.1.1") (source (origin (method url-fetch) @@ -993,7 +1022,7 @@ PDF. Indeed @command{pdfposter} was inspired by @command{poster}.") name "-" version ".tar.gz")) (sha256 (base32 - "07llkrkcfjwd3ybai9ad10ybhr0biffcplmy7lw4fb87nd2dfw03")))) + "02qcl5kmr5qzjfc99qpbpfb1890bxlrq3r208gnding51zrmb09c")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm index 9c17733d4c..a1be996e04 100644 --- a/gnu/packages/perl-check.scm +++ b/gnu/packages/perl-check.scm @@ -1236,7 +1236,7 @@ plan, or not, and things will still Just Work.") (define-public perl-test-without-module (package (name "perl-test-without-module") - (version "0.18") + (version "0.20") (source (origin (method url-fetch) @@ -1244,7 +1244,7 @@ plan, or not, and things will still Just Work.") "Test-Without-Module-" version ".tar.gz")) (sha256 (base32 - "0zwc2dk5srd02j4p049w77m89iw5nbff381rmhcbaz8x2w5kdhz2")))) + "0955ib9cz1naz7a2v6lx78kj29q7ihmdn51im6wd1im669yfp6lf")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Test-Without-Module/") (synopsis "Test fallback behaviour in absence of modules") diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 225065fd3b..2d2bb62a78 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2015, 2016, 2017 Eric Bavier ;;; Copyright © 2015 Eric Dvorsak -;;; Copyright © 2016 Mark H Weaver +;;; Copyright © 2016, 2018 Mark H Weaver ;;; Copyright © 2016 Jochem Raat ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Nils Gillmann @@ -111,7 +111,7 @@ (replace 'configure (lambda* (#:key configure-flags #:allow-other-keys) (format #t "Perl configure flags: ~s~%" configure-flags) - (zero? (apply system* "./Configure" configure-flags)))) + (apply invoke "./Configure" configure-flags))) (add-before 'strip 'make-shared-objects-writable (lambda* (#:key outputs #:allow-other-keys) @@ -121,7 +121,8 @@ (lib (string-append out "/lib"))) (for-each (lambda (dso) (chmod dso #o755)) - (find-files lib "\\.so$"))))) + (find-files lib "\\.so$")) + #t))) (add-after 'install 'remove-extra-references (lambda* (#:key inputs outputs #:allow-other-keys) @@ -1139,7 +1140,7 @@ loaded class.") (define-public perl-class-load (package (name "perl-class-load") - (version "0.23") + (version "0.24") (source (origin (method url-fetch) @@ -1147,12 +1148,13 @@ loaded class.") "Class-Load-" version ".tar.gz")) (sha256 (base32 - "13xjfh4fadq4pkq7fcj42b26544jl7gqdg2y3imnra9fwxwsbg7j")))) + "0dnacm959vi5819h6cdl5qpi89fr81p6smbsqx7m6in18vd87f8b")))) (build-system perl-build-system) (native-inputs `(("perl-module-build-tiny" ,perl-module-build-tiny) ("perl-test-fatal" ,perl-test-fatal) - ("perl-test-requires" ,perl-test-requires))) + ("perl-test-needs" ,perl-test-needs) + ("perl-test-without-module" ,perl-test-without-module))) (propagated-inputs `(("perl-package-stash" ,perl-package-stash) ("perl-data-optlist" ,perl-data-optlist) @@ -1169,7 +1171,7 @@ names, not Class::Name. For that, this module provides \"load_class (define-public perl-class-load-xs (package (name "perl-class-load-xs") - (version "0.09") + (version "0.10") (source (origin (method url-fetch) @@ -1177,11 +1179,12 @@ names, not Class::Name. For that, this module provides \"load_class "Class-Load-XS-" version ".tar.gz")) (sha256 (base32 - "1aivalms81s3a2cj053ncgnmkpgl7vspna8ajlkqir7rdn8kpv5v")))) + "1ldd4a306hjagm5v9j0gjg8y7km4v3q45bxxqmj2bzgb6vsjrhjv")))) (build-system perl-build-system) (native-inputs `(("perl-test-fatal" ,perl-test-fatal) - ("perl-test-requires" ,perl-test-requires))) + ("perl-test-needs" ,perl-test-needs) + ("perl-test-without-module" ,perl-test-without-module))) (inputs `(("perl-class-load" ,perl-class-load))) (home-page "http://search.cpan.org/dist/Class-Load-XS/") (synopsis "XS implementation of parts of Class::Load") @@ -1471,7 +1474,7 @@ and writing of @code{.ini}-style configuration files.") (define-public perl-context-preserve (package (name "perl-context-preserve") - (version "0.02") + (version "0.03") (source (origin (method url-fetch) @@ -1479,7 +1482,7 @@ and writing of @code{.ini}-style configuration files.") "Context-Preserve-" version ".tar.gz")) (sha256 (base32 - "0qkjj1qifr87zlfpfnn21gdyrpfgilh8zp3b53008m2ax02k87gc")))) + "07zxgmb11bn4zj3w9g1zwbb9iv4jyk5q7hc0nv59knvv5i64m489")))) (build-system perl-build-system) (native-inputs `(("perl-test-exception" ,perl-test-exception) @@ -2153,7 +2156,7 @@ hours, minutes, seconds, and time zones.") (define-public perl-datetime (package (name "perl-datetime") - (version "1.46") + (version "1.49") (source (origin (method url-fetch) @@ -2161,7 +2164,7 @@ hours, minutes, seconds, and time zones.") "DateTime-" version ".tar.gz")) (sha256 (base32 - "1247d2q2gm912bxj88a0sr5gvj2nx4a7n6z1smkq16iy21cziz79")))) + "0hbw4zq1562slnz7g7hyhfhyq98dzkk3i5g21x3xra5cvfix93kh")))) (build-system perl-build-system) (native-inputs `(("perl-cpan-meta-check" ,perl-cpan-meta-check) @@ -2454,7 +2457,7 @@ the DateTime.pm class.") (define-public perl-datetime-timezone (package (name "perl-datetime-timezone") - (version "2.17") + (version "2.19") (source (origin (method url-fetch) @@ -2462,7 +2465,7 @@ the DateTime.pm class.") "DateTime-TimeZone-" version ".tar.gz")) (sha256 (base32 - "1ckhjw7h545306b02p6ra60y8zxqnbqr2lsy7c1wib8libf0l2hx")))) + "1y54bsgq886sg35fgmxgj8wwmgs4l83qhwa0g3zv8w9d43z2w6dr")))) (build-system perl-build-system) (native-inputs `(("perl-test-fatal" ,perl-test-fatal) @@ -3078,7 +3081,7 @@ errors are rethrown automatically.") (define-public perl-exception-class (package (name "perl-exception-class") - (version "1.39") + (version "1.44") (source (origin (method url-fetch) @@ -3086,7 +3089,7 @@ errors are rethrown automatically.") "Exception-Class-" version ".tar.gz")) (sha256 (base32 - "10r06v6568s33p6h9f9ml0iabc07id86mjkf74gy7ld6d5m7b741")))) + "03gf4cdgrjnljgrlxkvbh2cahsyzn0zsh2zcli7b1lrqn7wgpwrk")))) (build-system perl-build-system) (propagated-inputs `(("perl-devel-stacktrace" ,perl-devel-stacktrace) @@ -3486,7 +3489,7 @@ file system.") (define-public perl-file-pushd (package (name "perl-file-pushd") - (version "1.014") + (version "1.016") (source (origin (method url-fetch) @@ -3496,7 +3499,7 @@ file system.") ".tar.gz")) (sha256 (base32 - "02rlqvyy7gly3dsqwaa81aisyy9c791b8xvwzczcbgmcwgzkgaxm")))) + "1p3wz5jnddd87wkwl4x3fc3ncprahdxdzwqd4scb10r98h4pyfnp")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/File-pushd/") @@ -3960,15 +3963,15 @@ merged.") (define-public perl-hash-multivalue (package (name "perl-hash-multivalue") - (version "0.15") + (version "0.16") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/" + (uri (string-append "mirror://cpan/authors/id/A/AR/ARISTOTLE/" "Hash-MultiValue-" version ".tar.gz")) (sha256 (base32 - "1jc37kwpa1fl88va8bd1p95h0vjv1gsvmn7pc2pxj62ga6x0wpc0")))) + "1x3k7h542xnigz0b8vsfiq580p5r325wi5b8mxppiqk8mbvis636")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Hash-MultiValue/") (synopsis "Store multiple values per key") @@ -4617,7 +4620,7 @@ one: logging, exceptions, and translations.") (define-public perl-libintl-perl (package (name "perl-libintl-perl") - (version "1.28") + (version "1.29") (source (origin (method url-fetch) @@ -4625,7 +4628,7 @@ one: logging, exceptions, and translations.") "libintl-perl-" version ".tar.gz")) (sha256 (base32 - "1gafrfvicjclqlz6i62jx2iqbq878yn3ws86waz2sqbd3gxz5svv")))) + "1cgvrgh4axd8jlr6497ndgphgvgnqc1axd306460hskdvc85z4vq")))) (build-system perl-build-system) (arguments `(#:phases @@ -4911,15 +4914,15 @@ return values, trading space for time.") (define-public perl-memoize-expirelru (package (name "perl-memoize-expirelru") - (version "0.55") + (version "0.56") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/B/BP/BPOWERS/" + (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/" "Memoize-ExpireLRU-" version ".tar.gz")) (sha256 (base32 - "0klk0vj78lr259mnv1rbxib8gzf2cfp4zhkhbcxyhadkkl73myvj")))) + "1xnp3jqabl4il5kfadlqimbxhzsbm7gpwrgw0m5s5fdsrc0n70zf")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Memoize-ExpireLRU/") (synopsis "Expiry plug-in for Memoize that adds LRU cache expiration") @@ -5175,15 +5178,15 @@ implementations.") (define-public perl-module-install (package (name "perl-module-install") - (version "1.14") + (version "1.19") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/" + (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" "Module-Install-" version ".tar.gz")) (sha256 (base32 - "0j8dz87k60i1khd9xadd8kl6bgm9s5s5zl86rzsz5bq36siz00iz")))) + "06q12cm97yh4p7qbm0a2p96996ii6ss59qy57z0f7f9svy6sflqs")))) (build-system perl-build-system) (native-inputs `(("perl-yaml-tiny" ,perl-yaml-tiny))) @@ -5549,7 +5552,7 @@ overloads will \"just work\".") (define-public perl-moosex-methodattributes (package (name "perl-moosex-methodattributes") - (version "0.29") + (version "0.31") (source (origin (method url-fetch) @@ -5557,7 +5560,7 @@ overloads will \"just work\".") "MooseX-MethodAttributes-" version ".tar.gz")) (sha256 (base32 - "1pz3i67gadfmgzj87m1xp2ilcg3yhppdylcng2h6c11dy0a06hdk")))) + "1whd10w7bm3dwaj7gpgw40bci9vvb2zmxs4349ifji91hvinwqck")))) (build-system perl-build-system) (native-inputs `(("perl-module-build-tiny" ,perl-module-build-tiny) @@ -6002,7 +6005,7 @@ building is done in @code{MooX::ConfigFromFile::Role}---using (define-public perl-moox-file-configdir (package (name "perl-moox-file-configdir") - (version "0.006") + (version "0.007") (source (origin (method url-fetch) @@ -6010,7 +6013,7 @@ building is done in @code{MooX::ConfigFromFile::Role}---using "MooX-File-ConfigDir-" version ".tar.gz")) (sha256 (base32 - "0f808sq3627ymgf63zwgh705vv0nhwclxp89clhx8yl6hybcv7kx")))) + "074v150wrbddhy1n0qc8s80zrb71l3c4is968cnr06ac5l9kmshz")))) (build-system perl-build-system) (propagated-inputs `(("perl-file-configdir" ,perl-file-configdir) @@ -6975,7 +6978,7 @@ used for writing documentation for Perl and for Perl modules.") (define-public perl-posix-strftime-compiler (package (name "perl-posix-strftime-compiler") - (version "0.41") + (version "0.42") (source (origin (method url-fetch) @@ -6983,10 +6986,10 @@ used for writing documentation for Perl and for Perl modules.") "POSIX-strftime-Compiler-" version ".tar.gz")) (sha256 (base32 - "0f9p3hx0vqx8zg5v24pz0s4zc8ln100c7c91ks681wq02phqj2v7")))) + "04dcn2n4rfkj8p24vj2p17vvis40l87pf2vdqp0vqm5jg3fjnn16")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) - (arguments `(#:tests? #f)) ;TODO: Timezone test failures + (arguments `(#:tests? #f)) ; TODO: Timezone test failures (home-page "http://search.cpan.org/dist/POSIX-strftime-Compiler/") (synopsis "GNU C library compatible strftime for loggers and servers") (description "POSIX::strftime::Compiler provides GNU C library compatible @@ -7838,7 +7841,8 @@ TODO: { local $TODO = \"/proc/cpuinfo doesn't always report 'model name' or 'machine' ...\"; $type = &Sys::CPU::cpu_type(); ok( defined($type), \"CPU Type: $type\" ); -}~%"))))))) +}~%"))) + #t)))) (build-system perl-build-system) (synopsis "Perl extension for getting CPU information") (description @@ -8149,15 +8153,15 @@ used to justify strings to various alignment styles.") (define-public perl-text-balanced (package (name "perl-text-balanced") - (version "2.02") + (version "2.03") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/" + (uri (string-append "mirror://cpan/authors/id/S/SH/SHAY/" "Text-Balanced-" version ".tar.gz")) (sha256 (base32 - "1d3mba2sjpp044h16pkf231cksa34ripaz6rmgxp0ygpl917az57")))) + "1j4jjw6bg6ik8cn1mimw54rvg4h0qf4hm9k63y9572sny3w56xq5")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Text-Balanced/") (synopsis "Extract delimited text sequences from strings") @@ -8235,7 +8239,7 @@ generally slower on larger files.") (define-public perl-text-format (package (name "perl-text-format") - (version "0.60") + (version "0.61") (source (origin (method url-fetch) (uri (string-append @@ -8243,7 +8247,7 @@ generally slower on larger files.") version ".tar.gz")) (sha256 (base32 - "1f52jak0a2gwi4qcisp4nfbniq04dmmv5j8zkvzj8ik0f0sk2kv6")))) + "0axfyiml3zwawwd127z8rl2lm53z6dlsflzmp80m3j0myn7kp2mv")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) @@ -9227,7 +9231,7 @@ recursive-descent text parsers from simple yacc-like grammar specifications.") (define-public perl-parse-yapp (package (name "perl-parse-yapp") - (version "1.2") + (version "1.21") (source (origin (method url-fetch) @@ -9237,7 +9241,7 @@ recursive-descent text parsers from simple yacc-like grammar specifications.") ".tar.gz")) (sha256 (base32 - "16p4qgqg28cy76ylcf4wq1r693gqpx8xq0w32b3564i67h49zljb")))) + "1r8kbyk0qd4ficmabj753kjpq0ib0csk01169w7jxflg62cfj41q")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Parse-Yapp/") (synopsis "Generate and use LALR parsers") diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 2c0c2313f4..99bc90efac 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -69,14 +69,14 @@ (define-public libraw (package (name "libraw") - (version "0.18.9") + (version "0.18.12") (source (origin (method url-fetch) (uri (string-append "https://www.libraw.org/data/LibRaw-" version ".tar.gz")) (sha256 (base32 - "0kmjfdr409k9q9n17k9ywims5z4kqc16s81ba7y09n7669q1gvyj")))) + "1m2khr2cij8z6lawgbmdksjn14fpnjsy8ad4qahnpqapm1slsxap")))) (build-system gnu-build-system) (home-page "https://www.libraw.org") (synopsis "Raw image decoder") @@ -330,7 +330,7 @@ photographic equipment.") (define-public darktable (package (name "darktable") - (version "2.4.3") + (version "2.4.4") (source (origin (method url-fetch) (uri (string-append @@ -339,7 +339,7 @@ photographic equipment.") version "/darktable-" version ".tar.xz")) (sha256 (base32 - "1lq3xp7hhfhfwqrz0f2mrp3xywnpvb0nlw6lbm5cgx22s5xzri8x")))) + "0kdhmiw4wxk2w9v2hms9yk8nl4ymdshnqyj0l07nivzzr6w20hwn")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; There are no tests. diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index ca0ea4a384..90e6ab1c1c 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -86,7 +86,8 @@ "pcre/pcrelib" "sqlite3/libsqlite" "xmlrpc/libxmlrpc" - "zip/lib")))))) + "zip/lib")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm index 12f17f1e3c..6fc19a975d 100644 --- a/gnu/packages/pkg-config.scm +++ b/gnu/packages/pkg-config.scm @@ -96,7 +96,8 @@ instance."))) ;; expect it. (mkdir-p (string-append out "/share")) (symlink (string-append in "/share/aclocal") - (string-append out "/share/aclocal")))))) + (string-append out "/share/aclocal")) + #t)))) (native-inputs `(("pkg-config" ,%pkg-config))) ;; Ignore native inputs, and set `PKG_CONFIG_PATH' for target inputs. diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 67ec5495bc..4eb68c0270 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -61,9 +61,11 @@ ;; that, libplot.la ends up containing just "-lXaw" (without ;; "-L/path/to/Xaw"), due to the fact that there is no ;; libXaw.la, which forces us to propagate libXaw. - '(substitute* "configure" - (("-lXaw") - "-lXaw7"))))) + '(begin + (substitute* "configure" + (("-lXaw") + "-lXaw7")) + #t)))) (build-system gnu-build-system) (inputs `(("libpng" ,libpng) ("libx11" ,libx11) @@ -98,7 +100,8 @@ scientific data.") ;; Use the standard location for modules. (substitute* "Makefile.in" (("godir = .*$") - "godir = $(moddir)\n")))))) + "godir = $(moddir)\n")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.2))) @@ -124,9 +127,11 @@ using the Cairo drawing library.") (modules '((guix build utils))) (snippet ;; Install binaries in the right place. - '(substitute* "src/Makefile" - (("INSTALLBIN =.*$") - (string-append "INSTALLBIN = $(out)/bin")))))) + '(begin + (substitute* "src/Makefile" + (("INSTALLBIN =.*$") + (string-append "INSTALLBIN = $(out)/bin"))) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -174,14 +179,14 @@ colors, styles, options and details.") (define-public asymptote (package (name "asymptote") - (version "2.42") + (version "2.44") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asymptote/" version "/asymptote-" version ".src.tgz")) (sha256 (base32 - "0dprc4shzdpvp87kc97ggh5ay2zmskjjaciay7mnblx63rhk1d95")))) + "1rs9v95g19ri6ra2m921jf2yr9avqnzfybrqxilsld98xpqx56vg")))) (build-system gnu-build-system) ;; Note: The 'asy' binary retains a reference to docdir for use with its ;; "help" command in interactive mode, so adding a "doc" output is not diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 6edfba95cc..ad429854a2 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -1,5 +1,4 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2017 Marius Bakke @@ -56,9 +55,11 @@ (modules '((guix build utils))) (snippet ;; Remove timestamp from the installed 'README' file. - '(substitute* "etc/README.in" - (("@date@") - "1st of some month, sometime after 1970"))) + '(begin + (substitute* "etc/README.in" + (("@date@") + "1st of some month, sometime after 1970")) + #t)) (patches (search-patches "a2ps-CVE-2001-1593.patch" "a2ps-CVE-2014-0466.patch")))) @@ -281,44 +282,3 @@ seen in a terminal.") TeX, SVG, BBCode and terminal escape sequences with colored syntax highlighting. Language definitions and color themes are customizable.") (license gpl3+))) - -(define-public astyle - (package - (name "astyle") - (version "2.05") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20" - version "/astyle_" version "_linux.tar.gz")) - (sha256 - (base32 - "0f9sh9kq5ajp1yz133h00fr9235p1m698x7n3h7zbrhjiwgynd6s")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ;no tests - #:make-flags (list (string-append "prefix=" %output) - "INSTALL=install" - "all") - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda _ (chdir "build/gcc") #t)) - (add-after 'install 'install-libs - (lambda* (#:key outputs #:allow-other-keys) - ;; Libraries are not installed by default - (let* ((output (assoc-ref outputs "out")) - (libdir (string-append output "/lib"))) - (begin - (mkdir-p libdir) - (for-each (lambda (l) - (copy-file - l (string-append libdir "/" (basename l)))) - (find-files "bin" "lib*")))) - #t))))) - (home-page "http://astyle.sourceforge.net/") - (synopsis "Source code indenter, formatter, and beautifier") - (description - "Artistic Style is a source code indenter, formatter, and beautifier for -the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.") - (license lgpl3+))) diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm new file mode 100644 index 0000000000..f8890cb7f1 --- /dev/null +++ b/gnu/packages/printers.scm @@ -0,0 +1,69 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; 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 printers) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages libusb) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages qt)) + +;; This is a module for packages related to printer-like devices, but not +;; related to CUPS. + +(define-public robocut + (package + (name "robocut") + (version "1.0.11") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Timmmm/robocut/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "0nmr1plq1f6sarxwqwy4vzbxkljlx8y4xalm7r05vx4lrdai5pad")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Robocut.pro" + (("/usr/") + (string-append out "/"))) + + (invoke "qmake" + (string-append "PREFIX=" out)) + #t)))))) + (inputs + `(("libusb" ,libusb) + ("qt" ,qtbase) + ("qtsvg" ,qtsvg))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("qmake" ,qtbase))) + (synopsis "Graphical program to drive plotting cutters") + (description + "Robocut is a simple graphical program that allows you to cut graphics +with Graphtec and Sihouette plotting cutters using an SVG file as its input.") + (home-page "http://robocut.org") + (license license:gpl3+))) diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm index d6f3aede28..b2def45ccf 100644 --- a/gnu/packages/profiling.scm +++ b/gnu/packages/profiling.scm @@ -350,8 +350,10 @@ different kinds of performance behavior.") (modules '((guix build utils))) (snippet ;; Remove bundled software. - '(for-each delete-file-recursively - '("vendor/opari2" "vendor/cube"))))) + '(begin + (for-each delete-file-recursively + '("vendor/opari2" "vendor/cube")) + #t)))) (build-system gnu-build-system) (inputs `(("mpi" ,mpi) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 43816e09f8..bac92eafa9 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -135,10 +135,13 @@ rates.") (snippet ;; Disable console-kit support by default since it's deprecated ;; anyway. - '(substitute* "src/daemon/default.pa.in" - (("load-module module-console-kit" all) - (string-append "#" all "\n")))) + '(begin + (substitute* "src/daemon/default.pa.in" + (("load-module module-console-kit" all) + (string-append "#" all "\n"))) + #t)) (patches (search-patches + "pulseaudio-glibc-2.27.patch" "pulseaudio-fix-mult-test.patch" "pulseaudio-longer-test-timeout.patch")))) (build-system gnu-build-system) @@ -150,6 +153,13 @@ rates.") (assoc-ref %outputs "out") "/lib/udev/rules.d")) #:phases (modify-phases %standard-phases + (replace 'bootstrap + ;; TODO: Remove this custom bootstrap phase when + ;; pulseaudio-glibc-2.27.patch is removed. + (lambda _ + (patch-shebang "git-version-gen") + (setenv "NOCONFIGURE" "1") + (invoke "bash" "bootstrap.sh"))) (add-before 'check 'pre-check (lambda _ ;; 'tests/lock-autospawn-test.c' wants to create a file @@ -177,7 +187,12 @@ rates.") ("eudev" ,eudev) ;for the detection of hardware audio devices ("check" ,check))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ;; TODO: Remove "autoconf", "automake", and "libtool" from + ;; native-inputs when pulseaudio-glibc-2.27.patch is removed. + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) (propagated-inputs ;; 'libpulse*.la' contain `-lgdbm' and `-lcap', so propagate them. `(("libcap" ,libcap) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index cdd74d3053..b7cd51e868 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2016, 2017 Arun Isaac ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2018 Tomáš Čech +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,11 +45,32 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) +(define-public python-base58 + (package + (name "python-base58") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "base58" version)) + (sha256 + (base32 + "0lgnk7ycdxwhk2bkygl30nsks56bvrdj79ix76iv965pz808pzn5")))) + (build-system python-build-system) + (native-inputs + `(("python-pyhamcrest" ,python-pyhamcrest))) + (home-page "https://github.com/keis/base58") + (synopsis "Base58 and Base58Check implementation") + (description "Base58 and Base58Check implementation compatible +with what is used by the Bitcoin network.") + (license license:expat))) + (define-public python-bcrypt (package (name "python-bcrypt") @@ -592,7 +614,8 @@ PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.") (uri (pypi-uri "PyNaCl" version)) (modules '((guix build utils))) ;; Remove bundled libsodium - (snippet '(delete-file-recursively "src/libsodium")) + (snippet '(begin (delete-file-recursively "src/libsodium") + #t)) (sha256 (base32 "01vjq0pxyw1mxaqy013hzs8nknmvg3kpzlzmh69jxznyipgvria5")))) @@ -820,3 +843,105 @@ through the Engine interface.") (define-public python2-m2crypto (package-with-python2 python-m2crypto)) + +(define-public python-pylibscrypt + (package + (name "python-pylibscrypt") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pylibscrypt" version)) + (sha256 + (base32 + "1b3rgzl6dbzs08vhv41b6y4n5189wv7lr27acxn104hs45745abs")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;FIXME: unable to find libraries + (inputs + `(("openssl" ,openssl))) + (home-page "https://github.com/jvarho/pylibscrypt") + (synopsis "Scrypt for Python") + (description "There are a lot of different scrypt modules for Python, but +none of them have everything that I'd like, so here's one more. It uses +hashlib.scrypt on Python 3.6 and OpenSSL 1.1.") + (license license:isc))) + +(define-public python-libnacl + (package + (name "python-libnacl") + (version "1.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "libnacl" version)) + (sha256 + (base32 + "0nv7n8nfswkhl614x5mllrkvaslraa0053q11iylb337cy43vb4v")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'locate-libsodium + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "libnacl/__init__.py" + (("(return ctypes.cdll.LoadLibrary\\(')libsodium.so('\\))" + _ pre post) + (let ((libsodium (string-append (assoc-ref inputs "libsodium") + "/lib/libsodium.so"))) + (string-append pre libsodium post))))))))) + (native-inputs + `(("python-pyhamcrest" ,python-pyhamcrest))) + (inputs + `(("libsodium" ,libsodium))) + (home-page "https://libnacl.readthedocs.org/") + (synopsis "Python bindings for libsodium based on ctypes") + (description "@code{libnacl} is used to gain direct access to the +functions exposed by @code{NaCl} library via @code{libsodium}. It has +been constructed to maintain extensive documentation on how to use +@code{NaCl} as well as being completely portable.") + (license license:asl2.0))) + +(define-public python-duniterpy + (package + (name "python-duniterpy") + (version "0.43.2") + (source + (origin + (method git-fetch) + ;; Pypi's default URI is missing "requirements.txt" file. + (uri (git-reference + (url "https://github.com/duniter/duniter-python-api.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ch4f150k1p1l876pp08p5rxqhpv5xfbxdw6njcmr06hspv8v8x4")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Among 108 tests, a single one is failing: FAIL: + ;; test_from_pubkey. Remove it. + (add-after 'unpack 'remove-failing-test + (lambda _ + (delete-file "tests/documents/test_crc_pubkey.py") + #t))))) + (propagated-inputs + `(("python-aiohttp" ,python-aiohttp) + ("python-base58" ,python-base58) + ("python-jsonschema" ,python-jsonschema) + ("python-libnacl" ,python-libnacl) + ("python-pylibscrypt" ,python-pylibscrypt) + ("python-pypeg2" ,python-pypeg2))) + (home-page "https://github.com/duniter/duniter-python-api") + (synopsis "Python implementation of Duniter API") + (description "@code{duniterpy} is an implementation of +@uref{https://github.com/duniter/duniter/, duniter} API. Its +main features are: +@itemize +@item Supports Duniter's Basic Merkle API and protocol +@item Asynchronous +@item Duniter signing key +@end itemize") + (license license:gpl3+))) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 6e8d9ab954..9523ff3734 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -24,6 +24,8 @@ ;;; Copyright © 2015, 2016 David Thompson ;;; Copyright © 2017 Mark Meyer ;;; Copyright © 2018 Tomáš Čech +;;; Copyright © 2018 Nicolas Goaziou +;;; Copyright © 2018 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,6 +62,70 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) +(define-public python-aiohttp + (package + (name "python-aiohttp") + (version "3.1.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aiohttp" version)) + (sha256 + (base32 + "1b888lggmyf2d08rfayq9khszzc0pav1z70ssc0b4d9kkr4g1klz")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;FIXME: 2 errors, 2084 passed + (native-inputs + `(("python-async-generator" ,python-async-generator) + ("python-pytest" ,python-pytest) + ("python-pytest-capturelog" ,python-pytest-capturelog) + ("python-pytest-mock" ,python-pytest-mock))) + (propagated-inputs + `(("python-aiodns" ,python-aiodns) + ("python-async-timeout" ,python-async-timeout) + ("python-attrs" ,python-attrs) + ("python-chardet" ,python-chardet) + ("python-idna-ssl" ,python-idna-ssl) + ("python-multidict" ,python-multidict) + ("python-yarl" ,python-yarl))) + (home-page "https://github.com/aio-libs/aiohttp/") + (synopsis "Async HTTP client/server framework (asyncio)") + (description "@code{aiohttp} is an asynchronous HTTP client/server +framework. + +Its main features are: +@itemize +@item Supports both client and server side of HTTP protocol. +@item Supports both client and server Web-Sockets out-of-the-box without the +Callback Hell. +@item Web-server has middlewares and pluggable routing. +@end itemize") + (license license:asl2.0))) + +(define-public python-aiodns + (package + (name "python-aiodns") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aiodns" version)) + (sha256 + (base32 + "1snr5paql8dgvc676n8xq460wypjsb1xj53cf3px1s4wczf7lryq")))) + (build-system python-build-system) + (inputs + `(("python-pycares" ,python-pycares))) + (arguments + `(#:tests? #f)) ;tests require internet access + (home-page "http://github.com/saghul/aiodns") + (synopsis "Simple DNS resolver for asyncio") + (description "@code{aiodns} provides a simple way for doing +asynchronous DNS resolutions with a synchronous looking interface by +using @url{https://github.com/saghul/pycares,pycares}.") + (license license:expat))) + (define-public python-furl (package (name "python-furl") @@ -246,14 +312,14 @@ C, yielding parse times that can be a thirtieth of the html5lib parse times.") (define-public python-pycurl (package (name "python-pycurl") - (version "7.43.0.1") + (version "7.43.0.2") (source (origin (method url-fetch) (uri (string-append "https://dl.bintray.com/pycurl/pycurl/pycurl-" version ".tar.gz")) (sha256 - (base32 "1ali1gjs9iliwjra7w0y5hwg79a2fd0f4ydvv6k27sgxpbr1n8s3")))) + (base32 "1915kb04k1j4y6k1dx1sgnbddxrl9r1n4q928if2lkrdm73xy30g")))) (build-system python-build-system) (arguments ;; The tests attempt to access external web servers, so we cannot run @@ -2025,6 +2091,9 @@ users' sessions over extended periods of time.") library for Python") (license license:asl2.0))) +(define-public python2-oauth2client + (package-with-python2 python-oauth2client)) + (define-public python-flask-oidc (package (name "python-flask-oidc") @@ -2511,3 +2580,74 @@ protocols, it supports features like HTTP keep-alive, reget, throttling and more.") (license license:lgpl2.1+))) +(define-public python-pycares + (package + (name "python-pycares") + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pycares" version)) + (sha256 + (base32 + "0h4fxw5drrhfyslzmfpljk0qnnpbhhb20hnnndzahhbwylyw1x1n")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;tests require internet access + (home-page "http://github.com/saghul/pycares") + (synopsis "Python interface for @code{c-ares}") + (description "@code{pycares} is a Python module which provides an +interface to @code{c-ares}, a C library that performs DNS requests and +name resolutions asynchronously.") + (license license:expat))) + +(define-public python-yarl + (package + (name "python-yarl") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "yarl" version)) + (sha256 + (base32 + "1s6z13g8vgxfkkqwhn6imnm7pl7ky9arv4jygnn6bcndcbidg7d6")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (propagated-inputs + `(("python-idna" ,python-idna) + ("python-multidict" ,python-multidict))) + (home-page "https://github.com/aio-libs/yarl/") + (synopsis "Yet another URL library") + (description "@code{yarl} module provides handy @code{URL} class +for URL parsing and changing.") + (license license:asl2.0))) + +(define-public python-google-api-client + (package + (name "python-google-api-client") + (version "1.6.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "google-api-python-client" version)) + (sha256 + (base32 + "1wpbbbxfpy9mwxdy3kn352cb590ladv574j1aa2l4grjdqw3ln05")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; tests require internet access + (native-inputs + `(("python-httplib2" ,python-httplib2) + ("python-six" ,python-six) + ("python-oauth2client" ,python-oauth2client) + ("python-uritemplate" ,python-uritemplate))) + (home-page "https://github.com/google/google-api-python-client") + (synopsis "Core Python library for accessing Google APIs") + (description "Python client library for Google's discovery based APIs") + (license license:asl2.0))) + +(define-public python2-google-api-client + (package-with-python2 python-google-api-client)) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 97b8ace869..55dc6bc739 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -30,7 +30,7 @@ ;;; Copyright © 2016, 2017 Stefan Reichör ;;; Copyright © 2016 Dylan Jeffers ;;; Copyright © 2016, 2017 Alex Vong -;;; Copyright © 2016, 2017 Arun Isaac +;;; Copyright © 2016, 2017, 2018 Arun Isaac ;;; Copyright © 2016, 2017 Julien Lepiller ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2016, 2017 Thomas Danckaert @@ -38,7 +38,7 @@ ;;; Copyright © 2017 Frederick M. Muriithi ;;; Copyright © 2017, 2018 Adriano Peluso ;;; Copyright © 2017 Ben Sturmfels -;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017, 2018 Mathieu Othacehe ;;; Copyright © 2017 José Miguel Sánchez García ;;; Copyright © 2017 Roel Janssen ;;; Copyright © 2017, 2018 Kei Kebreau @@ -51,6 +51,8 @@ ;;; Copyright © 2018 Mathieu Lirzin ;;; Copyright © 2018 Adam Massmann ;;; Copyright © 2016, 2018 Tomáš Čech +;;; Copyright © 2018 Nicolas Goaziou +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -141,7 +143,7 @@ (define-public python-2.7 (package - (name "python") + (name "python2") (version "2.7.14") (source (origin @@ -339,9 +341,19 @@ data types.") ;; Current 2.x version. (define-public python-2 python-2.7) +(define-public python2-called-python + ;; Both 2.x and 3.x used to be called "python". In commit + ;; a7714d42de2c3082f3609d1e63c83d703fb39cf9 (March 2018), we renamed the + ;; Python 2.x package to "python2". + (package + (inherit python-2) + (name "python") + (properties `((superseded . ,python-2))))) + (define-public python-3.6 (package (inherit python-2) - (version "3.6.3") + (name "python") + (version "3.6.5") (source (origin (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" @@ -354,7 +366,7 @@ data types.") (patch-flags '("-p0")) (sha256 (base32 - "1nl1raaagr4car787a2hmjv2dw6gqny53xfd6wisbgx4r5kxk9yd")) + "19l7inxm056jjw33zz97z0m02hsi7jnnx5kyb76abj5ml4xhad7l")) (snippet '(begin (for-each delete-file @@ -362,8 +374,75 @@ data types.") "Lib/ctypes/test/test_win32.py" ; fails on aarch64 "Lib/test/test_fcntl.py")) ; fails on aarch64 #t)))) - (arguments (substitute-keyword-arguments (package-arguments python-2) - ((#:tests? _) #t))) + (arguments + (substitute-keyword-arguments (package-arguments python-2) + ((#:tests? _) #t) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-timestamp-for-pyc-files + (lambda _ + ;; We set DETERMINISTIC_BUILD to only override the mtime when + ;; building with Guix, lest we break auto-compilation in + ;; environments. + (setenv "DETERMINISTIC_BUILD" "1") + (substitute* "Lib/py_compile.py" + (("source_stats\\['mtime'\\]") + "(1 if 'DETERMINISTIC_BUILD' in os.environ else source_stats['mtime'])")) + + ;; Use deterministic hashes for strings, bytes, and datetime + ;; objects. + (setenv "PYTHONHASHSEED" "0") + + ;; Reset mtime when validating bytecode header. + (substitute* "Lib/importlib/_bootstrap_external.py" + (("source_mtime = int\\(source_stats\\['mtime'\\]\\)") + "source_mtime = 1")) + #t)) + ;; These tests fail because of our change to the bytecode + ;; validation. They fail because expected exceptions do not get + ;; thrown. This seems to be no problem. + (add-after 'unpack 'disable-broken-bytecode-tests + (lambda _ + (substitute* "Lib/test/test_importlib/source/test_file_loader.py" + (("test_bad_marshal") + "disable_test_bad_marshal") + (("test_no_marshal") + "disable_test_no_marshal") + (("test_non_code_marshal") + "disable_test_non_code_marshal")) + #t)) + ;; Unset DETERMINISTIC_BUILD to allow for tests that check that + ;; stale pyc files are rebuilt. + (add-before 'check 'allow-non-deterministic-compilation + (lambda _ (unsetenv "DETERMINISTIC_BUILD") #t)) + ;; We need to rebuild all pyc files for three different + ;; optimization levels to replace all files that were not built + ;; deterministically. + + ;; FIXME: Without this phase we have close to 2000 files that + ;; differ across different builds of this package. With this phase + ;; there are about 500 files left that differ. + (add-after 'install 'rebuild-bytecode + (lambda* (#:key outputs #:allow-other-keys) + (setenv "DETERMINISTIC_BUILD" "1") + (let ((out (assoc-ref outputs "out"))) + (for-each + (lambda (opt) + (format #t "Compiling with optimization level: ~a\n" + (if (null? opt) "none" (car opt))) + (for-each (lambda (file) + (apply invoke + `(,(string-append out "/bin/python3") + ,@opt + "-m" "compileall" + "-f" ; force rebuild + ;; Don't build lib2to3, because it's Python 2 code. + ;; Also don't build obviously broken test code. + "-x" "(lib2to3|test/bad.*)" + ,file))) + (find-files out "\\.py$"))) + (list '() '("-O") '("-OO"))) + #t))))))) (native-search-paths (list (search-path-specification (variable "PYTHONPATH") @@ -382,7 +461,7 @@ data types.") (define-public python2-minimal (package (inherit python-2) - (name "python-minimal") + (name "python2-minimal") (outputs '("out")) ;; Keep zlib, which is used by 'pip' (via the 'zipimport' module), which @@ -1074,7 +1153,7 @@ from the Python interpreter, or as a small part of a larger application.") (modify-phases %standard-phases (replace 'check (lambda _ - (zero? (system* "py.test" "-v"))))))) + (invoke "py.test" "-v")))))) (native-inputs `(("python-py" ,python-py) ("python-pytest" ,python-pytest-bootstrap))) @@ -1091,6 +1170,16 @@ Python file, so it can be easily copied into your project.") (define-public python2-six (package-with-python2 python-six)) +(define-public python-six-bootstrap + (package + (inherit python-six) + (name "python-six-bootstrap") + (native-inputs `()) + (arguments `(#:tests? #f)))) + +(define-public python2-six-bootstrap + (package-with-python2 python-six-bootstrap)) + (define-public python-schedule (package (name "python-schedule") @@ -1645,6 +1734,15 @@ matching them against a list of media-ranges.") "Backport of @code{funcsigs} which was introduced in Python 3.3.") (license license:asl2.0))) +(define-public python2-funcsigs-bootstrap + (package + (inherit python2-funcsigs) + (name "python2-funcsigs-bootstrap") + (native-inputs `()) + (arguments + `(#:tests? #f + ,@(package-arguments python2-funcsigs))))) + (define-public python-pafy (package (name "python-pafy") @@ -1672,14 +1770,14 @@ matching them against a list of media-ranges.") (define-public python-py (package (name "python-py") - (version "1.4.34") + (version "1.5.3") (source (origin (method url-fetch) (uri (pypi-uri "py" version)) (sha256 (base32 - "1qyd5z0hv8ymxy84v5vig3vps2fvhcf4bdlksb3r03h549fmhb8g")))) + "10gq2lckvgwlk9w6yzijhzkarx44hsaknd0ypa08wlnpjnsgmj99")))) (build-system python-build-system) (arguments ;; FIXME: "ImportError: 'test' module incorrectly imported from @@ -1687,7 +1785,7 @@ matching them against a list of media-ranges.") ;; Expected '/tmp/guix-build-python-py-1.4.31.drv-0/py-1.4.31/py'. ;; Is this module globally installed?" '(#:tests? #f)) - (home-page "http://pylib.readthedocs.org/") + (home-page "http://pylib.readthedocs.io/") (synopsis "Python library for parsing, I/O, instrospection, and logging") (description "Py is a Python library for file name parsing, .ini file parsing, I/O, @@ -2501,6 +2599,36 @@ sources.") (propagated-inputs `(("python2-pytz" ,python2-pytz) ,@(package-propagated-inputs base)))))) +(define-public python-sphinx-gallery + (package + (name "python-sphinx-gallery") + (version "0.1.13") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/sphinx-gallery/sphinx-gallery" + "/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "03fs99mcb1r7qp0xixqv07vcz98sk21yq19ffdysi0infdcpzfkd")))) + (build-system python-build-system) + (arguments + ;; FIXME: Tests attempt to download , + ;; , and + ;; . + `(#:tests? #f)) + (native-inputs + `(("python-pytest-runner" ,python-pytest-runner))) + (home-page "https://sphinx-gallery.github.io/") + (synopsis "Generate an examples gallery automatically") + (description + "@code{sphinx_gallery} is a Sphinx extension that builds an HTML version +from any set of Python scripts and puts it into an examples gallery.") + (license license:bsd-3))) + +(define-public python2-sphinx-gallery + (package-with-python2 python-sphinx-gallery)) + (define-public python-sphinx-rtd-theme (package (name "python-sphinx-rtd-theme") @@ -2782,7 +2910,7 @@ between language specification and implementation aspects.") (define-public python-numpy (package (name "python-numpy") - (version "1.14.0") + (version "1.14.3") (source (origin (method url-fetch) @@ -2791,7 +2919,7 @@ between language specification and implementation aspects.") version "/numpy-" version ".tar.gz")) (sha256 (base32 - "1kh7y2ay21s9mcc11mq59g2f1yc75v152z2k2vlh0xmh9c9rjpf4")))) + "1yim2bxlycn4dhxmfxid6slplpmcb4ynhp411b37ahmsm2lwgkyg")))) (build-system python-build-system) (inputs `(("openblas" ,openblas) @@ -3232,7 +3360,8 @@ that client code uses to construct the grammar directly in Python code.") ;; input since it would create a circular dependency: Extend the ;; test for Python 3, where it is already dropped, to Python 2. (substitute* "numpydoc/tests/test_plot_directive.py" - (("3") "2")))))) + (("3") "2")) + #t)))) (build-system python-build-system) (propagated-inputs `(("python-sphinx" ,python-sphinx))) @@ -3251,14 +3380,14 @@ that client code uses to construct the grammar directly in Python code.") (define-public python-numexpr (package (name "python-numexpr") - (version "2.6.4") + (version "2.6.5") (source (origin (method url-fetch) (uri (pypi-uri "numexpr" version)) (sha256 (base32 - "1kpnbb5d5n927113zccfibn16z7gidjipyac6kbbhzs0lnizkgph")))) + "1frnbcwmsi312154x274xl28xazr1k8vjby83fwyla2n10a81bgq")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; no tests included (propagated-inputs @@ -3342,17 +3471,18 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc. (define-public python-matplotlib (package (name "python-matplotlib") - (version "2.0.2") + (version "2.2.2") (source (origin (method url-fetch) (uri (pypi-uri "matplotlib" version)) (sha256 (base32 - "1w8z2a1l7s72p1byfz7g03wqhygqxi8w82619dqb3a1lm97w9yqg")))) + "1s6dv225w3k4fv52h8lfjc7qq5y56i9755ayx0mz48ddi99fzisd")))) (build-system python-build-system) (propagated-inputs ; the following packages are all needed at run time `(("python-cycler" ,python-cycler) + ("python-kiwisolver" ,python-kiwisolver) ("python-pyparsing" ,python-pyparsing) ("python-pygobject" ,python-pygobject) ("gobject-introspection" ,gobject-introspection) @@ -3432,6 +3562,8 @@ toolkits.") ;; of those automatically rewritten by package-with-python2. (propagated-inputs `(("python2-pycairo" ,python2-pycairo) + ("python2-backports-functools-lru-cache" + ,python2-backports-functools-lru-cache) ("python2-functools32" ,python2-functools32) ("python2-pygobject-2" ,python2-pygobject-2) ("python2-subprocess32" ,python2-subprocess32) @@ -3448,7 +3580,8 @@ toolkits.") (native-inputs `(("python-matplotlib" ,python-matplotlib) ("python-colorspacious" ,python-colorspacious) - ("python-sphinx" ,python-sphinx) + ("python-sphinx" ,python-sphinx-1.6) + ("python-sphinx-gallery" ,python-sphinx-gallery) ("python-numpydoc" ,python-numpydoc) ("python-ipython" ,python-ipython) ("python-mock" ,python-mock) @@ -3471,7 +3604,7 @@ toolkits.") (("latex_elements\\['pointsize'\\] = '11pt'" match) ;; insert at a point where latex_elements{} is defined: (string-append match "\nlatex_elements['papersize'] = 'a4paper'"))) - (zero? (system* "python" "make.py" "html" "latex" "texinfo")))) + (invoke "make" "SPHINXBUILD=sphinx-build" "html" "latex" "texinfo"))) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((data (string-append (assoc-ref outputs "out") "/share")) @@ -3605,14 +3738,14 @@ functions.") (define-public python-scipy (package (name "python-scipy") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (pypi-uri "scipy" version)) (sha256 (base32 - "043djb3vyk6qripmyw30jhl0g8qza0fmar6wck10iv79l08izsl7")))) + "1fj0r7bg0cfk5clvl57ga06y9bfh05iwlv1dqqs1r6pd89wccfc7")))) (build-system python-build-system) (propagated-inputs `(("python-numpy" ,python-numpy) @@ -3750,6 +3883,27 @@ Python code against some of the style conventions in (define-public python2-pycodestyle (package-with-python2 python-pycodestyle)) +(define-public python-multidict + (package + (name "python-multidict") + (version "4.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "multidict" version)) + (sha256 + (base32 + "1vf5bq8hn5a9rvhr5v4fwbmarfsp35hhr8gs74kqfijy34j2f194")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (home-page "https://github.com/aio-libs/multidict/") + (synopsis "Multidict implementation") + (description "Multidict is dict-like collection of key-value pairs +where key might be occurred more than once in the container.") + (license license:asl2.0))) + (define-public python-orderedmultidict (package (name "python-orderedmultidict") @@ -4908,14 +5062,14 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.") (define-public python-netifaces (package (name "python-netifaces") - (version "0.10.6") + (version "0.10.7") (source (origin (method url-fetch) (uri (pypi-uri "netifaces" version)) (sha256 (base32 - "1q7bi5k2r955rlcpspx4salvkkpk28jky67fjbpz2dkdycisak8c")))) + "1gccklrcplbbqh81g1mdgpa5y8na7kkf29cq2ka3f5a2fp5hyndx")))) (build-system python-build-system) (home-page "https://github.com/al45tair/netifaces") (synopsis @@ -5099,6 +5253,29 @@ more advanced mathematics.") (define-public python2-mpmath (package-with-python2 python-mpmath)) +(define-public python-bigfloat + (package + (name "python-bigfloat") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bigfloat" version)) + (sha256 + (base32 "0xd7q4l7v0f463diznjv4k9wlaks80pn9drdqmfifi7zx8qvybi6")))) + (build-system python-build-system) + (inputs + `(("mpfr" ,mpfr))) + (home-page "https://github.com/mdickinson/bigfloat") + (synopsis "Arbitrary precision floating-point arithmetic for Python") + (description + "This packages provides a Python interface to the MPFR library for +multiprecision arithmetic.") + (license license:lgpl3+))) + +(define-public python2-bigfloat + (package-with-python2 python-bigfloat)) + (define-public python-sympy (package (name "python-sympy") @@ -5315,13 +5492,14 @@ so it might be a tiny bit slower.") (modify-phases %standard-phases (replace 'build (lambda _ - (zero? (system* "python" "waf-light" "configure" "build")))) + (invoke "python" "waf-light" "configure" "build"))) (replace 'check (lambda _ - (zero? (system* "python" "waf" "--version")))) + (invoke "python" "waf" "--version"))) (replace 'install (lambda _ - (copy-file "waf" %output)))))) + (copy-file "waf" %output) + #t))))) (home-page "https://waf.io/") (synopsis "Python-based build system") (description @@ -6128,14 +6306,14 @@ designed to efficiently cope with extremely large amounts of data.") (define-public python-pyasn1 (package (name "python-pyasn1") - (version "0.2.3") + (version "0.4.2") (source (origin (method url-fetch) (uri (pypi-uri "pyasn1" version)) (sha256 (base32 - "1b86yx23c1x74clai05a5ma8c8nfmhlx3j1mxq0ff657i2ylx33k")))) + "05bxnr4wmrg62m4qr1pg1p3z7bhwrv74jll3k42pgxwl36kv0n6j")))) (build-system python-build-system) (home-page "http://pyasn1.sourceforge.net/") (synopsis "ASN.1 types and codecs") @@ -6250,6 +6428,26 @@ specification.") (define-public python2-idna (package-with-python2 python-idna)) +(define-public python-idna-ssl + (package + (name "python-idna-ssl") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "idna-ssl" version)) + (sha256 + (base32 + "0ydrc8hpg9mdr5hqq1lqfsfbn6sjq69slwpfrnlrm3k0phqg14qj")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;circular dependency with python-aiohttp + (home-page "https://github.com/aio-libs/idna-ssl") + (synopsis "Patch @code{ssl.match_hostname} for Unicode(idna) domains support") + (description "Patch @code{ssl.match_hostname} for Unicode(idna) +domains support.") + (license license:expat))) + (define-public python-pretend (package (name "python-pretend") @@ -6805,6 +7003,12 @@ Jupyter kernels such as IJulia and IRKernel.") ("python-jupyter-console" ,python-jupyter-console) ("python-nbconvert" ,python-nbconvert) ("python-notebook" ,python-notebook))) + + (native-search-paths + (list (search-path-specification + (variable "JUPYTER_PATH") + (files '("share/jupyter"))))) + (home-page "http://jupyter.org") (synopsis "Web application for interactive documents") (description @@ -7495,14 +7699,14 @@ library as well as on the command line.") (define-public python-pluggy (package (name "python-pluggy") - (version "0.3.1") + (version "0.6.0") (source (origin (method url-fetch) (uri (pypi-uri "pluggy" version)) (sha256 (base32 - "18qfzfm40bgx672lkg8q9x5hdh76n7vax99aank7vh2nw21wg70m")))) + "1zqckndfn85l1cd8pndw212zg1bq9fkg1nnj32kp2mppppsyg2kz")))) (build-system python-build-system) (synopsis "Plugin and hook calling mechanism for Python") (description "Pluggy is an extraction of the plugin manager as used by @@ -10414,6 +10618,10 @@ a file-like object from which an arbitrarly-sized key can be read.") `(("python-lxml" ,python-lxml) ; for SVG output ("python-pillow" ,python-pillow) ; for PNG output ("python-six" ,python-six))) + (inputs + `(;; The setup.cfg file needs to be used, and support for this requires + ;; at least version 30.3.0 of setuptools + ("python-setuptools" ,python-setuptools))) (home-page "https://github.com/lincolnloop/python-qrcode") (synopsis "QR Code image generator") (description "This package provides a pure Python QR Code generator @@ -10479,14 +10687,14 @@ convering text with ANSI color codes to HTML or LaTeX.") (define-public python-ddt (package (name "python-ddt") - (version "1.1.2") + (version "1.1.3") (source (origin (method url-fetch) (uri (pypi-uri "ddt" version)) (sha256 (base32 - "1wqkmz0yhanly8sif5vb02p2iik7mwxwph8ywph2kbb8ws8szdpx")))) + "1lw17420iimhghkgzgax85nn8d1an2d6k2cfvb7j5kwn2dqlr1vk")))) (build-system python-build-system) (native-inputs `(("python-mock" ,python-mock) @@ -10691,19 +10899,21 @@ and bit flag values.") (define-public python-attrs (package (name "python-attrs") - (version "17.2.0") + (version "17.4.0") (source (origin (method url-fetch) (uri (pypi-uri "attrs" version)) (sha256 (base32 - "04gx08ikpk26wnq22f7l42gapcvk8iz1512r927k6sadz6cinkax")))) + "1jafnn1kzd6qhxgprhx6y6ik1r5m2rilx25syzcmq03azp660y8w")))) (build-system python-build-system) (native-inputs - `(("python-pytest" ,python-pytest) + `(("python-coverage" ,python-coverage) ("python-hypothesis" ,python-hypothesis) - ("python-zope-interface" ,python-zope-interface) - ("python-six" ,python-six))) + ("python-pytest" ,python-pytest) + ("python-six" ,python-six) + ("python-sphinx" ,python-sphinx) + ("python-zope-interface" ,python-zope-interface))) (home-page "https://github.com/python-attrs/attrs/") (synopsis "Attributes without boilerplate") (description "@code{attrs} is a Python package with class decorators that @@ -10714,6 +10924,16 @@ protocols.") (define-public python2-attrs (package-with-python2 python-attrs)) +(define-public python-attrs-bootstrap + (package + (inherit python-attrs) + (name "python-attrs-bootstrap") + (native-inputs `()) + (arguments `(#:tests? #f)))) + +(define-public python2-attrs-bootstrap + (package-with-python2 python-attrs-bootstrap)) + (define-public python2-cliapp (package (name "python2-cliapp") @@ -13088,6 +13308,31 @@ file system events on Linux.") "0svc9nla3b9145d6b7fb9dizx412l3difzqw0ilh9lz52nsixw8j")) (file-name (string-append name "-" version ".tar.gz")))))) +(define-public python-more-itertools + (package + (name "python-more-itertools") + (version "4.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "more-itertools" version)) + (sha256 + (base32 + "0i3ch700g5fyjp692gprlnzbysl8w0sa2vijbp3s40drvk67xkn9")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six-bootstrap))) + (home-page "https://github.com/erikrose/more-itertools") + (synopsis "More routines for operating on iterables, beyond itertools") + (description "Python's built-in @code{itertools} module implements a +number of iterator building blocks inspired by constructs from APL, Haskell, +and SML. @code{more-itertools} includes additional building blocks for +working with iterables.") + (license license:expat))) + +(define-public python2-more-itertools + (package-with-python2 python-more-itertools)) + (define-public python-latexcodec (package (name "python-latexcodec") @@ -13174,3 +13419,241 @@ Parso is also able to list multiple syntax errors in your Python file.") (define-public python2-parso (package-with-python2 python-parso)) + +(define-public python-async-generator + (package + (name "python-async-generator") + (version "1.9") + (source + (origin + (method url-fetch) + (uri (pypi-uri "async_generator" version)) + (sha256 + (base32 + "0wc3hidz1q85cja93k5pzybn0fprfnqyrv4qlkdqdzklc5f4dmdp")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/python-trio/async_generator") + (synopsis "Async generators and context managers for Python 3.5+") + (description "@code{async_generator} back-ports Python 3.6's native async +generators and Python 3.7's context managers into Python 3.5.") + ;; Dual licensed. + (license (list license:expat license:asl2.0)))) + +(define-public python-async-timeout + (package + (name "python-async-timeout") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "async-timeout" version)) + (sha256 + (base32 + "1l3kg062m02mph6rf9rdv8r5c5n356clxa6b6mrn0i77vk9g9kq0")))) + (build-system python-build-system) + (home-page "https://github.com/aio-libs/async_timeout/") + (synopsis "Timeout context manager for asyncio programs") + (description "@code{async-timeout} provides a timeout timeout context +manager compatible with @code{asyncio}.") + (license license:asl2.0))) + +(define-public python-glob2 + (package + (name "python-glob2") + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/miracle2k/python-glob2/archive/" + version + ".tar.gz")) + (sha256 + (base32 + "0ja168f0dz4kbz4m06dm0rd3acaypk6hjx2km541pw22y9s40mag")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system python-build-system) + (home-page "https://github.com/miracle2k/python-glob2/") + (synopsis "Extended Version of the python buildin glob module") + (description "This is an extended version of the Python +@url{http://docs.python.org/library/glob.html, built-in glob module} which +adds: + +@itemize +@item The ability to capture the text matched by glob patterns, and return +those matches alongside the file names. +@item A recursive @code{**} globbing syntax, akin for example to the +@code{globstar} option of Bash. +@item The ability to replace the file system functions used, in order to glob +on virtual file systems. +@item Compatible with Python 2 and Python 3 (tested with 3.3). +@end itemize + +Glob2 currently based on the glob code from Python 3.3.1.") + (license license:bsd-2))) + +(define-public python2-glob2 + (package-with-python2 python-glob2)) + +(define-public python-gipc + (package + (name "python-gipc") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "gipc" version ".zip")) + (sha256 + (base32 + "0pd9by719qh882hqs6xpby61sn1x5h98hms5p2p8yqnycrf1s0h2")))) + (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) + (propagated-inputs + `(("python-gevent" ,python-gevent))) + (home-page "http://gehrcke.de/gipc") + (synopsis "Child process management in the context of gevent") + (description "Usage of Python's multiprocessing package in a +gevent-powered application may raise problems. With @code{gipc}, +process-based child processes can safely be created anywhere within a +gevent-powered application.") + (license license:expat))) + +(define-public python2-gipc + (package-with-python2 python-gipc)) + +(define-public python-fusepy + (package + (name "python-fusepy") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fusepy" version)) + (sha256 + (base32 + "0v5grm4zyf58hsplwsxfbihddw95lz9w8cy3rpzbyha287swgx8h")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'set-library-file-name + (lambda* (#:key inputs #:allow-other-keys) + (let ((fuse (assoc-ref inputs "fuse"))) + (substitute* "fuse.py" + (("find_library\\('fuse'\\)") + (string-append "'" fuse "/lib/libfuse.so'"))) + #t)))))) + (propagated-inputs + `(("fuse" ,fuse))) + (home-page "https://github.com/fusepy/fusepy") + (synopsis "Simple ctypes bindings for FUSE") + (description "Python module that provides a simple interface to FUSE and +MacFUSE. The binding is created using the standard @code{ctypes} library.") + (license license:isc))) + +(define-public python2-fusepy + (package-with-python2 python-fusepy)) + +(define-public python2-gdrivefs + (package + (name "python2-gdrivefs") + (version "0.14.9") + (source + (origin + (method url-fetch) + (uri (pypi-uri "gdrivefs" version)) + (sha256 + (base32 + "0v9sp2cfg4ki3wagkwf3rnfpjhvgf845anz3757il9z95yvvcvb7")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-setup-py + (lambda _ + ;; Update requirements from dependency==version + ;; to dependency>=version + (substitute* "gdrivefs/resources/requirements.txt" + (("==") ">=")) + #t))))) + (native-inputs + `(("python2-gipc" ,python2-gipc) + ("python2-gevent" ,python2-gevent) + ("python2-greenlet" ,python2-greenlet) + ("python2-httplib2" ,python2-httplib2) + ("python2-uritemplate" ,python2-uritemplate) + ("python2-oauth2client" ,python2-oauth2client) + ("python2-six" ,python2-six))) + (propagated-inputs + `(("python2-dateutil" ,python2-dateutil) + ("python2-fusepy" ,python2-fusepy) + ("python2-google-api-client" ,python2-google-api-client))) + (home-page "https://github.com/dsoprea/GDriveFS") + (synopsis "Mount Google Drive as a local file system") + (description "@code{gdrivefs} provides a FUSE wrapper for Google Drive +under Python 2.7.") + (license license:gpl2))) + +(define-public pybind11 + (package + (name "pybind11") + (version "2.2.3") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/pybind/pybind11/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "1sj0x4fwsbnwdai5sxpw1l1vh8m5hpbkfk3zanxcbcgs39jpnfrs")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system cmake-build-system) + (native-inputs + `(("python" ,python) + ("python-pytest" ,python-pytest))) + (arguments + `(#:test-target "check")) + (home-page "https://github.com/pybind/pybind11/") + (synopsis "Seamless operability between C++11 and Python") + (description "pybind11 is a lightweight header-only library that exposes +C++ types in Python and vice versa, mainly to create Python bindings of +existing C++ code. Its goals and syntax are similar to the excellent +Boost.Python library by David Abrahams: to minimize boilerplate code in +traditional extension modules by inferring type information using compile-time +introspection.") + (license license:expat))) + +(define-public python-fasteners + (package + (name "python-fasteners") + (version "0.14.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fasteners" version)) + (sha256 + (base32 + "063y20kx01ihbz2mziapmjxi2cd0dq48jzg587xdsdp07xvpcz22")))) + (build-system python-build-system) + (propagated-inputs + `(("python-monotonic" ,python-monotonic) + ("python-six" ,python-six) + ("python-testtools" ,python-testtools))) + (home-page "https://github.com/harlowja/fasteners") + (synopsis "Python package that provides useful locks") + (description + "This package provides a Python program that provides following locks: + +@itemize +@item Locking decorator +@item Reader-writer locks +@item Inter-process locks +@item Generic helpers +@end itemize\n") + (license license:asl2.0))) + +(define-public python2-fasteners + (package-with-python2 python-fasteners)) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 08db0a7e67..7d323cd2d5 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Nils Gillmann ;;; Copyright © 2016 Thomas Danckaert -;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017, 2018 Ricardo Wurmus ;;; Copyright © 2017 Quiliro ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Nicolas Goaziou @@ -145,7 +145,8 @@ system, and the core design of Django is reused in Grantlee.") "qtcanvas3d/examples/canvas3d/3rdparty")) ;; Tests depend on this example, which depends on the 3rd party code. (substitute* "qtmultimedia/examples/multimedia/multimedia.pro" - (("spectrum") "#")))))) + (("spectrum") "#")) + #t)))) (build-system gnu-build-system) (propagated-inputs `(("mesa" ,mesa))) @@ -185,7 +186,7 @@ system, and the core design of Django is reused in Grantlee.") ("libxslt" ,libxslt) ("libxtst" ,libxtst) ("mtdev" ,mtdev) - ("mysql" ,mysql) + ("mariadb" ,mariadb) ("nss" ,nss) ("openssl" ,openssl) ("postgresql" ,postgresql) @@ -287,7 +288,8 @@ developers using C++ or QML, a CSS & JavaScript like language.") (modules '((guix build utils))) (snippet ;; Remove webkit module, which is not built. - '(delete-file-recursively "src/3rdparty/webkit")))) + '(begin (delete-file-recursively "src/3rdparty/webkit") + #t)))) (inputs `(,@(alist-delete "harfbuzz" (alist-delete "libjpeg" (package-inputs qt))) ("libjepg" ,libjpeg-8) @@ -370,16 +372,16 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtbase (package (name "qtbase") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "1kq422vb2zaic099pgzwk7c0qzgc3xap6qahw5vklrq0mgivvrk9")) + "0rny87ypnkkvyp9p76nim77v6np0cdf1dbjfmcilklzphkdlcvpd")) ;; Use TZDIR to avoid depending on package "tzdata". (patches (search-patches "qtbase-use-TZDIR.patch")) (modules '((guix build utils))) @@ -390,7 +392,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (lambda (dir) (delete-file-recursively (string-append "src/3rdparty/" dir))) (list "double-conversion" "freetype" "harfbuzz-ng" - "libpng" "libjpeg" "pcre2" "sqlite" "xcb" + "libpng" "libjpeg" "pcre2" "xcb" "xkbcommon" "zlib")) #t)))) (build-system gnu-build-system) @@ -426,13 +428,13 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("libxslt" ,libxslt) ("libxtst" ,libxtst) ("mtdev" ,mtdev) - ("mysql" ,mysql) + ("mariadb" ,mariadb) ("nss" ,nss) ("openssl" ,openssl) ("pcre2" ,pcre2) ("postgresql" ,postgresql) ("pulseaudio" ,pulseaudio) - ("sqlite" ,sqlite) + ;("sqlite" ,sqlite) ("unixodbc" ,unixodbc) ("xcb-util" ,xcb-util) ("xcb-util-image" ,xcb-util-image) @@ -475,42 +477,55 @@ developers using C++ or QML, a CSS & JavaScript like language.") (("NO_DEFAULT_PATH") "")) ;; do not pass "--enable-fast-install", which makes the ;; configure process fail - (zero? (system* - "./configure" - "-verbose" - "-prefix" out - "-docdir" (string-append out "/share/doc/qt5") - "-headerdir" (string-append out "/include/qt5") - "-archdatadir" (string-append out "/lib/qt5") - "-datadir" (string-append out "/share/qt5") - "-examplesdir" (string-append - out "/share/doc/qt5/examples") - "-opensource" - "-confirm-license" - ;; Do not build examples; if desired, these could go - ;; into a separate output, but for the time being, we - ;; prefer to save the space and build time. - "-no-compile-examples" - ;; Most "-system-..." are automatic, but some use - ;; the bundled copy by default. - "-system-sqlite" - "-system-harfbuzz" - "-system-pcre" - ;; explicitly link with openssl instead of dlopening it - "-openssl-linked" - ;; explicitly link with dbus instead of dlopening it - "-dbus-linked" - ;; don't use the precompiled headers - "-no-pch" - ;; drop special machine instructions that do not have - ;; runtime detection - ,@(if (string-prefix? "x86_64" - (or (%current-target-system) - (%current-system))) - '() - '("-no-sse2")) - "-no-mips_dsp" - "-no-mips_dspr2"))))) + (invoke + "./configure" + "-verbose" + "-prefix" out + "-docdir" (string-append out "/share/doc/qt5") + "-headerdir" (string-append out "/include/qt5") + "-archdatadir" (string-append out "/lib/qt5") + "-datadir" (string-append out "/share/qt5") + "-examplesdir" (string-append + out "/share/doc/qt5/examples") + "-opensource" + "-confirm-license" + + ;; These features require higher versions of Linux than the + ;; minimum version of the glibc. See + ;; src/corelib/global/minimum-linux_p.h. By disabling these + ;; features Qt5 applications can be used on the oldest + ;; kernels that the glibc supports, including the RHEL6 + ;; (2.6.32) and RHEL7 (3.10) kernels. + "-no-feature-getentropy" ; requires Linux 3.17 + "-no-feature-renameat2" ; requires Linux 3.16 + + ;; Do not build examples; if desired, these could go + ;; into a separate output, but for the time being, we + ;; prefer to save the space and build time. + "-no-compile-examples" + ;; Most "-system-..." are automatic, but some use + ;; the bundled copy by default. + ;; System sqlite fails on 5.10+ + ;;.obj/qsql_sqlite.o: In function `QSQLiteResultPrivate::initColumns(bool)': + ;;qsql_sqlite.cpp:(.text+0x190c): undefined reference to `sqlite3_column_table_name16' + ;"-system-sqlite" + "-system-harfbuzz" + "-system-pcre" + ;; explicitly link with openssl instead of dlopening it + "-openssl-linked" + ;; explicitly link with dbus instead of dlopening it + "-dbus-linked" + ;; don't use the precompiled headers + "-no-pch" + ;; drop special machine instructions that do not have + ;; runtime detection + ,@(if (string-prefix? "x86_64" + (or (%current-target-system) + (%current-system))) + '() + '("-no-sse2")) + "-no-mips_dsp" + "-no-mips_dspr2")))) (add-after 'install 'patch-mkspecs (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -600,16 +615,16 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtsvg (package (inherit qtbase) (name "qtsvg") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0yh3an9rc7fh013cw3bm318ap6428icsmnj38hhg1w6lpwr2gwm2")))) + "0m0zglp0m5gv75ivma6l3hm8brb0cf44dhbc6lqwfdwacxhgx3jb")))) (propagated-inputs `()) (native-inputs `(("perl" ,perl))) (inputs @@ -662,7 +677,7 @@ HostData=lib/qt5 (lambda* (#:key inputs outputs #:allow-other-keys) ;; Valid QT_BUILD_PARTS variables are: ;; libs tools tests examples demos docs translations - (zero? (system* "qmake" "QT_BUILD_PARTS = libs tools tests")))) + (invoke "qmake" "QT_BUILD_PARTS = libs tools tests"))) (add-before 'check 'set-display (lambda _ ;; make Qt render "offscreen", required for tests @@ -675,19 +690,21 @@ HostData=lib/qt5 (define-public qtimageformats (package (inherit qtsvg) (name "qtimageformats") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "1nfxvf96wh1smdmcsk4m9f7zg69fgp844f8772qpv6v4m20p1qb9")) + "0w0yy7zzln3v7dm7ksjxkzhq8r0a9nwk823wv4f1x7vsa3pnyh2q")) (modules '((guix build utils))) (snippet - '(delete-file-recursively "src/3rdparty")))) + '(begin + (delete-file-recursively "src/3rdparty") + #t)))) (native-inputs `()) (inputs `(("jasper" ,jasper) @@ -704,16 +721,16 @@ support for MNG, TGA, TIFF and WBMP image formats."))) (define-public qtx11extras (package (inherit qtsvg) (name "qtx11extras") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "1a125fi7lbxfps207i12jammm4cjbiawmp4sqa3bxqah8p21i6w7")))) + "13vbx61wcd8pnpgk3j5r665pm03s7jp2s98apvc6fhp1njlr0rhi")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -728,16 +745,16 @@ from within Qt 5."))) (define-public qtxmlpatterns (package (inherit qtsvg) (name "qtxmlpatterns") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0ybz0i3wblvrm958s9ykp3a79bakjbb7k74q71mqaaswkv9imxgs")))) + "13nj2pa706sy874bqbv7y94ypicr4k09x6n2jyxkw93flb5pi8qr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -757,16 +774,16 @@ xmlpatternsvalidator."))) (define-public qtdeclarative (package (inherit qtsvg) (name "qtdeclarative") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0r9dhfc6qmxlzn2v9r6z6n2mcq6pv1nmyh91g9hcdlkx40xqlqyw")))) + "1h2pbyr7dnak4q96373xpa6gk6rl528rnqima8xnvhdi2y5kgagf")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -789,27 +806,16 @@ with JavaScript and C++."))) (define-public qtconnectivity (package (inherit qtsvg) (name "qtconnectivity") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "12qckqz6ldvn1czkkigadmgl07yk4gs74hy4ifh4hmpm7cv519yv")))) - (arguments - (substitute-keyword-arguments (package-arguments qtsvg) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'disable-failing-tests - ;; this test fails on armhf and aarch64 - (lambda _ - (substitute* "tests/auto/qndefnfcsmartposterrecord/tst_qndefnfcsmartposterrecord.cpp" - (("QCOMPARE\\(record.action\\(\\), QNdefNfcSmartPosterRecord::UnspecifiedAction") - "//QCOMPARE(record.action(), QNdefNfcSmartPosterRecord::UnspecifiedAction")) - #t)))))) + "0wqq5q5saf007aphvpn5pvj6l0qp0z7wxvfba6v9iq5ylyqm6bnd")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -824,16 +830,16 @@ with Bluetooth and NFC."))) (define-public qtwebsockets (package (inherit qtsvg) (name "qtwebsockets") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "00786d9m8skj68n5x9d8151zmmskx7ckhgcdd08hs9nly04h55vj")))) + "1drr6nxxbkwpmz39bhyfmmsqjhy11bj3w1nc3q9dwhpcbf04an3x")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -851,16 +857,16 @@ consume data received from the server, or both."))) (define-public qtsensors (package (inherit qtsvg) (name "qtsensors") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0n6lkkn7c9x8vcplmfvkx7jq6najh2mrwnfb3blrmkmpash3lgvr")))) + "1az22rdkpc1m44qb3dyh7cpiprplkvynzjr629ai05i8ngbfdi0g")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:parallel-tests? _ #f) #f) ; can lead to race condition @@ -884,16 +890,16 @@ recognition API for devices."))) (define-public qtmultimedia (package (inherit qtsvg) (name "qtmultimedia") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0x2f3vpax7rq0lxnncbp5b248bxdicrwn8hv4hsas2g2283s0lj9")) + "0g4x1w251imq58zp1px6yschwj6icsxzwl3fy7pjfbgd27qjhlzg")) (modules '((guix build utils))) (snippet '(begin @@ -901,7 +907,8 @@ recognition API for devices."))) "examples/multimedia/spectrum/3rdparty") ;; We also prevent the spectrum example from being built. (substitute* "examples/multimedia/multimedia.pro" - (("spectrum") "#")))))) + (("spectrum") "#")) + #t)))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -909,9 +916,9 @@ recognition API for devices."))) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* "qmake" "QT_BUILD_PARTS = libs tools tests" - (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib -Wl,-rpath,") - (string-append "PREFIX=" out)))))))) + (invoke "qmake" "QT_BUILD_PARTS = libs tools tests" + (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib -Wl,-rpath,") + (string-append "PREFIX=" out))))))) ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl) @@ -934,20 +941,22 @@ set of plugins for interacting with pulseaudio and GStreamer."))) (define-public qtwayland (package (inherit qtsvg) (name "qtwayland") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0x4q17k23akf14i3pyllr96s8lvprk1x006wp0mi5rhk4199cx1z")) + "09s1ckqj0cgjmmi7jylsf039vgzlq7i9rr4swb590fkz427lx0b8")) (modules '((guix build utils))) (snippet ;; The examples try to build and cause the build to fail - '(delete-file-recursively "examples")))) + '(begin + (delete-file-recursively "examples") + #t)))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -984,16 +993,16 @@ compositor libraries."))) (define-public qtserialport (package (inherit qtsvg) (name "qtserialport") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "172i5cpqnk0c3m0hg08hgj15qvsyd1xvw9yf2dqicg3l10lqwg8c")))) + "1cbf1jsginp5p3y17cyb6dfhsafxal0bn9pya6aybz0q799zgvl5")))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase) @@ -1018,16 +1027,16 @@ interacting with serial ports from within Qt."))) (define-public qtserialbus (package (inherit qtsvg) (name "qtserialbus") - (version "5.9.5") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0gz5xsskv02yy078yffxyn8rdlklf4rsgnqrziyz5ywxwdh96gn5")))) + "0r3crk7gw0xs6wk1gvw2k8r9s9vam3sfwrji1njhswavii9fbp85")))) (inputs `(("qtbase" ,qtbase) ("qtserialport" ,qtserialport))) @@ -1039,16 +1048,16 @@ and others."))) (define-public qtwebchannel (package (inherit qtsvg) (name "qtwebchannel") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "1acs0fa5rxm3cir0lydc9a8685qagf1786vkssv51wk3v9r3lc4h")))) + "05fa5pwvk24cjp8m6pbw3ma95vnls762crpjdgvygfk0h8xilxmh")))) (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative) @@ -1063,16 +1072,16 @@ popular web engines, Qt WebKit 2 and Qt WebEngine."))) (define-public qtlocation (package (inherit qtsvg) (name "qtlocation") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "186jzv19v674n8jmm13v5xwv211lygih5657rlvbhc1s4jq6iv9p")))) + "074cjqhr14mqlsqj9rzagzdcqnayyichp31lq02k05q07wg93xi8")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1093,16 +1102,16 @@ positioning and geolocation plugins."))) (define-public qttools (package (inherit qtsvg) (name "qttools") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "11vfk6c8snsqwqj1xk53c0h2mkqr4gfa9kinp8py56x7sn15galm")))) + "1nb77bfs63nyy0wkhsci9qbqmahncy3sdcrwj4qr1prc4y2cm4wx")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1120,16 +1129,16 @@ that helps in Qt development."))) (define-public qtscript (package (inherit qtsvg) (name "qtscript") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0lz0iv1baah7cxrpyiqzqp4fxxf75i21qd06ha7r5d80hq3xlia0")) + "1ib8a5gsxarbm2j94j5d097ly3ap4snqkx2imz3sl6xk6gknm4i5")) (patches (search-patches "qtscript-disable-tests.patch")))) (native-inputs `(("perl" ,perl) @@ -1144,16 +1153,16 @@ ECMAScript and Qt."))) (define-public qtquickcontrols (package (inherit qtsvg) (name "qtquickcontrols") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "12yrmv6afjbd1fw3r8zjdrbq5l7cy7k5bxcyiv1m97gykfh0b8hn")))) + "01ziibf4afdhb5b3gfci8maprmviqwhdvma2z1jlq2ck45cpsqi6")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1168,16 +1177,16 @@ can be used to build complete interfaces in Qt Quick."))) (define-public qtquickcontrols2 (package (inherit qtsvg) (name "qtquickcontrols2") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0334ayansm743kf113rs3k9hi9qb6giscfx9xig3y1z7asisfa0m")))) + "1hsa8n4dlqpyz9xq2kq1hsxrxsjc7ywzzfhqijylgzzclvlqgb7y")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1193,16 +1202,16 @@ not available."))) (define-public qtgraphicaleffects (package (inherit qtsvg) (name "qtgraphicaleffects") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "1vxq4j7cb5cya1g234rxhfb361n45gp8c70gj8pc03njswkm7xwp")))) + "0xzr4421w7idlgndxnd68wwc2asabycjiskkyl1f8nwqv34lcy3j")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1226,14 +1235,16 @@ coloring, and many more."))) (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 "0zwch9vn17f3bpy300jcfxx6cx9qymk5j7khx0x9k1xqid4166c3")) (modules '((guix build utils))) (snippet - '(delete-file-recursively "tools/opengldummy/3rdparty")))) + '(begin + (delete-file-recursively "tools/opengldummy/3rdparty") + #t)))) (native-inputs `()) (inputs `(("qtbase" ,qtbase) @@ -1246,16 +1257,16 @@ backend for QtQuick scene graph.") (define-public qtgamepad (package (inherit qtsvg) (name "qtgamepad") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "1ci6aapq0i8qbzkn9xxvxn1n81z3y28yrlyzw0anqzj9qp97cl6f")))) + "0g52c03gdgz57h7szdxvc5hdy45l7q7m29yfzhwqc57hwdfl98bi")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) @@ -1276,23 +1287,24 @@ and mobile applications targeting TV-like form factors."))) (define-public qtscxml (package (inherit qtsvg) (name "qtscxml") - (version "5.9.5") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0knp328cinawz6xbhf9wd6h6gbwp74rb5cpmlr8gv3g5a7fjlsh1")) + "00wb89ris8fyivhz9qpqn72mzpkh6mqdjss82j3q10g3c142072k")) (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "tests/3rdparty") ;; the scion test refers to the bundled 3rd party test code. (substitute* "tests/auto/auto.pro" - (("scion") "#")))))) + (("scion") "#")) + #t)))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1306,16 +1318,16 @@ also contains functionality to support data models and executable content."))) (define-public qtpurchasing (package (inherit qtsvg) (name "qtpurchasing") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "08sk8vw16pa1qv36rfr9dsbzlwlv6kznfpsq8wfabhkgbfl6awqs")))) + "1c92yv2yi38sic06nyr9r6zpq3y4sxnasmj14d3jmg50gc1ncqfs")))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1326,19 +1338,21 @@ purchasing goods and services."))) (define-public qtcanvas3d (package (inherit qtsvg) (name "qtcanvas3d") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0agdxgk7knf6zkjdi6316y2k9zq72wcg5zn3cbhw4hzjw81qadgg")) + "1kqcaks6lkz8cp9s3pwrvgrr8381rjzf5fbf2bzshdw7psphxiiz")) (modules '((guix build utils))) (snippet - '(delete-file-recursively "examples/canvas3d/3rdparty")))) + '(begin + (delete-file-recursively "examples/canvas3d/3rdparty") + #t)))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ;; Building the tests depends on the bundled 3rd party javascript files, @@ -1349,8 +1363,8 @@ purchasing goods and services."))) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* "qmake" "QT_BUILD_PARTS = libs tools" - (string-append "PREFIX=" out)))))))) + (invoke "qmake" "QT_BUILD_PARTS = libs tools" + (string-append "PREFIX=" out))))))) ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `()) (inputs @@ -1363,16 +1377,16 @@ drawing calls from Qt Quick JavaScript."))) (define-public qtcharts (package (inherit qtsvg) (name "qtcharts") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "1rykb72gr95rxd0rvbl846ys8xvyyhrms1jz7l4hlwp6zn1jkxvm")))) + "0lg39vd6i0l76spjz6bhb1kkpbk2mgc0hxccj7733xxbxaz14vn4")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1390,16 +1404,16 @@ selecting one of the charts themes.") (define-public qtdatavis3d (package (inherit qtsvg) (name "qtdatavis3d") - (version "5.9.5") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0i1zd7lcakhicfpqj7dlw8hzk8x5i4ddk1427jhxcpja48l4jxy5")))) + "1s7gmgh6g3aia74yiqahffrc6n8f4491vb7g3i4i10ilandipg34")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1417,16 +1431,16 @@ customized by using themes or by adding custom items and labels to them.") (define-public qtnetworkauth (package (inherit qtsvg) (name "qtnetworkauth") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "0mqcqkp9h5bgzb3wfy239wh1c9s9zxd7mww11c0jyp56wk5balcx")))) + "1kr8hwjsb8a5cypvqj48vrnkcvm2rcni102dh6i909i70a7hcsym")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1446,16 +1460,26 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) (define-public qtremoteobjects (package (inherit qtsvg) (name "qtremoteobjects") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "1wb50dapv0l45c0rfmpiaddvwv9na50lmd5zmm052q9d1xb15f6b")))) + "1chn1xxhapfwvhrlv4chwfgf2dw8x8kn1lssdmpmg5s420z3pbq9")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'remove-failing-test + (lambda _ + ;; This test can't find its imports. + (substitute* "tests/auto/qml/qml.pro" + (("integration") "# integration")) + #t)))))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1468,16 +1492,16 @@ processes or computers."))) (define-public qtspeech (package (inherit qtsvg) (name "qtspeech") - (version "5.9.4") + (version "5.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/submodules/" name "-opensource-src-" + "/submodules/" name "-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "17h8hrixxcsn7pd5iipbj2hxpp5m2dhfq3w04wkamambb49qs80x")))) + "1bgfg0akqf1nfzm28n8dhvhj0p1niwxrfs763gj7m0g6vpwjbhd1")))) (inputs `(("qtbase" ,qtbase))) (native-inputs @@ -1497,7 +1521,7 @@ message."))) (define-public python-sip (package (name "python-sip") - (version "4.19.3") + (version "4.19.8") (source (origin (method url-fetch) @@ -1506,7 +1530,7 @@ message."))) "sip-" version "/sip-" version ".tar.gz")) (sha256 (base32 - "0x2bghbprwl3az1ni3p87i0bq8r99694la93kg65vi0cz12gh3bl")))) + "1g4pq9vj753r2s061jc4y9ydzgb48ibhc9bdvmb8mlyllwp7mbvy")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-wrapper))) @@ -1560,7 +1584,7 @@ module provides support functions to the automatically generated code.") (define-public python-pyqt (package (name "python-pyqt") - (version "5.9") + (version "5.10.1") (source (origin (method url-fetch) @@ -1570,7 +1594,7 @@ module provides support functions to the automatically generated code.") version ".tar.gz")) (sha256 (base32 - "15hh4z5vd45dcswjla58q6rrfr6ic7jfz2n7c8lwfb10rycpj3mb")) + "1vz9c4v0k8azk2b08swwybrshzw32x8djjpq13mf9v15x1qyjclr")) (patches (search-patches "pyqt-configure.patch")))) (build-system gnu-build-system) (native-inputs @@ -1589,7 +1613,7 @@ module provides support functions to the automatically generated code.") ("qtsvg" ,qtsvg) ("qttools" ,qttools) ("qtwebchannel" ,qtwebchannel) - ("qtwebkit" ,qtwebkit) + ;("qtwebkit" ,qtwebkit) ("qtwebsockets" ,qtwebsockets) ("qtx11extras" ,qtx11extras) ("qtxmlpatterns" ,qtxmlpatterns))) @@ -1598,6 +1622,12 @@ module provides support functions to the automatically generated code.") ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-build-with-qt-5.11 + ;; See: https://bugs.gentoo.org/654742 + (lambda _ + (substitute* "sip/QtTest/qtestmouse.sip" + (("void waitForEvents\\(\\) /ReleaseGIL/;") "")) + #t)) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1705,7 +1735,7 @@ contain over 620 classes.") (define-public qscintilla (package (name "qscintilla") - (version "2.10.2") + (version "2.10.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pyqt/QScintilla2/" @@ -1713,7 +1743,7 @@ contain over 620 classes.") version ".tar.gz")) (sha256 (base32 - "1l2ylsv6s3wfhyx7qr5cxgkwwwhvbrpd2k7akgm9bvbyf4h1vcql")))) + "1rw1nlwnyzj5pb86cc5kk56qhrvwvrjvjzgrkwh3g7b9wxl7lrfj")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1798,7 +1828,8 @@ This package provides the Python bindings."))) (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs `(("python-pyqt" ,python-pyqt) ("python-qscintilla" ,python-qscintilla))) diff --git a/gnu/packages/ratpoison.scm b/gnu/packages/ratpoison.scm index 19321872c5..fefde982bc 100644 --- a/gnu/packages/ratpoison.scm +++ b/gnu/packages/ratpoison.scm @@ -64,10 +64,10 @@ "/share/xsessions/"))) (mkdir-p dst) (copy-file (assoc-ref inputs rpd) - (string-append dst rpd)))))))) + (string-append dst rpd)) + #t)))))) (inputs - `(("inputproto" ,inputproto) - ("fontconfig" ,fontconfig) + `(("fontconfig" ,fontconfig) ("freetype" ,freetype) ("libXft" ,libxft) ("libXi" ,libxi) @@ -77,7 +77,7 @@ ("libXtst" ,libxtst) ("libX11" ,libx11) ("readline" ,readline) - ("xextproto" ,xextproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 249bf3094f..973fef72f0 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -248,7 +248,8 @@ and triple stores.") (lambda* (#:key outputs #:allow-other-keys) (setenv "LDFLAGS" (string-append "-Wl,-rpath=" - (assoc-ref outputs "out") "/lib"))))))) + (assoc-ref outputs "out") "/lib")) + #t))))) (home-page "http://drobilla.net/software/serd/") (synopsis "Library for RDF syntax supporting Turtle and NTriples") (description @@ -281,7 +282,8 @@ ideal (e.g. in LV2 implementations or embedded applications).") (lambda* (#:key outputs #:allow-other-keys) (setenv "LDFLAGS" (string-append "-Wl,-rpath=" - (assoc-ref outputs "out") "/lib"))))))) + (assoc-ref outputs "out") "/lib")) + #t))))) (inputs `(("serd" ,serd))) (native-inputs diff --git a/gnu/packages/robotics.scm b/gnu/packages/robotics.scm index 9b30b90da2..389bb5a028 100644 --- a/gnu/packages/robotics.scm +++ b/gnu/packages/robotics.scm @@ -91,10 +91,12 @@ hundred times faster than real-time.") (modules '((guix build utils))) (snippet ;; Add missing Qt5::Network. - '(substitute* "targets/playground/CMakeLists.txt" - (("target_link_libraries(.*)\\$\\{EXTRA_LIBS\\}" _ middle) - (string-append "target_link_libraries" middle - " Qt5::Network ${EXTRA_LIBS}")))))) + '(begin + (substitute* "targets/playground/CMakeLists.txt" + (("target_link_libraries(.*)\\$\\{EXTRA_LIBS\\}" _ middle) + (string-append "target_link_libraries" middle + " Qt5::Network ${EXTRA_LIBS}"))) + #t)))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index c15e677438..5df945d1d7 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -669,14 +669,14 @@ line of code.") (define-public ruby-asciidoctor (package (name "ruby-asciidoctor") - (version "1.5.6.2") + (version "1.5.7.1") (source (origin (method url-fetch) (uri (rubygems-uri "asciidoctor" version)) (sha256 (base32 - "0zq3az4836nxkc8g5wnnbzmarw7663s1ky6gf8pc04sfpa8n2l3f")))) + "0v52bzc72cvg7zfgq27pa4mgyf29dx9m20fghrw1xmvwgd519n1w")))) (build-system ruby-build-system) (arguments `(#:test-target "test:all" @@ -697,8 +697,8 @@ line of code.") (synopsis "Converter from AsciiDoc content to other formats") (description "Asciidoctor is a text processor and publishing toolchain for converting -AsciiDoc content to HTML5, DocBook 5 (or 4.5) and other formats.") - (home-page "http://asciidoctor.org") +AsciiDoc content to HTML5, DocBook 5 (or 4.5), PDF, and other formats.") + (home-page "https://asciidoctor.org") (license license:expat))) (define-public ruby-sporkmonger-rack-mount @@ -1005,13 +1005,13 @@ interfaces.") (define-public ruby-lumberjack (package (name "ruby-lumberjack") - (version "1.0.12") + (version "1.0.13") (source (origin (method url-fetch) (uri (rubygems-uri "lumberjack" version)) (sha256 (base32 - "0yz26k9mi0djx1qvlmvdw1xw2yf7a2rkfmnb2j0d28kms33xpibp")))) + "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n")))) (build-system ruby-build-system) (native-inputs `(("ruby-rspec" ,ruby-rspec) @@ -1346,13 +1346,13 @@ disable tests, have before and after blocks that run once and more.") (define-public ruby-connection-pool (package (name "ruby-connection-pool") - (version "2.2.1") + (version "2.2.2") (source (origin (method url-fetch) (uri (rubygems-uri "connection_pool" version)) (sha256 (base32 - "17vpaj6kyf2i8bimaxz7rg1kyadf4d10642ja67qiqlhwgczl2w7")))) + "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68")))) (build-system ruby-build-system) (native-inputs `(("bundler" ,bundler))) @@ -2068,14 +2068,14 @@ instance, it provides @code{assert_true}, @code{assert_false} and (define-public ruby-minitest-hooks (package (name "ruby-minitest-hooks") - (version "1.4.1") + (version "1.4.2") (source (origin (method url-fetch) (uri (rubygems-uri "minitest-hooks" version)) (sha256 (base32 - "05bngfyxwq1cflk568nhddgfrmws5ff6kiqax4skklsjnh71ykbi")))) + "0lnpvzijbjrvxjc43d155jnbk2mkfshrz22an711wh004scavlzc")))) (build-system ruby-build-system) (arguments '(#:test-target "spec")) @@ -2924,13 +2924,13 @@ a native C extension.") (define-public ruby-rb-fsevent (package (name "ruby-rb-fsevent") - (version "0.10.2") + (version "0.10.3") (source (origin (method url-fetch) (uri (rubygems-uri "rb-fsevent" version)) (sha256 (base32 - "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf")))) + "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8")))) (build-system ruby-build-system) ;; Tests need "guard-rspec", which needs "guard". However, "guard" needs ;; "listen", which needs "rb-fsevent" at runtime. @@ -3417,17 +3417,17 @@ testing libraries to build on.") (define-public ruby-rack-protection (package (name "ruby-rack-protection") - (version "2.0.1") + (version "2.0.2") (source (origin (method url-fetch) (uri (rubygems-uri "rack-protection" version)) (sha256 (base32 - "0ywmgh7x8ljf7jfnq5hmfzki3f803waji3fcvi107w7mlyflbng7")))) + "0fik7c77rhzs55ip3s8fwa6b0yvmy6313720cqkjx38w34yn2889")))) (build-system ruby-build-system) (arguments - '(;; Tests missing from the gem + '(;; Tests missing from the gem. #:tests? #f)) (propagated-inputs `(("ruby-rack" ,ruby-rack))) @@ -3694,17 +3694,17 @@ application.") (define-public ruby-eventmachine (package (name "ruby-eventmachine") - (version "1.2.5") + (version "1.2.7") (source (origin (method url-fetch) (uri (rubygems-uri "eventmachine" version)) (sha256 (base32 - "075hdw0fgzldgss3xaqm2dk545736khcvv1fmzbf1sgdlkyh1v8z")))) + "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r")))) (build-system ruby-build-system) (arguments - '(#:tests? #f)) ; test suite tries to connect to google.com + '(#:tests? #f)) ; test suite tries to connect to google.com (native-inputs `(("ruby-rake-compiler" ,ruby-rake-compiler))) (synopsis "Single-threaded network event framework for Ruby") @@ -3713,7 +3713,8 @@ application.") communications. EventMachine wraps all interactions with sockets, allowing programs to concentrate on the implementation of network protocols. It can be used to create both network servers and clients.") - (home-page "http://rubyeventmachine.com") + ;; The ‘official’ rubyeventmachine.com domain is now registrar-squatted. + (home-page "https://github.com/eventmachine/eventmachine") (license (list license:ruby license:gpl3)))) ; GPLv3 only AFAICT (define-public ruby-ruby-engine @@ -3882,14 +3883,14 @@ definitions.") (define-public ruby-fivemat (package (name "ruby-fivemat") - (version "1.3.5") + (version "1.3.6") (source (origin (method url-fetch) (uri (rubygems-uri "fivemat" version)) (sha256 (base32 - "0ij7n250gk5c1g34rsbwjnpcv64gk4vsas8lkz8fac4wbygvk6z1")))) + "006n7b09vviv5bs5hv2ccmjxw9iw3brcsm3xh3dhzfncsknz4jp7")))) (build-system ruby-build-system) (arguments `(#:tests? #f)) ; no tests diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 0a9d5bb382..7fcc795b6f 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -59,36 +59,49 @@ (define %cargo-reference-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855") +(define* (nix-system->gnu-triplet-for-rust + #:optional (system (%current-system))) + (match system + ("x86_64-linux" "x86_64-unknown-linux-gnu") + ("i686-linux" "i686-unknown-linux-gnu") + ("armhf-linux" "armv7-unknown-linux-gnueabihf") + ("aarch64-linux" "aarch64-unknown-linux-gnu") + ("mips64el-linux" "mips64el-unknown-linux-gnuabi64") + (_ (nix-system->gnu-triplet system)))) + (define rust-bootstrap (package (name "rust-bootstrap") (version "1.22.1") - (source (origin - (method url-fetch) - (uri (string-append - "https://static.rust-lang.org/dist/" - "rust-" version "-" %host-type ".tar.gz")) - (sha256 - (base32 - (match %host-type - ("i686-unknown-linux-gnu" - "15zqbx86nm13d5vq2gm69b7av4vg479f74b5by64hs3bcwwm08pr") - ("x86_64-unknown-linux-gnu" - "1yll78x6b3abnvgjf2b66gvp6mmcb9y9jdiqcwhmgc0z0i0fix4c") - ("armv7-unknown-linux-gnueabihf" - "138a8l528kzp5wyk1mgjaxs304ac5ms8vlpq0ggjaznm6bn2j7a5") - ("aarch64-unknown-linux-gnu" - "0z6m9m1rx4d96nvybbfmpscq4dv616m615ijy16d5wh2vx0p4na8") - ("mips64el-unknown-linux-gnuabi64" - "07k4pcv7jvfa48cscdj8752lby7m7xdl88v3a6na1vs675lhgja2") - (_ "")))))) + (source #f) (build-system gnu-build-system) (native-inputs `(("patchelf" ,patchelf))) (inputs `(("gcc" ,(canonical-package gcc)) ("gcc:lib" ,(canonical-package gcc) "lib") - ("zlib" ,zlib))) + ("zlib" ,zlib) + ("source" + ,(origin + (method url-fetch) + (uri (string-append + "https://static.rust-lang.org/dist/" + "rust-" version "-" (nix-system->gnu-triplet-for-rust) + ".tar.gz")) + (sha256 + (base32 + (match (nix-system->gnu-triplet-for-rust) + ("i686-unknown-linux-gnu" + "15zqbx86nm13d5vq2gm69b7av4vg479f74b5by64hs3bcwwm08pr") + ("x86_64-unknown-linux-gnu" + "1yll78x6b3abnvgjf2b66gvp6mmcb9y9jdiqcwhmgc0z0i0fix4c") + ("armv7-unknown-linux-gnueabihf" + "138a8l528kzp5wyk1mgjaxs304ac5ms8vlpq0ggjaznm6bn2j7a5") + ("aarch64-unknown-linux-gnu" + "0z6m9m1rx4d96nvybbfmpscq4dv616m615ijy16d5wh2vx0p4na8") + ("mips64el-unknown-linux-gnuabi64" + "07k4pcv7jvfa48cscdj8752lby7m7xdl88v3a6na1vs675lhgja2") + (_ "")))))))) (outputs '("out" "cargo")) (arguments `(#:tests? #f @@ -117,7 +130,8 @@ (invoke "bash" "install.sh" (string-append "--prefix=" out) (string-append "--components=rustc," - "rust-std-" %host-type)) + "rust-std-" + ,(nix-system->gnu-triplet-for-rust))) ;; Instal cargo (invoke "bash" "install.sh" (string-append "--prefix=" cargo-out) @@ -138,7 +152,7 @@ (home-page "https://www.rust-lang.org") (synopsis "Prebuilt rust compiler and cargo package manager") (description "This package provides a pre-built @command{rustc} compiler -and a pre-built @command{cargo} package manaer, which can +and a pre-built @command{cargo} package manager, which can in turn be used to build the final Rust.") (license license:asl2.0))) @@ -196,6 +210,12 @@ in turn be used to build the final Rust.") ;; This test is known to fail on aarch64 and powerpc64le: ;; https://github.com/rust-lang/rust/issues/45410 (("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine")) + ;; nm doesn't recognize the file format because of the + ;; nonstandard sections used by the Rust compiler, but readelf + ;; ignores them. + (substitute* "src/test/run-make/atomic-lock-free/Makefile" + (("\tnm ") + "\treadelf -c ")) #t))) (add-after 'patch-source-shebangs 'patch-cargo-checksums (lambda* _ @@ -237,8 +257,21 @@ in turn be used to build the final Rust.") ("llvm" ,llvm-3.9.1) ("openssl" ,openssl) ("libcurl" ,curl))) ; For "cargo" + ;; rustc invokes gcc, so we need to set its search paths accordingly. - (native-search-paths (package-native-search-paths gcc)) + ;; Note: duplicate its value here to cope with circular dependencies among + ;; modules (see ). + (native-search-paths + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "CPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64"))))) + (synopsis "Compiler for the Rust progamming language") (description "Rust is a systems programming language that provides memory safety and thread safety guarantees.") @@ -259,8 +292,8 @@ safety and thread safety guarantees.") (package-native-inputs base-rust)))))) (define-public mrustc - (let ((commit "4f98e4322ef7aabd3bbef8cd93c0980cd6eeeed1") - (revision "1") + (let ((commit "b5b70897015ee70d62ddda9711c256ca7c720e0f") + (revision "3") (rustc-version "1.19.0")) (package (name "mrustc") @@ -273,7 +306,7 @@ safety and thread safety guarantees.") (file-name (git-file-name name version)) (sha256 (base32 - "1hk1x2iv64il5g2n3z06d6h219hnxg1w84lj7vi1lydqa65qk92p")))) + "1d6jr6agiy598ab8lax0h9dfn9n67wg906y1f46l1c27sz3w82lb")))) (outputs '("out" "cargo")) (build-system gnu-build-system) (inputs @@ -300,14 +333,16 @@ safety and thread safety guarantees.") (("^RUSTC_TARGET := x86_64-unknown-linux-gnu") (string-append "RUSTC_TARGET := " ,(or (%current-target-system) - (nix-system->gnu-triplet - (%current-system)))))) + (nix-system->gnu-triplet-for-rust))))) (invoke "tar" "xf" (assoc-ref inputs "rustc")) (chdir "rustc-1.19.0-src") (invoke "patch" "-p0" "../rust_src.patch") (chdir "..") #t)) - (delete 'configure) + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) + #t)) (add-after 'build 'build-minicargo (lambda _ (for-each (lambda (target) @@ -370,6 +405,10 @@ safety and thread safety guarantees.") (substitute* "src/tools/cargo/tests/death.rs" ;; This is stuck when built in container. (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone")) + ;; Prints test output in the wrong order when built on + ;; i686-linux. + (substitute* "src/tools/cargo/tests/test.rs" + (("fn cargo_test_env") "#[ignore]\nfn cargo_test_env")) #t)) (add-after 'patch-cargo-tests 'fix-mtime-bug (lambda* _ @@ -417,7 +456,7 @@ rpath = true # codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs # This tests required patched LLVM codegen-tests = false -[target." %host-type "] +[target." ,(nix-system->gnu-triplet-for-rust) "] llvm-config = \"" llvm "/bin/llvm-config" "\" cc = \"" gcc "/bin/gcc" "\" cxx = \"" gcc "/bin/g++" "\" @@ -440,8 +479,10 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (invoke "./x.py" "build" "src/tools/cargo"))) (replace 'check (lambda* _ - (invoke "./x.py" "test") - (invoke "./x.py" "test" "src/tools/cargo"))) + ;; Disable parallel execution to prevent EAGAIN errors when + ;; running tests. + (invoke "./x.py" "-j1" "test") + (invoke "./x.py" "-j1" "test" "src/tools/cargo"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (invoke "./x.py" "install") diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index fda1ad3e5b..abbfdd83c4 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira ;;; Copyright © 2017 Thomas Danckaert -;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017, 2018 Marius Bakke ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. @@ -112,7 +112,8 @@ the Linux kernel CIFS client.") (lambda* (#:key outputs #:allow-other-keys) (substitute* '("Makefile" "test/Makefile") (("/usr/lib") - (string-append (assoc-ref outputs "out") "/lib"))))) + (string-append (assoc-ref outputs "out") "/lib"))) + #t)) (replace 'build (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "libiniparser.so.1" @@ -136,7 +137,8 @@ the Linux kernel CIFS client.") (for-each (install html) (find-files "html" ".*")) (for-each (install doc) - '("AUTHORS" "INSTALL" "LICENSE" "README.md")))))))) + '("AUTHORS" "INSTALL" "LICENSE" "README.md")) + #t)))))) (home-page "https://github.com/ndevilla/iniparser") (synopsis "Standalone ini file parsing library") (description @@ -148,14 +150,14 @@ anywhere.") (define-public samba (package (name "samba") - (version "4.7.7") + (version "4.8.2") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 (base32 - "0c81x2ncnvz3mi6fjj81clm1mh049d3ip3fj031l44qclxpx3yi9")))) + "08mz29jmjxqvyyhm6pa388paagw1i2i21lc7pd2aprj9dllm5rb2")))) (build-system gnu-build-system) (arguments `(#:phases @@ -190,8 +192,8 @@ anywhere.") (add-before 'install 'disable-etc-samba-directory-creation (lambda _ (substitute* "dynconfig/wscript" - (("bld\\.INSTALL_DIRS\\(\"\",[[:blank:]]{1,}\"\\$\\{CONFIGDIR\\}[[:blank:]]{1,}") - "bld.INSTALL_DIRS(\"\", \"")) + (("bld\\.INSTALL_DIR\\(\"\\$\\{CONFIGDIR\\}\"\\)") + "")) #t))) ;; XXX: The test infrastructure attempts to set password with ;; smbpasswd, which fails with "smbpasswd -L can only be used by root." @@ -204,14 +206,16 @@ anywhere.") ("gnutls" ,gnutls) ("iniparser" ,iniparser) ("libaio" ,libaio) - ("ldb" ,ldb) ("linux-pam" ,linux-pam) ("openldap" ,openldap) ("popt" ,popt) ("readline" ,readline) - ("talloc" ,talloc) - ("tevent" ,tevent) ("tdb" ,tdb))) + (propagated-inputs + ;; In Requires or Requires.private of pkg-config files. + `(("ldb" ,ldb) + ("talloc" ,talloc) + ("tevent" ,tevent))) (native-inputs `(("docbook-xsl" ,docbook-xsl) ;for generating manpages ("xsltproc" ,libxslt) ;ditto @@ -338,14 +342,24 @@ many event types, including timers, signals, and the classic file descriptor eve (define-public ldb (package (name "ldb") - (version "1.3.2") + (version "1.4.0") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/ldb/ldb-" version ".tar.gz")) (sha256 (base32 - "1avn4fl393kc80krbc47phbp0argdkys62ycs8vm934a6nvz0gnf")))) + "1d591ny4j4s409s2afjv4fn7inqlclr0zlyclw3619rkbaixlzm8")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each (lambda (file) + ;; Delete everything except the build tools. + (unless (or (string-prefix? "third_party/waf" file) + (string-suffix? "wscript" file)) + (delete-file file))) + (find-files "third_party")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -368,7 +382,8 @@ many event types, including timers, signals, and the classic file descriptor eve `(("talloc" ,talloc) ("tdb" ,tdb))) (inputs - `(("popt" ,popt) + `(("lmdb" ,lmdb) + ("popt" ,popt) ("tevent" ,tevent))) (synopsis "LDAP-like embedded database") (home-page "https://ldb.samba.org/") diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm index ede725877d..8795d8d9fb 100644 --- a/gnu/packages/sawfish.scm +++ b/gnu/packages/sawfish.scm @@ -47,13 +47,6 @@ (base32 "1bmcjl1x1rdh514q9z3hzyjmjmwwwkziipjpjsl301bwmiwrd8a8")))) (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - ;; The 0.92.6 tarball was not produced by 'make dist' - ;; and lacks generated files. Sadness. - (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("makeinfo" ,texinfo) ("pkg-config" ,pkg-config) @@ -94,10 +87,12 @@ implementing both small and large scale systems.") "0qslm2isyv22hffdpw0nh7xk8jw8cj3h5y7d40c9h5r833w7j6sz")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.in" - (("installdir=\\$\\(repexecdir\\)") - ;; Install libraries for librep to $out/lib/rep. - "installdir=$(libdir)/rep"))))) + '(begin + (substitute* "Makefile.in" + (("installdir=\\$\\(repexecdir\\)") + ;; Install libraries for librep to $out/lib/rep. + "installdir=$(libdir)/rep")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no tests (native-inputs @@ -134,7 +129,8 @@ backend of Sawfish.") "REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):")) (substitute* "src/Makefile.in" ;; Install libraries for librep to $out/lib/rep. - (("\\$\\(repexecdir\\)") "$(libdir)/rep")))))) + (("\\$\\(repexecdir\\)") "$(libdir)/rep")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm index f44f037efb..33a573d531 100644 --- a/gnu/packages/scanner.scm +++ b/gnu/packages/scanner.scm @@ -45,9 +45,11 @@ (snippet ;; Generated HTML files and udev rules normally embed a ;; timestamp. Work around that to build things reproducibly. - '(substitute* "tools/sane-desc.c" - (("asctime \\(localtime \\(¤t_time\\)\\)") - "\"1970-01-01\""))))) + '(begin + (substitute* "tools/sane-desc.c" + (("asctime \\(localtime \\(¤t_time\\)\\)") + "\"1970-01-01\"")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -81,7 +83,8 @@ (copy-file "tools/udev/libsane.rules" (string-append out "/lib/udev/rules.d/" - "60-libsane.rules")))))))) + "60-libsane.rules")) + #t)))))) (home-page "http://www.sane-project.org") (synopsis "Raster image scanner library and drivers, without scanner support") diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index daa46f7101..dba5067e9e 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -212,8 +212,10 @@ features an integrated Emacs-like editor and a large runtime library.") ;; Remove bundled libraries. (modules '((guix build utils))) (snippet - '(for-each delete-file-recursively - '("gc" "gmp" "libuv"))))) + '(begin + (for-each delete-file-recursively + '("gc" "gmp" "libuv")) + #t)))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -613,9 +615,10 @@ threads.") (origin (method url-fetch/tarbomb) (modules '((guix build utils))) - (snippet - ;; Remove binary code - '(delete-file-recursively "scmutils/mit-scheme")) + (snippet '(begin + ;; Remove binary code + (delete-file-recursively "scmutils/mit-scheme") + #t)) (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/6946" "/scmutils-tarballs/" name "-" version "-x86-64-gnu-linux.tar.gz")) @@ -803,13 +806,12 @@ engineering.") (setenv "PATH" (string-append gzip "/bin" ":" texinfo "/bin")) (mkdir-p info-dir) - (and (zero? - (system* "makeinfo" "--output" - (string-append info-dir "/sicp.info") - (string-append source "/sicp-pocket.texi"))) - (every zero? - (map (cut system* "gzip" "-9n" <>) - (find-files info-dir)))))))) + (invoke "makeinfo" "--output" + (string-append info-dir "/sicp.info") + (string-append source "/sicp-pocket.texi")) + (for-each (cut invoke "gzip" "-9n" <>) + (find-files info-dir)) + #t)))) (home-page "https://sarabander.github.io/sicp") (synopsis "Structure and Interpretation of Computer Programs") (description "Structure and Interpretation of Computer Programs (SICP) is @@ -848,7 +850,8 @@ metalinguistic abstraction, recursion, interpreters, and modular programming.") "/rx"))) (chdir (assoc-ref %build-inputs "source")) (mkdir-p share) - (copy-recursively "." share))))) + (copy-recursively "." share) + #t)))) (native-inputs `(("source" ,source) ("scheme48" ,scheme48))) diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 5622d37877..940afcc2d5 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -87,7 +87,8 @@ view to show two terminals at once.") (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (install-file "dtach" (string-append out "/bin")) - (install-file "dtach.1" (string-append out "/share/man/man1")))))) + (install-file "dtach.1" (string-append out "/share/man/man1")) + #t)))) ;; No check target. #:tests? #f)) (home-page "http://dtach.sourceforge.net/") @@ -124,7 +125,8 @@ controlling terminal and attach to it later.") (lambda* (#:key inputs #:allow-other-keys) (let ((libc (assoc-ref inputs "libc"))) ;implicit input (substitute* "usr/bin/byobu.in" - (("locale") (string-append libc "/bin/locale")))))) + (("locale") (string-append libc "/bin/locale"))) + #t))) (add-after 'install 'wrap-python-scripts (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm index 860d346778..dca1dc86e1 100644 --- a/gnu/packages/scribus.scm +++ b/gnu/packages/scribus.scm @@ -1,7 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner -;;; Copyright © 2017 Nicolas Goaziou +;;; Copyright © 2017, 2018 Nicolas Goaziou +;;; Copyright © 2018 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,7 +47,7 @@ (define-public scribus (package (name "scribus") - (version "1.5.3") + (version "1.5.4") (source (origin (method url-fetch) @@ -54,29 +55,8 @@ version "/scribus-" version ".tar.xz")) (sha256 (base32 - "0kyp45vidxa3v35ic9592db4zk3m8al26vck38q5v7z14x3hp8vk")) - (patches - (list - (origin - (method url-fetch) - (uri (string-append "https://github.com/scribusproject/scribus/commit/" - "61186c7ef083046b7e0c908952e8a773e2787d82.patch")) - (file-name "scribus-fix-poppler-0.58-breakage.patch") - (sha256 - (base32 "189qw9xmgz01xz1w1bi9lzrp399zk1j1iz5qdhchdrhgnd69b7ly"))) - (origin - (method url-fetch) - (uri (string-append "https://github.com/scribusproject/scribus/commit/" - "d82b1c989bd0e79b5611521f671adbfb94996e5e.patch")) - (file-name "scribus-fix-poppler-packaging.patch") - (sha256 - (base32 "1p9s18jjvj2h0ba1xvk1zhmnn4f4n3ykrgb56mjd6in30h0vrykx"))))) - (modules '((guix build utils))) - (snippet - ;; Fix typo. Equivalent to patch at - ;; https://bugs.scribus.net/view.php?id=14850 - '(substitute* "cmake/modules/FindLIBPODOFO.cmake" - (("find_package\\(OPENSSL\\)") "find_package(OpenSSL)"))))) + "00ys0p6h3iq77kh72dkl0qrf7qvznq18qdrgiq10gfxja1995034")) + (modules '((guix build utils))))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no test target @@ -114,6 +94,7 @@ ("libtiff" ,libtiff) ("libvisio" ,libvisio) ("libxml2" ,libxml2) + ("libzmf" ,libzmf) ("openssl" ,openssl) ("podofo" ,podofo) ("poppler" ,poppler) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 7ed4e5ca6e..43cf2795dd 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -324,7 +324,8 @@ If PACKAGES are not specified, all SDL packages are used." (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs (map (lambda (package) (list (package-name package) package)) packages)) @@ -369,9 +370,10 @@ directory.") (string-append "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-" version ".tar.gz")) (modules '((guix build utils))) - (snippet - ;; Remove bundled libraries. - '(delete-file-recursively "external")) + (snippet '(begin + ;; Remove bundled libraries. + (delete-file-recursively "external") + #t)) (sha256 (base32 "1fw3kkqi5346ai5if4pxrcbhs5c4vv3a4smgz6fl6kyaxwkmwqaf")))) @@ -388,9 +390,10 @@ directory.") (string-append "https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-" version ".tar.gz")) (modules '((guix build utils))) - (snippet - ;; Remove bundled libraries. - '(delete-file-recursively "external")) + (snippet (begin + ;; Remove bundled libraries. + '(delete-file-recursively "external") + #t)) (sha256 (base32 "0xljwcpvd2knrjdfag5b257xqayplz55mqlszrqp0kpnphh5xnrl")))) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index 02deb5c4ae..e176fd1aa7 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015, 2016 Eric Bavier ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Adam Massmann ;;; ;;; This file is part of GNU Guix. @@ -32,12 +33,14 @@ #:use-module (gnu packages compression) #:use-module (gnu packages check) #:use-module (gnu packages databases) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages linux) #:use-module (gnu packages perl) #:use-module (gnu packages pdf) #:use-module (gnu packages python) #:use-module (gnu packages python-web) #:use-module (gnu packages web) + #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml)) (define-public xapian @@ -62,13 +65,13 @@ ;; getaddrinfo(). This does not work in the build environment, ;; so exclude those tests. See HACKING for the list of targets. (lambda _ - (zero? (system* "make" - "check-inmemory" - "check-remoteprog" - ;"check-remotetcp" - "check-multi" - "check-glass" - "check-chert"))))))) + (invoke "make" + "check-inmemory" + "check-remoteprog" + ;"check-remotetcp" + "check-multi" + "check-glass" + "check-chert")))))) (synopsis "Search Engine Library") (description "Xapian is a highly adaptable toolkit which allows developers to easily @@ -326,27 +329,52 @@ search the generated indexes.") "0ykz6hn3qj46w3c99d6q0pi5ncq2894simcl7vapv047zm3cylmd")))) (build-system python-build-system) (propagated-inputs - `(("python-urwid" ,python-urwid))) - (inputs `(("poppler" ,poppler) - ("python" ,python) - ("python-latexcodec" ,python-latexcodec) + ("python-urwid" ,python-urwid) + ("xclip" ,xclip) + ("xdg-utils" ,xdg-utils))) + (inputs + `(("python-latexcodec" ,python-latexcodec) ("python-pybtex" ,python-pybtex) ("python-pycurl" ,python-pycurl) ("python-pyyaml" ,python-pyyaml) ("python-six" ,python-six) ("python-xapian-bindings" ,python-xapian-bindings))) (arguments - `(#:phases + `(#:modules ((ice-9 rdelim) + (guix build python-build-system) + (guix build utils)) + #:phases (modify-phases %standard-phases (add-after 'install 'install-doc (lambda* (#:key inputs outputs #:allow-other-keys) + (define (purge-term-support input output) + (let loop ((line (read-line input))) + (if (string-prefix? "if [[ \"$term\"" line) + (begin (display "eval \"$cmd\"\n" output) + #t) + (begin (display (string-append line "\n") output) + (loop (read-line input)))))) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) + (adder-out (string-append bin "/xapers-adder")) (man1 (string-append out "/share/man/man1"))) (install-file "man/man1/xapers.1" man1) (install-file "man/man1/xapers-adder.1" man1) - (install-file "bin/xapers-adder" bin))))))) + ;; below is equivalent to setting --no-term option + ;; permanently on; this is desirable to avoid imposing + ;; an x-terminal installation on the user but breaks + ;; some potential xapers-adder uses like auto browser + ;; pdf handler, but user could instead still use + ;; e.g. "xterm -e xapers-adder %F" for same use. + ;; alternatively we could propagate xterm as an input + ;; and replace 'x-terminal-emulator' with 'xterm' + (call-with-input-file "bin/xapers-adder" + (lambda (input) + (call-with-output-file adder-out + (lambda (output) + (purge-term-support input output))))) + (chmod adder-out #o555))))))) (home-page "https://finestructure.net/xapers/") (synopsis "Personal document indexing system") (description diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index 6ff83ce5a4..9c8474dd02 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -4,8 +4,9 @@ ;;; Copyright © 2016 Mike Gerwitz ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 Thomas Danckaert -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,14 +32,20 @@ #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages autotools) #:use-module (gnu packages curl) + #:use-module (gnu packages check) + #:use-module (gnu packages docbook) + #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) + #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages man) #:use-module (gnu packages networking) #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages readline) #:use-module (gnu packages tls) + #:use-module (gnu packages tex) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages xml)) @@ -50,8 +57,8 @@ (source (origin (method url-fetch) (uri (string-append - "https://alioth.debian.org/frs/download.php/file/4238/" - "ccid-" version ".tar.bz2")) + "https://ccid.apdu.fr/files/" + name "-" version ".tar.bz2")) (sha256 (base32 "0kdqmbma6sclsrbxy9w85h7cs0v11if4nc2r9v09613k8pl2lhx5")))) @@ -72,7 +79,7 @@ (inputs `(("libusb" ,libusb) ("pcsc-lite" ,pcsc-lite))) - (home-page "https://pcsclite.alioth.debian.org/ccid.html") + (home-page "https://ccid.apdu.fr/") (synopsis "PC/SC driver for USB smart card devices") (description "This package provides a PC/SC IFD handler implementation for devices @@ -150,8 +157,8 @@ the low-level development kit for the Yubico YubiKey authentication device.") (source (origin (method url-fetch) (uri (string-append - "https://alioth.debian.org/frs/download.php/file/4235/" - "pcsc-lite-" version ".tar.bz2")) + "https://pcsclite.apdu.fr/files/" + name "-" version ".tar.bz2")) (sha256 (base32 "1jc9ws5ra6v3plwraqixin0w0wfxj64drahrbkyrrwzghqjjc9ss")))) @@ -164,7 +171,7 @@ the low-level development kit for the Yubico YubiKey authentication device.") ("pkg-config" ,pkg-config))) (inputs `(("libudev" ,eudev))) - (home-page "https://pcsclite.alioth.debian.org/pcsclite.html") + (home-page "https://pcsclite.apdu.fr/") (synopsis "Middleware to access a smart card using PC/SC") (description "pcsc-lite provides an interface to communicate with smartcards and @@ -202,3 +209,86 @@ one-time-password (OTP) YubiKey against Yubico’s servers. See the Yubico website for more information about Yubico and the YubiKey.") (home-page "https://developers.yubico.com/yubico-c-client/") (license license:bsd-2))) + +(define-public opensc + (package + (name "opensc") + (version "0.17.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/OpenSC/OpenSC/releases/download/" + version "/opensc-" version ".tar.gz")) + (sha256 + (base32 + "0043jh5g7q2lyd5vnb0akwb5y349isx7vbm9wqhlgav7d20wcwxy")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; By setting an absolute path here, we arrange for OpenSC to + ;; successfully dlopen libpcsclite.so.1 by default. The user can + ;; still override this if they want to, by specifying a custom OpenSC + ;; configuration file at runtime. + (add-after 'unpack 'set-default-libpcsclite.so.1-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((libpcsclite (string-append (assoc-ref inputs "pcsc-lite") + "/lib/libpcsclite.so.1"))) + (substitute* "configure" + (("DEFAULT_PCSC_PROVIDER=\"libpcsclite\\.so\\.1\"") + (string-append + "DEFAULT_PCSC_PROVIDER=\"" libpcsclite "\""))) + #t)))))) + (inputs + `(("readline" ,readline) + ("openssl" ,openssl) + ("pcsc-lite" ,pcsc-lite) + ("ccid" ,ccid))) + (native-inputs + `(("libxslt" ,libxslt) + ("docbook-xsl" ,docbook-xsl) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/OpenSC/OpenSC/wiki") + (synopsis "Tools and libraries related to smart cards") + (description + "OpenSC is a set of software tools and libraries to work with smart +cards, with the focus on smart cards with cryptographic capabilities. OpenSC +facilitate the use of smart cards in security applications such as +authentication, encryption and digital signatures. OpenSC implements the PKCS +#15 standard and the PKCS #11 API.") + (license license:lgpl2.1+))) + +(define-public yubico-piv-tool + (package + (name "yubico-piv-tool") + (version "1.5.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://developers.yubico.com/yubico-piv-tool/Releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1axa0lnky5gsc8yack6mpfbjh49z0czr1cv52gbgjnx2kcbpb0y1")))) + (build-system gnu-build-system) + (inputs + `(("perl" ,perl) + ("pcsc-lite" ,pcsc-lite) + ("openssl" ,openssl))) + (native-inputs + `(("doxygen" ,doxygen) + ("graphviz" ,graphviz) + ("check" ,check) + ("texlive-bin" ,texlive-bin) + ("pkg-config" ,pkg-config))) + (home-page "https://developers.yubico.com/yubico-piv-tool/") + (synopsis "Interact with the PIV application on a YubiKey") + (description + "The Yubico PIV tool is used for interacting with the Privilege and +Identification Card (PIV) application on a YubiKey. With it you may generate +keys on the device, import keys and certificates, create certificate requests, +and other operations. It includes a library and a command-line tool.") + ;; The file ykcs11/pkcs11.h also declares an additional, very short free + ;; license for that one file. Please see it for details. The vast + ;; majority of files are licensed under bsd-2. + (license license:bsd-2))) diff --git a/gnu/packages/selinux.scm b/gnu/packages/selinux.scm index 3db1b458c7..9562123bda 100644 --- a/gnu/packages/selinux.scm +++ b/gnu/packages/selinux.scm @@ -157,10 +157,10 @@ module into a binary representation.") #t)) (add-after 'build 'pywrap (lambda* (#:key make-flags #:allow-other-keys) - (zero? (apply system* "make" "pywrap" make-flags)))) + (apply invoke "make" "pywrap" make-flags))) (add-after 'install 'install-pywrap (lambda* (#:key make-flags #:allow-other-keys) - (zero? (apply system* "make" "install-pywrap" make-flags)))))))) + (apply invoke "make" "install-pywrap" make-flags))))))) ;; These libraries are in "Requires.private" in libselinux.pc. (propagated-inputs `(("libsepol" ,libsepol) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index c3d355972f..3064e385e2 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -113,10 +113,10 @@ such as compact binary encodings, XML, or JSON.") "cpp-" version "/msgpack-" version ".tar.gz")) (snippet '(let ((p (open-file "msgpack.pc.in" "a"))) - (begin - (display - (string-append "Requires: " "zlib" "\n") p) - (close-output-port p)))) + (display + (string-append "Requires: " "zlib" "\n") p) + (close-output-port p) + #t)) (sha256 (base32 "18hzmyfg3mvnp7ab03nqdzzvqagkl42gygjpi4zv4i7aca2dmwf0")))) @@ -248,7 +248,7 @@ that implements both the msgpack and msgpack-rpc specifications.") (define-public yaml-cpp (package (name "yaml-cpp") - (version "0.6.1") + (version "0.6.2") (source (origin (method url-fetch) (uri (string-append @@ -256,12 +256,10 @@ that implements both the msgpack and msgpack-rpc specifications.") "yaml-cpp-" version ".tar.gz")) (sha256 (base32 - "038ddf771d1zrdfiwqzq2lsjdis1fxbaasbdja2w9f1av3k3gv15")))) + "01gxn7kc8pzyh4aadjxxzq8cignmbwmm9rfrsmgqfg9w2q75dn74")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) - (inputs - `(("boost" ,boost))) (native-inputs `(("python" ,python))) (home-page "https://github.com/jbeder/yaml-cpp") diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index f0f25a0120..bbf44e246c 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -52,7 +52,7 @@ (define-public dash (package (name "dash") - (version "0.5.9.1") + (version "0.5.10.2") (source (origin (method url-fetch) @@ -60,7 +60,7 @@ "dash-" version ".tar.gz")) (sha256 (base32 - "0ng695mq5ngg43h7ljhxvbjm46ym3nayj6ssn47d2gm9fbm5pkay")) + "0wb0bwmqc661hylqcfdp7l7x12myw3vpqk513ncyqrjwvhckjriw")) (modules '((guix build utils))) (snippet '(begin @@ -103,9 +103,10 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") "0nhc3yc5lnnan7zmxqqxm07rdpwjww5ijy45ll2njdc6fnfb2az4")) (modules '((guix build utils))) ;; Don't try to install /etc/fish/config.fish. - (snippet - '(substitute* "Makefile.in" - ((".*INSTALL.*sysconfdir.*fish.*") ""))))) + (snippet '(begin + (substitute* "Makefile.in" + ((".*INSTALL.*sysconfdir.*fish.*") "")) + #t)))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen))) @@ -264,7 +265,7 @@ written by Paul Haahr and Byron Rakitzis.") (substitute* "tests/syntax.at" (("; other_script.csh") "; /bin/sh other_script.csh")) ;; Now, let's generate the test suite and patch it - (system* "make" "tests/testsuite") + (invoke "make" "tests/testsuite") ;; This file is ISO-8859-1 encoded. (with-fluids ((%default-port-encoding #f)) @@ -355,14 +356,14 @@ ksh, and tcsh.") (define-public xonsh (package (name "xonsh") - (version "0.6.1") + (version "0.6.2") (source (origin (method url-fetch) (uri (pypi-uri "xonsh" version)) (sha256 (base32 - "09rrfcwpirbxmjjqnsbyn7lwm1wyn41z5zhkbnv57i5hcgs72kx6")) + "0c2bbmdg0n10q54vq9k1z5n53l0mh1hb1q5xprfhilvrbr6hlcwr")) (modules '((guix build utils))) (snippet `(begin diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index a0b482a671..21d2eebaa9 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -29,7 +29,7 @@ (define-public skalibs (package (name "skalibs") - (version "2.6.3.1") + (version "2.6.4.0") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ version ".tar.gz")) (sha256 (base32 - "108c4vslsfy57892ybbksscrjd4bx444hzzcq2g5wdg2sh0cl245")))) + "1iywavxaw398ifc35xda27cb8hx14viy3kqrzby8fqysx3qp7b1h")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests exist @@ -218,7 +218,7 @@ clock synchronization."))) (define-public s6-rc (package (name "s6-rc") - (version "0.4.0.0") + (version "0.4.0.1") (source (origin (method url-fetch) @@ -226,7 +226,7 @@ clock synchronization."))) version ".tar.gz")) (sha256 (base32 - "1fkg9635cvrf6gw055y346a3n634dy2xiwbypawi68flfprfgf4n")))) + "0p4yczbib626kygr3pdvvay0xwyha92rjnhn79cbx18ywc2n4jsb")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs) ("execline" ,execline) diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm index abc00c1a89..f9956d0113 100644 --- a/gnu/packages/slang.scm +++ b/gnu/packages/slang.scm @@ -51,7 +51,8 @@ (substitute* "src/Makefile.in" (("/bin/ln") "ln")) (substitute* "configure" - (("-ltermcap") "")))))) + (("-ltermcap") "")) + #t)))) (build-system gnu-build-system) (arguments '(#:parallel-tests? #f diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm index a0d6c86dff..c0c53a5291 100644 --- a/gnu/packages/smalltalk.scm +++ b/gnu/packages/smalltalk.scm @@ -100,7 +100,8 @@ such as ones for networking and GUI programming.") "ux_version = \"GNU\";\n")) (substitute* "unix/vm/config.cmake" (("\\(VM_BUILD_STRING.*") - "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")")))))) + "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")")) + #t)))) (inputs `(("alsa-lib" ,alsa-lib) ("dbus" ,dbus) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index e4a277c5e6..dd8518002d 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -116,11 +116,24 @@ remote applications.") ;; zlib libraries, so we need to propagate the inputs. (propagated-inputs `(("libgcrypt" ,libgcrypt) ("zlib" ,zlib))) - (arguments '(#:configure-flags `("--with-libgcrypt") - #:phases (modify-phases %standard-phases - (add-before 'configure 'autoreconf - (lambda _ - (zero? (system* "autoreconf" "-v"))))))) + (arguments `(#:configure-flags `("--with-libgcrypt") + #:phases + ;; FIXME: In the next core-updates cycle, replace the entire + ;; following ,(...) form with its first 'modify-phases' + ;; subform. The change made here is only strictly needed on + ;; MIPS, but should work on any system. For now, we apply it + ;; only to MIPS to avoid forcing thousands of rebuilds on + ;; other systems. + ,(if (string-prefix? "mips" (or (%current-target-system) + (%current-system))) + '(modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + (invoke "autoreconf" "-v")))) + '(modify-phases %standard-phases + (add-before 'configure 'autoreconf + (lambda _ + (invoke "autoreconf" "-v"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) (synopsis "Client-side C library implementing the SSH2 protocol") @@ -187,17 +200,16 @@ a server that supports the SSH-2 protocol.") (replace 'install (lambda* (#:key outputs (make-flags '()) #:allow-other-keys) ;; install without host keys and system configuration files - (and (zero? (apply system* "make" "install-nosysconf" make-flags)) - (begin - (install-file "contrib/ssh-copy-id" - (string-append (assoc-ref outputs "out") - "/bin/")) - (chmod (string-append (assoc-ref outputs "out") - "/bin/ssh-copy-id") #o555) - (install-file "contrib/ssh-copy-id.1" - (string-append (assoc-ref outputs "out") - "/share/man/man1/")) - #t))))))) + (apply invoke "make" "install-nosysconf" make-flags) + (install-file "contrib/ssh-copy-id" + (string-append (assoc-ref outputs "out") + "/bin/")) + (chmod (string-append (assoc-ref outputs "out") + "/bin/ssh-copy-id") #o555) + (install-file "contrib/ssh-copy-id.1" + (string-append (assoc-ref outputs "out") + "/share/man/man1/")) + #t))))) (synopsis "Client and server for the secure shell (ssh) protocol") (description "The SSH2 protocol implemented in OpenSSH is standardised by the @@ -445,16 +457,15 @@ particularly useful for embedded systems, such as wireless routers.") (define-public liboop (package (name "liboop") - (version "1.0") + (version "1.0.1") (source (origin (method url-fetch) - (uri (string-append "http://download.ofb.net/liboop/liboop-" - version ".tar.gz")) + (uri (string-append "http://ftp.lysator.liu.se/pub/liboop/" + name "-" version ".tar.gz")) (sha256 (base32 - "0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l")) - (patches (search-patches "liboop-mips64-deplibs-fix.patch")))) + "1q0p1l72pq9k3bi7a366j2rishv7dzzkg3i6r2npsfg7cnnidbsn")))) (build-system gnu-build-system) (home-page "http://www.lysator.liu.se/liboop/") (synopsis "Event loop library") @@ -494,7 +505,8 @@ basis for almost any application.") (("localhost") "127.0.0.1")) (substitute* "src/testsuite/login-auth-test" - (("/bin/cat") "cat")))))) + (("/bin/cat") "cat")) + #t)))) (build-system gnu-build-system) (native-inputs `(("m4" ,m4) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 11c7daca0b..4c9f1743f0 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -61,6 +61,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages ssh) + #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) #:use-module (gnu packages time) #:use-module (gnu packages tls) @@ -112,10 +113,10 @@ be output in text, PostScript, PDF or HTML.") ;; Update this package together with the set of recommended packages: r-boot, ;; r-class, r-cluster, r-codetools, r-foreign, r-kernsmooth, r-lattice, ;; r-mass, r-matrix, r-mgcv, r-nlme, r-nnet, r-rpart, r-spatial, r-survival. -(define-public r-minimal +(define r-with-tests (package - (name "r-minimal") - (version "3.4.4") + (name "r-with-tests") + (version "3.5.0") (source (origin (method url-fetch) (uri (string-append "mirror://cran/src/base/R-" @@ -123,7 +124,7 @@ be output in text, PostScript, PDF or HTML.") version ".tar.gz")) (sha256 (base32 - "0dq3jsnwsb5j3fhl0wi3p5ycv8avf8s5j1y4ap3d2mkjmcppvsdk")))) + "0w38865laqg28cdhikxdxhx4rfp0kgcn72gakwypsy91br9ja5zx")))) (build-system gnu-build-system) (arguments `(#:disallowed-references (,tzdata-for-tests) @@ -216,17 +217,22 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\ (add-after 'build 'install-info (lambda _ (zero? (system* "make" "install-info"))))) #:configure-flags - '(;; Do not build the recommended packages. The build system creates - ;; random temporary directories and embeds their names in some - ;; package files. We build these packages with the r-build-system - ;; instead. - "--without-recommended-packages" + `(;; We build the recommended packages here, because they are needed in + ;; order to run the test suite. We disable them in the r-minimal + ;; package. "--with-cairo" "--with-blas=-lopenblas" "--with-libpng" "--with-jpeglib" "--with-libtiff" "--with-ICU" + "--with-tcltk" + ,(string-append "--with-tcl-config=" + (assoc-ref %build-inputs "tcl") + "/lib/tclConfig.sh") + ,(string-append "--with-tk-config=" + (assoc-ref %build-inputs "tk") + "/lib/tkConfig.sh") "--enable-R-shlib" "--enable-BLAS-shlib" "--with-system-tre"))) @@ -265,6 +271,8 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\ ;; This avoids a reference to the ungraftable static bash. R uses the ;; detected shell for the "system" procedure. ("bash" ,bash-minimal) + ("tcl" ,tcl) + ("tk" ,tk) ("which" ,which) ("zlib" ,zlib))) (native-search-paths @@ -282,6 +290,19 @@ publication-quality data plots. A large amount of 3rd-party packages are available, greatly increasing its breadth and scope.") (license license:gpl3+))) +(define-public r-minimal + (package (inherit r-with-tests) + (name "r-minimal") + (arguments + `(#:tests? #f + ,@(substitute-keyword-arguments (package-arguments r-with-tests) + ((#:configure-flags flags) + ;; Do not build the recommended packages. The build system creates + ;; random temporary directories and embeds their names in some + ;; package files. We build these packages with the r-build-system + ;; instead. + `(cons "--without-recommended-packages" ,flags))))))) + (define-public rmath-standalone (package (inherit r-minimal) (name "rmath-standalone") @@ -318,14 +339,14 @@ D.V. Hinkley (1997, CUP), originally written by Angelo Canty for S.") (define-public r-mass (package (name "r-mass") - (version "7.3-49") + (version "7.3-50") (source (origin (method url-fetch) (uri (cran-uri "MASS" version)) (sha256 (base32 - "1yjbnj1p4z0vw84wga8q5fyqiw4n6r7pc6rdwam7vsbiamyzfcqs")))) + "16hasv9k4n773jsyzvh8s3gbga49hwdj8n5hxij6zqisy4i0kxq6")))) (properties `((upstream-name . "MASS"))) (build-system r-build-system) (home-page "http://www.stats.ox.ac.uk/pub/MASS4/") @@ -617,7 +638,7 @@ curves, Cox models, and parametric accelerated failure time models.") (name "r") (source #f) (build-system trivial-build-system) - (arguments '(#:builder (mkdir %output))) + (arguments '(#:builder (begin (mkdir %output) #t))) (propagated-inputs `(("r-minimal" ,r-minimal) ("r-boot" ,r-boot) @@ -639,14 +660,14 @@ curves, Cox models, and parametric accelerated failure time models.") (define-public r-bit (package (name "r-bit") - (version "1.1-12") + (version "1.1-14") (source (origin (method url-fetch) (uri (cran-uri "bit" version)) (sha256 (base32 - "0a6ig6nnjzq80r2ll4hc74za3xwzbzig6wlyb4dby0knzf3iqa6f")))) + "0m7jrqzpa1pk8ixcl814x06jf96nlvvr16x6did6cfk4zghsrfjw")))) (build-system r-build-system) (home-page "http://ff.r-forge.r-project.org") (synopsis "Class for vectors of 1-bit booleans") @@ -752,14 +773,14 @@ non-estimable cases correctly.") (define-public r-pheatmap (package (name "r-pheatmap") - (version "1.0.8") + (version "1.0.10") (source (origin (method url-fetch) (uri (cran-uri "pheatmap" version)) (sha256 (base32 - "1ik0k69kb4n7xl3bkx4p09kw08ri93855zcsxq1c668171jqfiji")))) + "1jzxs5hwbz3r0z2pp09i7fd14sndxnrbm3zibaac3kny4nzydzf7")))) (build-system r-build-system) (propagated-inputs `(("r-gtable" ,r-gtable) @@ -939,14 +960,14 @@ solution for sending email, including attachments, from within R.") (define-public r-stringi (package (name "r-stringi") - (version "1.1.7") + (version "1.2.2") (source (origin (method url-fetch) (uri (cran-uri "stringi" version)) (sha256 (base32 - "0nck1s2iglmkrn15ay2chrrwsy5lngcylz2sc87fxy5skxaahxdl")))) + "1z8yqnh3alq0xriz77vifgl27msf3av6maz07fld78m90ajb6y8r")))) (build-system r-build-system) (inputs `(("icu4c" ,icu4c))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -965,13 +986,13 @@ transliteration, concatenation, date-time formatting and parsing, etc.") (define-public r-stringr (package (name "r-stringr") - (version "1.3.0") + (version "1.3.1") (source (origin (method url-fetch) (uri (cran-uri "stringr" version)) (sha256 - (base32 "07dvfbkhv8gk6l32j43jvxpmqlhqp0mdby406h5a3bsc6k94ic13")))) + (base32 "0hq3ybz7clnifi5wdm2s6p2i0kzljdkv26blg6yphng472h8x2vs")))) (build-system r-build-system) (propagated-inputs `(("r-glue" ,r-glue) @@ -1188,13 +1209,13 @@ evaluation (NSE) in R.") (define-public r-dbi (package (name "r-dbi") - (version "0.8") + (version "1.0.0") (source (origin (method url-fetch) (uri (cran-uri "DBI" version)) (sha256 (base32 - "16nf8flxr5vdz8yrpprfbzydy3ajixkp9hc8ibd9n7r9nc29waym")))) + "1x8wy2vg2gcgd9bww04qmf0dsn3kp0rfjd8q8j1r2x9zxccg25pz")))) (build-system r-build-system) (home-page "https://github.com/rstats-db/DBI") (synopsis "R database interface") @@ -1331,13 +1352,13 @@ syntax that can be converted to XHTML or other formats.") (define-public r-yaml (package (name "r-yaml") - (version "2.1.18") + (version "2.1.19") (source (origin (method url-fetch) (uri (cran-uri "yaml" version)) (sha256 (base32 - "15m4q5krfqg0avvqg9i2g6ns4757lk6zbyrwbx5c5bgh51glvd8v")))) + "04bzrnfgbpk0rhkvzwp3k3ip7jpq26bjxz71bx5mwxmcjdb07nz5")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/yaml/") (synopsis "Methods to convert R data to YAML and back") @@ -1376,19 +1397,20 @@ generation in R using Literate Programming techniques.") (define-public r-knitrbootstrap (package (name "r-knitrbootstrap") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (cran-uri "knitrBootstrap" version)) (sha256 (base32 - "089147g7nqp99rwdxxsfmklsrwc8aia09sr8ndmrc335r33v6r6p")))) + "1aj60j7f0gcs120fdrnfbnb7vk7lfn1phil0mghg6a5zldz4cqs3")))) (properties `((upstream-name . "knitrBootstrap"))) (build-system r-build-system) (propagated-inputs `(("r-knitr" ,r-knitr) - ("r-rmarkdown" ,r-rmarkdown))) + ("r-rmarkdown" ,r-rmarkdown) + ("r-markdown" ,r-markdown))) (home-page "https://github.com/jimhester/knitrBootstrap") (synopsis "Knitr bootstrap framework") (description @@ -1551,13 +1573,13 @@ defined in different packages.") (define-public r-rlang (package (name "r-rlang") - (version "0.2.0") + (version "0.2.1") (source (origin (method url-fetch) (uri (cran-uri "rlang" version)) (sha256 (base32 - "0f87fhw5pj6s2zjdxnpnd7pwn78czdz71b0xhm5adqg1p38sfwj8")))) + "0ghg66vyri8nck4p6kl1nh47qdppbmxvjiyms69nhvipphk4ifpj")))) (build-system r-build-system) (home-page "http://rlang.tidyverse.org") (synopsis "Functions for base types, core R and Tidyverse features") @@ -1593,13 +1615,13 @@ and printing capabilities than traditional data frames.") (define-public r-dplyr (package (name "r-dplyr") - (version "0.7.4") + (version "0.7.5") (source (origin (method url-fetch) (uri (cran-uri "dplyr" version)) (sha256 (base32 - "1hm8ml7yaraag1ak6kvz2mxx6if568c759ix8a1n9d7va03wj7vv")))) + "0l6smzdgb8w505gyl8gnwlg988a6cmafh3rssiv00rsrd8qqzg9g")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) @@ -1610,7 +1632,8 @@ and printing capabilities than traditional data frames.") ("r-glue" ,r-glue) ("r-pkgconfig" ,r-pkgconfig) ("r-bindrcpp" ,r-bindrcpp) - ("r-tibble" ,r-tibble))) + ("r-tibble" ,r-tibble) + ("r-tidyselect" ,r-tidyselect))) (native-inputs `(("r-rcpp" ,r-rcpp) ("r-bh" ,r-bh))) @@ -1681,14 +1704,14 @@ transformations.") (define-public r-formula (package (name "r-formula") - (version "1.2-2") + (version "1.2-3") (source (origin (method url-fetch) (uri (cran-uri "Formula" version)) (sha256 (base32 - "0ad49bzip1zqmpj1d8jajwl4bd81fm3k6dq8p26x6mvlzc04dvwd")))) + "0wiqh8rr9d5ciy80wj8f5fnmiiw0ywanvvnhkwd622dx42dk848l")))) (properties `((upstream-name . "Formula"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/Formula") @@ -1742,13 +1765,13 @@ times.") (define-public r-data-table (package (name "r-data-table") - (version "1.10.4-3") + (version "1.11.4") (source (origin (method url-fetch) (uri (cran-uri "data.table" version)) (sha256 (base32 - "12caklgr19vy9wprdks6zh825vr1iw1cajgwcnbpyvmijqdlz2xs")))) + "1mc1drqj5i5ar2za3nkh5j70y37s7z7xwqri2r2b72zkqggg3k7x")))) (build-system r-build-system) (home-page "https://github.com/Rdatatable/data.table/wiki") (synopsis "Enhanced version of data.frame R object") @@ -1824,14 +1847,15 @@ building design matrices.") (uri (pypi-uri "statsmodels" version)) (sha256 (base32 - "0j30v3932shnj9368c9jr3svkyrvfj90h2l7nxnqkbpv0svilhr6")) - (patches (search-patches "python-statsmodels-fix-tests.patch")))) + "0j30v3932shnj9368c9jr3svkyrvfj90h2l7nxnqkbpv0svilhr6")))) (build-system python-build-system) (arguments - `(#:phases + `(;; The test suite is very large and rather brittle. Tests often fail + ;; because of minor changes in dependencies that upstream hasn't fixed + ;; in a new release. + #:tests? #f + #:phases (modify-phases %standard-phases - ;; tests must be run after installation - (delete 'check) (add-after 'unpack 'set-matplotlib-backend-to-agg (lambda _ ;; Set the matplotlib backend to Agg to avoid problems using the @@ -1843,14 +1867,17 @@ building design matrices.") (string-append "import matplotlib;matplotlib.use('Agg');" line))) #t)) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Make installed package available for running the tests - (add-installed-pythonpath inputs outputs) - (with-directory-excursion "/tmp" - (zero? (system* "nosetests" - "--stop" - "-v" "statsmodels")))))))) + ;; FIXME: This is a bug in version 0.8 since the upgrade to scipy 1.0. + ;; See https://github.com/statsmodels/statsmodels/issues/3931 + ;; This has been fixed in version 0.9. + (add-after 'unpack 'patch-for-scipy + (lambda _ + (substitute* "statsmodels/discrete/discrete_model.py" + (("return stats.chisqprob" match) + (string-append + "stats.chisqprob = lambda chisq, df: stats.chi2.sf(chisq, df);" + match))) + #t))))) (propagated-inputs `(("python-numpy" ,python-numpy) ("python-scipy" ,python-scipy) @@ -2157,14 +2184,14 @@ module, Java Server Pages, and Python's psp module.") (define-public r-desc (package (name "r-desc") - (version "1.1.1") + (version "1.2.0") (source (origin (method url-fetch) (uri (cran-uri "desc" version)) (sha256 (base32 - "0k07qighac1xzmm8k988zi7i88a0yfvia3gk5hbz0fyvb2v9kzrj")))) + "1s6s13fk6sxwcj8wzkwxl9vr33153xx11p5wi9avqx3rzkabavz6")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) @@ -2182,14 +2209,14 @@ other packages.") (define-public r-commonmark (package (name "r-commonmark") - (version "1.4") + (version "1.5") (source (origin (method url-fetch) (uri (cran-uri "commonmark" version)) (sha256 (base32 - "1vb8r9khpvcf0q7acv8rsplfjjwcll302bg5kp596cvn6aacypl6")))) + "1jwx5rgm0ypd9a3v4jd9za4a644rdzhk1n4dvmgkj9hdpwsida3z")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/commonmark") (synopsis "CommonMark and Github Markdown Rendering in R") @@ -2423,13 +2450,13 @@ disk (or a connection).") (define-public r-plotrix (package (name "r-plotrix") - (version "3.7") + (version "3.7-2") (source (origin (method url-fetch) (uri (cran-uri "plotrix" version)) (sha256 (base32 - "0rw81n9p3d2i03b4pgcfj5blryc94f29bm9a4j9bnp5h8qjj6pry")))) + "0hx3xv94gzlyy7ny5k4mzs7w1798h1zka175m5bkzc524493cm88")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/plotrix") (synopsis "Various plotting functions") @@ -2482,13 +2509,13 @@ well as additional utilities such as panel and axis annotation functions.") (define-public r-rcpparmadillo (package (name "r-rcpparmadillo") - (version "0.8.400.0.0") + (version "0.8.500.0") (source (origin (method url-fetch) (uri (cran-uri "RcppArmadillo" version)) (sha256 (base32 - "11y2ksf46zw6fcz0kk70szyfn7qqxwwd33xylrxvnyb7ldmbc5yr")))) + "1sh36dx6inmb56m40nigy94gxlgjva816qnlmjwg7y2bdvqj8vsi")))) (properties `((upstream-name . "RcppArmadillo"))) (build-system r-build-system) (native-inputs @@ -2694,13 +2721,13 @@ a column in data frame.") (define-public r-rsqlite (package (name "r-rsqlite") - (version "2.1.0") + (version "2.1.1") (source (origin (method url-fetch) (uri (cran-uri "RSQLite" version)) (sha256 (base32 - "0hknfqcgijdapx1ryy20zy68qmm8wsb1hjx4n4hmkgl552z82q5d")))) + "1giwk4335sc6yhj3rs8h070g1mwy38kyqyqv6vcfxvskykj7vp6z")))) (properties `((upstream-name . "RSQLite"))) (build-system r-build-system) (propagated-inputs @@ -2820,13 +2847,13 @@ plotted and compared with the asymptotic curve.") (define-public r-lambda-r (package (name "r-lambda-r") - (version "1.2.2") + (version "1.2.3") (source (origin (method url-fetch) (uri (cran-uri "lambda.r" version)) (sha256 (base32 - "05cfaq9dbgdnmmj3d6ggmsw300qgiw8k7f6h6k0ylv63cf3v6pkq")))) + "0cc6pszs6yccn0hgjpyn9gspv9aiva9d91ba0640i5m0l5xy7n0c")))) (properties `((upstream-name . "lambda.r"))) (build-system r-build-system) (propagated-inputs @@ -3149,20 +3176,24 @@ path-wise fashion.") (define-public r-pkgmaker (package (name "r-pkgmaker") - (version "0.22") + (version "0.27") (source (origin (method url-fetch) (uri (cran-uri "pkgmaker" version)) (sha256 (base32 - "0vrqnd3kg6liqvpbd969jjsdx0f0rvmmxgdbwwrp6xfmdg0pib8r")))) + "0spcamjncj78kzjps2rw4v1a4494yazv6xvhn0vmdflnypc8k8hp")))) (build-system r-build-system) (propagated-inputs - `(("r-codetools" ,r-codetools) + `(("r-bibtex" ,r-bibtex) + ("r-codetools" ,r-codetools) ("r-digest" ,r-digest) + ("r-magrittr" ,r-magrittr) ("r-registry" ,r-registry) + ("r-stringi" ,r-stringi) ("r-stringr" ,r-stringr) + ("r-withr" ,r-withr) ("r-xtable" ,r-xtable))) (home-page "https://renozao.github.io/pkgmaker") (synopsis "Package development utilities") @@ -3194,14 +3225,14 @@ package registries.") (define-public r-rngtools (package (name "r-rngtools") - (version "1.2.4") + (version "1.3.1") (source (origin (method url-fetch) (uri (cran-uri "rngtools" version)) (sha256 (base32 - "1fcgfqrrb48z37xgy8sffx91p9irp39yqzxv7nqp1x2hnwsrh097")))) + "097215qcfw6ybllpzmp1532r59h2srvch3aca4z4s6l2rf9w8gvn")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest) @@ -3286,14 +3317,14 @@ bigmemory and synchronicity packages.") (define-public r-synchronicity (package (name "r-synchronicity") - (version "1.3.2") + (version "1.3.4") (source (origin (method url-fetch) (uri (cran-uri "synchronicity" version)) (sha256 (base32 - "1idrjzl7nkamf1ip55s6qcf64s63xs9j8z9jv3r89p6r5lw7k5mv")))) + "1km5hx82gy71m5nc6pkcksv0dn32fylhg2axpdsnarrxva14mgdg")))) (build-system r-build-system) (propagated-inputs `(("r-bh" ,r-bh) @@ -3502,13 +3533,13 @@ vignettes.") (define-public r-mvtnorm (package (name "r-mvtnorm") - (version "1.0-7") + (version "1.0-8") (source (origin (method url-fetch) (uri (cran-uri "mvtnorm" version)) (sha256 (base32 - "0f7hzflygdnbwvzadr3knhybhanwg7agqddclj6mhbvwqpgb0qyh")))) + "0la42lylb7cjrcrc285bn69bz9kyg556xw317iz139dp1yswl410")))) (build-system r-build-system) (inputs `(("gfortran" ,gfortran))) @@ -3623,14 +3654,14 @@ selection.") (define-public r-tidyr (package (name "r-tidyr") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri (cran-uri "tidyr" version)) (sha256 (base32 - "1qjpbj1a2vw6nw4hdb6fgassnrxrdpqwf9a8i6wqnv3wxvjb6zqb")))) + "0485f19mkkglc4bv57y6bm6l9rfgd878hsz2xdg1nwgbqchjhgix")))) (build-system r-build-system) (propagated-inputs `(("r-dplyr" ,r-dplyr) @@ -3679,14 +3710,14 @@ It uses and relies on grid graphics and formal (S4) classes and methods.") (define-public r-purrr (package (name "r-purrr") - (version "0.2.4") + (version "0.2.5") (source (origin (method url-fetch) (uri (cran-uri "purrr" version)) (sha256 (base32 - "0wgbnbrqncjpggg8f9bdpcd1gy351s5f0az5k8lc55cvs9lhz3gd")))) + "0dc53zzan3km2l9lzxjixcv6yn7dhw2ppmz8qf2awhak7x2qm9m4")))) (build-system r-build-system) (propagated-inputs `(("r-tibble" ,r-tibble) @@ -3945,14 +3976,14 @@ conversion of R objects to LaTeX code, and recoding variables.") (define-public r-runit (package (name "r-runit") - (version "0.4.31") + (version "0.4.32") (source (origin (method url-fetch) (uri (cran-uri "RUnit" version)) (sha256 (base32 - "1jqr871jkll2xmk7wk5hv1z3a36hyn2ibgivw7bwk4b346940xlx")))) + "1wc1gwb7yw7phf8b0gkig6c23klya3ax11c6i4s0f049k42r78r3")))) (properties `((upstream-name . "RUnit"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/RUnit") @@ -3986,14 +4017,14 @@ hierarchical clustering dendrograms.") (define-public r-preprocesscore (package (name "r-preprocesscore") - (version "1.40.0") + (version "1.42.0") (source (origin (method url-fetch) (uri (bioconductor-uri "preprocessCore" version)) (sha256 (base32 - "0mrdgbkb9dcfr9gsqyxfpshnxx60mq97pl98b8yl00l2gfwz48ph")))) + "1afar1z7959v7mbzsqa77vqfh0yc7y3nv5ayx71485a8scwsfwbk")))) (properties `((upstream-name . "preprocessCore"))) (build-system r-build-system) @@ -4007,14 +4038,14 @@ routines.") (define-public r-fastcluster (package (name "r-fastcluster") - (version "1.1.24") + (version "1.1.25") (source (origin (method url-fetch) (uri (cran-uri "fastcluster" version)) (sha256 (base32 - "15drhl22wm8whsy6b3vv754skfddiydb068zn1whrw5sknvkkjc2")))) + "01a2xnhhvv1swd4g8p4lzyn7ww7kg49jlnzc7kfz60jqjzpisrpk")))) (build-system r-build-system) (home-page "http://danifold.net/fastcluster.html") (synopsis "Fast hierarchical clustering routines") @@ -4313,13 +4344,13 @@ data at that region, and avoids over-plotting.") (define-public r-ggthemes (package (name "r-ggthemes") - (version "3.4.2") + (version "3.5.0") (source (origin (method url-fetch) (uri (cran-uri "ggthemes" version)) (sha256 (base32 - "0i7ygpizs00acizixc29bhbrci523ys7vzxbii9b3bcmfa3pj7i3")))) + "0drbzzb4i5jq1579fx1wmgh87ybnswjn7srak2l8g771ip49xwb8")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) @@ -4731,14 +4762,14 @@ analysis} (PCA) by projection pursuit.") (define-public r-rrcov (package (name "r-rrcov") - (version "1.4-3") + (version "1.4-4") (source (origin (method url-fetch) (uri (cran-uri "rrcov" version)) (sha256 (base32 - "0kagqggi634mvrhd67ia7mpjrj5v6w2wq0z3kyppg5xkvzh335nq")))) + "0wn5h8vi0zyk5ah898m37ysz4kiih6y792nb9zdvhvd8r07f0sc5")))) (build-system r-build-system) (propagated-inputs `(("r-cluster" ,r-cluster) @@ -5006,14 +5037,14 @@ using modular prediction and response module classes.") (define-public r-quantreg (package (name "r-quantreg") - (version "5.35") + (version "5.36") (source (origin (method url-fetch) (uri (cran-uri "quantreg" version)) (sha256 (base32 - "18f3qxv1j1bqmq55hzssz8mnp5ww4flhy80rm2v1rk0mmg9paz7m")))) + "023gdzahxp582rpabilpxbl3wyjrgjjnnrhcv9xhrqdfiq5l2yza")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) @@ -5166,14 +5197,14 @@ to Applied regression, Second Edition, Sage, 2011.") (define-public r-caret (package (name "r-caret") - (version "6.0-79") + (version "6.0-80") (source (origin (method url-fetch) (uri (cran-uri "caret" version)) (sha256 (base32 - "1i6sjw279g6mj83vz5gv99x0nljcbpy7v0nbl72lmd80sf7rjshl")))) + "0xhdhazzfh0hiqv2hgxglj9ffd2p4ls8acqn2sjn0ndx6158f187")))) (build-system r-build-system) (propagated-inputs `(("r-foreach" ,r-foreach) @@ -5195,14 +5226,14 @@ classification and regression models.") (define-public r-rcppprogress (package (name "r-rcppprogress") - (version "0.4") + (version "0.4.1") (source (origin (method url-fetch) (uri (cran-uri "RcppProgress" version)) (sha256 (base32 - "09ayw6d69i0lplmaj5md25p5hn1nmiyp6a4sh60v93nrrs1cq7iv")))) + "0yk01hfv961zyp569682k9igvhnwqyg5j0n5fm63sxigj82l2xhi")))) (properties `((upstream-name . "RcppProgress"))) (build-system r-build-system) (propagated-inputs @@ -5287,15 +5318,16 @@ multivariate case.") (define-public r-tclust (package (name "r-tclust") - (version "1.3-1") + (version "1.4-1") (source (origin (method url-fetch) (uri (cran-uri "tclust" version)) (sha256 (base32 - "1li62wynv81kb17fx7nk63a26qlb78l8fdf63in8yzcl7fkpji7y")))) + "17md6l9v9dl9b72l84df01b52h2xiynbcjm437mv9mzcr09fc2sb")))) (build-system r-build-system) + ;; These are all suggested packages, not build dependencies. (propagated-inputs `(("r-cluster" ,r-cluster) ("r-mclust" ,r-mclust) @@ -5312,14 +5344,14 @@ diagnostic tools (@code{ctlcurves} and @code{DiscrFact}).") (define-public r-ranger (package (name "r-ranger") - (version "0.9.0") + (version "0.10.1") (source (origin (method url-fetch) (uri (cran-uri "ranger" version)) (sha256 (base32 - "1pilj5pxl8jl0gsy9vsyqxqdqfcxzvphbgvrlp4hf7r9mrfw9v0p")))) + "12z67xkgdmr5cflpd6cln0mn5xxajanqbfwlckv6cfma0gvf2z1j")))) (build-system r-build-system) (propagated-inputs `(("r-rcpp" ,r-rcpp) @@ -5531,14 +5563,14 @@ parameters.") (define-public r-directlabels (package (name "r-directlabels") - (version "2017.03.31") + (version "2018.05.22") (source (origin (method url-fetch) (uri (cran-uri "directlabels" version)) (sha256 (base32 - "01ahw0c56mnzwl611s8hnghicww4c4dgf5v2wv6bl1s1pramw9pr")))) + "0xcpc56ssb9430b0xcdhayk3qaak2qcakyss2pz14y5w2027hblv")))) (build-system r-build-system) (propagated-inputs `(("r-quadprog" ,r-quadprog))) diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index 2ba6b856fb..11f6f9d7e8 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -29,7 +29,6 @@ #:use-module (gnu packages bdw-gc) #:use-module (gnu packages boost) #:use-module (gnu packages check) - #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) @@ -116,7 +115,6 @@ ;; for details. Disable tests until ;; resolved. #:tests? #f - #:cmake ,cmake-3.11 #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-source @@ -317,7 +315,7 @@ ("python2-testtools" ,python2-testtools) ("python2-tox" ,python2-tox))) (inputs - `(("boost" ,boost-1.66) + `(("boost" ,boost) ("curl" ,curl) ("cryptsetup" ,cryptsetup) ("expat" ,expat) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 4cd0773062..a343e3cb6e 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -171,7 +171,7 @@ numbers of user-defined menu items efficiently.") (define-public spoon (package (name "spoon") - (version "0.3") + (version "0.6") (source (origin (method url-fetch) @@ -179,16 +179,16 @@ numbers of user-defined menu items efficiently.") name "-" version ".tar.gz")) (sha256 (base32 - "10c5i7ykpy7inzzfiw1dh0srpkljycr3blxhvd8160wsvplbws48")))) + "1jpmg9k9f4f3lpz0k3cphqjswlyf8lz2sm8ccifiip93kd4rrdj0")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; No tests + `(#:tests? #f ; no tests #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)))) (inputs `(("libx11" ,libx11) ("libxkbfile" ,libxkbfile) - ("alsa-lib" ,alsa-lib) + ("alsa-lib" ,alsa-lib) ; tinyalsa (unpackaged) would suffice ("libmpdclient" ,libmpdclient))) (home-page "https://git.2f30.org/spoon/") (synopsis "Set dwm status") @@ -227,7 +227,7 @@ numbers of user-defined menu items efficiently.") (define-public st (package (name "st") - (version "0.7") + (version "0.8.1") (source (origin (method url-fetch) @@ -235,7 +235,7 @@ numbers of user-defined menu items efficiently.") version ".tar.gz")) (sha256 (base32 - "00309qiw20rc89696pk8bdr7ik4r1aarik7jxqk8k66cdj80v1zp")))) + "09k94v3n20gg32xy7y68p96x9dq5msl80gknf9gbvlyjp3i0zyy4")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests @@ -247,14 +247,15 @@ numbers of user-defined menu items efficiently.") (add-after 'unpack 'inhibit-terminfo-install (lambda _ (substitute* "Makefile" - (("\t@tic -s st.info") "")) + (("\ttic .*") "")) #t))))) (inputs `(("libx11" ,libx11) ("libxft" ,libxft) ("fontconfig" ,fontconfig) ("freetype" ,freetype))) - (native-inputs `(("pkg-config" ,pkg-config))) + (native-inputs + `(("pkg-config" ,pkg-config))) (home-page "https://st.suckless.org/") (synopsis "Simple terminal emulator") (description @@ -311,19 +312,19 @@ point surf to another URI by setting its XProperties.") (define-public sent (package (name "sent") - (version "0.2") + (version "1") (source (origin - (method url-fetch) + (method url-fetch/tarbomb) (uri (string-append "https://dl.suckless.org/tools/sent-" version ".tar.gz")) (sha256 (base32 - "0xhh752hwaa26k4q6wvrb9jnpbnylss2aw6z11j7l9rav7wn3fak")))) + "0cxysz5lp25mgww73jl0mgip68x7iyvialyzdbriyaff269xxwvv")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (delete 'configure)) ;no configuration - #:tests? #f ;no test suite + (delete 'configure)) ; no configuration + #:tests? #f ; no test suite #:make-flags (let ((pkg-config (lambda (flag) (string-append "$(shell pkg-config " flag " " @@ -340,8 +341,8 @@ point surf to another URI by setting its XProperties.") ("libx11" ,libx11) ("libxft" ,libxft) ("fontconfig" ,fontconfig))) - (synopsis "Plaintext presentation tool") - (description "Sent uses plaintext files and PNG images to create slideshow + (synopsis "Plain-text presentation tool") + (description "Sent uses plain-text files and PNG images to create slideshow presentations. Each paragraph represents a slide in the presentation. Especially for presentations using the Takahashi method this is very nice and allows you to write down the presentation for a quick lightning talk within a @@ -526,31 +527,28 @@ cups server to be installed.") "Noice is a small curses-based file browser.") (license license:bsd-2))) -;;; We want some commits that are more recent than the latest release, 0.2 (define-public human - (let ((commit "50c80e6ba12823184b6866e06b955dbd2ccdc5d7") - (revision "1")) - (package - (name "human") - (version (string-append "0.2-" revision "." (string-take commit 7))) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "git://git.2f30.org/human.git") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "18xngm4h9vsyip52zwd79rrp1irzg6rs462lpbp61amf7hj955gn")))) + (package + (name "human") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "git://git.2f30.org/human.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0y0bsmvpwfwb2lwspi6a799y34h1faxc6yfanyw6hygxc8661mga")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; No tests + `(#:tests? #f ; no tests #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) #:phases (modify-phases %standard-phases - (delete 'configure)))) ; No configure script + (delete 'configure)))) ; no configure script (home-page "https://git.2f30.org/human/") (synopsis "Convert bytes to human readable formats") (description @@ -559,7 +557,7 @@ human readable format. By default, it tries to detect the best factorisation, but you can force its output. You can adjust the number of decimals with the @code{SCALE} environment variable.") - (license license:wtfpl2)))) + (license license:wtfpl2))) (define-public fortify-headers (package @@ -682,8 +680,8 @@ as -1, to be used instead of U+FFFD. ;; No release tarballs so far. (define-public lchat - (let ((revision "2") - (commit "25d90f4630b45e2b609d2e3daecb32cf5ff065fd")) + (let ((revision "3") + (commit "f95191970fd59c52a8b09cff32bd8d2135cbfc6b")) (package (name "lchat") (version (string-append "0.0.0-" revision "." (string-take commit 7))) @@ -696,24 +694,26 @@ as -1, to be used instead of U+FFFD. (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0dvljyq3m7rxxkqv7rkmijak6vj8i4db3iq2z988bvf76chz268b")))) + "07pxzziczhzprmjy61k7nl9i1kxpgnad37qkjf5fn4wf06nqdxpl")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; No tests + `(#:test-target "test" #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) #:phases (modify-phases %standard-phases - (delete 'configure) ; No configure script + (delete 'configure) ; no configure script (add-before 'build 'libbsd (lambda _ (substitute* "Makefile" (("-lutf") "-lutf -lbsd")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man1 (string-append out "/share/man/man1"))) (install-file "lchat" bin) + (install-file "lchat.1" man1) #t)))))) (inputs `(("grep" ,grep) @@ -724,6 +724,6 @@ as -1, to be used instead of U+FFFD. (synopsis "Line chat is a frontend for the irc client ii from suckless") (description "Lchat (line chat) is the little and small brother of cii. -It is a front end for ii-like chat programs. It uses tail(1) -f to get the -chat output in background.") +It is a front end for ii-like chat programs. It uses @code{tail -f} to get the +chat output in the background.") (license license:isc)))) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 3656f5855e..df1b963878 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -58,7 +58,8 @@ ;; qtsingleapplication have not yet been packaged, but all are ;; explicitly used from the 3rdparty folder during build. ;; We can also remove the macgoodies folder - (delete-file-recursively "src/3rdparty/qtmacgoodies"))))) + (delete-file-recursively "src/3rdparty/qtmacgoodies") + #t)))) (build-system cmake-build-system) (arguments `(#:phases diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index ea24be2058..f43c51714a 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -29,7 +29,7 @@ (define-public syncthing (package (name "syncthing") - (version "0.14.46") + (version "0.14.48") (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" @@ -37,11 +37,12 @@ "/syncthing-source-v" version ".tar.gz")) (sha256 (base32 - "0h5b2mp0li0qzrz3wggzavdfqfaz9b79hx6wds84ya2i9maw80cl")) + "0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml")) (modules '((guix build utils))) ;; Delete bundled ("vendored") free software source code. - (snippet - '(delete-file-recursively "vendor")))) + (snippet '(begin + (delete-file-recursively "vendor") + #t)))) (build-system go-build-system) ;; The primary Syncthing executable goes to "out", while the auxiliary ;; server programs and utility tools go to "utils". This reduces the size @@ -144,7 +145,7 @@ ("go-golang-org-x-net-union" ,(go-golang-org-x-net-union)) ("go-golang-org-x-text" ,(go-golang-org-x-text-union)) ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate) - ("go-github-com-zillode-notify" ,go-github-com-zillode-notify) + ("go-github-com-syncthing-notify" ,go-github-com-syncthing-notify) ;; For tests ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff))) (synopsis "Decentralized continuous file system synchronization") @@ -335,7 +336,8 @@ structs in the Go programming language.") (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs (map (lambda (package) (list (package-name package) package)) packages)) @@ -505,7 +507,10 @@ address of the default LAN gateway.") "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz")))) (build-system go-build-system) (arguments - `(#:import-path "github.com/kardianos/osext")) + `(#:import-path "github.com/kardianos/osext" + ;; The tests are flaky: + ;; + #:tests? #f)) (synopsis "Find the running executable") (description "Osext provides a method for finding the current executable file that is running. This can be used for upgrading the current executable or @@ -771,7 +776,8 @@ environment") (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs (map (lambda (package) (list (package-name package) package)) packages)) @@ -892,7 +898,8 @@ generation.") (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs (map (lambda (package) (list (package-name package) package)) packages)) @@ -906,7 +913,6 @@ libraries are in the same directory.") (define* (go-golang-org-x-net-union #:optional (packages (list go-golang-org-x-net-ipv4 go-golang-org-x-net-bpf - go-golang-org-x-net-context go-golang-org-x-net-ipv6 go-golang-org-x-net-proxy go-golang-org-x-net-internal-iana))) @@ -923,7 +929,8 @@ libraries are in the same directory.") (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs (map (lambda (package) (list (package-name package) package)) packages)) @@ -948,7 +955,8 @@ libraries are in the same directory.") (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs (map (lambda (package) (list (package-name package) package)) packages)) @@ -983,8 +991,8 @@ virtual connections from a single physical connection.") (license expat)))) (define-public go-github-com-chmduquesne-rollinghash-adler32 - (let ((commit "3dc7875a1f890f9bcf0619adb5571fc6f7d516bb") - (revision "1")) + (let ((commit "abb8cbaf9915e48ee20cae94bcd94221b61707a2") + (revision "2")) (package (name "go-github-com-chmduquesne-rollinghash-adler32") (version (git-version "0.0.0" revision commit)) @@ -997,7 +1005,7 @@ virtual connections from a single physical connection.") (file-name (git-file-name name version)) (sha256 (base32 - "0frl021qdqcdyk9fccw6x1v2byvh0hls4rsrdjih5jgqpc18kx6y")))) + "0ylqb9r60q77qw0d6g9cg4yzadxzwcw74lfd25cw9yglyq0wgd3l")))) (build-system go-build-system) (arguments '(#:import-path "github.com/chmduquesne/rollinghash/adler32" @@ -1105,30 +1113,30 @@ using sh's word-splitting rules.") (home-page "https://github.com/kballard/go-shellquote") (license expat)))) -(define-public go-github-com-zillode-notify - (let ((commit "53dd6873a851fc377c87d82f994b1fecdf25aadb") - (revision "3")) +(define-public go-github-com-syncthing-notify + (let ((commit "b9ceffc925039c77cd9e0d38f248279ccc4399e2") + (revision "0")) (package - (name "go-github-com-zillode-notify") + (name "go-github-com-syncthing-notify") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/calmh/notify") + (url "https://github.com/syncthing/notify") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "0ar6mj6s91y7hc5gdp88lz3i7xi29cqkx9f090xj899ir21a8djn")))) + "1scha9b2r35bvqzqx86sarzjxf72ywvj3g6n9pm3xq4i4xzpylxf")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/Zillode/notify")) + '(#:import-path "github.com/syncthing/notify")) (propagated-inputs `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) (synopsis "File system event notification library") (description "This package provides @code{notify}, a file system event notification library in Go.") - (home-page "https://github.com/zillode/notify") + (home-page "https://github.com/syncthing/notify") (license expat)))) (define-public go-github-com-beorn7-perks-quantile @@ -1400,7 +1408,8 @@ Prometheus HTTP API.") (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs (map (lambda (package) (list (package-name package) package)) packages)) diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm index 9a5d5dedd3..ee21a61895 100644 --- a/gnu/packages/tbb.scm +++ b/gnu/packages/tbb.scm @@ -40,9 +40,11 @@ "1i3zy87gyzw22fvajm039w6g822qzqn7jbmznc8y8c57qpqnf330")) (modules '((guix build utils))) (snippet - '(substitute* "build/common.inc" - (("export tbb_build_prefix.+$") - "export tbb_build_prefix?=guix\n"))))) + '(begin + (substitute* "build/common.inc" + (("export tbb_build_prefix.+$") + "export tbb_build_prefix?=guix\n")) + #t)))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 8988cdc3b1..97e1427bec 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Jan Nieuwenhuizen @@ -39,14 +39,14 @@ (define-public tcl (package (name "tcl") - (version "8.6.7") + (version "8.6.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/tcl/Tcl/" version "/tcl" version "-src.tar.gz")) (sha256 (base32 - "19bb09l55alz4jb38961ikd5116q80s51bjvzqy44ckkwf28ysvw")))) + "0sprsg7wnraa4cbwgbcliylm6p0rspfymxn8ww02pr4ca70v0g64")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -55,16 +55,15 @@ (add-after 'install 'install-private-headers (lambda* (#:key outputs #:allow-other-keys) ;; Private headers are needed by Expect. - (and (zero? (system* "make" - "install-private-headers")) - (let ((bin (string-append (assoc-ref outputs "out") - "/bin"))) - ;; Create a tclsh -> tclsh8.6 symlink. - ;; Programs such as Ghostscript rely on it. - (with-directory-excursion bin - (symlink (car (find-files "." "tclsh")) - "tclsh")) - #t))))) + (invoke "make" "install-private-headers") + (let ((bin (string-append (assoc-ref outputs "out") + "/bin"))) + ;; Create a tclsh -> tclsh8.6 symlink. + ;; Programs such as Ghostscript rely on it. + (with-directory-excursion bin + (symlink (car (find-files "." "tclsh")) + "tclsh")) + #t)))) ;; By default, man pages are put in PREFIX/man, but we want them in ;; PREFIX/share/man. The 'validate-documentation-location' phase is @@ -100,7 +99,7 @@ (inputs `(;; TODO: Add these optional dependencies. ;; ("libX11" ,libX11) - ;; ("xproto" ,xproto) + ;; ("xorgproto" ,xorgproto) ;; ("tk" ,tk) ("tcl" ,tcl))) (arguments @@ -135,14 +134,14 @@ X11 GUIs.") (define-public tk (package (name "tk") - (version "8.6.7") + (version "8.6.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/tcl/Tcl/" version "/tk" version "-src.tar.gz")) (sha256 (base32 - "1aipcf6qmbgi15av8yrpp2hx6vdwr684r6739p8cgdzrajiy4786")) + "0cvvznjwfn0i9vj9cw3wg8svx25ha34gg57m4xd1k5fyinhbrrs9")) (patches (search-patches "tk-find-library.patch")))) (build-system gnu-build-system) (arguments @@ -150,7 +149,8 @@ X11 GUIs.") (add-before 'configure 'pre-configure (lambda _ - (chdir "unix"))) + (chdir "unix") + #t)) (add-after 'install 'add-fontconfig-flag (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 5210e73ed4..201cd8099a 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016, 2017 Nils Gillmann ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2018 Jovany Leandro G.C ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +31,7 @@ #:use-module (gnu packages avahi) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages file) #:use-module (gnu packages protobuf) #:use-module (gnu packages gnupg) #:use-module (gnu packages linux) @@ -42,9 +44,15 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) + #:use-module (gnu packages xml) + #:use-module (gnu packages readline) + #:use-module (gnu packages bison) + #:use-module (gnu packages flex) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu)) (define-public commoncpp @@ -379,6 +387,7 @@ address of one of the participants.") (sha256 (base32 "1s60vaici3v034jzzi20x23hsj6mkjlc0glipjq4hffrg9qgnizh")) + (patches (search-patches "mumble-1.2.19-abs.patch")) (modules '((guix build utils))) (snippet `(begin @@ -482,3 +491,64 @@ Mumble consists of two applications for separate usage: (license (list license:bsd-3 ;; The bundled celt is bsd-2. Remove after 1.3.0. license:bsd-2)))) + +(define-public twinkle + (let ((commit "02e1d1538af3337134bd7381dcd95f8d7775b30f") + (revision "1")) + (package + (name "twinkle") + (version (git-version "1.10.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LubosD/twinkle") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ds4rp4vr1wagn4m4m7ldqbsx5vgmgbfcqqgyhn1wf6s1dm0020z")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; no test target + #:configure-flags '("-DWITH_SPEEX=On") + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/twinkle") + `("QT_PLUGIN_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/plugins")) + '("qtbase" "qtdeclarative"))) + `("QML2_IMPORT_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/qml")) + '("qtdeclarative" "qtquickcontrols")))) + #t)))))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("readline" ,readline) + ("file" ,file) + ("ucommon" ,ucommon) + ("ccrtp" ,ccrtp) + ("libxml2" ,libxml2) + ("speex" ,speex) + ("speexdsp" ,speexdsp) + ("libsndfile" ,libsndfile) + ("alsa-lib" ,alsa-lib) + ("qttools" ,qttools))) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtquickcontrols" ,qtquickcontrols))) + (home-page "http://twinkle.dolezel.info/") + (synopsis "Softphone for voice over IP and instant messaging") + (description "Twinkle is a softphone for your voice over IP and instant +messaging communcations using the SIP protocol. You can use it for direct IP +phone to IP phone communication or in a network using a SIP proxy to route your +calls and messages") + (license license:gpl2+)))) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index e8b0357206..1cd00f4621 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -76,7 +76,7 @@ (build-system glib-or-gtk-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'patch-source-shebangs 'bootstrap + (replace 'bootstrap (lambda _ (setenv "NOCONFIGURE" "true") (invoke "sh" "autogen.sh")))))) @@ -238,7 +238,8 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.") "") ;; Replace the call to 'sd_booted' by the truth value. (("sd_booted\\(\\)") - "1")))))) + "1")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -557,7 +558,8 @@ embedded kernel situations.") "app/qml/ApplicationSettings.qml")) ;; Final substitution for default scanline and pixel fonts (substitute* "app/qml/ApplicationSettings.qml" - (("COMMODORE_PET") "PROGGY_TINY")))))) + (("COMMODORE_PET") "PROGGY_TINY")) + #t)))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) @@ -617,7 +619,7 @@ eye-candy, customizable, and reasonably lightweight.") (define-public sakura (package (name "sakura") - (version "3.5.0") + (version "3.6.0") (source (origin (method url-fetch) (uri (string-append "https://launchpad.net/" name "/trunk/" @@ -625,14 +627,13 @@ eye-candy, customizable, and reasonably lightweight.") ".tar.bz2")) (sha256 (base32 - "0fhcn3540iw22l5zg3njh5z8cj0g2n9p6fvagjqa5zc323jfsc7b")))) + "1q463qm41ym7jb3kbzjz7b6x549vmgkb70arpkhsf86yxly1y5m1")))) (build-system cmake-build-system) (arguments - ;; no check phase - '(#:tests? #f)) + '(#:tests? #f)) ; no check phase (native-inputs `(("gettext" ,gettext-minimal) - ("perl" ,perl) ; for pod2man + ("perl" ,perl) ; for pod2man ("pkg-config" ,pkg-config))) (inputs `(("libxft" ,libxft) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 35b6b3f8d4..b6bc9dda62 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -491,7 +491,7 @@ converters, will completely supplant the older patterns.") cwd "/config"))) (mkdir "build") (with-directory-excursion "build" - (zero? (system* "inimf" "mf.mf"))))) + (invoke "inimf" "mf.mf")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -579,17 +579,18 @@ documents.") (string-append (getcwd) ":" mf "/share/texmf-dist/metafont/base"))) (mkdir "build") - (every (lambda (font) - (format #t "building font ~a\n" font) - (zero? (system* "mf" "-progname=mf" - "-output-directory=build" - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "batchmode; " - "input " - (basename font ".mf"))))) - (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$")))) + (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 " + (basename font ".mf")))) + (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -648,13 +649,13 @@ display, and mathematical fonts in a range of styles, based on Monotype Modern (string-append (getcwd) ":" mf "/share/texmf-dist/metafont/base"))) (mkdir "build") - (zero? (system* "mf" "-progname=mf" - "-output-directory=build" - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "batchmode; " - "input manfnt"))))) + (invoke "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "batchmode; " + "input manfnt")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -714,20 +715,21 @@ fonts.") (assoc-ref inputs "texlive-fonts-cm") "/share/texmf-dist/fonts/source/public/cm"))) (mkdir "build") - (every (lambda (font) - (format #t "building font ~a\n" font) - (zero? (system* "mf" "-progname=mf" - "-output-directory=build" - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "batchmode; " - "input " font)))) - '("icmcsc10" "icmex10" "icmmi8" "icmsy8" "icmtt8" - "ilasy8" "ilcmss8" "ilcmssb8" "ilcmssi8" - "lasy5" "lasy6" "lasy7" "lasy8" "lasy9" "lasy10" "lasyb10" - "lcircle10" "lcirclew10" "lcmss8" "lcmssb8" "lcmssi8" - "line10" "linew10")))) + (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))) + '("icmcsc10" "icmex10" "icmmi8" "icmsy8" "icmtt8" + "ilasy8" "ilcmss8" "ilcmssb8" "ilcmssi8" + "lasy5" "lasy6" "lasy7" "lasy8" "lasy9" "lasy10" "lasyb10" + "lcircle10" "lcirclew10" "lcmss8" "lcmssb8" "lcmssi8" + "line10" "linew10")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -796,19 +798,20 @@ symbol fonts.") (assoc-ref inputs "texlive-fonts-cm") "/share/texmf-dist/fonts/source/public/cm"))) (mkdir "build") - (every (lambda (font) - (format #t "building font ~a\n" (basename font ".mf")) - (with-directory-excursion (dirname font) - (zero? (system* "mf" "-progname=mf" - "-output-directory=../build" - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "nonstopmode; " - "input " - (getcwd) "/" - (basename font ".mf")))))) - (find-files "." "[0-9]+\\.mf$")))) + (for-each (lambda (font) + (format #t "building font ~a\n" (basename font ".mf")) + (with-directory-excursion (dirname font) + (invoke "mf" "-progname=mf" + "-output-directory=../build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "nonstopmode; " + "input " + (getcwd) "/" + (basename font ".mf"))))) + (find-files "." "[0-9]+\\.mf$")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -969,37 +972,35 @@ book).") (mkdir "build") (mkdir "web2c") - (and (invoke "luatex" "-ini" "-interaction=batchmode" - "-output-directory=build" "unpack.ins") - (invoke "tex" "-ini" "-interaction=batchmode" - "-output-directory=web2c" "tex.ini") - ;; LaTeX, pdfetex/pdftex, and XeTeX require e-TeX, which - ;; is enabled only in extended mode (activated with a - ;; leading asterisk). We should not use luatex here, - ;; because that would make the generated format files - ;; incompatible with any other TeX engine. - (every - (lambda (format) - (invoke "latex" "-ini" "-interaction=batchmode" - "-output-directory=web2c" - "-translate-file=cp227.tcx" - (string-append "*" format ".ini"))) - '("latex" - "pdflatex" - "pdfetex")) - (every - (lambda (format) - (invoke format "-ini" "-interaction=batchmode" - "-output-directory=web2c" - (string-append "*" format ".ini"))) - '("xetex" - "xelatex")) - (every - (lambda (format) - (invoke "luatex" "-ini" "-interaction=batchmode" - "-output-directory=web2c" - (string-append format ".ini"))) - '("dviluatex" "dvilualatex" "luatex" "lualatex"))))) + (invoke "luatex" "-ini" "-interaction=batchmode" + "-output-directory=build" "unpack.ins") + (invoke "tex" "-ini" "-interaction=batchmode" + "-output-directory=web2c" "tex.ini") + ;; LaTeX, pdfetex/pdftex, and XeTeX require e-TeX, which + ;; is enabled only in extended mode (activated with a + ;; leading asterisk). We should not use luatex here, + ;; because that would make the generated format files + ;; incompatible with any other TeX engine. + (for-each (lambda (format) + (invoke "latex" "-ini" "-interaction=batchmode" + "-output-directory=web2c" + "-translate-file=cp227.tcx" + (string-append "*" format ".ini"))) + '("latex" + "pdflatex" + "pdfetex")) + (for-each (lambda (format) + (invoke format "-ini" "-interaction=batchmode" + "-output-directory=web2c" + (string-append "*" format ".ini"))) + '("xetex" + "xelatex")) + (for-each (lambda (format) + (invoke "luatex" "-ini" "-interaction=batchmode" + "-output-directory=web2c" + (string-append format ".ini"))) + '("dviluatex" "dvilualatex" "luatex" "lualatex")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -2934,16 +2935,17 @@ in SGML; use maths minus in text as appropriate; simple Young tableaux.") (assoc-ref inputs "texlive-fonts-cm") "/share/texmf-dist/fonts/source/public/cm"))) (mkdir "build") - (every (lambda (font) - (format #t "building font ~a\n" font) - (invoke "mf" "-progname=mf" - "-output-directory=build" - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "batchmode; " - "input " (basename font ".mf")))) - (find-files "." "[0-9]+\\.mf$")))) + (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 " (basename font ".mf")))) + (find-files "." "[0-9]+\\.mf$")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -3016,16 +3018,17 @@ texlive-2017.1/Master/texmf-dist/doc/fonts/ec/copyrite.txt")))) (assoc-ref inputs "texlive-fonts-cm") "/share/texmf-dist/fonts/source/public/cm"))) (mkdir "build") - (every (lambda (font) - (format #t "building font ~a\n" font) - (invoke "mf" "-progname=mf" - "-output-directory=build" - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "batchmode; " - "input " (basename font ".mf")))) - (find-files "." "[0-9]+\\.mf$")))) + (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 " (basename font ".mf")))) + (find-files "." "[0-9]+\\.mf$")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -3539,9 +3542,10 @@ TeX metrics (VF and TFM files) and macros for use with LaTeX.") "/share/texmf-dist/")) (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip"))) - (system* unzip (assoc-ref %build-inputs "source")) + (invoke unzip (assoc-ref %build-inputs "source")) (mkdir-p target) - (copy-recursively "iwona" target))))) + (copy-recursively "iwona" target) + #t)))) (native-inputs `(("unzip" ,unzip))) (home-page "http://jmn.pl/en/kurier-i-iwona/") @@ -3948,7 +3952,7 @@ directly generate PDF documents instead of DVI.") (lambda* (#:key outputs #:allow-other-keys) (let ((share (string-append (assoc-ref outputs "out") "/share"))) (mkdir-p share) - (system* "mv" "texmf-dist" share)))) + (invoke "mv" "texmf-dist" share)))) (add-after 'install 'texmf-config (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -3976,9 +3980,9 @@ directly generate PDF documents instead of DVI.") ;; http://slackbuilds.org/repository/13.37/office/texlive/ (setenv "PATH" (string-append (getenv "PATH") ":" texbin)) (setenv "TEXMFCNF" texmfroot) - (system* "updmap-sys" "--nohash" "--syncwithtrees") - (system* "mktexlsr") - (system* "fmtutil-sys" "--all"))))))) + (invoke "updmap-sys" "--nohash" "--syncwithtrees") + (invoke "mktexlsr") + (invoke "fmtutil-sys" "--all"))))))) (properties `((max-silent-time . 9600))) ; don't time out while grafting (synopsis "TeX Live, a package of the TeX typesetting system") (description @@ -4041,7 +4045,8 @@ This package contains the complete tree of texmf-dist data.") (for-each (lambda (name) (symlink (string-append texmf "/share/" name) name)) - '("texmf-dist" "texmf-var")))))))) + '("texmf-dist" "texmf-var")))) + #t)))) (synopsis "TeX Live, a package of the TeX typesetting system") (description "TeX Live provides a comprehensive TeX document production system. @@ -4224,12 +4229,12 @@ PDF documents.") (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* "qmake" - (string-append "PREFIX=" out) - (string-append "DESKTOPDIR=" out - "/share/applications") - (string-append "ICONDIR=" out "/share/pixmaps") - "texmaker.pro")))))))) + (invoke "qmake" + (string-append "PREFIX=" out) + (string-append "DESKTOPDIR=" out + "/share/applications") + (string-append "ICONDIR=" out "/share/pixmaps") + "texmaker.pro"))))))) (inputs `(("poppler-qt5" ,poppler-qt5) ("qtbase" ,qtbase) diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm index 4acc2b811f..109a24bf62 100644 --- a/gnu/packages/texinfo.scm +++ b/gnu/packages/texinfo.scm @@ -142,7 +142,9 @@ is on expressing the content semantically, avoiding physical markup commands.") ;; timestamp so we don't trigger the rule to update PO files, ;; which would require Gettext. ;; See . - '(utime "texi2html.pl" 0 0 0 0)))) + '(begin + (utime "texi2html.pl" 0 0 0 0) + #t)))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (arguments diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index d12e3d706f..2536754eb7 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -212,7 +212,9 @@ compiled, requires few libraries, and starts up quickly. ") (modules '((guix build utils))) ;; Remove pre-built binaries. - (snippet '(delete-file-recursively "bin")))) + (snippet '(begin + (delete-file-recursively "bin") + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f @@ -248,10 +250,10 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on (base32 "06w86xk7sjl2x2h3z6msn8kpmwj05qdimcym77wzhz5s94dzh1bl")) (modules '((guix build utils))) - (snippet - '(begin - (substitute* "GNUmakefile" - (("/usr/bin/") "")))))) + (snippet '(begin + (substitute* "GNUmakefile" + (("/usr/bin/") "")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index a06bf31176..5734bf62d6 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -93,10 +93,9 @@ to DOS format and vice versa.") (base32 "0r4yhf7i7zp2nl2apyzz7r3i2in12n385hmr8zcfr18ly0ly530q")) (modules '((guix build utils))) - (snippet - `(begin - (delete-file "tests/Recode.c") - #t)))) + (snippet '(begin + (delete-file "tests/Recode.c") + #t)))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 075ec8bbbe..a2f8a80704 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016 Marius Bakke -;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Ben Woodcroft ;;; Copyright © 2017 Nils Gillmann ;;; Copyright © 2017 Julien Lepiller @@ -264,16 +264,16 @@ ISO 8601 dates, time and duration.") (define-public python-monotonic (package (name "python-monotonic") - (version "1.4") + (version "1.5") (source (origin (method url-fetch) (uri (pypi-uri "monotonic" version)) (sha256 (base32 - "110zd5ld3nchdjds34r95lzs1csmmv81pli2px8l1k8qnpai29m0")))) + "1c6z46yb600klbfhqadyl7vq0jdjdxkm72k43ra3iw3d0xakv593")))) (build-system python-build-system) - (arguments '(#:tests? #f)) ;no tests + (arguments '(#:tests? #f)) ; no tests (home-page "https://github.com/atdt/monotonic") (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3") (description diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 13906b19a7..a934a50878 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -1,15 +1,15 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès -;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 David Thompson -;;; Copyright © 2015, 2016, 2017 Leo Famulari +;;; Copyright © 2015, 2016, 2017, 2018 Leo Famulari ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017, 2018 Nils Gillmann ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Ricardo Wurmus -;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017, 2018 Marius Bakke ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Rutger Helling ;;; @@ -65,8 +65,7 @@ (define-public libtasn1 (package (name "libtasn1") - (version "4.12") - (replacement libtasn1/fixed) + (version "4.13") (source (origin (method url-fetch) @@ -74,8 +73,7 @@ version ".tar.gz")) (sha256 (base32 - "0ls7jdq3y5fnrwg0pzhq11m21r8pshac2705bczz6mqjc8pdllv7")) - (patches (search-patches "libtasn1-CVE-2017-10790.patch")))) + "1jlc1iahj8k3haz28j55nzg7sgni5h41vqy461i1bpbx6668wlky")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (home-page "https://www.gnu.org/software/libtasn1/") @@ -87,14 +85,6 @@ networking, allowing for formal validation of data according to some specifications.") (license license:lgpl2.0+))) -(define libtasn1/fixed - (package - (inherit libtasn1) - (source (origin - (inherit (package-source libtasn1)) - (patches (search-patches "libtasn1-CVE-2017-10790.patch" - "libtasn1-CVE-2018-6003.patch")))))) - (define-public asn1c (package (name "asn1c") @@ -125,7 +115,7 @@ in intelligent transportation networks.") (define-public p11-kit (package (name "p11-kit") - (version "0.23.10") + (version "0.23.12") (source (origin (method url-fetch) @@ -133,7 +123,7 @@ in intelligent transportation networks.") "download/" version "/p11-kit-" version ".tar.gz")) (sha256 (base32 - "0hxfwnyb5yllvlsh0cj6favcph36gm94b6df7zhl7xay48zjl8gr")))) + "00ylbx2gxrm9bv6w4y3qf8z30vpdkqaa8z1y22hy27fv34py5fjq")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -141,7 +131,17 @@ in intelligent transportation networks.") `(("libffi" ,libffi) ("libtasn1" ,libtasn1))) (arguments - `(#:configure-flags '("--without-trust-paths"))) + `(#:configure-flags '("--without-trust-paths") + #:phases (modify-phases %standard-phases + (add-before 'check 'prepare-tests + (lambda _ + ;; "test-runtime" expects XDG_RUNTIME_DIR to be set up + ;; and looks for .cache and other directories (only). + ;; For simplicity just drop it since it is irrelevant + ;; in the build container. + (substitute* "Makefile" + (("test-runtime\\$\\(EXEEXT\\)") "")) + #t))))) (home-page "https://p11-glue.freedesktop.org/p11-kit.html") (synopsis "PKCS#11 library") (description @@ -155,7 +155,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.5.13") + (version "3.5.18") (source (origin (method url-fetch) (uri @@ -169,7 +169,7 @@ living in the same process.") "gnutls-skip-pkgconfig-test.patch")) (sha256 (base32 - "15ihq6p0hnnhs8cnjrkj40dmlcaa1jjg8xg0g2ydbnlqs454ixbr")))) + "0d02x28fwkkx7xzn7807nww6idchizzq3plx8sfcyiw7wzclh8mf")))) (build-system gnu-build-system) (arguments `(; Ensure we don't keep a reference to this buggy software. @@ -255,8 +255,7 @@ required structures.") (define-public openssl (package (name "openssl") - (replacement openssl-1.0.2o) - (version "1.0.2n") + (version "1.0.2o") (source (origin (method url-fetch) (uri (list (string-append "https://www.openssl.org/source/openssl-" @@ -268,14 +267,7 @@ required structures.") "/" name "-" version ".tar.gz"))) (sha256 (base32 - "1zm82pyq5a9jm10q6iv7d3dih3xwjds4x30fqph3k317byvsn2rp")) - (snippet - '(begin - ;; Remove ELF files. 'substitute*' can't read them. - (delete-file "test/ssltest_old") - (delete-file "test/v3ext") - (delete-file "test/x509aux") - #t)) + "0kcy13l701054nhpbd901mz32v1kn4g311z0nifd83xs2jbmqgzc")) (patches (search-patches "openssl-runpath.patch" "openssl-c-rehash-in.patch")))) (build-system gnu-build-system) @@ -308,26 +300,25 @@ required structures.") 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? - (system* "./config" - "shared" ;build shared libraries - "--libdir=lib" + (invoke "./config" + "shared" ;build shared libraries + "--libdir=lib" - ;; The default for this catch-all directory is - ;; PREFIX/ssl. Change that to something more - ;; conventional. - (string-append "--openssldir=" out - "/share/openssl-" ,version) + ;; The default for this catch-all directory is + ;; PREFIX/ssl. Change that to something more + ;; conventional. + (string-append "--openssldir=" out + "/share/openssl-" ,version) - (string-append "--prefix=" out) + (string-append "--prefix=" out) - ;; XXX FIXME: Work around a code generation bug in GCC - ;; 4.9.3 on ARM when compiled with -mfpu=neon. See: - ;; - ,@(if (and (not (%current-target-system)) - (string-prefix? "armhf" (%current-system))) - '("-mfpu=vfpv3") - '())))))) + ;; XXX FIXME: Work around a code generation bug in GCC + ;; 4.9.3 on ARM when compiled with -mfpu=neon. See: + ;; + ,@(if (and (not (%current-target-system)) + (string-prefix? "armhf" (%current-system))) + '("-mfpu=vfpv3") + '()))))) (add-after 'install 'make-libraries-writable (lambda* (#:key outputs #:allow-other-keys) @@ -400,27 +391,6 @@ required structures.") (license license:openssl) (home-page "https://www.openssl.org/"))) -(define openssl-1.0.2o - (package - (inherit openssl) - (name "openssl") - (version "1.0.2o") - (source (origin - (inherit (package-source openssl)) - (uri (list (string-append "https://www.openssl.org/source/openssl-" - version ".tar.gz") - (string-append "ftp://ftp.openssl.org/source/" - name "-" version ".tar.gz") - (string-append "ftp://ftp.openssl.org/source/old/" - (string-trim-right version char-set:letter) - "/" name "-" version ".tar.gz"))) - (sha256 - (base32 - "0kcy13l701054nhpbd901mz32v1kn4g311z0nifd83xs2jbmqgzc")) - ;; Erase the inherited snippet, which isn't applicable to - ;; OpenSSL 1.0.2o. - (snippet #f))))) - (define-public openssl-next (package (inherit openssl) @@ -454,27 +424,26 @@ required structures.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (lib (string-append out "/lib"))) - (zero? - (system* "./config" - "shared" ;build shared libraries - "--libdir=lib" + (invoke "./config" + "shared" ;build shared libraries + "--libdir=lib" - ;; The default for this catch-all directory is - ;; PREFIX/ssl. Change that to something more - ;; conventional. - (string-append "--openssldir=" out - "/share/openssl-" ,version) + ;; The default for this catch-all directory is + ;; PREFIX/ssl. Change that to something more + ;; conventional. + (string-append "--openssldir=" out + "/share/openssl-" ,version) - (string-append "--prefix=" out) - (string-append "-Wl,-rpath," lib) + (string-append "--prefix=" out) + (string-append "-Wl,-rpath," lib) - ;; XXX FIXME: Work around a code generation bug in GCC - ;; 4.9.3 on ARM when compiled with -mfpu=neon. See: - ;; - ,@(if (and (not (%current-target-system)) - (string-prefix? "armhf" (%current-system))) - '("-mfpu=vfpv3") - '())))))) + ;; XXX FIXME: Work around a code generation bug in GCC + ;; 4.9.3 on ARM when compiled with -mfpu=neon. See: + ;; + ,@(if (and (not (%current-target-system)) + (string-prefix? "armhf" (%current-system))) + '("-mfpu=vfpv3") + '()))))) ;; XXX: Duplicate this phase to make sure 'version' evaluates ;; in the current scope and not the inherited one. @@ -490,14 +459,14 @@ required structures.") (define-public libressl (package (name "libressl") - (version "2.7.2") + (version "2.7.3") (source (origin (method url-fetch) (uri (string-append "mirror://openbsd/LibreSSL/" name "-" version ".tar.gz")) (sha256 (base32 - "1589f0kg7kj51j9hid542s4isb96s1azjaqsfprpy5s2qdwqfyli")))) + "1597kj9jy3jyw52ys19sd4blg2gkam5q0rqdxbnrnvnyw67hviqn")))) (build-system gnu-build-system) (arguments ;; Do as if 'getentropy' was missing since older Linux kernels lack it @@ -534,13 +503,13 @@ netcat implementation that supports TLS.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.23.0") + (version "0.24.0") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "0l257dq1i2gka6ynldidpwaz1aa726643crqqckga1w5awsndh88")))) + "1jq1nlly5146k08dw31fc1pw78plya5jswznnd512c08giif0mfn")))) (build-system python-build-system) (arguments `(#:phases @@ -589,7 +558,7 @@ netcat implementation that supports TLS.") (uri (pypi-uri name version)) (sha256 (base32 - "0gh5fr61c3mj5vdkn68k17wcvri9rdj506cmmz6631i2l5flrzvc")))) + "0w3dbz74rpabjnc3l3ybnzjdypbr65lsjqf9yn243b5kid9d8wm0")))) (build-system python-build-system) (arguments `(,@(substitute-keyword-arguments (package-arguments python-acme) @@ -644,14 +613,14 @@ certificates for free.") (define-public perl-net-ssleay (package (name "perl-net-ssleay") - (version "1.82") + (version "1.85") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/M/MI/MIKEM/" "Net-SSLeay-" version ".tar.gz")) (sha256 (base32 - "1rf78z1macgmp6mwd7c2xq4yfw6wpf28hfwfz1d5wslqr4cwb5aq")))) + "1j5h4ycm8538397l204d2d5fkm9595aj174pj7bkpbhwzfwqi0cx")))) (build-system perl-build-system) (inputs `(("openssl" ,openssl))) (arguments @@ -675,18 +644,20 @@ servers or clients for more complicated applications.") (define-public perl-crypt-openssl-rsa (package (name "perl-crypt-openssl-rsa") - (version "0.28") + (version "0.30") (source (origin (method url-fetch) (uri (string-append - "mirror://cpan/authors/id/P/PE/PERLER/Crypt-OpenSSL-RSA-" + "mirror://cpan/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-" version ".tar.gz")) (sha256 (base32 - "1gnpvv09b2gpifwdzc5jnhama3d1a4c39lzj9hcaicsb8rvzjmsk")))) + "1b19kaaw4wda8dy6kjiwqa2prpbs2dqcyjyj9zdh5wbs74qkbq93")))) (build-system perl-build-system) + (native-inputs + `(("perl-crypt-openssl-guess" ,perl-crypt-openssl-guess))) (inputs `(("perl-crypt-openssl-bignum" ,perl-crypt-openssl-bignum) ("perl-crypt-openssl-random" ,perl-crypt-openssl-random) @@ -834,7 +805,7 @@ then ported to the GNU / Linux environment.") (define-public mbedtls-apache (package (name "mbedtls-apache") - (version "2.7.2") + (version "2.7.3") (source (origin (method url-fetch) @@ -844,7 +815,7 @@ then ported to the GNU / Linux environment.") version "-apache.tgz")) (sha256 (base32 - "1mvkqlxxvl6yp1g5g9dk4l7h3wl6149p3pfwgwzgs7xybyxw4f7x")))) + "0rfpcc4i01qsl66iy1z9vaw00s34h4qgx3r41i1v5vazv7vjla05")))) (build-system cmake-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 795c105f61..b18673b81b 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -47,14 +47,14 @@ (define-public tor (package (name "tor") - (version "0.3.2.10") + (version "0.3.3.6") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "1vnb2wkcmm8rnz0fqi3k7arl60mpycs8rjn8hvbgv56g3p1pgpv0")))) + "1drk2h8zd05xrfpx7xn77pcxz0hs4nrq6figw56qk5gkvgv5kg4r")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-gcc-hardening" diff --git a/gnu/packages/unrtf.scm b/gnu/packages/unrtf.scm index 3a15171a57..1d21a81a0e 100644 --- a/gnu/packages/unrtf.scm +++ b/gnu/packages/unrtf.scm @@ -61,7 +61,7 @@ #$grep "/bin:" #$sed "/bin:" #$coreutils "/bin:" (getenv "PATH"))) - (zero? (system* "autoreconf" "-vfi")))))) + (invoke "autoreconf" "-vfi"))))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/unrtf/") (synopsis "Convert Rich Text Format documents to other formats") diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index 3385d80fbc..475e1750a8 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -29,14 +29,14 @@ (define-public miniupnpc (package (name "miniupnpc") - (version "2.0.20180410") + (version "2.1") (source (origin (method url-fetch) (uri (string-append "https://miniupnp.tuxfamily.org/files/" name "-" version ".tar.gz")) (sha256 - (base32 "08vs9012bahdwid4nsf3mi2kawcq1hvz7lzpdmiynxcbpip6sk0f")))) + (base32 "1ik440yspbp3clr4m01xsl9skwyrzcvzb5nbm3i0g9x53vhbb7z1")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index b82abaf9ed..5487298929 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2013 Cyril Roelandt -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2014, 2015, 2016 Mark H Weaver @@ -19,6 +19,8 @@ ;;; Copyright © 2017 Stefan Reichör ;;; Copyright © 2017 Oleg Pykhalov ;;; Copyright © 2018 Sou Bunnbu +;;; Copyright © 2018 Christopher Baines +;;; Copyright © 2018 Timothy Sample ;;; ;;; This file is part of GNU Guix. ;;; @@ -83,6 +85,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-web) #:use-module (gnu packages readline) + #:use-module (gnu packages rsync) #:use-module (gnu packages databases) #:use-module (gnu packages admin) #:use-module (gnu packages xml) @@ -141,14 +144,14 @@ as well as the classic centralized workflow.") (name "git") ;; XXX When updating Git, check if the special 'git:src' input to cgit needs ;; to be updated as well. - (version "2.17.0") + (version "2.17.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "1ismz7nsz8dgjmk782xr9s0mr2qh06f72pdcgbxfmnw1bvlya5p9")))) + "0pm6bdnrrm165k3krnazxcxadifk2gqi30awlbcf9fism1x6w4vr")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -161,7 +164,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "09rpjj0m97h5lpzpwk47m6xsz9gb8wqf1s3dfqma3mwav2pb3njb")))))) + "0m7grrwsqaihdgcgaicxiy4rlqjpa75n5wl6hi2qhi33xa34gmc3")))))) (inputs `(("curl" ,curl) ("expat" ,expat) @@ -346,7 +349,9 @@ as well as the classic centralized workflow.") (wrap-program git-sm `("PATH" ":" prefix (,(string-append (assoc-ref inputs "perl") - "/bin"))))))) + "/bin")))) + + #t))) (add-after 'split 'install-man-pages (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -354,7 +359,7 @@ as well as the classic centralized workflow.") (manpages (assoc-ref inputs "git-manpages"))) (mkdir-p man) (with-directory-excursion man - (zero? (system* "tar" "xvf" manpages))))))))) + (invoke "tar" "xvf" manpages)))))))) (native-search-paths ;; For HTTPS access, Git needs a single-file certificate bundle, specified @@ -391,7 +396,9 @@ everything from small to very large projects with speed and efficiency.") (patches (search-patches "libgit2-0.25.1-mtime-0.patch")) ;; Remove bundled software. - (snippet '(delete-file-recursively "deps")) + (snippet '(begin + (delete-file-recursively "deps") + #t)) (modules '((guix build utils))))) (build-system cmake-build-system) (outputs '("out" "debug")) @@ -551,6 +558,21 @@ collaboration using typical untrusted file hosts or services.") (quoted-file-name (assoc-ref inputs "bzip2") "/bin/bzip2")) (("\"xz\"") (quoted-file-name (assoc-ref inputs "xz") "/bin/xz"))) + + (substitute* "filters/about-formatting.sh" + (("$\\(dirname $0\\)") (string-append (assoc-ref outputs "out") + "/lib/cgit/filters")) + (("\\| tr") (string-append "| " (which "tr")))) + + (substitute* "filters/html-converters/txt2html" + (("sed") (which "sed"))) + + (substitute* "filters/html-converters/man2html" + (("groff") (which "groff"))) + + (substitute* "filters/html-converters/rst2html" + (("rst2html\\.py") (which "rst2html.py"))) + #t)) (delete 'configure) ; no configure script (add-after 'build 'build-man @@ -569,7 +591,17 @@ collaboration using typical untrusted file hosts or services.") ;; to get it stripped. (rename-file (string-append out "/share/cgit/cgit.cgi") (string-append out "/lib/cgit/cgit.cgi")) - #t))))))) + #t)))) + (add-after 'install 'wrap-python-scripts + (lambda* (#:key outputs #:allow-other-keys) + (for-each + (lambda (file) + (wrap-program (string-append (assoc-ref outputs "out") + "/lib/cgit/filters/" file) + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))) + '("syntax-highlighting.py" + "html-converters/md2html")) + #t))))) (native-inputs ;; For building manpage. `(("asciidoc" ,asciidoc) @@ -588,6 +620,11 @@ collaboration using typical untrusted file hosts or services.") (base32 "1r2aa19gnrvm2y4fqcvpw1g9l72n48axqmpgv18s6d0y2p72vhzj")))) ("openssl" ,openssl) + ("groff" ,groff) + ("python" ,python) + ("python-docutils" ,python-docutils) + ("python-markdown" ,python-markdown) + ("python-pygments" ,python-pygments) ("zlib" ,zlib))) (home-page "https://git.zx2c4.com/cgit/") (synopsis "Web frontend for git repositories") @@ -694,13 +731,13 @@ allowing to handle large objects with a small memory footprint.") (define-public python-gitpython (package (name "python-gitpython") - (version "2.1.9") + (version "2.1.10") (source (origin (method url-fetch) (uri (pypi-uri "GitPython" version)) (sha256 (base32 - "0a9in1jfv9ssxhckl6sasw45bhm762y2r5ikgb2pk2g8yqdc6z64")))) + "00bk48s5szh296r7zyvdpv3sd7q9j2cb9sqdc9diwcjayrf082xn")))) (build-system python-build-system) (arguments `(#:tests? #f ;XXX: Tests can only be run within the GitPython repository. @@ -1107,23 +1144,21 @@ following features: (lambda* (#:key outputs #:allow-other-keys) ;; Follow the instructions from 'subversion/bindings/swig/INSTALL'. (let ((out (assoc-ref outputs "out"))) - (and (zero? (system* "make" "swig-pl-lib")) - ;; FIXME: Test failures. - ;; (zero? (system* "make" "check-swig-pl")) - (zero? (system* "make" "install-swig-pl-lib")) + (invoke "make" "swig-pl-lib") + ;; FIXME: Test failures. + ;; (invoke "make" "check-swig-pl") + (invoke "make" "install-swig-pl-lib") - ;; Set the right installation prefix. - (with-directory-excursion - "subversion/bindings/swig/perl/native" - (and (zero? - (system* "perl" "Makefile.PL" - "NO_PERLLOCAL=1" - (string-append "PREFIX=" out))) - (zero? - (system* "make" "install" - (string-append "OTHERLDFLAGS=" - "-Wl,-rpath=" - out "/lib")))))))))))) + ;; Set the right installation prefix. + (with-directory-excursion + "subversion/bindings/swig/perl/native" + (invoke "perl" "Makefile.PL" + "NO_PERLLOCAL=1" + (string-append "PREFIX=" out)) + (invoke "make" "install" + (string-append "OTHERLDFLAGS=" + "-Wl,-rpath=" + out "/lib"))))))))) (native-inputs `(("pkg-config" ,pkg-config) ;; For the Perl bindings. @@ -1468,7 +1503,8 @@ any project with more than one developer, is one of Aegis's major functions.") (lambda* (#:key outputs #:allow-other-keys) (install-file "reposurgeon-mode.el" (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp"))))))) + "/share/emacs/site-lisp")) + #t))))) (inputs `(("python" ,python-wrapper) ("tzdata" ,tzdata))) @@ -1546,11 +1582,6 @@ output of the 'git' command.") (base32 "1ydis4y0amkgfr4y60sn076f1l41ya2kn89kfd9fqf44f9ccgb5r")))) (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) (home-page "https://github.com/0-wiz-0/findnewest/releases") @@ -1572,7 +1603,8 @@ modification time.") (commit version))) (file-name (string-append name "-" version "-checkout")) (sha256 - (base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0")))) + (base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0")) + (patches (search-patches "myrepos-CVE-2018-7032.patch")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) @@ -1622,7 +1654,7 @@ repository\" with git-annex.") (define-public fossil (package (name "fossil") - (version "2.4") + (version "2.5") (source (origin (method url-fetch) @@ -1636,7 +1668,7 @@ repository\" with git-annex.") "fossil-src-" version ".tar.gz"))) (sha256 (base32 - "0add35lk2ac4qg29d7ygj7pskv8lfln33f3kgf6x3548msv9hd6j")))) + "1lxawkhr1ki9fqw8076fxib2b1w673449yzb6vxjshqzh5h77c7r")))) (build-system gnu-build-system) (native-inputs `(("tcl" ,tcl) ;for configuration only @@ -1728,7 +1760,8 @@ be served with a HTTP file server of your choice.") (("__TIME__") "\"00:00:00\"")) (substitute* "src/impossible.h" (("__DATE__") "\"\"") - (("__TIME__") "\"\"")))))) + (("__TIME__") "\"\"")) + #t)))) (build-system haskell-build-system) (arguments `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded" @@ -1962,3 +1995,130 @@ venerable RCS, hence the anagrammatic acronym. The design is tuned for use cases like all those little scripts in your @file{~/bin} directory, or a directory full of HOWTOs.") (license license:bsd-2))) + +(define-public git-annex + (package + (name "git-annex") + (version "6.20170818") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "git-annex/git-annex-" version ".tar.gz")) + (sha256 + (base32 + "0ybxixbqvy4rx6mq9s02rh349rbr04hb17z4bfayin0qwa5kzpvx")))) + (build-system haskell-build-system) + (arguments + `(#:configure-flags + '("--flags=-Android -Assistant -Pairing -S3 -Webapp -WebDAV") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-shell + (lambda _ + (substitute* "Utility/Shell.hs" + (("/bin/sh") (which "sh"))) + #t)) + (add-before 'configure 'factor-setup + (lambda _ + ;; Factor out necessary build logic from the provided + ;; `Setup.hs' script. The script as-is does not work because + ;; it cannot find its dependencies, and there is no obvious way + ;; to tell it where to look. Note that we do not preserve the + ;; code that installs man pages here. + (call-with-output-file "PreConf.hs" + (lambda (out) + (format out "import qualified Build.Configure as Configure~%") + (format out "main = Configure.run Configure.tests~%"))) + (call-with-output-file "Setup.hs" + (lambda (out) + (format out "import Distribution.Simple~%") + (format out "main = defaultMain~%"))) + #t)) + (add-before 'configure 'pre-configure + (lambda _ + (invoke "runhaskell" "PreConf.hs") + #t)) + (replace 'check + (lambda _ + ;; We need to set the path so that Git recognizes + ;; `git annex' as a custom command. + (setenv "PATH" (string-append (getenv "PATH") ":" + (getcwd) "/dist/build/git-annex")) + (with-directory-excursion "dist/build/git-annex" + (symlink "git-annex" "git-annex-shell")) + (invoke "git-annex" "test") + #t)) + (add-after 'install 'install-symlinks + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (symlink (string-append bin "/git-annex") + (string-append bin "/git-annex-shell")) + (symlink (string-append bin "/git-annex") + (string-append bin "/git-remote-tor-annex")) + #t)))))) + (inputs + `(("curl" ,curl) + ("ghc-aeson" ,ghc-aeson) + ("ghc-async" ,ghc-async) + ("ghc-bloomfilter" ,ghc-bloomfilter) + ("ghc-byteable" ,ghc-byteable) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-crypto-api" ,ghc-crypto-api) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-data-default" ,ghc-data-default) + ("ghc-disk-free-space" ,ghc-disk-free-space) + ("ghc-dlist" ,ghc-dlist) + ("ghc-edit-distance" ,ghc-edit-distance) + ("ghc-esqueleto" ,ghc-esqueleto) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-feed" ,ghc-feed) + ("ghc-free" ,ghc-free) + ("ghc-hslogger" ,ghc-hslogger) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-conduit" ,ghc-http-conduit) + ("ghc-http-types" ,ghc-http-types) + ("ghc-ifelse" ,ghc-ifelse) + ("ghc-memory" ,ghc-memory) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-monad-logger" ,ghc-monad-logger) + ("ghc-mtl" ,ghc-mtl) + ("ghc-network" ,ghc-network) + ("ghc-old-locale" ,ghc-old-locale) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-persistent" ,ghc-persistent) + ("ghc-persistent-sqlite" ,ghc-persistent-sqlite) + ("ghc-persistent-template" ,ghc-persistent-template) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-regex-tdfa" ,ghc-regex-tdfa) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-safesemaphore" ,ghc-safesemaphore) + ("ghc-sandi" ,ghc-sandi) + ("ghc-securemem" ,ghc-securemem) + ("ghc-socks" ,ghc-socks) + ("ghc-split" ,ghc-split) + ("ghc-stm" ,ghc-stm) + ("ghc-stm-chans" ,ghc-stm-chans) + ("ghc-text" ,ghc-text) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-uuid" ,ghc-uuid) + ("git" ,git) + ("rsync" ,rsync))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-tasty-rerun" ,ghc-tasty-rerun))) + (home-page "https://git-annex.branchable.com/") + (synopsis "Manage files with Git, without checking in their contents") + (description "This package allows managing files with Git, without +checking the file contents into Git. It can store files in many places, +such as local hard drives and cloud storage services. It can also be +used to keep a folder in sync between computers.") + ;; The web app is released under the AGPLv3+. + (license (list license:gpl3+ + license:agpl3+)))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 58fd35558c..8cd7a3d57c 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2014, 2015, 2016 David Thompson -;;; Copyright © 2014, 2015, 2016 Mark H Weaver +;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2015 Andy Patterson @@ -63,6 +63,7 @@ #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) + #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages boost) @@ -94,6 +95,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages iso-codes) + #:use-module (gnu packages libidn) #:use-module (gnu packages libreoffice) #:use-module (gnu packages linux) #:use-module (gnu packages lua) @@ -110,7 +112,9 @@ #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages qt) + #:use-module (gnu packages rdesktop) #:use-module (gnu packages ruby) + #:use-module (gnu packages samba) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages shells) @@ -118,6 +122,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) + #:use-module (gnu packages upnp) #:use-module (gnu packages version-control) #:use-module (gnu packages vulkan) #:use-module (gnu packages web) @@ -155,22 +160,22 @@ (let ((out (assoc-ref outputs "out")) (ncurses (assoc-ref inputs "ncurses"))) (setenv "CONFIG_SHELL" (which "bash")) - (zero? (system* "./configure" - (string-append "--prefix=" out) - (string-append "--build=" build) - ;; The ancient config.guess is unable to - ;; guess the host triplet on mips64el. - ,@(if (string=? "mips64el-linux" - (%current-system)) - '("--host=mips64el-unknown-linux-gnu") - '()) - ;; The same is also true with aarch64. - ,@(if (string=? "aarch64-linux" - (%current-system)) - '("--host=aarch64-unknown-linux-gnu") - '()) - (string-append "--with-ncurses=" - ncurses))))))))) + (invoke "./configure" + (string-append "--prefix=" out) + (string-append "--build=" build) + ;; The ancient config.guess is unable to + ;; guess the host triplet on mips64el. + ,@(if (string=? "mips64el-linux" + (%current-system)) + '("--host=mips64el-unknown-linux-gnu") + '()) + ;; The same is also true with aarch64. + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--host=aarch64-unknown-linux-gnu") + '()) + (string-append "--with-ncurses=" + ncurses)))))))) (home-page "http://aa-project.sourceforge.net/aalib/") (synopsis "ASCII-art library") (description @@ -208,9 +213,8 @@ old-fashioned output methods with powerful ascii-art renderer.") (modify-phases %standard-phases ;; XXX We need to run ./bootstrap because of the build ;; system fixes above. - (add-after - 'unpack 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap"))))))) + (replace 'bootstrap + (lambda _ (invoke "sh" "bootstrap")))))) (home-page "http://liba52.sourceforge.net/") (synopsis "ATSC A/52 stream decoder") (description "liba52 is a library for decoding ATSC A/52 streams. The @@ -306,15 +310,15 @@ H.264 (MPEG-4 AVC) video streams.") (base32 "0hknnnnx9661igm1r73dc7aqxnnrl5a8yvyvr1nhd9ymn2klwpl5")) (modules '((guix build utils))) - (snippet - '(begin - ;; Delete bundled libraries. - (for-each delete-file-recursively - '("lib/libebml" - "lib/libmatroska" - "lib/nlohmann-json" - "lib/pugixml" - "lib/utf8-cpp")))))) + (snippet '(begin + ;; Delete bundled libraries. + (for-each delete-file-recursively + '("lib/libebml" + "lib/libmatroska" + "lib/nlohmann-json" + "lib/pugixml" + "lib/utf8-cpp")) + #t)))) (build-system gnu-build-system) (inputs `(("boost" ,boost) @@ -362,13 +366,13 @@ H.264 (MPEG-4 AVC) video streams.") (replace 'build (lambda _ (let ((-j (list "-j" (number->string (parallel-job-count))))) - (zero? (apply system* "rake" -j))))) + (apply invoke "rake" -j)))) (replace 'check (lambda _ - (zero? (system* "rake" "tests/unit")))) + (invoke "rake" "tests/unit"))) (replace 'install (lambda _ - (zero? (system* "rake" "install"))))))) + (invoke "rake" "install")))))) (home-page "https://mkvtoolnix.download") (synopsis "Tools to create, alter and inspect Matroska files") (description @@ -380,7 +384,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (define-public x265 (package (name "x265") - (version "2.6") + (version "2.8") (source (origin (method url-fetch) @@ -388,14 +392,15 @@ and creating Matroska files from other media files (@code{mkvmerge}).") "x265_" version ".tar.gz")) (sha256 (base32 - "1gyd94jkwdii9308m07nymsbxrmrcl81c0j8i10zhslr2mj07w0v")) + "0qx8mavwdzdpkkby7n29i9av7zsnklavacwfz537mf62q2pzjnbf")) (modules '((guix build utils))) - (snippet - '(delete-file-recursively "source/compat/getopt")))) + (snippet '(begin + (delete-file-recursively "source/compat/getopt") + #t)))) (build-system cmake-build-system) (arguments `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built - ;; Currently the source code doesn't check for aarch64 + ;; Currently the source code doesn't check for aarch64. ,@(if (string-prefix? "aarch64" (or (%current-target-system) (%current-system))) '(#:configure-flags '("-DENABLE_PIC=TRUE")) '()) @@ -472,7 +477,7 @@ canvas operations.") (define-public libdca (package (name "libdca") - (version "0.0.5") + (version "0.0.6") (source (origin (method url-fetch) (uri (string-append @@ -480,7 +485,7 @@ canvas operations.") version "/libdca-" version ".tar.bz2")) (sha256 (base32 - "0hh6a7l8vvccsd5i1fkv9av2gzv9fy8m0b8jpsn5p6hh4bh2586v")))) + "0h0zvcn97i9kyljdpifzi8in9xnw31fx3b3ggj96p8h0l2d8mycq")))) (build-system gnu-build-system) (home-page "https://www.videolan.org/developers/libdca.html") (synopsis "DTS Coherent Acoustics decoder") @@ -515,7 +520,7 @@ SMPTE 314M.") (define-public libmatroska (package (name "libmatroska") - (version "1.4.8") + (version "1.4.9") (source (origin (method url-fetch) @@ -523,12 +528,14 @@ SMPTE 314M.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "14n9sw974prr3yp4yjb7aadi6x2yz5a0hjw8fs3qigy5shh2piyq")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) + "1j4mjzx6mjzfjf9hz8g4w84krf5jccmr5cyynll0j1vwv3aiv9iq")))) + (build-system cmake-build-system) (inputs `(("libebml" ,libebml))) + (arguments + `(#:configure-flags + (list "-DBUILD_SHARED_LIBS=YES") + #:tests? #f)) ; no test suite (home-page "https://www.matroska.org") (synopsis "C++ library to parse Matroska files (.mkv and .mka)") (description @@ -564,7 +571,8 @@ libebml is a C++ library to read and write EBML files.") ("libx11" ,libx11) ("libxext" ,libxext) ("libxfixes" ,libxfixes) - ("mesa" ,mesa))) + ("mesa" ,mesa) + ("wayland" ,wayland))) (arguments `(#:phases (modify-phases %standard-phases @@ -574,7 +582,8 @@ libebml is a C++ library to read and write EBML files.") (let ((out (assoc-ref outputs "out"))) (substitute* "va/drm/va_drm_auth_x11.c" (("\"libva-x11\\.so\\.%d\"") - (string-append "\"" out "/lib/libva-x11.so.%d\""))))))) + (string-append "\"" out "/lib/libva-x11.so.%d\""))) + #t)))) ;; Most drivers are in mesa's $prefix/lib/dri, so use that. (Can be ;; overridden at run-time via LIBVA_DRIVERS_PATH.) #:configure-flags @@ -746,13 +755,13 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (("#! /bin/sh") (string-append "#!" (which "sh")))) (setenv "SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash")) - (zero? (apply system* - "./configure" - (string-append "--prefix=" out) - ;; Add $libdir to the RUNPATH of all the binaries. - (string-append "--extra-ldflags=-Wl,-rpath=" - out "/lib") - configure-flags))))) + (apply invoke + "./configure" + (string-append "--prefix=" out) + ;; Add $libdir to the RUNPATH of all the binaries. + (string-append "--extra-ldflags=-Wl,-rpath=" + out "/lib") + configure-flags)))) (add-before 'check 'set-ld-library-path (lambda _ @@ -805,7 +814,7 @@ audio/video codec library.") (define-public vlc (package (name "vlc") - (version "2.2.8") + (version "3.0.3") (source (origin (method url-fetch) (uri (string-append @@ -813,55 +822,90 @@ audio/video codec library.") version "/vlc-" version ".tar.xz")) (sha256 (base32 - "1v32snw46rkgbdqdy3dssl2y13i8p2cr1cw1i18r6vdmiy24dw4v")))) + "0lavzly8l0ll1d9iris9cnirgcs77g48lxj14058dxqkvd5v1a4v")))) (build-system gnu-build-system) (native-inputs - `(("git" ,git) ; needed for a test + `(("flex" ,flex) + ("bison" ,bison) + ("gettext" ,gettext-minimal) + ("git" ,git) ; needed for a test ("pkg-config" ,pkg-config))) ;; FIXME: Add optional inputs once available. (inputs `(("alsa-lib" ,alsa-lib) ("avahi" ,avahi) ("dbus" ,dbus) + ("eudev" ,eudev) ("flac" ,flac) - ("ffmpeg" ,ffmpeg-2.8) ;fails to build against ffmpeg 3.0 + ("ffmpeg" ,ffmpeg) ("fontconfig" ,fontconfig) ("freetype" ,freetype) + ("fribidi" ,fribidi) ("gnutls" ,gnutls) ("liba52" ,liba52) + ("libarchive" ,libarchive) + ("libass" ,libass) + ("libavc1394" ,libavc1394) + ("libbluray" ,libbluray) + ("libcaca" ,libcaca) ("libcddb" ,libcddb) + ("libdca" ,libdca) ("libdvbpsi" ,libdvbpsi) + ("libdvdnav" ,libdvdnav) + ("libdvdread" ,libdvdread) + ("libebml" ,libebml) ("libgcrypt" ,libgcrypt) + ("libidn" ,libidn) ("libkate" ,libkate) ("libmad" ,libmad) + ("libmatroska" ,libmatroska) + ("libmodplug" ,libmodplug) + ("libmpeg2" ,libmpeg2) ("libogg" ,libogg) ("libpng" ,libpng) + ("libraw1394" ,libraw1394) + ("librsvg" ,librsvg) ("libsamplerate" ,libsamplerate) + ("libsecret" ,libsecret) ("libssh2" ,libssh2) + ("libupnp" ,libupnp) + ("libva" ,libva) + ("libvdpau" ,libvdpau) ("libvorbis" ,libvorbis) + ("libvpx" ,libvpx) ("libtheora" ,libtheora) + ("libx264" ,libx264) ("libxext" ,libxext) ("libxi" ,libxi) ("libxinerama" ,libxinerama) ("libxml2" ,libxml2) ("libxpm" ,libxpm) ("livemedia-utils" ,livemedia-utils) - ("lua" ,lua-5.1) + ("lua" ,lua-5.2) ("mesa" ,mesa) ("opus" ,opus) ("perl" ,perl) ("pulseaudio" ,pulseaudio) ("python" ,python-wrapper) ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg) ("qtx11extras" ,qtx11extras) + ("samba" ,samba) ("sdl" ,sdl) ("sdl-image" ,sdl-image) ("speex" ,speex) + ("speexdsp" ,speexdsp) + ("taglib" ,taglib) + ("twolame" ,twolame) + ("unzip" ,unzip) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols) ("x265" ,x265) ("xcb-util-keysyms" ,xcb-util-keysyms))) (arguments `(#:configure-flags `("CXXFLAGS=-std=gnu++11" + "BUILDCC=gcc" ,(string-append "LDFLAGS=-Wl,-rpath -Wl," (assoc-ref %build-inputs "ffmpeg") "/lib")) ;needed for the tests @@ -878,11 +922,24 @@ audio/video codec library.") ;; which fails in our sandboxed build system (substitute* "test/run_vlc.sh" (("./vlc --ignore-config") "echo")) - ;; XXX Likely not needed for >2.2.6. - (substitute* "modules/gui/qt4/components/interface_widgets.cpp" - (("") "")) + + ;; modules/text_renderer/freetype/text_layout.c uses a + ;; now-deprecated interface 'fribidi_get_par_embedding_levels' + ;; from fribidi.h, so for now we enable the use of deprecated + ;; fribidi interfaces from this file. + ;; FIXME: Try removing this for vlc >= 3.0.3. + (substitute* "modules/text_renderer/freetype/text_layout.c" + (("# define FRIBIDI_NO_DEPRECATED 1") "")) + + ;; Fix build against Qt 5.11. + (substitute* "modules/gui/qt/actions_manager.cpp" + (("#include ") "#include +#include ")) + (substitute* "modules/gui/qt/components/simple_preferences.cpp" + (("#include ") "#include +#include ")) #t))) - (add-after 'install 'regenerate-plugin-cache + (add-after 'strip 'regenerate-plugin-cache (lambda* (#:key outputs #:allow-other-keys) ;; The 'install-exec-hook' rule in the top-level Makefile.am ;; generates 'lib/vlc/plugins/plugins.dat', a plugin cache, using @@ -899,9 +956,16 @@ audio/video codec library.") (for-each (lambda (file) (let ((s (lstat file))) (unless (eq? (stat:type s) 'symlink) - (utime file 0 0 0 0)))) + (utime file 1 1)))) (find-files plugindir)) - (zero? (system* cachegen plugindir)))))))) + (invoke cachegen plugindir)))) + (add-after 'install 'wrap-executable + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (plugin-path (getenv "QT_PLUGIN_PATH"))) + (wrap-program (string-append out "/bin/vlc") + `("QT_PLUGIN_PATH" ":" prefix (,plugin-path)))) + #t))))) (home-page "https://www.videolan.org/") (synopsis "Audio and video framework") (description "VLC is a cross-platform multimedia player and framework @@ -1053,7 +1117,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ("pulseaudio" ,pulseaudio) ("rsound" ,rsound) ("shaderc" ,shaderc) - ("vulkan-icd-loader" ,vulkan-icd-loader) + ("vulkan-loader" ,vulkan-loader) ("waf" ,python-waf) ("wayland" ,wayland) ("wayland-protocols" ,wayland-protocols) @@ -1067,7 +1131,8 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") 'configure 'setup-waf (lambda* (#:key inputs #:allow-other-keys) (copy-file (assoc-ref inputs "waf") "waf") - (setenv "CC" "gcc")))) + (setenv "CC" "gcc") + #t))) #:configure-flags (list "--enable-libmpv-shared" "--enable-cdda" "--enable-dvdread" @@ -1153,7 +1218,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2018.04.25") + (version "2018.05.09") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1161,7 +1226,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "17zxgwfcy7c6gdyxdgh02f5zi52gvmy0zpccfj6zjkhw5iqj1vbw")))) + "0sl4bi2jls3417rd62awbqdq1b6wskkjbfwpnyw4a61qarfxid1d")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -1271,7 +1336,7 @@ other site that youtube-dl supports.") (define-public you-get (package (name "you-get") - (version "0.4.1060") + (version "0.4.1077") (source (origin (method url-fetch) (uri (string-append @@ -1280,7 +1345,7 @@ other site that youtube-dl supports.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1pq7c2ay42aan7ykpmddzh6ylq0qsq8a27pk68m5imaxi6abbwsz")))) + "04vxc91k627qgsqs8dhqajrb6vpj4pw21jlwbha28qakfiz2x11k")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg))) ; for multi-part and >=1080p videos @@ -1800,7 +1865,12 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (add-before 'check 'check-setup (lambda _ (setenv "HOME" (getcwd)) ;Needs to write to ‘$HOME’. - #t))))) + #t)) + (add-after 'install 'install-rofi-plugin + (lambda* (#:key outputs #:allow-other-keys) + (install-file "plugins/rofi-twitchy" + (string-append (assoc-ref outputs "out") + "/bin"))))))) (inputs `(("python-requests" ,python-requests) ("streamlink" ,streamlink))) @@ -1823,10 +1893,11 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (base32 "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47")) (modules '((guix build utils))) - (snippet - ;; As of glibc 2.26, no longer is. - '(substitute* "src/framework/mlt_property.h" - (("xlocale\\.h") "locale.h"))))) + (snippet '(begin + ;; As of glibc 2.26, no longer is. + (substitute* "src/framework/mlt_property.h" + (("xlocale\\.h") "locale.h")) + #t)))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -1963,9 +2034,9 @@ and JACK.") (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("dri2proto" ,dri2proto) - ("libx11" ,libx11 "out") - ("libxext" ,libxext))) + `(("libx11" ,libx11 "out") + ("libxext" ,libxext) + ("xorgproto" ,xorgproto))) (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/") (synopsis "Video Decode and Presentation API") (description "VDPAU is the Video Decode and Presentation API for UNIX. It @@ -2012,7 +2083,8 @@ implementation.") "1x2ag1f2fwa4yh1g5spv99w9x1m33hbxlqwyhm205ssq0ra234bx")) (patches (search-patches "libvdpau-va-gl-unbundle.patch")) (modules '((guix build utils))) - (snippet '(delete-file-recursively "3rdparty")))) + (snippet '(begin (delete-file-recursively "3rdparty") + #t)))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; Tests require a running X11 server, with VA-API support. @@ -2066,7 +2138,7 @@ making @dfn{screencasts}.") (define-public simplescreenrecorder (package (name "simplescreenrecorder") - (version "0.3.10") + (version "0.3.11") (source (origin (method url-fetch) @@ -2075,14 +2147,14 @@ making @dfn{screencasts}.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "02rl9yyx3hlz9fqvgzv7ipmvx2qahj7ws5wx2m7zs3lssq3qag3g")))) + "0l6irdadqpajvv0dj3ngs1231n559l0y1pykhs2h7526qm4w7xal")))) (build-system cmake-build-system) ;; Although libx11, libxfixes, libxext are listed as build dependencies in ;; README.md, the program builds and functions properly without them. ;; As a result, they are omitted. Please add them back if problems appear. (inputs `(("alsa-lib" ,alsa-lib) - ("ffmpeg" ,ffmpeg-3.4) + ("ffmpeg" ,ffmpeg) ("glu" ,glu) ("jack" ,jack-1) ("libxi" ,libxi) @@ -2188,7 +2260,7 @@ Content System specification.") (define-public mps-youtube (package (name "mps-youtube") - (version "0.2.7.1") + (version "0.2.8") (source (origin (method url-fetch) @@ -2197,7 +2269,7 @@ Content System specification.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1s7h35yx6f0szf8mm8612ic913w3v05m2kwphjfcxnpq0ammhyci")))) + "0x7cmfh199q9j396v7bz81nnvanfllhsg86489i5dw2p3yyc9wnm")))) (build-system python-build-system) (arguments ;; Tests need to be disabled until #556 upstream is fixed. It reads as if the @@ -2279,7 +2351,7 @@ supported players in addition to this package.") `(#:tests? #f ;tests require Ruby and claim to be unsupported #:phases (modify-phases %standard-phases - (add-before 'patch-source-shebangs 'bootstrap-gtk + (replace 'bootstrap ;; Run bootstrap ahead of time so that shebangs get patched. (lambda _ (setenv "CONFIG_SHELL" (which "sh")) @@ -2524,10 +2596,11 @@ many codecs and formats supported by libmediainfo.") (base32 "0f5kxpayqn3yhabqrd2cqlc74i6x2xr01jfkank1lcilxnfyrsnq")) (modules '((guix build utils))) - (snippet - ;; As of glibc 2.26, no longer is. - '(substitute* "liveMedia/include/Locale.hh" - (("xlocale\\.h") "locale.h"))))) + (snippet '(begin + ;; As of glibc 2.26, no longer is. + (substitute* "liveMedia/include/Locale.hh" + (("xlocale\\.h") "locale.h")) + #t)))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests @@ -2798,7 +2871,7 @@ It counts more than 100 plugins.") ("sqlite" ,sqlite))) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (patch-shebang "version.sh") (invoke "autoreconf" "-vfi")))) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index e85d3ebd5b..76240d85f1 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -61,7 +61,7 @@ (define-public vim (package (name "vim") - (version "8.0.1428") + (version "8.1.0026") (source (origin (method url-fetch) (uri (string-append "https://github.com/vim/vim/archive/v" @@ -69,7 +69,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "08hzx843cxr5b2llc3332wxpgh3gjrs7jgd6s3sdrxnvg0s0y7s8")))) + "14q99dn113czp522j34p71za6g1mkriy04xxwcbm3axnrrpv1y52")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -81,7 +81,8 @@ (substitute* "runtime/tools/mve.awk" (("/usr/bin/nawk") (which "gawk"))) (substitute* '("src/testdir/Makefile" - "src/testdir/test_normal.vim") + "src/testdir/test_normal.vim" + "src/testdir/test_terminal.vim") (("/bin/sh") (which "sh"))) #t)) (add-before 'check 'patch-failing-test @@ -93,7 +94,6 @@ #t))))) (inputs `(("gawk" ,gawk) - ("inetutils" ,inetutils) ("ncurses" ,ncurses) ("perl" ,perl) ("tcsh" ,tcsh))) ; For runtime/tools/vim32 @@ -121,12 +121,14 @@ configuration files.") (delete 'configure) (add-after 'unpack 'chdir (lambda _ - (chdir "src/xxd"))) + (chdir "src/xxd") + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) (install-file "xxd" bin) #t)))))) + (inputs `()) (synopsis "Hexdump utility from vim") (description "This package provides the Hexdump utility xxd that comes with the editor vim."))) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index b73287c826..d2419df980 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès -;;; Copyright © 2015, 2016, 2017 Mark H Weaver +;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2017 Alex Vong @@ -30,6 +30,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) + #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) @@ -38,6 +39,7 @@ #:use-module (gnu packages dns) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) + #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) @@ -199,6 +201,8 @@ exec smbd $@"))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ; gtester, etc. ("perl" ,perl) + ("flex" ,flex) + ("bison" ,bison) ("pkg-config" ,pkg-config) ("python-wrapper" ,python-wrapper) ("texinfo" ,texinfo))) @@ -256,7 +260,9 @@ server and embedded PowerPC, and S390 guests.") version ".tar.xz")) (sha256 (base32 - "17w21spvaxaidi2am5lpsln8yjpyp2zi3s3gc6nsxj5arlgamzgw")))) + "17w21spvaxaidi2am5lpsln8yjpyp2zi3s3gc6nsxj5arlgamzgw")) + (patches + (search-patches "qemu-glibc-2.27.patch")))) ;; qemu-minimal-2.10 needs Python 2. Remove below once no longer necessary. (native-inputs `(("python-2" ,python-2) ,@(fold alist-delete (package-native-inputs qemu) @@ -331,7 +337,7 @@ all common programming languages. Vala bindings are also provided.") (define-public lxc (package (name "lxc") - (version "2.1.1") + (version "3.0.1") (source (origin (method url-fetch) (uri (string-append @@ -339,7 +345,7 @@ all common programming languages. Vala bindings are also provided.") version ".tar.gz")) (sha256 (base32 - "1xpghrinxhm2072fwmn42pxhjwh7qx6cbsipw4s6g38a8mkklrk8")))) + "1nyml98k28sc5sda0260cmby4irkpnhpwgmx4yhqy10wpr4nr625")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -377,14 +383,14 @@ manage system or application containers.") (define-public libvirt (package (name "libvirt") - (version "4.2.0") + (version "4.3.0") (source (origin (method url-fetch) (uri (string-append "https://libvirt.org/sources/libvirt-" version ".tar.xz")) (sha256 (base32 - "0nq1iz5iic466qahp0i8dlvyd6li0b0pdrvvrz9286l12x2fm61s")))) + "1dy243dqaj174hcka0my7q781wf0dvyi7f9328nwnplqicnf4cd5")))) (build-system gnu-build-system) (arguments `(;; FAIL: virshtest diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index c93960bc05..fb06196ec4 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -65,7 +65,8 @@ (substitute* "lib/Makefile.in" (("getopt1?\\.(c|h|\\$\\(OBJEXT\\))") "")) (for-each delete-file - '("lib/getopt.h" "lib/getopt.c")))))) + '("lib/getopt.h" "lib/getopt.c")) + #t)))) (build-system gnu-build-system) (home-page "http://software.schmorp.de/pkg/gvpe.html") (inputs `(("openssl" ,openssl) diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index ac9f6f2f25..b36471c0eb 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -24,21 +24,26 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages bison) + #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages wine) #:use-module (gnu packages xorg)) (define-public spirv-headers ;; Keep updated in accordance with ;; https://github.com/google/shaderc/blob/known-good/known_good.json - (let ((commit "061097878467b8e040fbf153a837d844ef9f9f96") - (revision "2")) + (let ((commit "3ce3e49d73b8abbf2ffe33f829f941fb2a40f552") + (revision "3")) (package (name "spirv-headers") (version (string-append "0.0-" revision "." (string-take commit 9))) @@ -50,7 +55,7 @@ (commit commit))) (sha256 (base32 - "0bf9h6xc5fkncxnadwmqvpsjh7sdgns6is8prv1gvlfzrkvpjj17")) + "0yk4bzqifdqpmdxkhvrxbdqhf5ngkga0ig1yyz7khr7rklqfz7wp")) (file-name (string-append name "-" version "-checkout")))) (build-system cmake-build-system) (arguments @@ -58,10 +63,10 @@ #:phases (modify-phases %standard-phases (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (zero? (system* "cmake" "-E" "copy_directory" + (invoke "cmake" "-E" "copy_directory" "../source/include/spirv" (string-append (assoc-ref outputs "out") - "/include/spirv")))))))) + "/include/spirv"))))))) (home-page "https://github.com/KhronosGroup/SPIRV-Headers") (synopsis "Machine-readable files from the SPIR-V Registry") (description @@ -80,8 +85,8 @@ and for the GLSL.std.450 extended instruction set. (define-public spirv-tools ;; Keep updated in accordance with ;; https://github.com/google/shaderc/blob/known-good/known_good.json - (let ((commit "90862fe4b1c6763b32ce683d2d32c2f281f577cf") - (revision "1")) + (let ((commit "fe2fbee294a8ad4434f828a8b4d99eafe9aac88c") + (revision "2")) (package (name "spirv-tools") (version (string-append "0.0-" revision "." (string-take commit 9))) @@ -93,14 +98,12 @@ and for the GLSL.std.450 extended instruction set. (commit commit))) (sha256 (base32 - "1yq8ab6f52wcxm2azzmx70nqz8l35izd45830aikjkk1jfzmzabb")) + "03rq4ypwqnz34n8ip85n95a3b9rxb34j26azzm3b3invaqchv19x")) (file-name (string-append name "-" version "-checkout")))) (build-system cmake-build-system) (arguments - `(#:configure-flags (list (string-append "-DCMAKE_INSTALL_LIBDIR=" - (assoc-ref %outputs "out") - "/lib") - (string-append "-DSPIRV-Headers_SOURCE_DIR=" + `(#:tests? #f ; FIXME: Tests fail. + #:configure-flags (list (string-append "-DSPIRV-Headers_SOURCE_DIR=" (assoc-ref %build-inputs "spirv-headers"))))) (inputs `(("spirv-headers" ,spirv-headers))) @@ -117,8 +120,8 @@ disassembler, validator, and optimizer for SPIR-V.") (define-public glslang ;; Keep updated in accordance with ;; https://github.com/google/shaderc/blob/known-good/known_good.json - (let ((commit "b5b08462442239e6537315ea1405b6afcd53043e") - (revision "2")) + (let ((commit "32d3ec319909fcad0b2b308fe1635198773e8316") + (revision "3")) (package (name "glslang") (version (string-append "3.0-" revision "." (string-take commit 9))) @@ -130,7 +133,7 @@ disassembler, validator, and optimizer for SPIR-V.") (commit commit))) (sha256 (base32 - "08imby3hciisshzacrkx8s56lx4fxm7dad06xxaxxcapinmqrvwk")) + "1kmgjv5kbrjy6azpgwnjcn3cj8vg5i8hnyk3m969sc0gq2j1rbjj")) (file-name (string-append name "-" version "-checkout")))) (build-system cmake-build-system) (arguments @@ -157,19 +160,19 @@ interpretation of the specifications for these languages.") ;; include/SPIRV/{bitutils,hex_float}.h are Apache 2.0. license:asl2.0))))) -(define-public vulkan-icd-loader +(define-public vulkan-loader (package - (name "vulkan-icd-loader") + (name "vulkan-loader") (version "1.1.73.0") (source (origin (method url-fetch) (uri (string-append - "https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/" + "https://github.com/KhronosGroup/Vulkan-Loader/" "archive/sdk-" version ".tar.gz")) (sha256 (base32 - "1qb34j2zrc04fgs96m3k76vi4nx3sygbdcyg7pbwasr45cbdhsxb")))) + "0lvdpy6ybx5h7w15m9s2n9q3167q618clra2k7yi2cbm397ci4hn")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;FIXME: 23/39 tests fail. Try "tests/run_all_tests.sh". @@ -209,9 +212,12 @@ and the ICD.") (license:x11-style "file://COPYRIGHT.txt") license:bsd-3)))) +(define-public vulkan-icd-loader + (deprecated-package "vulkan-icd-loader" vulkan-loader)) + (define-public shaderc - (let ((commit "773ec22d49f40b7161820f29d953be4a7e40190d") - (revision "1")) + (let ((commit "be8e0879750303a1de09385465d6b20ecb8b380d") + (revision "2")) (package (name "shaderc") (version (git-version "0.0.0" revision commit)) @@ -224,11 +230,10 @@ and the ICD.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0b41inb1czxv3mciip0lfdxv19ccx2ys31fivfywjn2q8va1gd1f")))) + "16p25ry2i4zrj00zihfpf210f8xd7g398ffbw25igvi9mbn4nbfd")))) (build-system meson-build-system) (arguments - `(#:tests? #f ; tests don't work yet. - #:phases + `(#:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs #:allow-other-keys) @@ -266,7 +271,8 @@ and the ICD.") (copy-recursively glslang-source "third_party/glslang") #t)))))) (inputs - `(("python" ,python))) + `(("googletest" ,googletest) + ("python" ,python))) (native-inputs `(("cmake" ,cmake) ("glslang-source" ,(package-source glslang)) @@ -278,3 +284,43 @@ and the ICD.") (description "Shaderc is a collection of tools, libraries, and tests for shader compilation.") (license license:asl2.0)))) + +(define-public vkd3d + (let ((commit "020c119e2da0786d8be0615cff961c190b00d62d") ; Release 1.0. + (revision "0")) + (package + (name "vkd3d") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://source.winehq.org/git/vkd3d.git") + (commit commit))) + (sha256 + (base32 + "084svxhigs8r0725jv6gs7wwrxb9x4igyg5bgvgpcfw4aq0k69gn")) + (file-name (string-append name "-" version "-checkout")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--with-spirv-tools"))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gnu-gettext) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("libx11" ,libx11) + ("libxcb" ,libxcb) + ("spirv-headers" ,spirv-headers) + ("spirv-tools" ,spirv-tools) + ("vulkan-loader" ,vulkan-loader) + ("wine" ,wine) ; Needed for 'widl'. + ("xcb-util" ,xcb-util) + ("xcb-util-keysyms" ,xcb-util-keysyms) + ("xcb-util-wm" ,xcb-util-wm))) + (home-page "https://source.winehq.org/git/vkd3d.git/") + (synopsis "Direct3D 12 to Vulkan translation library") + (description "vkd3d is a library for translating Direct3D 12 to Vulkan.") + (license license:lgpl2.1)))) diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm index db23b4d8df..4e3264a47e 100644 --- a/gnu/packages/w3m.scm +++ b/gnu/packages/w3m.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016, 2017, 2018 Leo Famulari ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2018 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,10 +25,12 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages compression) + #:use-module (gnu packages gtk) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls) + #:use-module (gnu packages xorg) #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix git-download) @@ -61,7 +64,9 @@ (("@PERL@") (which "perl"))) #t))))) (inputs - `(("libgc" ,libgc) + `(("gdk-pixbuf" ,gdk-pixbuf) + ("libgc" ,libgc) + ("libx11" ,libx11) ("ncurses" ,ncurses) ("openssl" ,openssl) ("zlib" ,zlib))) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index a5ecd0b546..e36677282a 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -79,14 +80,14 @@ older or slower computers and embedded systems.") (define-public links (package (name "links") - (version "2.15") + (version "2.16") (source (origin (method url-fetch) (uri (string-append "http://links.twibright.com/download/" name "-" version ".tar.bz2")) (sha256 (base32 - "1jp3xyvp87a188b4kg5ycqahrazj7928zncgsznzn54w8d5iqahy")))) + "0gsa2gpb1grhssl5jzpc5pa0zi21mxi8g25rh5bacl70slw31w42")))) (build-system gnu-build-system) (arguments `(#:phases @@ -130,7 +131,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.") (define-public lynx (package (name "lynx") - (version "2.8.9dev.17") + (version "2.8.9dev.19") (source (origin (method url-fetch) (uri (string-append @@ -138,7 +139,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.") "/lynx" version ".tar.bz2")) (sha256 (base32 - "1lvfsnrw5mmwrmn1m76q9mx287xwm3h5lg8sv7bcqilc0ywi2f54")))) + "17wfiad2ha4y15pmwv55j0l9z1z1pcgcasrc6hwbgv0hhdpp08q2")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 2b88e6920d..d116011206 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2013 Aljosha Papsch -;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus ;;; Copyright © 2018 Raoul Jean Pierre Bonnal @@ -25,6 +25,7 @@ ;;; Copyright © 2017 Pierre Langlois ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2018 Julien Lepiller +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,6 +73,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages bison) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages kerberos) #:use-module (gnu packages gd) #:use-module (gnu packages gettext) @@ -82,6 +84,7 @@ #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages java) #:use-module (gnu packages javascript) #:use-module (gnu packages jemalloc) @@ -96,6 +99,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages openstack) #:use-module (gnu packages base) + #:use-module (gnu packages package-management) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages python) @@ -414,12 +418,7 @@ APIs.") (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests included - #:make-flags (list "CC=gcc") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) + #:make-flags (list "CC=gcc"))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -524,7 +523,7 @@ data.") (define-public json-c (package (name "json-c") - (version "0.13") + (version "0.13.1") (source (origin (method url-fetch) (uri (string-append @@ -532,7 +531,7 @@ data.") version ".tar.gz")) (sha256 (base32 - "0kf2594kxcfga6x0mvwzj2qg8pgxhjkibc16ghnw85mdx45ph5h3")) + "0ws8dz9nk8q2c0gbf66kg2r6mrkl7kamd3gpdv9zsyrz9n6n0zmq")) (modules '((guix build utils))) (snippet '(begin @@ -541,13 +540,8 @@ data.") ;; run 'autoheader'. (set-file-time "config.h.in" (stat "aclocal.m4")) - - ;; Don't try to build with -Werror. - (substitute* (find-files "." "Makefile\\.in") - (("-Werror") "")))))) + #t)))) (build-system gnu-build-system) - (arguments '(#:parallel-build? #f - #:parallel-tests? #f)) (home-page "https://github.com/json-c/json-c/wiki") (synopsis "JSON implementation in C") (description @@ -580,7 +574,8 @@ It aims to conform to RFC 7159.") ;; Don't try to build with -Werror. (substitute* (find-files "." "Makefile\\.in") - (("-Werror") "")))))))) + (("-Werror") "")) + #t)))))) (define-public qjson (package @@ -695,8 +690,8 @@ instances, while JSON's objects will be mapped to @code{QVariantMap}.") (add-after 'wrap-program 'check (lambda* (#:key inputs outputs #:allow-other-keys) (with-directory-excursion "data" - (zero? (system* (string-append (assoc-ref outputs "out") "/bin/ktImportText") - "ec.tsv")))))))) + (invoke (string-append (assoc-ref outputs "out") "/bin/ktImportText") + "ec.tsv"))))))) (inputs `(("perl" ,perl))) (home-page "https://github.com/marbl/Krona/wiki") @@ -854,13 +849,13 @@ UTS#46.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda* (#:key inputs #:allow-other-keys) ;; configure.in and Makefile.am aren't in the root of the ;; source tree. (copy-recursively "build/gnuauto" ".") (setenv "AUTOMAKE" "automake --foreign") - (zero? (system* "autoreconf" "-vfi"))))))) + (invoke "autoreconf" "-vfi")))))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf) @@ -1241,11 +1236,9 @@ minimum to provide high performance operation.") (delete 'configure) (add-after 'unpack 'unpack-libsass-and-set-path (lambda* (#:key inputs #:allow-other-keys) - (and (zero? (system* "tar" "xvf" (assoc-ref inputs "libsass"))) - (begin - (setenv "SASS_LIBSASS_PATH" - (string-append (getcwd) "/libsass-" ,version)) - #t))))))) + (invoke "tar" "xvf" (assoc-ref inputs "libsass")) + (setenv "SASS_LIBSASS_PATH" + (string-append (getcwd) "/libsass-" ,version))))))) (inputs `(("libsass" ,libsass))) (synopsis "CSS pre-processor") @@ -1821,15 +1814,15 @@ number, file name, and code context surrounding the line number.") (define-public perl-catalyst-plugin-static-simple (package (name "perl-catalyst-plugin-static-simple") - (version "0.33") + (version "0.36") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/" + (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/" "Catalyst-Plugin-Static-Simple-" version ".tar.gz")) (sha256 (base32 - "1h8f12bhzh0ssq9gs8r9g3hqn8zn2k0q944vc1vm8j81bns16msy")))) + "0m4l627p2fvzr4i6sgdxhdvsx4wpa6qmaibsbxlg5x5yjs7k7drn")))) (build-system perl-build-system) (native-inputs `(("perl-module-install" ,perl-module-install))) @@ -2115,7 +2108,7 @@ development server with Starman.") (define-public perl-cgi (package (name "perl-cgi") - (version "4.35") + (version "4.38") (source (origin (method url-fetch) @@ -2123,7 +2116,7 @@ development server with Starman.") "CGI-" version ".tar.gz")) (sha256 (base32 - "07gwnlc7vq58fjwmfsrv0hfyirqqdrpjhf89caq34rjrkz2wsd0b")))) + "1m779315rzj4mpgscw209a2wk18iwg2n8zibn8aak4mv56jz8n4c")))) (build-system perl-build-system) (native-inputs `(("perl-test-deep" ,perl-test-deep) @@ -2140,6 +2133,30 @@ string generation and manipulation, and processing and preparing HTTP headers.") (license l:perl-license))) +(define-public perl-cgi-formbuilder + (package + (name "perl-cgi-formbuilder") + (version "3.10") + (source + (origin + (method url-fetch) + (uri (string-append + "https://cpan.metacpan.org/authors/id/B/BI/BIGPRESH/" + "CGI-FormBuilder-" version ".tar.gz")) + (sha256 + (base32 + "163ixq9kninqq094z2rnkg9pv3bcmvjphlww4vksfrzhq3h9pjdf")))) + (build-system perl-build-system) + (inputs `(("perl-cgi" ,perl-cgi))) + (home-page + "https://metacpan.org/release/CGI-FormBuilder") + (synopsis + "Generate and process stateful forms") + (description + "@code{CGI::FormBuilder} provides an easy way to generate and process CGI +form-based applications.") + (license l:perl-license))) + (define-public perl-cgi-session (package (name "perl-cgi-session") @@ -2442,7 +2459,7 @@ composed of HTML::Element style components.") (define-public perl-html-scrubber (package (name "perl-html-scrubber") - (version "0.15") + (version "0.17") (source (origin (method url-fetch) @@ -2452,11 +2469,12 @@ composed of HTML::Element style components.") ".tar.gz")) (sha256 (base32 - "1m1f8gm2jry42zxja05dxp2ck7y66m7i8vc38nj6hccnwlby6cvi")))) + "06p7w4zd42b2yh541mlzyqj40lwmvvn3fyqi8big4mf34la7m2jm")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) ("perl-test-cpan-meta" ,perl-test-cpan-meta) + ("perl-test-differences" ,perl-test-differences) ("perl-test-eol" ,perl-test-eol) ("perl-test-memory-cycle" ,perl-test-memory-cycle) ("perl-test-notabs" ,perl-test-notabs))) @@ -2735,16 +2753,18 @@ used by the HTTP protocol (and then some more).") (define-public perl-http-message (package (name "perl-http-message") - (version "6.11") + (version "6.15") (source (origin (method url-fetch) (uri (string-append - "mirror://cpan/authors/id/E/ET/ETHER/HTTP-Message-" + "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-" version ".tar.gz")) (sha256 (base32 - "06yq6cjx4vzl4if4ykap77xsrrd8aa7ish90k7cqi8g6g83nicz7")))) + "11fbvisyvi6bw8z9iq9fm9mraf69qyds09fblhl9gyvg7ccll93v")))) (build-system perl-build-system) + (native-inputs + `(("perl-try-tiny" ,perl-try-tiny))) (propagated-inputs `(("perl-encode-locale" ,perl-encode-locale) ("perl-http-date" ,perl-http-date) @@ -3161,15 +3181,15 @@ and retry a few times.") (define-public perl-net-http (package (name "perl-net-http") - (version "6.07") + (version "6.18") (source (origin (method url-fetch) (uri (string-append - "mirror://cpan/authors/id/M/MS/MSCHILLI/Net-HTTP-" - version ".tar.gz")) + "mirror://cpan/authors/id/O/OA/OALDERS/" + "Net-HTTP-" version ".tar.gz")) (sha256 (base32 - "0r034hhci0yqbrkrh1gv6vi5g3i0kpd1k84z62nk02asb8rf0ccz")))) + "074mp9s37q1j290xa3qj1wwgalzla328i2zpnh73xkmdnwnxyhky")))) (build-system perl-build-system) (propagated-inputs `(("perl-io-socket-ssl" ,perl-io-socket-ssl) @@ -3413,7 +3433,7 @@ either mocked HTTP or a locally spawned server.") (define-public perl-test-www-mechanize (package (name "perl-test-www-mechanize") - (version "1.48") + (version "1.50") (source (origin (method url-fetch) @@ -3421,17 +3441,12 @@ either mocked HTTP or a locally spawned server.") "Test-WWW-Mechanize-" version ".tar.gz")) (sha256 (base32 - "1d11fx9155d5v17d5w7q3kj37b01l8yj2yb0g6b0z1vh938rrlcr")))) + "097pl87vdbxbb56vawzvs6ikrlb8nz3dx223kjjbdn3jlli3jjhg")))) (build-system perl-build-system) - (native-inputs - `(("perl-test-exception" ,perl-test-exception))) - (native-inputs - `(("perl-module-install" ,perl-module-install))) (propagated-inputs `(("perl-carp-assert-more" ,perl-carp-assert-more) ("perl-html-form" ,perl-html-form) ("perl-html-lint" ,perl-html-lint) - ("perl-html-tree" ,perl-html-tree) ("perl-http-server-simple" ,perl-http-server-simple) ("perl-libwww" ,perl-libwww) ("perl-test-longstring" ,perl-test-longstring) @@ -3481,7 +3496,7 @@ testing of Catalyst applications without needing to start up a web server.") (define-public perl-test-www-mechanize-psgi (package (name "perl-test-www-mechanize-psgi") - (version "0.37") + (version "0.38") (source (origin (method url-fetch) @@ -3489,7 +3504,7 @@ testing of Catalyst applications without needing to start up a web server.") "Test-WWW-Mechanize-PSGI-" version ".tar.gz")) (sha256 (base32 - "0c9a9w0d2whadnrich7f09w37fgq5hws4gq04zgz4jsdjcvr3qv2")))) + "0fsh2i05kf1kfavv2r9kmnjl7qlyqrd11ikc0qcqzzxsqzzjkg9r")))) (build-system perl-build-system) (native-inputs `(("perl-test-pod" ,perl-test-pod))) @@ -3785,13 +3800,13 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") (define-public r-httpuv (package (name "r-httpuv") - (version "1.4.1") + (version "1.4.3") (source (origin (method url-fetch) (uri (cran-uri "httpuv" version)) (sha256 (base32 - "1pndv0h870ygibk0bmg9ayzkls60jqscrsyk39k29gy2pvm9ha5y")))) + "15ghxcyg9h0za3qy077fnn3izbpihskvaqwsppm2s43a771imsf6")))) (build-system r-build-system) (native-inputs `(("r-rcpp" ,r-rcpp))) (propagated-inputs @@ -3837,21 +3852,19 @@ in systems and applications.") (define-public r-servr (package (name "r-servr") - (version "0.9") + (version "0.10") (source (origin (method url-fetch) (uri (cran-uri "servr" version)) (sha256 (base32 - "0bs0i5mjfzxfshqz8i30nhn7kvgwly4fqn5bfq6dqfdrn7biai2x")))) + "0yz3igqsiyqnjj1ngh199zicg3spx4kbmvl0wc8i8xahk6l9g06v")))) (build-system r-build-system) (propagated-inputs `(("r-httpuv" ,r-httpuv) ("r-jsonlite" ,r-jsonlite) ("r-mime" ,r-mime) ("r-xfun" ,r-xfun))) - (native-inputs - `(("r-rcpp" ,r-rcpp))) (home-page "https://github.com/yihui/servr") (synopsis "Simple HTTP server to serve static files or dynamic documents") (description @@ -3920,14 +3933,14 @@ applications.") (define-public r-htmltable (package (name "r-htmltable") - (version "1.11.2") + (version "1.12") (source (origin (method url-fetch) (uri (cran-uri "htmlTable" version)) (sha256 (base32 - "1lbpi0kkk8b41w10scmlf27dg5azcv51a4q3p5bpqyphrnqp78k4")))) + "1n5136vb7mi4rxl5jgwdmdhn4mwv2pcqyw2mrj406ih4hy6hpxa2")))) (properties `((upstream-name . "htmlTable"))) (build-system r-build-system) (propagated-inputs @@ -4011,14 +4024,14 @@ objects in HTML format.") (define-public r-rjson (package (name "r-rjson") - (version "0.2.15") + (version "0.2.19") (source (origin (method url-fetch) (uri (cran-uri "rjson" version)) (sha256 (base32 - "1vzjyvf57k1fjizlk28rby65y5lsww5qnfvgnhln74qwda7hvl3p")))) + "1g29vp3gfbh73a5br68jydsrigia4vnr5avc84avgwl6353749jw")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/rjson") (synopsis "JSON library for R") @@ -4041,11 +4054,7 @@ and vice-versa.") "1bgg2kbj311pqdzw2v33za7k66g1rv44kkvvnz2gnpaasi9k0ii8")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; tests require bundling googletest sources - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "sh" "autogen.sh"))))))) + `(#:tests? #f)) ;tests require bundling googletest sources ;; The release tarball lacks the generated files. (native-inputs `(("autoconf" ,autoconf) @@ -4393,16 +4402,17 @@ NetSurf project.") ("mercurial" ,mercurial))) (inputs `(("python" ,python-wrapper) + ("perl-cgi-formbuilder" ,perl-cgi-formbuilder) ("perl-cgi-session" ,perl-cgi-session) ("perl-cgi-simple" ,perl-cgi-simple) - ("perl-json" ,perl-json) - ("perl-image-magick" ,perl-image-magick) - ("perl-uri" ,perl-uri) + ("perl-db-file" ,perl-db-file) ("perl-html-parser" ,perl-html-parser) - ("perl-uri" ,perl-uri) - ("perl-text-markdown-discount" ,perl-text-markdown-discount) ("perl-html-scrubber" ,perl-html-scrubber) ("perl-html-template" ,perl-html-template) + ("perl-image-magick" ,perl-image-magick) + ("perl-json" ,perl-json) + ("perl-text-markdown-discount" ,perl-text-markdown-discount) + ("perl-uri" ,perl-uri) ("perl-yaml-libyaml" ,perl-yaml-libyaml))) (home-page "https://ikiwiki.info/") (synopsis "Wiki compiler, capable of generating HTML") @@ -4796,7 +4806,7 @@ handling many of the web standards in use today.") (let* ((out (assoc-ref %outputs "out")) (man (string-append out "/share/man/man1"))) (with-directory-excursion man - (zero? (system* "gzip" "elvi.1sr"))))))))) + (invoke "gzip" "elvi.1sr")))))))) (inputs `(("perl" ,perl) ("perl-www-opensearch" ,perl-www-opensearch) @@ -4853,10 +4863,11 @@ config files---you only have to specify the www root.") (base32 "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q")) (modules '((guix build utils))) - (snippet - '(substitute* "src/error.h" - (("__DATE__") "\"1970-01-01\"") - (("__TIME__") "\"00:00:00\""))))) + (snippet '(begin + (substitute* "src/error.h" + (("__DATE__") "\"1970-01-01\"") + (("__TIME__") "\"00:00:00\"")) + #t)))) (build-system gnu-build-system) (inputs ;; TODO: Add dependency on geoip-tools. @@ -4886,9 +4897,10 @@ on the fly.") (base32 "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql")) (modules '((guix build utils))) - (snippet - ;; Remove non-free IETF RFC documentation. - '(delete-file-recursively "doc")))) + (snippet '(begin + ;; Remove non-free IETF RFC documentation. + (delete-file-recursively "doc") + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -4899,8 +4911,8 @@ on the fly.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) (setenv "CONFIG_SHELL" (which "bash")) - (zero? (system* "./configure" - (string-append "--prefix=" out))))))))) + (invoke "./configure" + (string-append "--prefix=" out)))))))) (home-page "http://www.nocrew.org/software/httptunnel.html") (synopsis "Tunnel data connections through HTTP requests") (description "httptunnel creates a bidirectional virtual data connection @@ -4913,7 +4925,7 @@ tools like SSH (Secure Shell) to reach the outside world.") (define-public stunnel (package (name "stunnel") - (version "5.44") + (version "5.46") (source (origin (method url-fetch) @@ -4921,7 +4933,7 @@ tools like SSH (Secure Shell) to reach the outside world.") version ".tar.gz")) (sha256 (base32 - "1692y69wl7j6yjgnrrzclgzb34bxsaxjzl1dfy47vms7pdfk42lr")))) + "1iw4gap9ysag8iww2ik029scmdllk7jdzcpnnbj7hgbl526b9akn")))) (build-system gnu-build-system) (inputs `(("openssl" ,openssl))) (arguments @@ -5022,9 +5034,10 @@ functions of Tidy.") (uri (string-append "https://www.hiawatha-webserver.org/files/" "hiawatha-" version ".tar.gz")) (modules '((guix build utils))) - (snippet - ;; We use our packaged mbedtls, so delete the included copy. - '(delete-file-recursively "mbedtls")) + (snippet '(begin + ;; We use our packaged mbedtls, so delete the included copy. + (delete-file-recursively "mbedtls") + #t)) (sha256 (base32 "0x2zfc8kc6c7rl4gwymwmg13w1c60biv6c6c9fvzpnl59bc9jgin")))) @@ -5249,12 +5262,12 @@ command-line arguments or read from stdin.") (add-installed-pythonpath inputs outputs) (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin" ":" (getenv "PATH"))) - (zero? (system* "py.test" "-v" "-k" - (string-append - ;; These tests attempt to make a connection to - ;; an external web service. - "not test_get_item_with_kwargs" - " and not test_ia")))))))) + (invoke "py.test" "-v" "-k" + (string-append + ;; These tests attempt to make a connection to + ;; an external web service. + "not test_get_item_with_kwargs" + " and not test_ia"))))))) (propagated-inputs `(("python-requests" ,python-requests) ("python-jsonpatch" ,python-jsonpatch-0.4) @@ -5315,14 +5328,15 @@ internetarchive python module for programatic access to archive.org.") (modify-phases %standard-phases (add-after 'unpack 'get-tests (lambda _ - (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py"))) + (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py") + #t)) (replace 'check (lambda _ - (zero? (system* "nosetests" - ;; These tests require internet connection - "--exclude=test_browse" - "--exclude=test_command" - "--exclude=test_search"))))))) + (invoke "nosetests" + ;; These tests require an Internet connection. + "--exclude=test_browse" + "--exclude=test_command" + "--exclude=test_search")))))) (home-page "https://github.com/ncrocfer/clf") (synopsis "Search code snippets on @url{https://commandlinefu.com}") (description "@code{clf} is a command line tool for searching code @@ -5335,16 +5349,17 @@ snippets on @url{https://commandlinefu.com}.") (define-public r-shiny (package (name "r-shiny") - (version "1.0.3") + (version "1.1.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/rstudio/shiny/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/rstudio/shiny.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0z2v2s4hd44mvzjn7r70549kdzkrrch9nxhp27r6x2cy6micizm3")))) + "041q2gzvzs13syfhbirmkik96asdji8dxnnbs63j7v1ks97hrvvz")))) (build-system r-build-system) (arguments `(#:modules ((guix build r-build-system) @@ -5409,7 +5424,8 @@ snippets on @url{https://commandlinefu.com}.") "jquery.min.js"))))) #t))))) (propagated-inputs - `(("r-httpuv" ,r-httpuv) + `(("r-crayon" ,r-crayon) + ("r-httpuv" ,r-httpuv) ("r-mime" ,r-mime) ("r-jsonlite" ,r-jsonlite) ("r-xtable" ,r-xtable) @@ -5556,9 +5572,8 @@ named elements: the @code{status}, the @code{headers}, and the @code{body}.") "PATH" '("bin") (map (match-lambda ((_ . input) input)) %build-inputs)) (mkdir-p share-rss-bridge) - (system* "tar" "xvf" (assoc-ref %build-inputs "source") - "--strip-components" "1" "-C" share-rss-bridge) - #t)))) + (invoke "tar" "xvf" (assoc-ref %build-inputs "source") + "--strip-components" "1" "-C" share-rss-bridge))))) (home-page "https://github.com/RSS-Bridge/rss-bridge") (synopsis "Generate Atom feeds for social networking websites") (description "rss-bridge generates Atom feeds for social networking @@ -5570,28 +5585,23 @@ Instagram and YouTube.") (define-public linkchecker (package (name "linkchecker") - (version "9.3") + (version "9.4.0") (source (origin - (method url-fetch) - (uri (pypi-uri "LinkChecker" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/linkchecker/linkchecker") + (commit (string-append "v" version)))) (sha256 (base32 - "0v8pavf0bx33xnz1kwflv0r7lxxwj7vg3syxhy2wzza0wh6sc2pf")))) + "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187")))) (build-system python-build-system) (inputs - `(("python2-requests" ,python2-requests))) + `(("python2-dnspython" ,python2-dnspython) + ("python2-pyxdg" ,python2-pyxdg) + ("python2-requests" ,python2-requests))) (arguments - `(#:python ,python-2 - #:phases - (modify-phases %standard-phases - ;; Remove faulty python-requests version check. This has been fixed - ;; upstream, and can be removed in version 9.4. - (add-after 'unpack 'remove-python-requests-version - (lambda _ - (substitute* "linkcheck/__init__.py" - (("requests.__version__ <= '2.2.0'") "False")) - #t))))) + `(#:python ,python-2)) (home-page "https://linkcheck.github.io/linkchecker") (synopsis "Check websites for broken links") (description "LinkChecker is a website validator. It checks for broken @@ -5600,15 +5610,10 @@ colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph. It supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local file links.") (license (list l:gpl2+ - l:bsd-2 ; linkcheck/better_exchook2.py - l:bsd-3 ; linkcheck/colorama.py - l:psfl ; linkcheck/gzip2.py - l:expat ; linkcheck/mem.py - ;; FIXME: Unbundle dnspython and miniboa - ;; This issue has been raised upstream - ;; https://github.com/wummel/linkchecker/issues/729 - l:isc ; third_party/dnspython - l:asl2.0)))) ; third_party/miniboa + l:bsd-2 ; linkcheck/better_exchook2.py + l:bsd-3 ; linkcheck/colorama.py + l:psfl ; linkcheck/gzip2.py + l:expat)))) ; linkcheck/mem.py (define-public cadaver (package @@ -6347,7 +6352,8 @@ features include: "if(isset($_SERVER['CACHE_DIR'])) $cachepath = $_SERVER['CACHE_DIR']; else -die('You need to set the CACHE_DIR variable first.');")))))) +die('You need to set the CACHE_DIR variable first.');")) + #t)))) (home-page "https://framagit.org/Deevad/cat-avatar-generator") (synopsis "Random avatar generator") (description "Cat avatar generator is a generator of cat pictures optimised @@ -6437,3 +6443,81 @@ compressed JSON header blocks. @item @command{inflatehd} converts such compressed headers back to JSON pairs. @end itemize\n") (license l:expat))) + +(define-public hpcguix-web + (let ((commit "87cb51611c0f1fd3863b830614ab1364599cf1ca")) + (package + (name "hpcguix-web") + (version (git-version "0.0.1" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/UMCUGenetics/hpcguix-web.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0p66fl8r3v73v13fqg9rbqbzbdzvyznchxbq2s1jwq6qfsn2w3gr")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26) + (ice-9 popen) + (ice-9 rdelim)) + + #:phases + (modify-phases %standard-phases + (add-before 'configure 'autoconf + (lambda _ + (setenv "GUILE_AUTO_COMPILE" "0") + (setenv "XDG_CACHE_HOME" (getcwd)) + (invoke "autoreconf" "-vif"))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (guix (assoc-ref inputs "guix")) + (guile (assoc-ref inputs "guile")) + (json (assoc-ref inputs "guile-json")) + (guile-cm (assoc-ref inputs + "guile-commonmark")) + (deps (list guile guile-cm guix json)) + (effective + (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (path (string-join + (map (cut string-append <> + "/share/guile/site/" + effective) + deps) + ":")) + (gopath (string-join + (map (cut string-append <> + "/lib/guile/" effective + "/site-ccache") + deps) + ":"))) + (wrap-program (string-append out "/bin/run") + `("GUILE_LOAD_PATH" ":" prefix (,path)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath))) + + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("uglify-js" ,uglify-js) + ("pkg-config" ,pkg-config))) + (inputs + `(("guix" ,guix))) + (propagated-inputs + `(("guile" ,guile-2.2) + ("guile-commonmark" ,guile-commonmark) + ("guile-json" ,guile-json))) + (home-page "https://github.com/UMCUGenetics/hpcguix-web") + (synopsis "Web interface for cluster deployments of Guix") + (description "Hpcguix-web provides a web interface to the list of packages +provided by Guix. The list of packages is searchable and provides +instructions on how to use Guix in a shared HPC environment.") + (license l:agpl3+)))) diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 4c0c955169..10cd788af2 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -55,14 +55,14 @@ (define-public webkitgtk (package (name "webkitgtk") - (version "2.20.1") + (version "2.20.3") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "0nc9dj05dbk31ciip08b3rdsfja7ckc5mgagrj030fafza2k5r23")))) + "1n0dy94bm7wvxln4jis1gp8plv8n4a01g41724zsf5psg1yk16sp")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no tests @@ -100,7 +100,8 @@ (string-append (getenv "C_INCLUDE_PATH") ":" (assoc-ref inputs "gst-plugins-base") - "/include/gstreamer-1.0"))))))) + "/include/gstreamer-1.0")) + #t))))) (native-inputs `(("bison" ,bison) ("gettext" ,gettext-minimal) @@ -148,50 +149,3 @@ HTML/CSS applications to full-fledged web browsers.") license:lgpl2.1+ license:bsd-2 license:bsd-3)))) - -;; Latest release of the stable 2.4 series, with WebKit1 support. -(define-public webkitgtk-2.4 - (package (inherit webkitgtk) - (name "webkitgtk") - (version "2.4.11") - (source (origin - (method url-fetch) - (uri (string-append "http://www.webkitgtk.org/releases/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "1xsvnvyvlywwyf6m9ainpsg87jkxjmd37q6zgz9cxb7v3c2ym2jq")))) - (build-system gnu-build-system) - (arguments - '(#:tests? #f ; no tests - ;; FIXME: Disabling parallel building is a quick hack to avoid the - ;; failure described in - ;; https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00837.html - ;; A more structural fix is needed. - #:parallel-build? #f - #:phases (modify-phases %standard-phases - (add-after - 'unpack 'set-gcc - (lambda _ (setenv "CC" "gcc") #t))))) - (native-inputs - `(("flex" ,flex) - ("which" ,which) - ,@(package-native-inputs webkitgtk))))) - -;; Last GTK+2 port, required by GnuCash. -(define-public webkitgtk/gtk+-2 - (package (inherit webkitgtk-2.4) - (name "webkitgtk-gtk2") - (arguments - `(;; FIXME: Disabling parallel building is a quick hack to avoid the - ;; failure described in - ;; https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00837.html - ;; A more structural fix is needed. - #:parallel-build? #f - #:configure-flags - '("--enable-webkit2=no" - "--with-gtk=2.0") - ,@(package-arguments webkitgtk-2.4))) - (propagated-inputs - `(("gtk+-2" ,gtk+-2) - ("libsoup" ,libsoup))))) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index 585b8a0342..bd43e372cf 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2014, 2015, 2017 Ludovic Courtès +;;; Copyright © 2014, 2015, 2017, 2018 Ludovic Courtès ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2017 Rutger Helling ;;; @@ -44,7 +44,7 @@ (define-public wget (package (name "wget") - (version "1.19.4") + (version "1.19.5") (source (origin (method url-fetch) @@ -52,7 +52,7 @@ version ".tar.lz")) (sha256 (base32 - "16jmcqcasx3q9k4azssryli9qyxfq0sfijw998g8zp58cnwzzh1g")))) + "0xfaxmlnih7dhkyks5wi4vrn0n1xshmy6gx6fb2k1120sprydyr9")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -140,7 +140,7 @@ online pastebin services.") (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; Make sure all the files are writable so that ./bootstrap ;; can proceed. diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 914b70d0c8..bee6f0571f 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -69,7 +69,7 @@ (define-public wine (package (name "wine") - (version "3.0") + (version "3.0.1") (source (origin (method url-fetch) (uri (string-append "https://dl.winehq.org/wine/source/" @@ -77,7 +77,7 @@ "/wine-" version ".tar.xz")) (sha256 (base32 - "1v7vq9iinkscbq6wg85fb0d2137660fg2nk5iabxkl2wr850asil")))) + "1wr63n70pli83p3rmclr2j4lxzs4ll1cwlpdlaajfrf6v9yhvl5s")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) @@ -223,7 +223,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "3.7") + (version "3.9") (source (origin (method url-fetch) @@ -232,7 +232,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".zip")) (sha256 (base32 - "112sy32sja4cc3rv8x6v4cdi3jfxdgzwfra8f78hzdf8a2wrjqz6")))) + "0akccqrp1ymjrra2c99f6hxlaa77jyihfs3q8x93vkgb9c0lq5xx")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) @@ -257,7 +257,8 @@ integrate Windows applications into your desktop.") "/patches/gitapply.sh") (("/usr/bin/env") env)) (mkdir-p wine-staging) (copy-recursively (string-append "wine-staging-" ,version) - wine-staging))))) + wine-staging) + #t)))) (home-page "https://github.com/wine-staging") (synopsis "Patchset for Wine") (description @@ -278,14 +279,15 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "1drbzk3y0m14lkq3vzwwkvain5shykgcbmyzh6gcb5r4sxh3givn")))) + "0ddphvlp9lsjyqc6zckinc36bggpkg925v0x2vqr8nkdjs0w5bfc")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("gtk+" ,gtk+) ("libva" ,libva) ("python" ,python) ("sdl2" ,sdl2) ("util-linux" ,util-linux) ; for hexdump - ("vulkan-icd-loader" ,vulkan-icd-loader) + ("vkd3d" ,vkd3d) + ("vulkan-loader" ,vulkan-loader) ("wine-staging-patchset-data" ,wine-staging-patchset-data) ,@(package-inputs wine))) (arguments diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index c015eda6f1..a3705c9d91 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Al McElrath ;;; Copyright © 2016 Carlo Zancanaro -;;; Copyright © 2016, 2017 Ludovic Courtès +;;; Copyright © 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2016, 2017, 2018 Nils Gillmann ;;; Copyright © 2016 doncatnip ;;; Copyright © 2016 Ivan Vilata i Balaguer @@ -16,6 +16,7 @@ ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Oleg Pykhalov ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -135,14 +136,14 @@ the leaves of a full binary tree.") (define-public i3status (package (name "i3status") - (version "2.11") + (version "2.12") (source (origin (method url-fetch) (uri (string-append "https://i3wm.org/i3status/i3status-" version ".tar.bz2")) (sha256 (base32 - "0pwcy599fw8by1a1sf91crkqba7679qhvhbacpmhis8c1xrpxnwq")))) + "06krpbijv4yi33nypg6qcn4hilcrdyarsdpd9fmr2cq46qaqiikg")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) @@ -355,13 +356,7 @@ prompt.") "0zh7il2y6dmzym3w6r9xii5dma8pjjjlq4dm5iby7m3gvplj4q9p")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no tests included - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (invoke "autoreconf" "-vfi") - #t))))) + `(#:tests? #f)) ;no tests included (inputs `(("cairo" ,cairo) ("libev" ,libev) @@ -680,6 +675,19 @@ experience.") (sha256 (base32 "0kwpbls9h1alxcmvxh5g9qb995fds5b2ngcr44w0ibazkyls2pdc")) + (modules '((guix build utils) + (srfi srfi-19))) + (snippet '(begin + ;; Remove non-reproducible timestamp and use the date + ;; of the source file instead. + (substitute* "common/version.c" + (("__DATE__ \" \" __TIME__") + (date->string + (time-utc->date + (make-time time-utc 0 + (stat:mtime (stat "awesome.c")))) + "\"~c\""))) + #t)) (patches (search-patches "awesome-reproducible-png.patch")))) (build-system cmake-build-system) (native-inputs `(("asciidoc" ,asciidoc) @@ -912,7 +920,7 @@ It is inspired by Xmonad and dwm. Its major features include: (define-public cwm (package (name "cwm") - (version "6.2") + (version "6.3") (source (origin (method url-fetch) @@ -920,7 +928,7 @@ It is inspired by Xmonad and dwm. Its major features include: version ".tar.gz")) (sha256 (base32 - "1b8k2hjxpb0bzqjh2wj6mn2nf2360zacf8z19sw2rw5lxvmfy89x")))) + "17pdp9cfgh2n3n3905l4rl9qk7b722i8psnarhlc2h98qzx7zmac")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "CC=gcc" @@ -960,3 +968,47 @@ It is inspired by Xmonad and dwm. Its major features include: (description "Cwm is a stacking window manager for X11. It is an OpenBSD project derived from the original Calm Window Manager.") (license license:isc))) + +(define-public nitrogen + (package + (name "nitrogen") + (version "1.6.1") + (source (origin + (method url-fetch) + (uri (string-append "http://github.com/l3ib/nitrogen/" + "releases/download/" version "/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0zc3fl1mbhq0iyndy4ysmy8vv5c7xwf54rbgamzfhfvsgdq160pl")))) + (build-system gnu-build-system) + (inputs + `(("gtk+" ,gtk+-2) + ("gtkmm" ,gtkmm-2) + ("glib" ,glib) + ("glibmm" ,glibmm))) + (native-inputs + `(("pkg-config", pkg-config))) + (arguments + `(#:configure-flags (list + (string-append "--prefix=" %output) + "CXXFLAGS=-std=c++11"))) + (home-page "http://projects.l3ib.org/nitrogen/") + (synopsis "Background browser and setter for X windows") + (description + "This package is a background browser and setter for X windows. It's +features are: + +@itemize +@item Multihead and Xinerama aware +@item Recall mode to used via startup script +@item Uses freedesktop.org standard for thumbnails +@item Can set GNOME background +@item Command lie set modes for script use +@item Inotify monitoring of browse directory +@item Lazy loading of thumbnails - conserves memory +@item \"Automatic\" set mode - determines best mode to set an image based on +its size +@item Display preview images in a tiled icon layout +@end itemize") + (license license:gpl2+))) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index ad264a24e8..f1a61329e8 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -184,7 +184,8 @@ and many other languages.") ;; setup.py tries to keep its own license the same as wxwidget's ;; license (which it expects under $WXWIN/docs). (("'preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt'") - "")))))) + "")) + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index c94d57fc01..8ea44f59d2 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2014, 2015, 2016 Alex Kost -;;; Copyright © 2013, 2015, 2017 Ludovic Courtès +;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2015 Alexander I.Grafov ;;; Copyright © 2015 Andy Wingo @@ -18,11 +18,12 @@ ;;; Copyright © 2016 Petter ;;; Copyright © 2017 Mekeor Melire ;;; Copyright © 2017 Nils Gillmann -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Marek Benc ;;; Copyright © 2017 Mike Gerwitz ;;; Copyright © 2018 Thomas Sigurdsen ;;; Copyright © 2018 Rutger Helling +;;; Copyright © 2018 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -92,11 +93,13 @@ "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv")) (modules '((guix build utils))) (snippet - ;; Do not record a timestamp and file name in gzipped man - ;; pages (this is equivalent to 'gzip --no-name'.) - '(substitute* "setup.py" - (("gzip\\.open\\(gzfile, 'w', 9\\)") - "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)"))))) + '(begin + ;; Do not record a timestamp and file name in gzipped man + ;; pages (this is equivalent to 'gzip --no-name'.) + (substitute* "setup.py" + (("gzip\\.open\\(gzfile, 'w', 9\\)") + "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)")) + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 ;incompatible with python 3 @@ -138,12 +141,7 @@ program.") "0n7pczk9vv30zf8qfln8ba3hnif9yfdxg0m84djac469wc28hnya")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; There is no test suite - #:phases - (modify-phases %standard-phases - ;; Since version 0.13, bootstrapped releases are no longer available. - (add-after 'unpack 'bootstrap - (lambda _ (zero? (system* "autoreconf" "-v"))))))) + '(#:tests? #f)) ;there is no test suite (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) @@ -533,7 +531,7 @@ selection's dimensions to stdout.") (define-public maim (package (name "maim") - (version "5.5") + (version "5.5.1") (source (origin (method url-fetch) (uri (string-append @@ -542,7 +540,7 @@ selection's dimensions to stdout.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "02blbimjdckbcb04crhv0k2vxnp3rcgskyq66sk0v13l2h52849v")))) + "1dvw0axnr9hhjg6zdcq9lwvaq0x7vrzlz00p8n3hj25qzsi4z5as")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no "check" target @@ -629,9 +627,7 @@ things less distracting.") ("libxi" ,libxi) ("libxtst" ,libxtst))) (native-inputs - `(("inputproto" ,inputproto) - ("xextproto" ,xextproto) - ("xproto" ,xproto))) + `(("xorgproto" ,xorgproto))) (synopsis "Tools to automate tasks in X such as detecting on screen images") (description "Xautomation can control X from the command line for scripts, and @@ -887,14 +883,15 @@ Escape key when Left Control is pressed and released on its own.") (define-public libwacom (package (name "libwacom") - (version "0.29") + (version "0.30") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/linuxwacom/libwacom/" - name "-" version ".tar.bz2")) + (uri (string-append + "https://github.com/linuxwacom/libwacom/releases/download/" + name "-" version "/" name "-" version ".tar.bz2")) (sha256 (base32 - "1diklgcjhmvcxi9p1ifp6wcnyr6k7z9jhrlzfhzjqd6zipk01slw")))) + "0n9294f2534qcgfry4n7vmr6vy49iqym0y74a88g1h0l0ml0hd2j")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -907,7 +904,7 @@ Escape key when Left Control is pressed and released on its own.") ;; libwacom includes header files that include GLib, and libinput uses ;; those header files. `(("glib" ,glib))) - (home-page "http://linuxwacom.sourceforge.net/") + (home-page "https://linuxwacom.github.io/") (synopsis "Helper library for Wacom tablet settings") (description "Libwacom is a library to help implement Wacom tablet settings. It is @@ -919,15 +916,16 @@ Wacom tablet applet.") (define-public xf86-input-wacom (package (name "xf86-input-wacom") - (version "0.36.0") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/linuxwacom/xf86-input-wacom/" - name "-" version ".tar.bz2")) - (sha256 - (base32 - "1xi39hl8ddgj9m7m2k2ll2r3wh0k0aq45fvrsv43651bhz9cbrza")))) + (version "0.36.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/linuxwacom/xf86-input-wacom/releases/download/" + name "-" version "/" name "-" version ".tar.bz2")) + (sha256 + (base32 + "029y8varbricba2dzhzhy0ndd7lbfif411ca8c3wxzni9qmbj1ij")))) (arguments `(#:configure-flags (list (string-append "--with-sdkdir=" @@ -945,7 +943,7 @@ Wacom tablet applet.") ("libxinerama" ,libxinerama) ("libxi" ,libxi) ("eudev" ,eudev))) - (home-page "http://linuxwacom.sourceforge.net/") + (home-page "https://linuxwacom.github.io/") (synopsis "Wacom input driver for X") (description "The xf86-input-wacom driver is the wacom-specific X11 input driver for @@ -955,7 +953,7 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).") (define-public redshift (package (name "redshift") - (version "1.11") + (version "1.12") (source (origin (method url-fetch) @@ -965,7 +963,7 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).") "/redshift-" version ".tar.xz")) (sha256 (base32 - "0ngkwj7rg8nfk806w0sg443w6wjr91xdc0zisqfm5h2i77wm1qqh")))) + "1fi27b73x85qqar526dbd33av7mahca2ykaqwr7siqiw1qqcby6j")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -975,7 +973,7 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).") ("libx11" ,libx11) ("libxcb" ,libxcb) ("libxxf86vm" ,libxxf86vm) - ("glib" ,glib))) ;for Geoclue2 support + ("glib" ,glib))) ; for Geoclue2 support (home-page "https://github.com/jonls/redshift") (synopsis "Adjust the color temperature of your screen") (description @@ -1260,7 +1258,9 @@ program for X11. It was designed to be fast, tiny and scriptable in any languag (modules '((guix build utils))) (snippet ;; Drop bundled m4. - '(delete-file-recursively "m4")))) + '(begin + (delete-file-recursively "m4") + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1287,41 +1287,41 @@ XCB util-xrm module provides the following libraries: (define-public xcalib (package (name "xcalib") - (version "0.8") + (version "0.10") + (home-page "https://github.com/OpenICC/xcalib") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/xcalib/xcalib/" version - "/xcalib-source-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) (sha256 (base32 - "1rh6xb51c5xz926dnn82a2fn643g0sr4a8z66rn6yi7523kjw4ca")))) - (build-system gnu-build-system) + "05fzdjmhiafgi2jf0k41i3nm0837a78sb6yv59cwc23nla8g0bhr")) + (patches + (list + ;; Add missing documentation for the new --output option. + ;; This upstream patch can be removed on the next update. + (origin + (method url-fetch) + (uri (string-append + home-page "/commit/" + "ae03889b91fe984b18e925ad2b5e6f2f7354e058.patch")) + (file-name "xcalib-update-man-page.patch") + (sha256 + (base32 + "0f7b4d5484x4b9n1bwhqmar0kcaa029ffff7bp3xpr734n1qgqb6"))))))) + (build-system cmake-build-system) (arguments - '(#:make-flags '("CC=gcc") - #:tests? #f ; No test suite - #:phases (modify-phases %standard-phases - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (install-file "xcalib" bin)))) - (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let ((doc (string-append(assoc-ref outputs "out") - "/share/doc/xcalib"))) - (install-file "README" doc) - ;; Avoid unspecified return value. - #t)))))) + '(#:tests? #f)) ; no test suite (inputs `(("libx11" ,libx11) ("libxext" ,libxext) + ("libxrandr" ,libxrandr) ("libxxf86vm" ,libxxf86vm))) (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)") (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC profiles to the video card's gamma ramp. It does work with most video card drivers except the generic VESA driver. Alter brightness, contrast, RGB, and invert colors on a specific display/screen.") - (home-page "http://xcalib.sourceforge.net/") (license license:gpl2))) (define-public nxbelld @@ -1439,3 +1439,39 @@ with black color on a white background (colors are configurable on the commandline).") (home-page "https://www.joachim-breitner.de/projects#screen-message") (license license:gpl2+))) + +(define-public xss-lock + ;; xss-lock does not seem to be maintained any longer, but the last commits + ;; fix important issues so we package them. + (let ((version "0.3.0") + (revision "1") + (commit "1e158fb20108058dbd62bd51d8e8c003c0a48717")) + (package + (name "xss-lock") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://bitbucket.org/raymonad/xss-lock.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10hx7k7ga8g08akwz8qrsvj8iqr5nd4siiva6sjx789jvf0sak7r")))) + (build-system cmake-build-system) + (inputs `(("glib" ,glib) + ("xcb-util" ,xcb-util))) + (native-inputs + `(("python-docutils" ,python-docutils) + ("pkg-config" ,pkg-config))) + (arguments + `(#:tests? #f)) + (synopsis "Use external screen locker on events") + (description "@code{xss-lock} listens to X signals to fire up a +user-defined screensaver. In effect this allows to automatically lock the +screen when closing a laptop lid or after a period of user inactivity (as set +with @code{xset s TIMEOUT}). The notifier command, if specified, is executed +first. Additionally, xss-lock uses the inhibition logic to lock the screen +before the system goes to sleep.") + (home-page "https://bitbucket.org/raymonad/xss-lock") + (license license:expat)))) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 8721fd91ad..134d601881 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -718,7 +718,8 @@ on your desktop.") (match %build-inputs (((names . directories) ...) (union-build (assoc-ref %outputs "out") - directories)))))) + directories) + #t))))) (inputs `(("exo" ,exo) ("garcon" ,garcon) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index d3a590bc58..a9f4a2ab87 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -80,17 +80,14 @@ periodic timestamps for seeking.") (define libvorbis (package (name "libvorbis") - (version "1.3.5") - (replacement libvorbis-1.3.6) + (version "1.3.6") (source (origin (method url-fetch) (uri (string-append "http://downloads.xiph.org/releases/vorbis/" "libvorbis-" version ".tar.xz")) - (patches (search-patches "libvorbis-CVE-2017-14633.patch" - "libvorbis-CVE-2017-14632.patch")) (sha256 (base32 - "1lg1n3a6r41492r7in0fpvzc7909mc5ir9z0gd3qh2pz4yalmyal")))) + "05dlzjkdpv46zb837wysxqyn8l636x3dw8v8ymlrwz2fg1dbn05g")))) (build-system gnu-build-system) (propagated-inputs `(("libogg" ,libogg))) (arguments `(#:configure-flags '("LDFLAGS=-lm") @@ -106,18 +103,6 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to "See COPYING in the distribution.")) (home-page "https://xiph.org/vorbis/"))) -;; For CVE-2018-5146. -(define-public libvorbis-1.3.6 - (package/inherit libvorbis - (version "1.3.6") - (source (origin - (method url-fetch) - (uri (string-append "http://downloads.xiph.org/releases/vorbis/" - "libvorbis-" version ".tar.xz")) - (sha256 - (base32 - "05dlzjkdpv46zb837wysxqyn8l636x3dw8v8ymlrwz2fg1dbn05g")))))) - (define libtheora (package (name "libtheora") diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 6e32ffb05f..5c31a9e669 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -84,7 +84,7 @@ things the parser might find in the XML document (like start tags).") (define-public libebml (package (name "libebml") - (version "1.3.5") + (version "1.3.6") (source (origin (method url-fetch) @@ -92,8 +92,23 @@ things the parser might find in the XML document (like start tags).") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "005a0ipqnfbsq47zrc61zszi439jw32q5xd6dc1jyb3lc0zl266q")))) - (build-system gnu-build-system) + "17iynkj22rbszaymxiaq6k02qy9w4fs1appkn1iam4y441w7lnhy")) + (patches + (list + (origin + (method url-fetch) + (uri + (string-append "https://github.com/Matroska-Org/libebml/commit/" + "e46906b80e7662fb78d305f576412f9fa4a22218.patch")) + (file-name "libebml-use-limits-not-climits.patch") + (sha256 + (base32 + "1803rcj4kzg385xij8j3fcz8h86z43ivciv512zr7jp9jwrafs58"))))))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DBUILD_SHARED_LIBS=YES") + #:tests? #f)) ; no test suite (home-page "https://matroska-org.github.io/libebml/") (synopsis "C++ library to parse EBML files") (description "libebml is a C++ library to read and write @dfn{EBML} @@ -105,14 +120,14 @@ hierarchical form with variable field lengths.") (define-public libxml2 (package (name "libxml2") - (version "2.9.7") + (version "2.9.8") (source (origin (method url-fetch) (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-" version ".tar.gz")) (sha256 (base32 - "034hylzspvkm0p4bczqbf8q05a7r2disr8dz725x4bin61ymwg7n")))) + "0ci7is75bwqqw2p32vxvrk6ds51ik7qgx73m920rakv5jlayax0b")))) (build-system gnu-build-system) (home-page "http://www.xmlsoft.org/") (synopsis "C parser for XML") @@ -636,14 +651,14 @@ that conforms to the API of the Document Object Model.") (define-public perl-xml-compile-tester (package (name "perl-xml-compile-tester") - (version "0.90") + (version "0.91") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" "XML-Compile-Tester-" version ".tar.gz")) (sha256 (base32 - "1bcl8x8cyacqv9yjp97aq9qq85sy8wv78kd8c16yd9yw3by4cpp1")))) + "1drzwziwi96rfkh48qpw4l225mcbk8ppl2157nj92cslcpwwdk75")))) (build-system perl-build-system) (propagated-inputs `(("perl-log-report" ,perl-log-report) @@ -735,14 +750,14 @@ used.") (define-public perl-xml-compile-wsdl11 (package (name "perl-xml-compile-wsdl11") - (version "3.06") + (version "3.07") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" "XML-Compile-WSDL11-" version ".tar.gz")) (sha256 (base32 - "0vbq05cpynm3jj81fw1k4nsb3wv4zngi6blvi1jhdarmh2rfg1x2")))) + "09ayl442hzvn97q4ghn5rz4r82dm9w3l69hixhb29h9xq9ysi7ba")))) (build-system perl-build-system) (propagated-inputs `(("perl-log-report" ,perl-log-report) @@ -911,14 +926,14 @@ XSL-T processor. It also performs any necessary post-processing.") (define-public xmlsec (package (name "xmlsec") - (version "1.2.25") + (version "1.2.26") (source (origin (method url-fetch) (uri (string-append "https://www.aleksey.com/xmlsec/download/" name "1-" version ".tar.gz")) (sha256 (base32 - "1lpwj8dxwhha54sby0v5axjk79h56jnhjjiwiasbbk15vwzahz4n")))) + "0l1dk344rn3j2vnj13daz72xd8j1msvzhg82n2il5ji0qz4pd0ld")))) (build-system gnu-build-system) (propagated-inputs ; according to xmlsec1.pc `(("libxml2" ,libxml2) @@ -1233,7 +1248,7 @@ files. It is designed to be fast and to handle large input files.") `(#:phases (modify-phases %standard-phases ;; Bootstrapping is required in order to fix the test driver script. - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ (zero? (system* "bash" "bootstrap"))))))) (native-inputs diff --git a/gnu/packages/xnee.scm b/gnu/packages/xnee.scm index fc5130c0ec..5cd20cbef1 100644 --- a/gnu/packages/xnee.scm +++ b/gnu/packages/xnee.scm @@ -40,14 +40,11 @@ (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+-2) - ("inputproto" ,inputproto) ("libx11" ,libx11) ("libxext" ,libxext) ("libxi" ,libxi) ("libxtst" ,libxtst) - ("recordproto" ,recordproto) - ("xextproto" ,xextproto) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.gnu.org/software/xnee/") diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index bb0ca6f45c..278d396400 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1,8 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Andreas Enge -;;; Copyright © 2014, 2015, 2017 Mark H Weaver +;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver ;;; Copyright © 2014, 2015 Eric Bavier -;;; Copyright © 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2016 Mathieu Lirzin ;;; Copyright © 2015 Cyrill Schenkel @@ -119,7 +119,7 @@ `(("pkg-config" ,pkg-config))) (inputs `(("xorg-cf-files" ,xorg-cf-files) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (arguments `(#:phases (modify-phases %standard-phases @@ -137,10 +137,10 @@ (substitute* '("mingw.cf" "Imake.tmpl" "nto.cf" "os2.cf" "linux.cf" "Amoeba.cf" "cygwin.cf") (("/bin/sh") (which "bash"))) - (and (zero? (system* "./configure" - (string-append "SHELL=" (which "bash")) - (string-append "--prefix=" out))) - (zero? (system* "make" "install")))))))))) + (invoke "./configure" + (string-append "SHELL=" (which "bash")) + (string-append "--prefix=" out)) + (invoke "make" "install")))))))) (home-page "https://www.x.org/") (synopsis "Source code configuration and build system") (description @@ -169,7 +169,7 @@ autotools system.") (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("xproto" ,xproto))) + `(("xorgproto" ,xorgproto))) (home-page "https://www.x.org/") (synopsis "Symlink directory into tree") (description "Create a shadow directory of symbolic links to another @@ -203,6 +203,27 @@ converts X font from Bitmap Distribution Format to Portable Compiled Format which can be read by any architecture.") (license license:x11))) +(define-public xorgproto + (package + (name "xorgproto") + (version "2018.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://xorg/individual/proto/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "180mqkp70i44rkmj430pmn9idssvffrgv4y5h19fm698a7h8bs7y")))) + (build-system gnu-build-system) + (propagated-inputs + ;; To get util-macros in (almost?) all package inputs. + `(("util-macros" ,util-macros))) + (home-page "https://cgit.freedesktop.org/xorg/proto/xorgproto") + (synopsis "Xorg protocol headers") + (description + "This package provides the headers and specification documents defining +the core protocol and (many) extensions for the X Window System.") + (license license:x11))) (define-public bigreqsproto (package @@ -225,8 +246,8 @@ which can be read by any architecture.") (description "Big Requests Extension defines a protocol to enable the use of requests that exceed 262140 bytes in length.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public compositeproto (package @@ -244,7 +265,7 @@ requests that exceed 262140 bytes in length.") "1z0crmf669hirw4s7972mmp8xig80kfndja9h559haqbpvq5k4q4")))) (build-system gnu-build-system) (inputs - `(("fixesproto" ,fixesproto))) + `(("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -252,8 +273,8 @@ requests that exceed 262140 bytes in length.") (description "Composite Extension contains header files and documentation for the damage protocol.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public damageproto (package @@ -276,8 +297,8 @@ the damage protocol.") (description "Damage Extension contains header files and documentation for the damage protocol.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public dmxproto (package @@ -301,8 +322,8 @@ the damage protocol.") "DMX (Distributed Multihead X) Extension defines a protocol for clients to access a front-end proxy X server that controls multiple back-end X servers making up a large display.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public dri2proto (package @@ -325,7 +346,8 @@ servers making up a large display.") "Direct Rendering Infrastructure 2 Extension defines a protocol to securely allow user applications to access the video hardware without requiring data to be passed through the X server.") - (license license:x11))) + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public dri3proto (package @@ -350,7 +372,8 @@ translate between direct rendered buffers and X pixmaps. When combined with the Present extension, a complete direct rendering solution for OpenGL is provided.") (license (license:x11-style "file://dri3proto.h" - "See 'dri3proto.h' in the distribution.")))) + "See 'dri3proto.h' in the distribution.")) + (properties `((superseded . ,xorgproto))))) (define-public %app-defaults-dir "/lib/X11/app-defaults") @@ -425,10 +448,12 @@ Resources file.") (modules '((guix build utils))) (snippet ;; Do not include timestamps in '.pcf.gz' files. - '(substitute* "Makefile.in" - (("^COMPRESS = (.*)$" _ rest) - (string-append "COMPRESS = " (string-trim-right rest) - " --no-name\n")))))) + '(begin + (substitute* "Makefile.in" + (("^COMPRESS = (.*)$" _ rest) + (string-append "COMPRESS = " (string-trim-right rest) + " --no-name\n"))) + #t)))) (define-syntax-rule (xorg-font-origin font version hash) "Expand to the 'origin' form for the given Xorg font package." @@ -888,8 +913,8 @@ For example: '6x10', '9x15bold', etc.") (description "Fonts Extension contains header files and documentation for the fonts protocol.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public glproto (package @@ -912,8 +937,8 @@ the fonts protocol.") (description "OpenGL Extension defines a protocol for the client to send 3D rendering commands to the X server.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public iceauth (package @@ -965,8 +990,8 @@ authentication records.") (description "Input Extension defines a protocol to provide additional input devices management such as graphic tablets.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public kbproto (package @@ -989,8 +1014,8 @@ devices management such as graphic tablets.") (description "X Keyboard (XKB) Extension defines a protocol to provide a number of new capabilities and controls for text keyboards.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) ;; requires applewmproto, which compiles only on macos ;; (define-public libapplewm @@ -1012,10 +1037,9 @@ of new capabilities and controls for text keyboards.") "0hvjfhrcym770cr0zpqajdy3cda30aiwbjzv16iafkqkbl090gr5")))) (build-system gnu-build-system) (inputs - `(("xextproto" ,xextproto) + `(("xorgproto" ,xorgproto) ("libxext" ,libxext) - ("libx11" ,libx11) - ("dmxproto" ,dmxproto))) + ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1039,7 +1063,7 @@ of new capabilities and controls for text keyboards.") "1ir0j92mnd1nk37mrv9bz5swnccqldicgszvfsh62jd14q6k115q")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("xproto" ,xproto))) + (inputs `(("xorgproto" ,xorgproto))) (home-page "https://www.x.org/") (synopsis "Xorg shared memory fences library") (description @@ -1067,7 +1091,7 @@ synchronization between the X server and direct-rendering clients.") (build-system gnu-build-system) (inputs `(("zlib" ,zlib) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1093,8 +1117,7 @@ synchronization between the X server and direct-rendering clients.") (build-system gnu-build-system) (inputs `(("xtrans" ,xtrans) - ("xproto" ,xproto) - ("fontsproto" ,fontsproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1223,10 +1246,9 @@ hit when running single-threaded.") "1p0flwb67xawyv6yhri9w17m1i4lji5qnd0gq8v1vsfb8zw7rw15")))) (build-system gnu-build-system) (inputs - `(("xextproto" ,xextproto) + `(("xorgproto" ,xorgproto) ("libxext" ,libxext) - ("libx11" ,libx11) - ("windowswmproto" ,windowswmproto))) + ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1256,10 +1278,9 @@ with the Cygwin XWin server when running X11 in a rootless mode.") (build-system gnu-build-system) (propagated-inputs ;; xcomposite.pc refers to all these. - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libxfixes" ,libxfixes) - ("libx11" ,libx11) - ("compositeproto" ,compositeproto))) + ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1286,7 +1307,7 @@ with the Cygwin XWin server when running X11 in a rootless mode.") (build-system gnu-build-system) (inputs `(("libbsd" ,libbsd) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1317,7 +1338,7 @@ with the Cygwin XWin server when running X11 in a rootless mode.") ("fontconfig" ,fontconfig))) (inputs `(("libx11" ,libx11) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1371,7 +1392,7 @@ configuration files.") (build-system gnu-build-system) (inputs `(("libxt" ,libxt) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("libxext" ,libxext))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1404,7 +1425,7 @@ treat it as part of their software base when porting.") (inputs `(("gettext" ,gettext-minimal) ("libxt" ,libxt) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("libxext" ,libxext))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1430,10 +1451,9 @@ treat it as part of their software base when porting.") "1m0jr0lbz9ixpp9ihk68349q0i7ry2379lnfzdy4mrl86ijc2xgz")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libxext" ,libxext) - ("libx11" ,libx11) - ("resourceproto" ,resourceproto))) + ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1461,7 +1481,7 @@ treat it as part of their software base when porting.") `(("libxext" ,libxext) ("libx11" ,libx11))) (propagated-inputs - `(("scrnsaverproto" ,scrnsaverproto))) + `(("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1486,7 +1506,7 @@ treat it as part of their software base when porting.") "0zn7aqj8x0951d8zb2h2andldvwkzbsc4cs7q023g6nzq6vd9v4f")))) (build-system gnu-build-system) (propagated-inputs - `(("xf86dgaproto" ,xf86dgaproto))) + `(("xorgproto" ,xorgproto))) (inputs `(("libx11" ,libx11) ("libxext" ,libxext))) @@ -1546,7 +1566,7 @@ input from UTF-8 into the locale's encoding.") "09alw99r6y2bbd1dc786n3jfgv4j520apblyn7cw6jkjydshba7p")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto))) + `(("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") (synopsis "Xorg makedepend utility") @@ -1572,7 +1592,7 @@ input from UTF-8 into the locale's encoding.") (build-system gnu-build-system) (inputs `(("zlib" ,zlib) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("freetype" ,freetype) ("libfontenc" ,libfontenc))) (native-inputs @@ -1608,7 +1628,8 @@ window contents from a pixmap in a well defined fashion, synchronizing with the display refresh and potentially using a more efficient mechanism than copying the contents of the source pixmap.") (license (license:x11-style "file://presentproto.h" - "See 'presentproto.h' in the distribution.")))) + "See 'presentproto.h' in the distribution.")) + (properties `((superseded . ,xorgproto))))) (define-public printproto (package @@ -1656,7 +1677,8 @@ network-transparent printing system.") "Resize and Rotate Extension defines a protocol for clients to dynamically change X screens, so as to resize, rotate and reflect the root window of a screen.") - (license license:x11))) + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public recordproto @@ -1680,8 +1702,8 @@ window of a screen.") (description "Record Extension defines a protocol for the recording and playback of user actions in the X Window System.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public renderproto (package @@ -1704,8 +1726,8 @@ of user actions in the X Window System.") (description "Rendering Extension defines a protcol for a digital image composition as the foundation of a new rendering model within the X Window System.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public resourceproto (package @@ -1728,8 +1750,8 @@ as the foundation of a new rendering model within the X Window System.") (description "Resource Extension defines a protocol that allows a client to query the X server about its usage of various resources.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public scrnsaverproto (package @@ -1752,8 +1774,8 @@ query the X server about its usage of various resources.") (description "Screen Saver Extension defines a protocol to control screensaver features and to query screensaver info on specific windows.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public sessreg (package @@ -1771,7 +1793,7 @@ features and to query screensaver info on specific windows.") "1qd66mg2bnppqz4xgdjzif2488zl82vx2c26ld3nb8pnyginm9vq")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto))) + `(("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -1849,7 +1871,7 @@ management to participate in an X11R6 session.") (define-public util-macros (package (name "util-macros") - (version "1.19.1") + (version "1.19.2") (source (origin (method url-fetch) @@ -1859,25 +1881,26 @@ management to participate in an X11R6 session.") ".tar.bz2")) (sha256 (base32 - "19h6wflpmh7xxqr6lk5z8pds6r9r0dn7ijbvaacymx2q0m05km0q")))) + "04p7ydqxgq37jklnfj18b70zsifiz4h50wvrk94i2112mmv37r6p")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (arguments - `(#:phases (alist-cons-after - 'unpack 'fix-makefile-in - (lambda _ - (substitute* "Makefile.in" - ;; Install xorg-macros.pc in PREFIX/lib/pkgconfig, - ;; not PREFIX/share/pkgconfig. - (("\\$\\(datadir\\)/pkgconfig") "$(libdir)/pkgconfig"))) - (alist-cons-after - 'install 'post-install-cleanup - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion out - (delete-file "share/util-macros/INSTALL") - (rmdir "share/util-macros")))) - %standard-phases)))) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-makefile-in + (lambda _ + (substitute* "Makefile.in" + ;; Install xorg-macros.pc in PREFIX/lib/pkgconfig, + ;; not PREFIX/share/pkgconfig. + (("\\$\\(datadir\\)/pkgconfig") "$(libdir)/pkgconfig")) + #t)) + (add-after 'install 'post-install-cleanup + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + (delete-file "share/util-macros/INSTALL") + (rmdir "share/util-macros")) + #t)))))) (home-page "https://www.x.org/wiki/") (synopsis "Xorg autoconf macros") (description @@ -1908,8 +1931,8 @@ generate new versions of their configure scripts with autoconf.") (description "Video Extension provides a protocol for a video output mechanism, mainly to rescale video playback in the video controller hardware.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public windowswmproto (package @@ -1934,8 +1957,8 @@ mainly to rescale video playback in the video controller hardware.") an X11 server and the Microsoft Windows native window manager. WindowsWM is only intended to be used on Cygwin when running a rootless XWin server.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public x11perf (package @@ -2089,7 +2112,7 @@ emulate a TI-30 or an HP-10C.") (define-public xcb-proto (package (name "xcb-proto") - (version "1.12") + (version "1.13") (source (origin (method url-fetch) @@ -2099,10 +2122,7 @@ emulate a TI-30 or an HP-10C.") ".tar.bz2")) (sha256 (base32 - "01j91946q8f34l1mbvmmgvyc393sm28ym4lxlacpiav4qsjan8jr")) - (patches - (search-patches "xcb-proto-python3-whitespace.patch" - "xcb-proto-python3-print.patch")))) + "1qdxw9syhbvswiqj5dvj278lrmfhs81apzmvx6205s4vcqg7563v")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python-minimal-wrapper))) @@ -2142,8 +2162,8 @@ generators in individual language bindings.") (description "XC-MISC Extension defines a protocol that provides Xlib two ways to query the server for available resource IDs.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public xcmsdb (package @@ -2250,7 +2270,7 @@ X server: 'handhelds', 'redglass' and 'whiteglass'.") "0ldgrj4w2fa8jng4b3f3biaj0wyn8zvya88pnk70d7k12pcqw8rh")))) (build-system gnu-build-system) (inputs - `(("inputproto" ,inputproto) + `(("xorgproto" ,xorgproto) ("libx11" ,libx11) ("libxxf86vm" ,libxxf86vm) ("libxxf86dga" ,libxxf86dga) @@ -2319,7 +2339,7 @@ DRI (Direct Rendering Infrastructure) drivers.") (inputs `(("libxrender" ,libxrender) ("libxrandr" ,libxrandr) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -2359,8 +2379,8 @@ usage.") Extended-Visual-Information, Generic Event Extension, LBX, MIT-SHM, MIT-SUNDRY-NONSTANDARD, Multi-Buffering, SECURITY, SHAPE, SYNC, TOG-CUP, XC-APPGROUP, XTEST.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public libevdev (package @@ -2391,7 +2411,7 @@ devices, thus making direct access unnecessary.") (define-public xf86-input-evdev (package (name "xf86-input-evdev") - (version "2.10.5") + (version "2.10.6") (source (origin (method url-fetch) @@ -2401,7 +2421,7 @@ devices, thus making direct access unnecessary.") ".tar.bz2")) (sha256 (base32 - "03dphgwjaxxyys8axc1kyysp6xvy9bjxicsdrhi2jvdgbchadnly")))) + "1h1y0fwnawlp4yc5llr1l7hwfcxxpln2fxhy6arcf6w6h4z0f9l7")))) (build-system gnu-build-system) (inputs `(("udev" ,eudev) @@ -2541,7 +2561,7 @@ as USB mice.") (define-public xf86-input-synaptics (package (name "xf86-input-synaptics") - (version "1.9.0") + (version "1.9.1") (source (origin (method url-fetch) @@ -2551,7 +2571,7 @@ as USB mice.") ".tar.bz2")) (sha256 (base32 - "0niv0w1czbxh4y3qkqbpdp5gjwhp3379inwhknhif0m4sy4k5fmg")))) + "0xhm03qywwfgkpfl904d08lx00y28m1b6lqmks5nxizixwk3by3s")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) ("libxi" ,libxi) @@ -2666,7 +2686,7 @@ as USB mice.") "180l2yw8c63cbcs3zk729vx439aig1d7yicpyxj0nmfl4y0kpskj")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) - ("xxf86driproto" ,xf86driproto) + ("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments `(#:configure-flags `("--disable-glamor"))) ; TODO: Enable glamor @@ -2710,7 +2730,7 @@ X server.") (define-public xf86-video-fbdev (package (name "xf86-video-fbdev") - (version "0.4.4") + (version "0.5.0") (source (origin (method url-fetch) @@ -2720,7 +2740,7 @@ X server.") ".tar.bz2")) (sha256 (base32 - "06ym7yy017lanj730hfkpfk4znx3dsj8jq3qvyzsn8w294kb7m4x")))) + "16a66zr0l1lmssa07i3rzy07djxnb45c17ks8c71h8l06xgxihyw")))) (build-system gnu-build-system) (inputs `(("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -2767,11 +2787,7 @@ framebuffer device.") `(#:configure-flags (list (string-append "--with-xorg-conf-dir=" (assoc-ref %outputs "out") - "/share/X11/xorg.conf.d")) - #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + "/share/X11/xorg.conf.d")))) (home-page "https://www.x.org/wiki/") (synopsis "Adreno video driver for X server") (description @@ -2854,7 +2870,7 @@ compositing. Both support Xv overlay and dynamic rotation with XRandR.") (base32 "1lkpspvrvrp9s539bhfdjfh4andaqyk63l6zjn8m3km95smk6a45")))) (build-system gnu-build-system) - (inputs `(("xf86dgaproto" ,xf86dgaproto) + (inputs `(("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -2892,12 +2908,11 @@ X server.") (define-public xf86-video-intel - (let ((commit "af6d8e9e8f546e5cba60e3a62765c2dbd0328e83") - (revision "9")) + (let ((commit "d7dfab62a9853b44bbcd67dac08391d8e5114c97") + (revision "10")) (package (name "xf86-video-intel") - (version (string-append "2.99.917-" revision "-" - (string-take commit 7))) + (version (git-version "2.99.917" revision commit)) (source (origin ;; there's no current tarball @@ -2907,8 +2922,8 @@ X server.") (commit commit))) (sha256 (base32 - "0f6sbkgykvvdggy8z6y7blf7yharg9vmiixxy190643bjxlnpp2s")) - (file-name (string-append name "-" version)))) + "1vcfal4xr9q6016p28lnlyg709da6d305dysyyrj3fjp9fj48sva")) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) ("udev" ,eudev) @@ -2928,9 +2943,11 @@ X server.") (arguments '(#:configure-flags '("--with-default-accel=uxa") #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (add-before 'bootstrap 'pre-bootstrap (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + ;; Inhibit autogen.sh from running configure. + (setenv "NOCONFIGURE" "1") + #t))))) (home-page "https://www.x.org/wiki/") (synopsis "Intel video driver for X server") (description @@ -2956,7 +2973,7 @@ It supports a variety of Intel graphics chipsets.") (patches (search-patches "xf86-video-mach64-glibc-2.20.patch")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) - ("xf86driproto" ,xf86driproto) + ("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -2987,7 +3004,7 @@ the same level of support for generic VGA or 8514/A adapters.") "08ll52hlar9z446v0wwca5qkj3hxhswwm7vvcgic9xv4cf7csqxn")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) - ("xf86driproto" ,xf86driproto) + ("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3011,7 +3028,7 @@ the same level of support for generic VGA or 8514/A adapters.") (base32 "1whb2kgyqaxdjim27ya404acz50izgmafwnb6y9m89q5n6b97y3j")))) (build-system gnu-build-system) - (inputs `(("xf86dgaproto" ,xf86dgaproto) + (inputs `(("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3118,7 +3135,7 @@ graphics cards.") ("libxext" ,libxext) ("libxvmc" ,libxvmc) ("mesa" ,mesa) - ("xf86driproto" ,xf86driproto) + ("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -3145,12 +3162,10 @@ UniChrome Pro and Chrome9 integrated graphics processors.") "14jc24znnahhmz4kqalafmllsg8awlz0y6gpgdpk5ih38ph851mi")))) (build-system gnu-build-system) (inputs - `(("fontsproto" ,fontsproto) - ("libxfont" ,libxfont2) + `(("libxfont" ,libxfont2) ("spice-protocol" ,spice-protocol) - ("xf86dgaproto" ,xf86dgaproto) ("xorg-server" ,xorg-server) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (synopsis "Qxl video driver for X server") @@ -3176,7 +3191,7 @@ This driver is intended for the spice qxl virtio device.") "1pkpka5m4cd6iy0f8iqnmg6xci14nb6887ilvxzn3xrsgx8j3nl4")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) - ("xf86driproto" ,xf86driproto) + ("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3203,7 +3218,7 @@ This driver is intended for ATI Rage 128 based cards.") "11pcrsdpdrwk0mrgv83s5nsx8a9i4lhmivnal3fjbrvi3zdw94rc")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) - ("xf86driproto" ,xf86driproto) + ("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3255,8 +3270,7 @@ Xorg X server.") "03f1abjjf68y8y1iz768rn95va9d33wmbwfbsqrgl6k0gi0bf9jj")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) - ("xf86dgaproto" ,xf86dgaproto) - ("xf86driproto" ,xf86driproto) + ("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -3332,7 +3346,7 @@ This driver supports SiS chipsets of 300/315/330/340 series.") "0hia45z4jc472fxp00803nznizcn4h1ybp63jcsb4lmd9vhqxx2c")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) - ("xf86driproto" ,xf86driproto) + ("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3358,7 +3372,7 @@ This driver supports SiS chipsets of 300/315/330/340 series.") "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0")) (patches (search-patches "xf86-video-tga-remove-mibstore.patch")))) (build-system gnu-build-system) - (inputs `(("xf86dgaproto" ,xf86dgaproto) + (inputs `(("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3384,7 +3398,7 @@ X server.") (base32 "0gxcar434kx813fxdpb93126lhmkl3ikabaljhcj5qn3fkcijlcy")))) (build-system gnu-build-system) - (inputs `(("xf86dgaproto" ,xf86dgaproto) + (inputs `(("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3426,7 +3440,7 @@ X server.") (define-public xf86-video-vmware (package (name "xf86-video-vmware") - (version "13.2.1") + (version "13.3.0") (source (origin (method url-fetch) @@ -3436,7 +3450,7 @@ X server.") ".tar.bz2")) (sha256 (base32 - "0azn3g0vcki47n5jddagk2rmbwdvp845k8p7d2r56zxs3w8ggxz2")))) + "0v06qhm059klq40m2yx4wypzb7h53aaassbjfmm6clcyclj1k5s7")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) @@ -3478,7 +3492,7 @@ xf86-video-voodoo/patch/?id=9172ae566a0e85313fc80ab62b4455393eefe593") "0rndmxf5b8j3hjnhrwrnzsq5024fli134fj1mprhkcrvax2zq8db")) (file-name "xf86-video-voodoo-pcitag.patch")))))) (build-system gnu-build-system) - (inputs `(("xf86dgaproto" ,xf86dgaproto) + (inputs `(("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3512,8 +3526,8 @@ xf86-video-voodoo/patch/?id=9172ae566a0e85313fc80ab62b4455393eefe593") (description "XFree86 Bigfont Extension contains header files and documentation for the XF86BigFontProto protocol.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public xf86dgaproto (package @@ -3535,8 +3549,8 @@ for the XF86BigFontProto protocol.") (description "XFree86 Direct Graphic Access Extension defines a protocol for direct linear framebuffer access.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public xf86driproto (package @@ -3559,8 +3573,8 @@ direct linear framebuffer access.") "XFree86 Direct Rendering Infrastructure Extension defines a protocol to allow user applications to access the video hardware without requiring data to be passed through the X server.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public xf86vidmodeproto (package @@ -3582,8 +3596,8 @@ requiring data to be passed through the X server.") (description "XFree86 Video Mode Extension defines a protocol for dynamically configuring modelines and gamma.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public xgamma (package @@ -3669,8 +3683,8 @@ This extension provides a common network protocol for querying information which may be provided by different underlying screen combination technologies in the X server, such as the original Xinerama multiplexer, or alternative implementations like XRandR or TwinView.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public xinput (package @@ -3694,7 +3708,7 @@ alternative implementations like XRandR or TwinView.") ("libxext" ,libxext) ("libxi" ,libxi) ("libx11" ,libx11) - ("inputproto" ,inputproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3720,7 +3734,7 @@ alternative implementations like XRandR or TwinView.") "0944rrkkf0dxp07vhh9yr4prslxhqyw63qmbjirbv1bypswvrn3d")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libxkbfile" ,libxkbfile) ("libx11" ,libx11))) (native-inputs @@ -3799,9 +3813,8 @@ requested commands if they occur.") (build-system gnu-build-system) (inputs `(("libxt" ,libxt) - ("xproto" ,xproto) ("libxaw" ,libxaw) - ("inputproto" ,inputproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -3948,7 +3961,7 @@ running on X server.") "0s6kxgv78chkwsqmhw929f4pf91gq63f4yvixxnan1h00cx0pf49")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -4044,7 +4057,7 @@ containing one glyph per cell.") (patches (search-patches "xmodmap-asprintf.patch")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -4107,7 +4120,7 @@ refers to the included common xorg.css stylesheet.") "07qy9lwjvxighcmg6qvjkgagad3wwvidrfx0jz85lgynz3qy0dmr")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libxmu" ,libxmu) ("libx11" ,libx11))) (native-inputs @@ -4136,7 +4149,7 @@ it for output on various types of printers.") "06sjgahjiz85v0k0pmv5x05chc591xynl5ah1bqzz1bdr0lgnanj")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -4165,7 +4178,7 @@ an X server.") (inputs `(("libxrender" ,libxrender) ("libxrandr" ,libxrandr) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -4252,7 +4265,7 @@ up your screen.") "0my987wjvra7l92ry6q44ky383yg3phzxhdbn3lqhapm1ll9bzg4")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libxmu" ,libxmu) ("libxext" ,libxext) ("libx11" ,libx11))) @@ -4368,7 +4381,7 @@ extension.") (inputs `(("libxt" ,libxt) ("libxkbfile" ,libxkbfile) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4400,7 +4413,7 @@ dump and twice whenthe dump is completed.") (build-system gnu-build-system) (inputs `(("libx11" ,libx11) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4427,7 +4440,7 @@ Various information is displayed depending on which options are selected.") "1a8hdgy40smvblnh3s9f0vkqckl68nmivx7d48zk34m8z18p16cr")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -4454,7 +4467,7 @@ formatted dump file, such as produced by xwd.") "1c76zcjs39ljil6f6jpx1x17c8fnvwazz7zvl3vbjfcrlmm7rjmv")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto))) + `(("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4481,7 +4494,7 @@ formatted dump file, such as produced by xwd.") "1ki4wiq2iivx5g4w5ckzbjbap759kfqd72yg18m3zpbb4hqkybxs")))) (build-system gnu-build-system) (propagated-inputs - `(("xextproto" ,xextproto))) + `(("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4490,8 +4503,8 @@ formatted dump file, such as produced by xwd.") "Fixes Extension makes changes to many areas of the protocol to resolve issues raised by application interaction with core protocol mechanisms that cannot be adequately worked around on the client side of the wire.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) (define-public libxdamage (package @@ -4510,9 +4523,8 @@ cannot be adequately worked around on the client side of the wire.") (build-system gnu-build-system) (propagated-inputs ;; These are all in the Requires or Requires.private field of xdamage.pc - `(("damageproto" ,damageproto) - ("libxfixes" ,libxfixes) - ("xproto" ,xproto) + `(("libxfixes" ,libxfixes) + ("xorgproto" ,xorgproto) ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -4538,7 +4550,7 @@ cannot be adequately worked around on the client side of the wire.") "0dbfn5bznnrhqzvkrcmw4c44yvvpwdcsrvzxf4rk27r36b9x865m")))) (build-system gnu-build-system) (propagated-inputs - `(("xextproto" ,xextproto))) + `(("xorgproto" ,xorgproto))) (inputs `(("libxau" ,libxau) ("libx11" ,libx11))) @@ -4567,7 +4579,7 @@ cannot be adequately worked around on the client side of the wire.") "1qlqfvzw45gdzk9xirgwlp2qgj0hbsyiqj8yh8zml2bk2ygnjibs")))) (build-system gnu-build-system) (propagated-inputs - `(("xineramaproto" ,xineramaproto))) + `(("xorgproto" ,xorgproto))) (inputs `(("libxext" ,libxext) ("libx11" ,libx11))) @@ -4623,10 +4635,9 @@ cannot be adequately worked around on the client side of the wire.") "0j89cnb06g8x79wmmnwzykgkkfdhin9j7hjpvsxwlr3fz1wmjvf0")))) (build-system gnu-build-system) (propagated-inputs - `(("renderproto" ,renderproto))) + `(("xorgproto" ,xorgproto))) (inputs - `(("xproto" ,xproto) - ("libx11" ,libx11))) + `(("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4650,11 +4661,10 @@ cannot be adequately worked around on the client side of the wire.") "012jpyj7xfm653a9jcfqbzxyywdmwb2b5wr1dwylx14f3f54jma6")))) (build-system gnu-build-system) (propagated-inputs - `(("recordproto" ,recordproto) - ("libxi" ,libxi))) + `(("libxi" ,libxi) + ("xorgproto" ,xorgproto))) (inputs - `(("libx11" ,libx11) - ("inputproto" ,inputproto))) + `(("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4688,10 +4698,9 @@ protocol and arbitrary X extension protocol.") "125hn06bd3d8y97hm2pbf5j55gg4r2hpd3ifad651i4sr7m16v6j")))) (build-system gnu-build-system) (propagated-inputs - `(("videoproto" ,videoproto))) + `(("xorgproto" ,xorgproto))) (inputs - `(("xproto" ,xproto) - ("libxext" ,libxext) + `(("libxext" ,libxext) ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -4724,7 +4733,8 @@ protocol and arbitrary X extension protocol.") "/bin/mkfontdir") `("PATH" ":" prefix (,(string-append (assoc-ref inputs "mkfontscale") - "/bin"))))))))) + "/bin")))) + #t))))) (inputs `(("mkfontscale" ,mkfontscale))) (native-inputs @@ -4737,7 +4747,6 @@ server core font system. The current implementation is a simple wrapper script around the mkfontscale program.") (license license:x11))) - (define-public xproto (package (name "xproto") @@ -4766,30 +4775,8 @@ the X Window System Core Protocol, Version 11. It also includes a number of headers that aren't purely protocol related, but are depended upon by many other X Window System packages to provide common definitions and porting layer.") - (license license:x11))) - -(define-public xorgproto - (package - (name "xorgproto") - (version "2018.4") - (source (origin - (method url-fetch) - (uri (string-append "mirror://xorg/individual/proto/" - name "-" version ".tar.bz2")) - (sha256 - (base32 - "180mqkp70i44rkmj430pmn9idssvffrgv4y5h19fm698a7h8bs7y")))) - (build-system gnu-build-system) - (propagated-inputs - ;; To get util-macros in (almost?) all package inputs. - `(("util-macros" ,util-macros))) - (home-page "https://cgit.freedesktop.org/xorg/proto/xorgproto") - (synopsis "Xorg protocol headers") - (description - "This package provides the headers and specification documents defining -the core protocol and (many) extensions for the X Window System.") - (license license:x11))) - + (license license:x11) + (properties `((superseded . ,xorgproto))))) ;; packages of height 2 in the propagated-inputs tree @@ -4809,7 +4796,7 @@ the core protocol and (many) extensions for the X Window System.") "00p2b6bsg6kcdbb39bv46339qcywxfl4hsrz8asm4hy6q7r34w4g")))) (build-system gnu-build-system) (propagated-inputs - `(("xproto" ,xproto))) + `(("xorgproto" ,xorgproto))) (inputs `(("libbsd" ,libbsd) ("xtrans" ,xtrans))) @@ -4837,7 +4824,7 @@ the core protocol and (many) extensions for the X Window System.") "1wm4pv12f36cwzhldpp7vy3lhm3xdcnp4f184xkxsp7b18r7gm7x")))) (build-system gnu-build-system) (propagated-inputs - `(("xproto" ,xproto))) + `(("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4863,10 +4850,9 @@ an X Window System display.") "1miana3y4hwdqdparsccmygqr3ic3hs5jrqfzp70hvi2zwxd676y")))) (build-system gnu-build-system) (propagated-inputs - `(("fixesproto" ,fixesproto))) + `(("xorgproto" ,xorgproto))) (inputs - `(("xproto" ,xproto) - ("libx11" ,libx11))) + `(("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4890,10 +4876,9 @@ an X Window System display.") "0hiji1bvpl78aj3a3141hkk353aich71wv8l5l2z51scfy878zqs")))) (build-system gnu-build-system) (propagated-inputs - `(("fontsproto" ,fontsproto) - ("freetype" ,freetype) + `(("freetype" ,freetype) ("libfontenc" ,libfontenc) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (inputs `(("zlib" ,zlib) ("xtrans" ,xtrans))) @@ -4938,12 +4923,10 @@ new API's in libXft, or the legacy API's in libX11.") "0idg1wc01hndvaa820fvfs7phvd1ymf0lldmq6386i7rhkzvirn2")))) (build-system gnu-build-system) (propagated-inputs - `(("inputproto" ,inputproto) + `(("xorgproto" ,xorgproto) ("libx11" ,libx11) ("libxext" ,libxext) ("libxfixes" ,libxfixes))) - (inputs - `(("xproto" ,xproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4971,8 +4954,7 @@ new API's in libXft, or the legacy API's in libX11.") `(("libx11" ,libx11) ("libxext" ,libxext) ("libxrender" ,libxrender) - ("randrproto" ,randrproto) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -4999,7 +4981,7 @@ new API's in libXft, or the legacy API's in libX11.") (propagated-inputs `(("libxv" ,libxv))) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libxext" ,libxext) ("libx11" ,libx11))) (native-inputs @@ -5026,7 +5008,7 @@ new API's in libXft, or the legacy API's in libX11.") (build-system gnu-build-system) (propagated-inputs `(("libxext" ,libxext) - ("xf86vidmodeproto" ,xf86vidmodeproto))) + ("xorgproto" ,xorgproto))) (inputs `(("libx11" ,libx11))) (native-inputs @@ -5044,7 +5026,7 @@ protocol.") (define-public libxcb (package (name "libxcb") - (version "1.12") + (version "1.13") (source (origin (method url-fetch) @@ -5052,9 +5034,7 @@ protocol.") name "-" version ".tar.bz2")) (sha256 (base32 - "0nvv0la91cf8p5qqlb3r5xnmg1jn2wphn4fb5jfbr6byqsvv3psa")) - (patches - (search-patches "libxcb-python-3.5-compat.patch")))) + "1ahxhmdqp4bhb90zmc275rmf5wixqra4bnw9pqnzyl1w3598g30q")))) (build-system gnu-build-system) (propagated-inputs `(("libpthread-stubs" ,libpthread-stubs) @@ -5116,31 +5096,13 @@ over Xlib, including: (file-name "xorg-server-use-intel-only-on-pre-gen4.diff")))))) (build-system gnu-build-system) (propagated-inputs - `(("dri2proto" ,dri2proto) - ("dri3proto" ,dri3proto) - ("fontsproto" ,fontsproto) - ("inputproto" ,inputproto) - ("kbproto" ,kbproto) - ("libpciaccess" ,libpciaccess) + `(("libpciaccess" ,libpciaccess) ("mesa" ,mesa) ("pixman" ,pixman) - ("presentproto" ,presentproto) - ("randrproto" ,randrproto) - ("renderproto" ,renderproto) - ("resourceproto" ,resourceproto) - ("scrnsaverproto" ,scrnsaverproto) - ("videoproto" ,videoproto) - ("xextproto" ,xextproto) - ("xineramaproto" ,xineramaproto) - ("xf86driproto" ,xf86driproto) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (inputs - `(("bigreqsproto" ,bigreqsproto) - ("compositeproto" ,compositeproto) - ("damageproto" ,damageproto) - ("udev" ,eudev) + `(("udev" ,eudev) ("dbus" ,dbus) - ("dmxproto" ,dmxproto) ("libdmx" ,libdmx) ("libepoxy" ,libepoxy) ("libgcrypt" ,libgcrypt) @@ -5155,11 +5117,6 @@ over Xlib, including: ("libxshmfence" ,libxshmfence) ("libxt" ,libxt) ("libxv" ,libxv) - ("recordproto" ,recordproto) - ("xcmiscproto" ,xcmiscproto) - ("xf86bigfontproto" ,xf86bigfontproto) - ("xf86dgaproto" ,xf86dgaproto) - ("xf86vidmodeproto" ,xf86vidmodeproto) ("xkbcomp" ,xkbcomp) ("xkeyboard-config" ,xkeyboard-config) ("xtrans" ,xtrans) @@ -5300,12 +5257,10 @@ draggable titlebars and borders.") (assoc-ref %outputs "doc") "/share/man")))) (propagated-inputs - `(("kbproto" ,kbproto) + `(("xorgproto" ,xorgproto) ("libxcb" ,libxcb))) (inputs - `(("inputproto" ,inputproto) - ("xextproto" ,xextproto) - ("xtrans" ,xtrans))) + `(("xtrans" ,xtrans))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -5334,7 +5289,7 @@ draggable titlebars and borders.") `(("libx11" ,libx11) ("libxrender" ,libxrender) ("libxfixes" ,libxfixes) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) ;; TODO: add XCURSOR_PATH=.../share/icons to profile search paths, so @@ -5408,7 +5363,7 @@ draggable titlebars and borders.") ("libxpm" ,libxpm) ("libxt" ,libxt))) (inputs - `(("xproto" ,xproto))) + `(("xorgproto" ,xorgproto))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") @@ -5437,7 +5392,7 @@ Intrinsics (Xt) Library.") `(("libxt" ,libxt) ("libxmu" ,libxmu) ("libxext" ,libxext) - ("xproto" ,xproto))) + ("xorgproto" ,xorgproto))) (native-inputs `(("bison" ,bison) ("pkg-config" ,pkg-config))) @@ -5660,7 +5615,7 @@ The XCB util-wm module provides the following libraries: "1vw2wlg74ig52naw0cha3pgzcwwk25l834j42cg8m5zmybp3a213")))) (build-system gnu-build-system) (inputs - `(("xproto" ,xproto) + `(("xorgproto" ,xorgproto) ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -5770,7 +5725,7 @@ to answer a question. Xmessage can also exit after a specified time.") (define-public xterm (package (name "xterm") - (version "332") + (version "333") (source (origin (method url-fetch) (uri (list @@ -5780,7 +5735,7 @@ to answer a question. Xmessage can also exit after a specified time.") name "-" version ".tgz"))) (sha256 (base32 - "0zdjiik4ravc3zld5c9i2ndrvazjmwiwbgl2c21348762wki2jsx")))) + "0y7gl26mxw6kwqx9j9mi6lx1lp1v3nrlga19ddn07j2m9q0l479g")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts" @@ -5800,7 +5755,7 @@ to answer a question. Xmessage can also exit after a specified time.") ("libX11" ,libx11) ("libXext" ,libxext) ("libXt" ,libxt) - ("xproto" ,xproto) + ("xorgproto" ,xorgproto) ("libXaw" ,libxaw))) (home-page "https://invisible-island.net/xterm/") (synopsis "Terminal emulator for the X Window System") @@ -5944,7 +5899,7 @@ basic eye-candy effects.") (define-public xpra (package (name "xpra") - (version "2.2.6") + (version "2.3.1") (source (origin (method url-fetch) @@ -5952,7 +5907,7 @@ basic eye-candy effects.") version ".tar.xz")) (sha256 (base32 - "1zyynghhzjbgnmzcibm17wpj9f7jy31d7dr373li8cwg2yl2swyz")))) + "0wghjmrw77pkh6agc5rz7ynr6s8yyc68qvj9rnp0vlwa3x1fl3ry")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg) ("flac" ,flac) @@ -5963,6 +5918,7 @@ basic eye-candy effects.") ("libx264" ,libx264) ("libxcomposite" ,libxcomposite) ("libxdamage" ,libxdamage) + ("libxi" ,libxi) ("libxkbfile" ,libxkbfile) ("libxrandr" ,libxrandr) ("libxtst" ,libxtst) @@ -6045,15 +6001,15 @@ X11 servers, Windows, or macOS.") (define-public uim (package (name "uim") - (version "1.8.6") + (version "1.8.8") (source (origin (method url-fetch) - (uri (string-append "https://github.com/uim/uim/releases/download/uim-" + (uri (string-append "https://github.com/uim/uim/releases/download/" version "/uim-" version ".tar.bz2")) (sha256 (base32 - "0pr3rfqpxha8p6cxzdjsxbbmmr76riklzw36f68phd1zqw1sh7kv")))) + "1p7sl0js47ja4glmax93ci59h02ipqw3wxkh4f1qgaz5qjy9nn9l")))) (build-system gnu-build-system) (inputs `(("anthy" ,anthy) diff --git a/gnu/packages/zile.scm b/gnu/packages/zile.scm index fd3d168b3d..858117de28 100644 --- a/gnu/packages/zile.scm +++ b/gnu/packages/zile.scm @@ -114,7 +114,7 @@ default Emacs configuration, but it carries a much lighter feature set.") (substitute-keyword-arguments (package-arguments zile) ((#:phases phases) `(modify-phases ,phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; Make sure all the files are writable so that ./bootstrap ;; can proceed. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index eb82b2ddcf..b34bb7132b 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -303,15 +303,14 @@ seconds after @code{SIGTERM} has been sent are terminated with (define (file-system->fstab-entry file-system) "Return a @file{/etc/fstab} entry for @var{file-system}." - (string-append (case (file-system-title file-system) - ((label) - (string-append "LABEL=" (file-system-device file-system))) - ((uuid) - (string-append - "UUID=" - (uuid->string (file-system-device file-system)))) - (else - (file-system-device file-system))) + (string-append (match (file-system-device file-system) + ((? file-system-label? label) + (string-append "LABEL=" + (file-system-label->string label))) + ((? uuid? uuid) + (string-append "UUID=" (uuid->string uuid))) + ((? string? device) + device)) "\t" (file-system-mount-point file-system) "\t" (file-system-type file-system) "\t" diff --git a/gnu/services/cgit.scm b/gnu/services/cgit.scm index 8ef12cd5a0..3289d37333 100644 --- a/gnu/services/cgit.scm +++ b/gnu/services/cgit.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Oleg Pykhalov ;;; Copyright © 2018 Clément Lassieur +;;; Copyright © 2018 Christopher Baines ;;; ;;; This file is part of GNU Guix. ;;; @@ -115,6 +116,10 @@ (define (serialize-file-object field-name val) (serialize-string field-name val)) +(define (project-list? val) + (or (list? val) + (file-object? val))) + ;;; ;;; Serialize @@ -167,7 +172,12 @@ (if (null? val) "" (serialize-field 'project-list - (plain-file "project-list" (string-join val "\n"))))) + (if (file-object? val) + val + (plain-file "project-list" (string-join val "\n")))))) + +(define (serialize-extra-options extra-options) + (string-join extra-options "\n" 'suffix)) (define repository-directory? string?) @@ -543,7 +553,7 @@ disabled.") "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages.") (project-list - (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.") @@ -641,6 +651,7 @@ for cgit to allow access to that repository.") (define (rest? field) (not (memq (configuration-field-name field) '(project-list + extra-options repository-directory repositories)))) #~(string-append @@ -649,6 +660,8 @@ for cgit to allow access to that repository.") #$(serialize-project-list 'project-list (cgit-configuration-project-list config)) + #$(serialize-extra-options + (cgit-configuration-extra-options config)) #$(serialize-repository-directory 'repository-directory (cgit-configuration-repository-directory config)) diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 360a8af9ab..1e24d93ccb 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -63,7 +63,7 @@ all the services that may be activated by the daemon." (find-files (string-append service - "/share/dbus-1/system-services") + "/share/dbus-1/") "\\.service$")) (list #$@services))) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 517d5d3efe..1e8c02c02a 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -5,6 +5,8 @@ ;;; Copyright © 2016 Sou Bunnbu ;;; Copyright © 2017 Maxim Cournoyer ;;; Copyright © 2017 Nils Gillmann +;;; Copyright © 2018 Efraim Flashner +;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,8 +31,10 @@ #:use-module (gnu services avahi) #:use-module (gnu services xorg) #:use-module (gnu services networking) + #:use-module (gnu services sound) #:use-module ((gnu system file-systems) #:select (%elogind-file-systems)) + #:use-module (gnu system) #:use-module (gnu system shadow) #:use-module (gnu system pam) #:use-module (gnu packages glib) @@ -44,9 +48,11 @@ #:use-module (gnu packages linux) #:use-module (gnu packages libusb) #:use-module (gnu packages mate) + #:use-module (gnu packages enlightenment) #:use-module (guix records) #:use-module (guix packages) #:use-module (guix store) + #:use-module (guix utils) #:use-module (guix gexp) #:use-module (srfi srfi-1) #:use-module (ice-9 match) @@ -96,6 +102,10 @@ x11-socket-directory-service + enlightenment-desktop-configuration + enlightenment-desktop-configuration? + enlightenment-desktop-service-type + %desktop-services)) ;;; Commentary: @@ -819,7 +829,8 @@ rules." gnome-polkit-settings) (service-extension profile-service-type (compose list - gnome-package)))))) + gnome-package)))) + (description "Run the GNOME desktop environment."))) (define* (gnome-desktop-service #:key (config (gnome-desktop-configuration))) "Return a service that adds the @code{gnome} package to the system profile, @@ -845,7 +856,8 @@ and extends polkit with the actions from @code{gnome-settings-daemon}." mate-package)) (service-extension profile-service-type (compose list - mate-package)))))) + mate-package)))) + (description "Run the MATE desktop environment."))) (define* (mate-desktop-service #:key (config (mate-desktop-configuration))) "Return a service that adds the @code{mate} package to the system profile, @@ -899,6 +911,60 @@ with the administrator's password." (let ((directory "/tmp/.X11-unix")) (mkdir-p directory) (chmod directory #o777)))))) + +;;; +;;; Enlightenment desktop service. +;;; + +(define-record-type* + enlightenment-desktop-configuration make-enlightenment-desktop-configuration + enlightenment-desktop-configuration? + ;; + (enlightenment enlightenment-package + (default enlightenment))) + +(define (enlightenment-setuid-programs enlightenment-desktop-configuration) + (match-record enlightenment-desktop-configuration + + (enlightenment) + (list (file-append enlightenment + "/lib/enlightenment/utils/enlightenment_sys") + (file-append enlightenment + "/lib/enlightenment/utils/enlightenment_backlight") + ;; TODO: Move this binary to a screen-locker service. + (file-append enlightenment + "/lib/enlightenment/utils/enlightenment_ckpasswd") + (file-append enlightenment + (string-append + "/lib/enlightenment/modules/cpufreq/" + (match (string-tokenize (%current-system) + (char-set-complement (char-set #\-))) + ((arch "linux") (string-append "linux-gnu-" arch)) + ((arch "gnu") (string-append "gnu-" arch))) + "-" + (version-major+minor (package-version enlightenment)) + "/freqset"))))) + +(define enlightenment-desktop-service-type + (service-type + (name 'enlightenment-desktop) + (extensions + (list (service-extension dbus-root-service-type + (compose list + (package-direct-input-selector + "efl") + enlightenment-package)) + (service-extension setuid-program-service-type + enlightenment-setuid-programs) + (service-extension profile-service-type + (compose list + enlightenment-package)))) + (default-value (enlightenment-desktop-configuration)) + (description + "Return a service that adds the @code{enlightenment} package to the system +profile, and extends dbus with the ability for @code{efl} to generate +thumbnails and makes setuid the programs which enlightenment needs to function +as expected."))) ;;; @@ -934,6 +1000,8 @@ with the administrator's password." x11-socket-directory-service + (service alsa-service-type) + %base-services)) ;;; desktop.scm ends here diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index 673ab1a98d..2c57a36b84 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -27,6 +27,7 @@ #:use-module (guix records) #:use-module (guix gexp) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (ice-9 match) @@ -41,7 +42,10 @@ knot-configuration define-zone-entries zone-file - zone-entry)) + zone-entry + + dnsmasq-service-type + dnsmasq-configuration)) ;;; ;;; Knot DNS. @@ -591,3 +595,78 @@ knot-activation) (service-extension account-service-type (const %knot-accounts)))))) + + +;;; +;;; Dnsmasq. +;;; + +(define-record-type* + dnsmasq-configuration make-dnsmasq-configuration + dnsmasq-configuration? + (package dnsmasq-configuration-package + (default dnsmasq)) ;package + (no-hosts? dnsmasq-configuration-no-hosts? + (default #f)) ;boolean + (port dnsmasq-configuration-port + (default 53)) ;integer + (local-service? dnsmasq-configuration-local-service? + (default #t)) ;boolean + (listen-addresses dnsmasq-configuration-listen-address + (default '())) ;list of string + (resolv-file dnsmasq-configuration-resolv-file + (default "/etc/resolv.conf")) ;string + (no-resolv? dnsmasq-configuration-no-resolv? + (default #f)) ;boolean + (servers dnsmasq-configuration-servers + (default '())) ;list of string + (cache-size dnsmasq-configuration-cache-size + (default 150)) ;integer + (negative-cache? dnsmasq-configuration-negative-cache? + (default #t))) ;boolean + +(define dnsmasq-shepherd-service + (match-lambda + (($ package + no-hosts? + port local-service? listen-addresses + resolv-file no-resolv? servers + cache-size negative-cache?) + (shepherd-service + (provision '(dnsmasq)) + (requirement '(networking)) + (documentation "Run the dnsmasq DNS server.") + (start #~(make-forkexec-constructor + '(#$(file-append package "/sbin/dnsmasq") + "--keep-in-foreground" + "--pid-file=/run/dnsmasq.pid" + #$@(if no-hosts? + '("--no-hosts") + '()) + #$(format #f "--port=~a" port) + #$@(if local-service? + '("--local-service") + '()) + #$@(map (cut format #f "--listen-address=~a" <>) + listen-addresses) + #$(format #f "--resolv-file=~a" resolv-file) + #$@(if no-resolv? + '("--no-resolv") + '()) + #$@(map (cut format #f "--server=~a" <>) + servers) + #$(format #f "--cache-size=~a" cache-size) + #$@(if negative-cache? + '() + '("--no-negcache"))) + #:pid-file "/run/dnsmasq.pid")) + (stop #~(make-kill-destructor)))))) + +(define dnsmasq-service-type + (service-type + (name 'dnsmasq) + (extensions + (list (service-extension shepherd-root-service-type + (compose list dnsmasq-shepherd-service)))) + (default-value (dnsmasq-configuration)) + (description "Run the dnsmasq DNS server."))) diff --git a/gnu/services/games.scm b/gnu/services/games.scm index b146696237..b9d78e078d 100644 --- a/gnu/services/games.scm +++ b/gnu/services/games.scm @@ -27,7 +27,7 @@ #:use-module (guix records) #:use-module (ice-9 match) #:export (wesnothd-configuration - wesnoth-configuration? + wesnothd-configuration? wesnothd-service-type)) ;;; diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index 80ffed0f2f..4b7e724a78 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2017, 2018 Clément Lassieur ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2015, 2017, 2018 Ludovic Courtès +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -691,7 +692,14 @@ See also @url{https://prosody.im/doc/modules/mod_muc}." (service-extension account-service-type (const %prosody-accounts)) (service-extension activation-service-type - prosody-activation))))) + prosody-activation))) + (default-value (prosody-configuration + (virtualhosts + (list + (virtualhost-configuration + (domain "localhost")))))) + (description + "Run Prosody, a modern XMPP communication server."))) ;; A little helper to make it easier to document all those fields. (define (generate-documentation) @@ -783,20 +791,24 @@ string, you could instantiate a prosody service like this: (default "127.0.0.1")) (port bitlbee-configuration-port (default 6667)) + (plugins bitlbee-plugins + (default '())) (extra-settings bitlbee-configuration-extra-settings (default ""))) (define bitlbee-shepherd-service (match-lambda - (($ bitlbee interface port extra-settings) - (let ((conf (plain-file "bitlbee.conf" - (string-append " + (($ bitlbee interface port + plugins extra-settings) + (let ((conf (mixed-text-file "bitlbee.conf" + " [settings] User = bitlbee ConfigDir = /var/lib/bitlbee DaemonInterface = " interface " DaemonPort = " (number->string port) " -" extra-settings)))) + PluginDir = " (directory-union "bitlbee-plugins" plugins) "/lib/bitlbee +" extra-settings))) (with-imported-modules (source-module-closure '((gnu build shepherd) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 0c9c69eef5..e4441f6475 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -464,6 +464,8 @@ make an initial adjustment of more than 1,000 seconds." openntpd-shepherd-service) (service-extension account-service-type (const %ntp-accounts)) + (service-extension profile-service-type + (compose list openntpd-configuration-openntpd)) (service-extension activation-service-type openntpd-service-activation))) (default-value (openntpd-configuration)) @@ -952,6 +954,8 @@ wireless networking.")))) (extensions (list (service-extension shepherd-root-service-type connman-shepherd-service) + (service-extension polkit-service-type + connman-package) (service-extension dbus-root-service-type connman-package) (service-extension activation-service-type @@ -959,6 +963,7 @@ wireless networking.")))) ;; Add connman to the system profile. (service-extension profile-service-type connman-package))) + (default-value (connman-configuration)) (description "Run @url{https://01.org/connman,Connman}, a network connection manager.")))) diff --git a/gnu/services/sound.scm b/gnu/services/sound.scm new file mode 100644 index 0000000000..5fe555e8b6 --- /dev/null +++ b/gnu/services/sound.scm @@ -0,0 +1,86 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Oleg Pykhalov +;;; +;;; 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 services sound) + #:use-module (gnu services base) + #:use-module (gnu services configuration) + #:use-module (gnu services shepherd) + #:use-module (gnu services) + #:use-module (gnu system shadow) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix records) + #:use-module (guix store) + #:use-module (gnu packages pulseaudio) + #:use-module (ice-9 match) + #:export (alsa-configuration + alsa-service-type)) + +;;; Commentary: +;;; +;;; Sound services. +;;; +;;; Code: + + +;;; +;;; ALSA +;;; + +(define-record-type* + alsa-configuration make-alsa-configuration alsa-configuration? + (pulseaudio? alsa-configuration-pulseaudio? ;boolean + (default #t)) + (extra-options alsa-configuration-extra-options ;string + (default ""))) + +(define (alsa-config-file config) + "Return the ALSA configuration file corresponding to CONFIG." + (plain-file "asound.conf" + (string-append "# Generated by 'alsa-service'.\n\n" + (if (alsa-configuration-pulseaudio? config) + "# Use PulseAudio by default +pcm.!default { + type pulse + fallback \"sysdefault\" + hint { + show on + description \"Default ALSA Output (currently PulseAudio Sound Server)\" + } +} + +ctl.!default { + type pulse + fallback \"sysdefault\" +} +" + "") + (alsa-configuration-extra-options config)))) + +(define (alsa-etc-service config) + (list `("asound.conf" ,(alsa-config-file config)))) + +(define alsa-service-type + (service-type + (name 'alsa) + (extensions + (list (service-extension etc-service-type alsa-etc-service))) + (default-value (alsa-configuration)) + (description "Configure low-level Linux sound support, ALSA."))) + +;;; sound.scm ends here diff --git a/gnu/services/web.scm b/gnu/services/web.scm index b336a8dd30..aae2f3db0d 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Christopher Baines ;;; Copyright © 2017 nee ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,11 +26,14 @@ (define-module (gnu services web) #:use-module (gnu services) #:use-module (gnu services shepherd) + #:use-module (gnu system pam) #:use-module (gnu system shadow) #:use-module (gnu packages admin) #:use-module (gnu packages web) #:use-module (gnu packages php) + #:use-module (gnu packages guile) #:use-module (guix records) + #:use-module (guix modules) #:use-module (guix gexp) #:use-module ((guix utils) #:select (version-major)) #:use-module ((guix packages) #:select (package-version)) @@ -155,7 +159,11 @@ php-fpm-service-type nginx-php-location - cat-avatar-generator-service)) + cat-avatar-generator-service + + hpcguix-web-configuration + hpcguix-web-configuration? + hpcguix-web-service-type)) ;;; Commentary: ;;; @@ -893,3 +901,65 @@ a webserver.") (nginx-server-configuration-locations configuration))) (root #~(string-append #$package "/share/web/cat-avatar-generator")))))) + + +(define-record-type* + hpcguix-web-configuration make-hpcguix-web-configuration + hpcguix-web-configuration? + + (package hpcguix-web-package (default hpcguix-web)) ; + + ;; Specs is gexp of hpcguix-web configuration file + (specs hpcguix-web-configuration-specs)) + +(define %hpcguix-web-accounts + (list (user-group + (name "hpcguix-web") + (system? #t)) + (user-account + (name "hpcguix-web") + (group "hpcguix-web") + (system? #t) + (comment "hpcguix-web") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define %hpcguix-web-activation + #~(begin + (use-modules (guix build utils)) + (let ((home-dir "/var/cache/guix/web") + (user (getpwnam "hpcguix-web"))) + (mkdir-p home-dir) + (chown home-dir (passwd:uid user) (passwd:gid user)) + (chmod home-dir #o755)))) + +(define (hpcguix-web-shepherd-service config) + (let ((specs (hpcguix-web-configuration-specs config)) + (hpcguix-web (hpcguix-web-package config))) + (with-imported-modules (source-module-closure + '((gnu build shepherd))) + (shepherd-service + (documentation "hpcguix-web daemon") + (provision '(hpcguix-web)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append hpcguix-web "/bin/run") + (string-append "--config=" + #$(scheme-file "hpcguix-web.scm" specs))) + #:user "hpcguix-web" + #:group "hpcguix-web" + #:environment-variables + (list "XDG_CACHE_HOME=/var/cache"))) + (stop #~(make-kill-destructor)))))) + +(define hpcguix-web-service-type + (service-type + (name 'hpcguix-web) + (description "Run the hpcguix-web server.") + (extensions + (list (service-extension account-service-type + (const %hpcguix-web-accounts)) + (service-extension activation-service-type + (const %hpcguix-web-activation)) + (service-extension shepherd-root-service-type + (compose list hpcguix-web-shepherd-service)))))) diff --git a/gnu/system.scm b/gnu/system.scm index 1cf00aafcd..e6118d3415 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -131,13 +131,16 @@ "Prepend extra arguments to KERNEL-ARGUMENTS that allow SYSTEM.DRV to be booted from ROOT-DEVICE" (cons* (string-append "--root=" - (if (uuid? root-device) + (cond ((uuid? root-device) - ;; Note: Always use the DCE format because that's - ;; what (gnu build linux-boot) expects for the - ;; '--root' kernel command-line option. - (uuid->string (uuid-bytevector root-device) 'dce) - root-device)) + ;; Note: Always use the DCE format because that's + ;; what (gnu build linux-boot) expects for the + ;; '--root' kernel command-line option. + (uuid->string (uuid-bytevector root-device) + 'dce)) + ((file-system-label? root-device) + (file-system-label->string root-device)) + (else root-device))) #~(string-append "--system=" #$system.drv) #~(string-append "--load=" #$system.drv "/boot") kernel-arguments)) @@ -251,10 +254,16 @@ file system labels." (match-lambda (('uuid (? symbol? type) (? bytevector? bv)) (bytevector->uuid bv type)) + (('file-system-label (? string? label)) + (file-system-label label)) ((? bytevector? bv) ;old format (bytevector->uuid bv 'dce)) ((? string? device) - device))) + ;; It used to be that we would not distinguish between labels and + ;; device names. Try to infer the right thing here. + (if (string-prefix? "/dev/" device) + device + (file-system-label device))))) (match (read port) (('boot-parameters ('version 0) @@ -308,8 +317,8 @@ file system labels." (_ ;the old format "/"))))) (x ;unsupported format - (warning (G_ "unrecognized boot parameters for '~a'~%") - system) + (warning (G_ "unrecognized boot parameters at '~a'~%") + (port-filename port)) #f))) (define (read-boot-parameters-file system) @@ -377,7 +386,7 @@ marked as 'needed-for-boot'." (let ((target (string-append "/dev/mapper/" (mapped-device-target device)))) (find (lambda (fs) (or (member device (file-system-dependencies fs)) - (and (eq? 'device (file-system-title fs)) + (and (string? (file-system-device fs)) (string=? (file-system-device fs) target)))) file-systems))) @@ -515,8 +524,7 @@ explicitly appear in OS." ;; required for basic administrator tasks. (cons* procps psmisc which less zile nano pciutils usbutils - ;; temporary package to fix CVE-2018-7738 without a graft - util-linux-2.31.1 + util-linux inetutils isc-dhcp (@ (gnu packages admin) shadow) ;for 'passwd' @@ -594,7 +602,7 @@ directory." # because they would require combining both profiles. # FIXME: See . export MANPATH=$HOME/.guix-profile/share/man:/run/current-system/profile/share/man -export INFOPATH=$HOME/.guix-profile/share/info:/run/current-system/profile/share/info +export INFOPATH=$HOME/.config/guix/current/share/info:$HOME/.guix-profile/share/info:/run/current-system/profile/share/info export XDG_DATA_DIRS=$HOME/.guix-profile/share:/run/current-system/profile/share export XDG_CONFIG_DIRS=$HOME/.guix-profile/etc/xdg:/run/current-system/profile/etc/xdg @@ -622,16 +630,19 @@ then export `cat /etc/environment | cut -d= -f1` fi -if [ -f \"$HOME/.guix-profile/etc/profile\" ] -then - # Load the user profile's settings. - GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\ - . \"$HOME/.guix-profile/etc/profile\" -else - # At least define this one so that basic things just work - # when the user installs their first package. - export PATH=\"$HOME/.guix-profile/bin:$PATH\" -fi +for profile in \"$HOME/.config/guix/current\" \"$HOME/.guix-profile\" +do + if [ -f \"$profile/etc/profile\" ] + then + # Load the user profile's settings. + GUIX_PROFILE=\"$profile\" ; \\ + . \"$profile/etc/profile\" + else + # At least define this one so that basic things just work + # when the user installs their first package. + export PATH=\"$profile/bin:$PATH\" + fi +done # Set the umask, notably for users logging in via 'lsh'. # See . @@ -842,9 +853,8 @@ hardware-related operations as necessary when booting a Linux container." (define (operating-system-root-file-system os) "Return the root file system of OS." - (find (match-lambda - (($ device title "/") #t) - (x #f)) + (find (lambda (fs) + (string=? "/" (file-system-mount-point fs))) (operating-system-file-systems os))) (define (operating-system-initrd-file os) @@ -935,13 +945,6 @@ listed in OS. The C library expects to find it under (bootloader-configuration-bootloader bootloader-conf)) bootloader-conf (list entry) #:old-entries old-entries))) -(define (fs->boot-device fs) - "Given FS, a object, return a value suitable for use as the -device in a ." - (case (file-system-title fs) - ((uuid label device) (file-system-device fs)) - (else #f))) - (define (operating-system-boot-parameters os system.drv root-device) "Return a monadic record that describes the boot parameters of OS. SYSTEM.DRV is either a derivation or #f. If it's a derivation, adds @@ -963,7 +966,7 @@ kernel arguments for that derivation to ." (operating-system-user-kernel-arguments os))) (initrd initrd) (bootloader-name bootloader-name) - (store-device (ensure-not-/dev (fs->boot-device store))) + (store-device (ensure-not-/dev (file-system-device store))) (store-mount-point (file-system-mount-point store)))))) (define (device->sexp device) @@ -971,6 +974,8 @@ kernel arguments for that derivation to ." (match device ((? uuid? uuid) `(uuid ,(uuid-type uuid) ,(uuid-bytevector uuid))) + ((? file-system-label? label) + `(file-system-label ,(file-system-label->string label))) (_ device))) diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl index 7e0c8fbee0..cb6d2623db 100644 --- a/gnu/system/examples/bare-bones.tmpl +++ b/gnu/system/examples/bare-bones.tmpl @@ -16,8 +16,7 @@ (bootloader grub-bootloader) (target "/dev/sdX"))) (file-systems (cons (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) diff --git a/gnu/system/examples/beaglebone-black.tmpl b/gnu/system/examples/beaglebone-black.tmpl index 97201330c7..d1130c76b6 100644 --- a/gnu/system/examples/beaglebone-black.tmpl +++ b/gnu/system/examples/beaglebone-black.tmpl @@ -20,8 +20,7 @@ (initrd-modules (cons "omap_hsmmc" %base-initrd-modules)) (file-systems (cons (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl index 65a8ee1809..360ee62ffe 100644 --- a/gnu/system/examples/lightweight-desktop.tmpl +++ b/gnu/system/examples/lightweight-desktop.tmpl @@ -20,13 +20,11 @@ ;; Assume the target root file system is labelled "my-root", ;; and the EFI System Partition has UUID 1234-ABCD. (file-systems (cons* (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) (file-system (device (uuid "1234-ABCD" 'fat)) - (title 'uuid) (mount-point "/boot/efi") (type "vfat")) %base-file-systems)) diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl index ce3653c8b4..36e272722d 100644 --- a/gnu/system/examples/vm-image.tmpl +++ b/gnu/system/examples/vm-image.tmpl @@ -31,8 +31,7 @@ partprobe, and then 2) resizing the filesystem with resize2fs.\n")) (target "/dev/sda") (terminal-outputs '(console)))) (file-systems (cons (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index d2acd705de..2b5948256a 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -20,16 +20,17 @@ #:use-module (ice-9 match) #:use-module (rnrs bytevectors) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-9 gnu) #:use-module (guix records) #:use-module (gnu system uuid) #:re-export (uuid ;backward compatibility string->uuid uuid->string) - #:export ( - file-system + #:export (file-system file-system? file-system-device - file-system-title + file-system-title ;deprecated file-system-mount-point file-system-type file-system-needed-for-boot? @@ -43,6 +44,10 @@ file-system-type-predicate + file-system-label + file-system-label? + file-system-label->string + file-system->spec spec->file-system specification->file-system-mapping @@ -83,12 +88,10 @@ ;;; Code: ;; File system declaration. -(define-record-type* file-system +(define-record-type* %file-system make-file-system file-system? - (device file-system-device) ; string - (title file-system-title ; 'device | 'label | 'uuid - (default 'device)) + (device file-system-device) ; string | | (mount-point file-system-mount-point) ; string (type file-system-type) ; string (flags file-system-flags ; list of symbols @@ -109,6 +112,83 @@ (default (current-source-location)) (innate))) +;; A file system label for use in the 'device' field. +(define-record-type + (file-system-label label) + file-system-label? + (label file-system-label->string)) + +(set-record-type-printer! + (lambda (obj port) + (format port "#" + (file-system-label->string obj)))) + +(define-syntax report-deprecation + (lambda (s) + "Report the use of the now-deprecated 'title' field." + (syntax-case s () + ((_ field) + (let* ((source (syntax-source #'field)) + (file (and source (assq-ref source 'filename))) + (line (and source + (and=> (assq-ref source 'line) 1+))) + (column (and source (assq-ref source 'column)))) + (format (current-error-port) + "~a:~a:~a: warning: 'title' field is deprecated~%" + file line column) + #t))))) + +;; Helper for 'process-file-system-declaration'. +(define-syntax device-expression + (syntax-rules (quote label uuid device) + ((_ (quote label) dev) + (file-system-label dev)) + ((_ (quote uuid) dev) + (if (uuid? dev) dev (uuid dev))) + ((_ (quote device) dev) + dev) + ((_ title dev) + (case title + ((label) (file-system-label dev)) + ((uuid) (uuid dev)) + (else dev))))) + +;; Helper to interpret the now-deprecated 'title' field. Detect forms like +;; (title 'label), remove them, and adjust the 'device' field accordingly. +;; TODO: Remove this once 'title' has been deprecated long enough. +(define-syntax process-file-system-declaration + (syntax-rules (device title) + ((_ () (rest ...) #f #f) ;no 'title' and no 'device' field + (%file-system rest ...)) + ((_ () (rest ...) dev #f) ;no 'title' field + (%file-system rest ... (device dev))) + ((_ () (rest ...) dev titl) ;got a 'title' field + (%file-system rest ... + (device (device-expression titl dev)))) + ((_ ((title titl) rest ...) (previous ...) dev _) + (begin + (report-deprecation (title titl)) + (process-file-system-declaration (rest ...) + (previous ...) + dev titl))) + ((_ ((device dev) rest ...) (previous ...) _ titl) + (process-file-system-declaration (rest ...) + (previous ...) + dev titl)) + ((_ (field rest ...) (previous ...) dev titl) + (process-file-system-declaration (rest ...) + (previous ... field) + dev titl)))) + +(define-syntax-rule (file-system fields ...) + (process-file-system-declaration (fields ...) () #f #f)) + +(define (file-system-title fs) ;deprecated + (match (file-system-device fs) + ((? file-system-label?) 'label) + ((? uuid?) 'uuid) + ((? string?) 'device))) + ;; Note: This module is used both on the build side and on the host side. ;; Arrange not to pull (guix store) and (guix config) because the latter ;; differs from user to user. @@ -161,23 +241,26 @@ store--e.g., if FS is the root file system." "Return a list corresponding to file-system FS that can be passed to the initrd code." (match fs - (($ device title mount-point type flags options _ _ check?) - (list (if (uuid? device) - `(uuid ,(uuid-type device) ,(uuid-bytevector device)) - device) - title mount-point type flags options check?)))) + (($ device mount-point type flags options _ _ check?) + (list (cond ((uuid? device) + `(uuid ,(uuid-type device) ,(uuid-bytevector device))) + ((file-system-label? device) + `(file-system-label ,(file-system-label->string device))) + (else device)) + mount-point type flags options check?)))) (define (spec->file-system sexp) "Deserialize SEXP, a list, to the corresponding object." (match sexp - ((device title mount-point type flags options check?) + ((device mount-point type flags options check?) (file-system (device (match device (('uuid (? symbol? type) (? bytevector? bv)) (bytevector->uuid bv type)) + (('file-system-label (? string? label)) + (file-system-label label)) (_ device))) - (title title) (mount-point mount-point) (type type) (flags flags) (options options) (check? check?))))) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 920d215272..35f4ba9c24 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -49,7 +49,12 @@ a20-olinuxino-micro-installation-os banana-pi-m2-ultra-installation-os beaglebone-black-installation-os - nintendo-nes-classic-edition-installation-os)) + mx6cuboxi-installation-os + nintendo-nes-classic-edition-installation-os + novena-installation-os + pine64-plus-installation-os + rk3399-puma-installation-os + wandboard-installation-os)) ;;; Commentary: ;;; @@ -324,8 +329,7 @@ You have been warned. Thanks for being so brave.\x1b[0m ;; the appropriate one. (cons* (file-system (mount-point "/") - (device "GuixSD_image") - (title 'label) + (device (file-system-label "GuixSD_image")) (type "ext4")) ;; Make /tmp a tmpfs instead of keeping the overlayfs. This @@ -337,7 +341,6 @@ You have been warned. Thanks for being so brave.\x1b[0m (file-system (mount-point "/tmp") (device "none") - (title 'device) (type "tmpfs") (check? #f)) @@ -429,11 +432,36 @@ The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET." "/dev/mmcblk1" ; eMMC storage "ttyS0")) +(define mx6cuboxi-installation-os + (embedded-installation-os u-boot-mx6cuboxi-bootloader + "/dev/mmcblk0" ; SD card storage + "ttymxc0")) + +(define novena-installation-os + (embedded-installation-os u-boot-novena-bootloader + "/dev/mmcblk1" ; SD card storage + "ttymxc1")) + (define nintendo-nes-classic-edition-installation-os (embedded-installation-os u-boot-nintendo-nes-classic-edition-bootloader "/dev/mmcblk0" ; SD card (solder it yourself) "ttyS0")) +(define pine64-plus-installation-os + (embedded-installation-os u-boot-pine64-plus-bootloader + "/dev/mmcblk0" ; SD card storage + "ttyS0")) + +(define rk3399-puma-installation-os + (embedded-installation-os u-boot-puma-rk3399-bootloader + "/dev/mmcblk0" ; SD card storage + "ttyS0")) + +(define wandboard-installation-os + (embedded-installation-os u-boot-wandboard-bootloader + "/dev/mmcblk0" ; SD card storage + "ttymxc0")) + ;; Return the default os here so 'guix system' can consume it directly. installation-os diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index e0cb59c009..d73ebfd8d3 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -283,7 +283,7 @@ FILE-SYSTEMS." (define virtio-modules ;; Modules for Linux para-virtualized devices, for use in QEMU guests. '("virtio_pci" "virtio_balloon" "virtio_blk" "virtio_net" - "virtio_console")) + "virtio_console" "virtio-rng")) `("ahci" ;for SATA controllers "usb-storage" "uas" ;for the installation image etc. diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index ef5b8dab92..28d399f2b1 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -168,6 +168,9 @@ then return fi +# Source the system-wide file. +source /etc/bashrc + # Adjust the prompt depending on whether we're in 'guix environment'. if [ -n \"$GUIX_ENVIRONMENT\" ] then diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm index 73695ddeb8..f13960c3e9 100644 --- a/gnu/system/uuid.scm +++ b/gnu/system/uuid.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017 Ludovic Courtès +;;; Copyright © 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2017 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. @@ -251,7 +251,8 @@ corresponding bytevector; otherwise return #f." (define-syntax uuid (lambda (s) - "Return the UUID object corresponding to the given UUID representation." + "Return the UUID object corresponding to the given UUID representation or +#f if the string could not be parsed." (syntax-case s (quote) ((_ str (quote type)) (and (string? (syntax->datum #'str)) @@ -266,9 +267,11 @@ corresponding bytevector; otherwise return #f." (string? (syntax->datum #'str)) #'(uuid str 'dce)) ((_ str) - #'(make-uuid 'dce (string->uuid str 'dce))) + #'(let ((bv (string->uuid str 'dce))) + (and bv (make-uuid 'dce bv)))) ((_ str type) - #'(make-uuid type (string->uuid str type)))))) + #'(let ((bv (string->uuid str type))) + (and bv (make-uuid type bv))))))) (define uuid->string ;; Convert the given bytevector or UUID object, to the corresponding UUID diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 09a11af863..544c0e294d 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -23,7 +23,6 @@ (define-module (gnu system vm) #:use-module (guix config) - #:use-module (guix docker) #:use-module (guix store) #:use-module (guix gexp) #:use-module (guix derivations) @@ -126,6 +125,8 @@ (env-vars '()) (guile-for-build (%guile-for-build)) + (file-systems + %linux-vm-file-systems) (single-file-output? #f) (make-disk-image? #f) @@ -135,8 +136,9 @@ (disk-image-size 'guess)) "Evaluate EXP in a QEMU virtual machine running LINUX with INITRD (a derivation). The virtual machine runs with MEMORY-SIZE MiB of memory. In the -virtual machine, EXP has access to all its inputs from the store; it should -put its output file(s) in the '/xchg' directory. +virtual machine, EXP has access to FILE-SYSTEMS, which, by default, includes a +9p share of the store, the '/xchg' where EXP should put its output file(s), +and a 9p share of /tmp. If SINGLE-FILE-OUTPUT? is true, copy a single file from '/xchg' to OUTPUT. Otherwise, copy the contents of /xchg to a new directory OUTPUT. @@ -156,7 +158,7 @@ made available under the /xchg CIFS share." (coreutils -> (canonical-package coreutils)) (initrd (if initrd ; use the default initrd? (return initrd) - (base-initrd %linux-vm-file-systems + (base-initrd file-systems #:on-error 'backtrace #:linux linux #:linux-modules %base-initrd-modules @@ -258,6 +260,14 @@ INPUTS is a list of inputs (as for packages)." uuid-bytevector)) (reboot)))) #:system system + + ;; Keep a local file system for /tmp so that we can populate it directly as + ;; root and have files owned by root. See . + #:file-systems (remove (lambda (file-system) + (string=? (file-system-mount-point file-system) + "/tmp")) + %linux-vm-file-systems) + #:make-disk-image? #f #:single-file-output? #t #:references-graphs inputs)) @@ -411,58 +421,57 @@ should set REGISTER-CLOSURES? to #f." (eval-when (expand load eval) (define %libgcrypt #+(file-append libgcrypt "/lib/libgcrypt")))))) + (mlet %store-monad ((os-drv (operating-system-derivation os #:container? #t)) (name -> (string-append name ".tar.gz")) (graph -> "system-graph")) (define build - (with-imported-modules `(,@(source-module-closure '((guix docker) - (guix build utils) - (gnu build vm)) - #:select? not-config?) - (guix build store-copy) - ((guix config) => ,config)) - #~(begin - ;; Guile-JSON is required by (guix docker). - (add-to-load-path - (string-append #+guile-json "/share/guile/site/" - (effective-version))) - (use-modules (guix docker) - (guix build utils) - (gnu build vm) - (srfi srfi-19) - (guix build store-copy)) + (with-extensions (list guile-json) ;for (guix docker) + (with-imported-modules `(,@(source-module-closure + '((guix docker) + (guix build utils) + (gnu build vm)) + #:select? not-config?) + (guix build store-copy) + ((guix config) => ,config)) + #~(begin + (use-modules (guix docker) + (guix build utils) + (gnu build vm) + (srfi srfi-19) + (guix build store-copy)) - (let* ((inputs '#$(append (list tar) - (if register-closures? - (list guix) - '()))) - ;; This initializer requires elevated privileges that are - ;; not normally available in the build environment (e.g., - ;; it needs to create device nodes). In order to obtain - ;; such privileges, we run it as root in a VM. - (initialize (root-partition-initializer - #:closures '(#$graph) - #:register-closures? #$register-closures? - #:system-directory #$os-drv - ;; De-duplication would fail due to - ;; cross-device link errors, so don't do it. - #:deduplicate? #f)) - ;; Even as root in a VM, the initializer would fail due to - ;; lack of privileges if we use a root-directory that is on - ;; a file system that is shared with the host (e.g., /tmp). - (root-directory "/guixsd-system-root")) - (set-path-environment-variable "PATH" '("bin" "sbin") inputs) - (mkdir root-directory) - (initialize root-directory) - (build-docker-image - (string-append "/xchg/" #$name) ;; The output file. - (cons* root-directory - (call-with-input-file (string-append "/xchg/" #$graph) - read-reference-graph)) - #$os-drv - #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") - #:creation-time (make-time time-utc 0 1) - #:transformations `((,root-directory -> ""))))))) + (let* ((inputs '#$(append (list tar) + (if register-closures? + (list guix) + '()))) + ;; This initializer requires elevated privileges that are + ;; not normally available in the build environment (e.g., + ;; it needs to create device nodes). In order to obtain + ;; such privileges, we run it as root in a VM. + (initialize (root-partition-initializer + #:closures '(#$graph) + #:register-closures? #$register-closures? + #:system-directory #$os-drv + ;; De-duplication would fail due to + ;; cross-device link errors, so don't do it. + #:deduplicate? #f)) + ;; Even as root in a VM, the initializer would fail due to + ;; lack of privileges if we use a root-directory that is on + ;; a file system that is shared with the host (e.g., /tmp). + (root-directory "/guixsd-system-root")) + (set-path-environment-variable "PATH" '("bin" "sbin") inputs) + (mkdir root-directory) + (initialize root-directory) + (build-docker-image + (string-append "/xchg/" #$name) ;; The output file. + (cons* root-directory + (call-with-input-file (string-append "/xchg/" #$graph) + read-reference-graph)) + #$os-drv + #:compressor '(#+(file-append gzip "/bin/gzip") "-9n") + #:creation-time (make-time time-utc 0 1) + #:transformations `((,root-directory -> "")))))))) (expression->derivation-in-linux-vm name ;; The VM's initrd Guile doesn't support dlopen, but our "build" gexp @@ -571,7 +580,6 @@ to USB sticks meant to be read-only." (file-systems (cons (file-system (mount-point "/") (device root-uuid) - (title 'uuid) (type file-system-type)) file-systems-to-keep))))) @@ -636,7 +644,6 @@ of the GNU system as described by OS." (file-systems (cons (file-system (mount-point "/") (device root-uuid) - (title 'uuid) (type file-system-type)) file-systems-to-keep))))) (mlet* %store-monad @@ -693,13 +700,12 @@ environment with the store shared with the host. MAPPINGS is a list of (source (file-system-device fs))) (or (string=? target (%store-prefix)) (string=? target "/") - (and (eq? 'device (file-system-title fs)) + (and (string? source) (string-prefix? "/dev/" source)) ;; Labels and UUIDs are necessarily invalid in the VM. (and (file-system-mount? fs) - (or (eq? 'label (file-system-title fs)) - (eq? 'uuid (file-system-title fs)) + (or (file-system-label? source) (uuid? source)))))) (operating-system-file-systems os))) @@ -752,6 +758,10 @@ with the host. When FULL-BOOT? is true, return an image that does a complete boot sequence, bootloaded included; thus, make a disk image that contains everything the bootloader refers to: OS kernel, initrd, bootloader data, etc." + (define root-uuid + ;; Use a fixed UUID to improve determinism. + (operating-system-uuid os 'dce)) + (mlet* %store-monad ((os-drv (operating-system-derivation os)) (bootcfg (operating-system-bootcfg os))) ;; XXX: When FULL-BOOT? is true, we end up creating an image that contains @@ -763,6 +773,7 @@ bootloader refers to: OS kernel, initrd, bootloader data, etc." #:bootloader (bootloader-configuration-bootloader (operating-system-bootloader os)) #:disk-image-size disk-image-size + #:file-system-uuid root-uuid #:inputs (if full-boot? `(("bootcfg" ,bootcfg)) '()) diff --git a/gnu/tests.scm b/gnu/tests.scm index 2aef370af5..5d4a4f8062 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -208,8 +208,7 @@ the system under test." (bootloader grub-bootloader) (target "/dev/sdX"))) (file-systems (cons (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) diff --git a/gnu/tests/dict.scm b/gnu/tests/dict.scm index b9c741e3e0..4431e37dc1 100644 --- a/gnu/tests/dict.scm +++ b/gnu/tests/dict.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,22 +96,7 @@ ;; Wait until dicod is actually listening. ;; TODO: Use a PID file instead. (test-assert "connect inside" - (marionette-eval - '(begin - (use-modules (ice-9 rdelim)) - (let ((sock (socket PF_INET SOCK_STREAM 0))) - (let loop ((i 0)) - (pk 'try i) - (catch 'system-error - (lambda () - (connect sock AF_INET INADDR_LOOPBACK 2628)) - (lambda args - (pk 'connection-error args) - (when (< i 20) - (sleep 1) - (loop (+ 1 i)))))) - (read-line sock 'concat))) - marionette)) + (wait-for-tcp-port 2628 marionette)) (test-assert "connect" (let ((addr (make-socket-address AF_INET INADDR_LOOPBACK 8000))) diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index e3bb1b46af..4764ffffde 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -66,8 +66,7 @@ (target "/dev/vdb"))) (kernel-arguments '("console=ttyS0")) (file-systems (cons (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) @@ -105,8 +104,7 @@ (target "/dev/vdb"))) (kernel-arguments '("console=ttyS0")) (file-systems (cons (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) @@ -351,8 +349,7 @@ per %test-installed-os, this test is expensive in terms of CPU and storage.") (target "/dev/vda"))) (kernel-arguments '("console=ttyS0")) (file-systems (cons (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) @@ -428,13 +425,11 @@ reboot\n") (target "/dev/vdb"))) (kernel-arguments '("console=ttyS0")) (file-systems (cons* (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) (file-system (device "none") - (title 'device) (type "tmpfs") (mount-point "/home") (type "tmpfs")) @@ -488,13 +483,11 @@ partition. In particular, home directories must be correctly created (see (target "/dev/vdb"))) (kernel-arguments '("console=ttyS0")) (file-systems (cons* (file-system - (device "root-fs") - (title 'label) + (device (file-system-label "root-fs")) (mount-point "/") (type "ext4")) (file-system - (device "store-fs") - (title 'label) + (device (file-system-label "store-fs")) (mount-point "/gnu") (type "ext4")) %base-file-systems)) @@ -574,8 +567,7 @@ where /gnu lives on a separate partition.") (target "/dev/md0") (type raid-device-mapping)))) (file-systems (cons (file-system - (device "root-fs") - (title 'label) + (device (file-system-label "root-fs")) (mount-point "/") (type "ext4") (dependencies mapped-devices)) @@ -658,7 +650,6 @@ by 'mdadm'.") (type luks-device-mapping)))) (file-systems (cons (file-system (device "/dev/mapper/the-root-device") - (title 'device) (mount-point "/") (type "ext4")) %base-file-systems)) @@ -779,8 +770,7 @@ build (current-guix) and then store a couple of full system images.") (target "/dev/vdb"))) (kernel-arguments '("console=ttyS0")) (file-systems (cons (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "btrfs")) %base-file-systems)) diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm index 6abc6c2501..9247a43e6d 100644 --- a/gnu/tests/ssh.scm +++ b/gnu/tests/ssh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017 Ludovic Courtès +;;; Copyright © 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017 Marius Bakke ;;; @@ -49,156 +49,150 @@ When SFTP? is true, run an SFTP server test." (define test (with-imported-modules '((gnu build marionette)) - #~(begin - (eval-when (expand load eval) - ;; Prepare to use Guile-SSH. - (set! %load-path - (cons (string-append #+guile-ssh "/share/guile/site/" - (effective-version)) - %load-path))) + (with-extensions (list guile-ssh) + #~(begin + (use-modules (gnu build marionette) + (srfi srfi-26) + (srfi srfi-64) + (ice-9 match) + (ssh session) + (ssh auth) + (ssh channel) + (ssh sftp)) - (use-modules (gnu build marionette) - (srfi srfi-26) - (srfi srfi-64) - (ice-9 match) - (ssh session) - (ssh auth) - (ssh channel) - (ssh sftp)) + (define marionette + ;; Enable TCP forwarding of the guest's port 22. + (make-marionette (list #$vm))) - (define marionette - ;; Enable TCP forwarding of the guest's port 22. - (make-marionette (list #$vm))) + (define (make-session-for-test) + "Make a session with predefined parameters for a test." + (make-session #:user "root" + #:port 2222 + #:host "localhost" + #:log-verbosity 'protocol)) - (define (make-session-for-test) - "Make a session with predefined parameters for a test." - (make-session #:user "root" - #:port 2222 - #:host "localhost" - #:log-verbosity 'protocol)) - - (define (call-with-connected-session proc) - "Call the one-argument procedure PROC with a freshly created and + (define (call-with-connected-session proc) + "Call the one-argument procedure PROC with a freshly created and connected SSH session object, return the result of the procedure call. The session is disconnected when the PROC is finished." - (let ((session (make-session-for-test))) - (dynamic-wind - (lambda () - (let ((result (connect! session))) - (unless (equal? result 'ok) - (error "Could not connect to a server" - session result)))) - (lambda () (proc session)) - (lambda () (disconnect! session))))) + (let ((session (make-session-for-test))) + (dynamic-wind + (lambda () + (let ((result (connect! session))) + (unless (equal? result 'ok) + (error "Could not connect to a server" + session result)))) + (lambda () (proc session)) + (lambda () (disconnect! session))))) - (define (call-with-connected-session/auth proc) - "Make an authenticated session. We should be able to connect as + (define (call-with-connected-session/auth proc) + "Make an authenticated session. We should be able to connect as root with an empty password." - (call-with-connected-session - (lambda (session) - ;; Try the simple authentication methods. Dropbear requires - ;; 'none' when there are no passwords, whereas OpenSSH accepts - ;; 'password' with an empty password. - (let loop ((methods (list (cut userauth-password! <> "") - (cut userauth-none! <>)))) - (match methods - (() - (error "all the authentication methods failed")) - ((auth rest ...) - (match (pk 'auth (auth session)) - ('success - (proc session)) - ('denied - (loop rest))))))))) + (call-with-connected-session + (lambda (session) + ;; Try the simple authentication methods. Dropbear requires + ;; 'none' when there are no passwords, whereas OpenSSH accepts + ;; 'password' with an empty password. + (let loop ((methods (list (cut userauth-password! <> "") + (cut userauth-none! <>)))) + (match methods + (() + (error "all the authentication methods failed")) + ((auth rest ...) + (match (pk 'auth (auth session)) + ('success + (proc session)) + ('denied + (loop rest))))))))) - (mkdir #$output) - (chdir #$output) + (mkdir #$output) + (chdir #$output) - (test-begin "ssh-daemon") + (test-begin "ssh-daemon") - ;; Wait for sshd to be up and running. - (test-eq "service running" - 'running! - (marionette-eval - '(begin - (use-modules (gnu services herd)) - (start-service 'ssh-daemon) - 'running!) - marionette)) + ;; Wait for sshd to be up and running. + (test-eq "service running" + 'running! + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'ssh-daemon) + 'running!) + marionette)) - ;; Check sshd's PID file. - (test-equal "sshd PID" - (wait-for-file #$pid-file marionette) - (marionette-eval - '(begin - (use-modules (gnu services herd) - (srfi srfi-1)) + ;; Check sshd's PID file. + (test-equal "sshd PID" + (wait-for-file #$pid-file marionette) + (marionette-eval + '(begin + (use-modules (gnu services herd) + (srfi srfi-1)) - (live-service-running - (find (lambda (live) - (memq 'ssh-daemon - (live-service-provision live))) - (current-services)))) - marionette)) + (live-service-running + (find (lambda (live) + (memq 'ssh-daemon + (live-service-provision live))) + (current-services)))) + marionette)) - ;; Connect to the guest over SSH. Make sure we can run a shell - ;; command there. - (test-equal "shell command" - 'hello - (call-with-connected-session/auth - (lambda (session) - ;; FIXME: 'get-server-public-key' segfaults. - ;; (get-server-public-key session) - (let ((channel (make-channel session))) - (channel-open-session channel) - (channel-request-exec channel "echo hello > /root/witness") - (and (zero? (channel-get-exit-status channel)) - (wait-for-file "/root/witness" marionette)))))) + ;; Connect to the guest over SSH. Make sure we can run a shell + ;; command there. + (test-equal "shell command" + 'hello + (call-with-connected-session/auth + (lambda (session) + ;; FIXME: 'get-server-public-key' segfaults. + ;; (get-server-public-key session) + (let ((channel (make-channel session))) + (channel-open-session channel) + (channel-request-exec channel "echo hello > /root/witness") + (and (zero? (channel-get-exit-status channel)) + (wait-for-file "/root/witness" marionette)))))) - ;; Connect to the guest over SFTP. Make sure we can write and - ;; read a file there. - (unless #$sftp? - (test-skip 1)) - (test-equal "SFTP file writing and reading" - 'hello - (call-with-connected-session/auth - (lambda (session) - (let ((sftp-session (make-sftp-session session)) - (witness "/root/sftp-witness")) - (call-with-remote-output-file sftp-session witness - (cut display "hello" <>)) - (call-with-remote-input-file sftp-session witness - read))))) + ;; Connect to the guest over SFTP. Make sure we can write and + ;; read a file there. + (unless #$sftp? + (test-skip 1)) + (test-equal "SFTP file writing and reading" + 'hello + (call-with-connected-session/auth + (lambda (session) + (let ((sftp-session (make-sftp-session session)) + (witness "/root/sftp-witness")) + (call-with-remote-output-file sftp-session witness + (cut display "hello" <>)) + (call-with-remote-input-file sftp-session witness + read))))) - ;; Connect to the guest over SSH. Make sure we can run commands - ;; from the system profile. - (test-equal "run executables from system profile" - #t - (call-with-connected-session/auth - (lambda (session) - (let ((channel (make-channel session))) - (channel-open-session channel) - (channel-request-exec - channel - (string-append - "mkdir -p /root/.guix-profile/bin && " - "touch /root/.guix-profile/bin/path-witness && " - "chmod 755 /root/.guix-profile/bin/path-witness")) - (zero? (channel-get-exit-status channel)))))) + ;; Connect to the guest over SSH. Make sure we can run commands + ;; from the system profile. + (test-equal "run executables from system profile" + #t + (call-with-connected-session/auth + (lambda (session) + (let ((channel (make-channel session))) + (channel-open-session channel) + (channel-request-exec + channel + (string-append + "mkdir -p /root/.guix-profile/bin && " + "touch /root/.guix-profile/bin/path-witness && " + "chmod 755 /root/.guix-profile/bin/path-witness")) + (zero? (channel-get-exit-status channel)))))) - ;; Connect to the guest over SSH. Make sure we can run commands - ;; from the user profile. - (test-equal "run executable from user profile" - #t - (call-with-connected-session/auth - (lambda (session) - (let ((channel (make-channel session))) - (channel-open-session channel) - (channel-request-exec channel "path-witness") - (zero? (channel-get-exit-status channel)))))) + ;; Connect to the guest over SSH. Make sure we can run commands + ;; from the user profile. + (test-equal "run executable from user profile" + #t + (call-with-connected-session/auth + (lambda (session) + (let ((channel (make-channel session))) + (channel-open-session channel) + (channel-request-exec channel "path-witness") + (zero? (channel-get-exit-status channel)))))) - (test-end) - (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0)))))) (gexp->derivation name test)) diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm index 1912f8f79d..a6bf6efcfe 100644 --- a/gnu/tests/web.scm +++ b/gnu/tests/web.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2017 Ludovic Courtès ;;; Copyright © 2017 Christopher Baines ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,7 +32,8 @@ #:use-module (guix store) #:export (%test-httpd %test-nginx - %test-php-fpm)) + %test-php-fpm + %test-hpcguix-web)) (define %index.html-contents ;; Contents of the /index.html file. @@ -281,3 +283,81 @@ HTTP-PORT, along with php-fpm." (name "php-fpm") (description "Test PHP-FPM through nginx.") (value (run-php-fpm-test)))) + + +;;; +;;; hpcguix-web +;;; + +(define* (run-hpcguix-web-server-test name test-os) + "Run tests in %HPCGUIX-WEB-OS, which has hpcguix-web running." + (define os + (marionette-operating-system + test-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (port-forwardings '((8080 . 5000))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (gnu build marionette) + (web uri) + (web client) + (web response)) + + (define marionette + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin #$name) + + (test-assert "hpcguix-web running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (match (start-service 'hpcguix-web) + (#f #f) + (('service response-parts ...) + (match (assq-ref response-parts 'running) + ((pid) (number? pid)))))) + marionette)) + + (test-equal "http-get" + 200 + (begin + (wait-for-tcp-port 5000 marionette) + (let-values (((response text) + (http-get "http://localhost:8080"))) + (response-code response)))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation (string-append name "-test") test)) + +(define %hpcguix-web-specs + ;; Server config gexp. + #~(define site-config + (hpcweb-configuration + (title-prefix "[TEST] HPCGUIX-WEB")))) + +(define %hpcguix-web-os + (simple-operating-system + (dhcp-client-service) + (service hpcguix-web-service-type + (hpcguix-web-configuration + (specs %hpcguix-web-specs))))) + +(define %test-hpcguix-web + (system-test + (name "hpcguix-web") + (description "Connect to a running hpcguix-web server.") + (value (run-hpcguix-web-server-test name %hpcguix-web-os)))) diff --git a/guix/build-system/android-ndk.scm b/guix/build-system/android-ndk.scm new file mode 100644 index 0000000000..dbfa626a19 --- /dev/null +++ b/guix/build-system/android-ndk.scm @@ -0,0 +1,127 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Danny Milosavljevic +;;; +;;; 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 (guix build-system android-ndk) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix packages) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (ice-9 match) + #:use-module (srfi srfi-26) + #:export (android-ndk-build-system)) + +(define %android-ndk-build-system-modules + ;; Build-side modules imported by default. + `((guix build android-ndk-build-system) + (guix build syscalls) + ,@%gnu-build-system-modules)) + +(define* (android-ndk-build store name inputs + #:key + (tests? #t) + (test-target #f) + (phases '(@ (guix build android-ndk-build-system) + %standard-phases)) + (outputs '("out")) + (make-flags ''()) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules %android-ndk-build-system-modules) + (modules '((guix build android-ndk-build-system) + (guix build utils)))) + "Build SOURCE using Android NDK, and with INPUTS." + (define builder + `(begin + (use-modules ,@modules) + (android-ndk-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:test-target ,test-target + #:tests? ,tests? + #:phases ,phases + #:make-flags (cons* "-f" + ,(string-append + (derivation->output-path + (car (assoc-ref inputs "android-build"))) + "/share/android/build/core/main.mk") + ,make-flags) + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define* (lower name + #:key source inputs native-inputs outputs system target + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + + (define private-keywords + '(#:source #:target #:inputs #:native-inputs #:outputs)) + + (and (not target) ;; TODO: support cross-compilation + (bag + (name name) + (system system) + (target target) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system' + ,@(standard-packages))) + (build-inputs `(("android-build" ,(module-ref (resolve-interface '(gnu packages android)) 'android-make-stub)) + ("android-googletest" ,(module-ref (resolve-interface '(gnu packages android)) 'android-googletest)) + ,@native-inputs)) + (outputs outputs) + (build android-ndk-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define android-ndk-build-system + (build-system + (name 'android-ndk) + (description + "Android NDK build system, to build Android NDK packages") + (lower lower))) diff --git a/guix/build-system/r.scm b/guix/build-system/r.scm index 6bdb7061eb..d20f66e1a9 100644 --- a/guix/build-system/r.scm +++ b/guix/build-system/r.scm @@ -53,7 +53,7 @@ release corresponding to NAME and VERSION." (list (string-append "https://bioconductor.org/packages/release/bioc/src/contrib/" name "_" version ".tar.gz") ;; TODO: use %bioconductor-version from (guix import cran) - (string-append "https://bioconductor.org/packages/3.6/bioc/src/contrib/Archive/" + (string-append "https://bioconductor.org/packages/3.7/bioc/src/contrib/Archive/" name "_" version ".tar.gz"))) (define %r-build-system-modules diff --git a/guix/build/android-ndk-build-system.scm b/guix/build/android-ndk-build-system.scm new file mode 100644 index 0000000000..3c8f726d1d --- /dev/null +++ b/guix/build/android-ndk-build-system.scm @@ -0,0 +1,88 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Danny Milosavljevic +;;; +;;; 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 (guix build android-ndk-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build syscalls) + #:use-module (guix build utils) + #:use-module (ice-9 popen) + #:use-module (ice-9 rdelim) + #:use-module (ice-9 ftw) + #:use-module (ice-9 format) + #:use-module (ice-9 match) + #:use-module (rnrs io ports) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (%standard-phases + android-ndk-build)) + +;; Commentary: +;; +;; Builder-side code of the Android NDK build system. +;; +;; Code: + +(define* (configure #:key inputs outputs #:allow-other-keys) + (let ((library-directories (filter-map (match-lambda + ((name . path) + (if (eq? 'directory (stat:type (stat path))) + path + #f))) + inputs))) + (setenv "CC" "gcc") + (setenv "CXX" "g++") + (setenv "CPPFLAGS" + (string-join + (map (cut string-append "-I " <> "/include") library-directories) + " ")) + (setenv "LDFLAGS" + (string-append "-L . " + (string-join + (map (lambda (x) + (string-append "-L " x "/lib" " -Wl,-rpath=" x "/lib")) + library-directories) + " "))) + #t)) + +(define* (install #:key inputs outputs (make-flags '()) #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (apply invoke "make" "install" + (string-append "prefix=" out) + make-flags) + #t)) + +(define* (check #:key target inputs outputs (tests? (not target)) (make-flags '()) #:allow-other-keys) + (if tests? + (begin + (apply invoke "make" "check" make-flags) + (when (and (file-exists? "tests") tests?) + (with-directory-excursion "tests" + (apply invoke "make" "check" make-flags)))) + (format #t "test suite not run~%")) + #t) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (replace 'configure configure) + (replace 'install install) + (replace 'check check))) + +(define* (android-ndk-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Android NDK package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index 6ce813a001..d081a2b313 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -166,12 +166,26 @@ to the default GNU unpack strategy." "/share/java") source-dir test-dir main-class test-include test-exclude)) (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) - (setenv "CLASSPATH" (generate-classpath inputs))) + (setenv "CLASSPATH" (generate-classpath inputs)) + #t) (define* (build #:key (make-flags '()) (build-target "jar") #:allow-other-keys) (zero? (apply system* `("ant" ,build-target ,@make-flags)))) +(define* (generate-jar-indices #:key outputs #:allow-other-keys) + "Generate file \"META-INF/INDEX.LIST\". This file does not use word wraps +and is preferred over \"META-INF/MAINFEST.MF\", which does use word wraps, +by Java when resolving dependencies. So we make sure to create it so that +grafting works - and so that the garbage collector doesn't collect +dependencies of this jar file." + (define (generate-index jar) + (invoke "jar" "-i" jar)) + (every (match-lambda + ((output . directory) + (every generate-index (find-files directory "\\.jar$")))) + outputs)) + (define* (strip-jar-timestamps #:key outputs #:allow-other-keys) "Unpack all jar archives, reset the timestamp of all contained files, and @@ -228,11 +242,14 @@ repack them. This is necessary to ensure that archives are reproducible." (define %standard-phases (modify-phases gnu:%standard-phases (replace 'unpack unpack) + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (replace 'check check) (replace 'install install) - (add-after 'install 'strip-jar-timestamps strip-jar-timestamps))) + (add-after 'install 'generate-jar-indices generate-jar-indices) + (add-after 'generate-jar-indices 'strip-jar-timestamps + strip-jar-timestamps))) (define* (ant-build #:key inputs (phases %standard-phases) #:allow-other-keys #:rest args) diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm index c5e820a00a..dd6373b33a 100644 --- a/guix/build/asdf-build-system.scm +++ b/guix/build/asdf-build-system.scm @@ -220,6 +220,7 @@ valid." (define %standard-phases/source (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (delete 'check) (delete 'build) @@ -227,6 +228,7 @@ valid." (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (delete 'install) (replace 'build build) diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm index 139b40321f..f52444f61c 100644 --- a/guix/build/cargo-build-system.scm +++ b/guix/build/cargo-build-system.scm @@ -172,6 +172,7 @@ SRC-NAME as if it was part of the directory DIR-NAME with name (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (replace 'check check) diff --git a/guix/build/cmake-build-system.scm b/guix/build/cmake-build-system.scm index c82d9fef87..9b1112f2d6 100644 --- a/guix/build/cmake-build-system.scm +++ b/guix/build/cmake-build-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2018 Ludovic Courtès ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2014, 2015 Andreas Enge ;;; Copyright © 2017 Efraim Flashner @@ -73,7 +73,7 @@ '()) ,@configure-flags))) (format #t "running 'cmake' with arguments ~s~%" args) - (zero? (apply system* "cmake" args))))) + (apply invoke "cmake" args)))) (define* (check #:key (tests? #t) (parallel-tests? #t) (test-target "test") #:allow-other-keys) @@ -86,6 +86,7 @@ ;; Everything is as with the GNU Build System except for the `configure' ;; and 'check' phases. (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'check check) (replace 'configure configure))) diff --git a/guix/build/compile.scm b/guix/build/compile.scm index 1bd8c60fe5..7b6e31107c 100644 --- a/guix/build/compile.scm +++ b/guix/build/compile.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2016, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; ;;; This file is part of GNU Guix. @@ -120,6 +120,28 @@ front." (lambda () (set! path initial-value))))) +(define (call/exit-on-exception thunk) + "Evaluate THUNK and exit right away if an exception is thrown." + (catch #t + thunk + (const #f) + (lambda (key . args) + (false-if-exception + ;; Duplicate stderr to avoid thread-safety issues. + (let* ((port (duplicate-port (current-error-port) "w0")) + (stack (make-stack #t)) + (depth (stack-length stack)) + (frame (and (> depth 1) (stack-ref stack 1)))) + (false-if-exception (display-backtrace stack port)) + (print-exception port frame key args))) + + ;; Don't go any further. + (primitive-exit 1)))) + +(define-syntax-rule (exit-on-exception exp ...) + "Evaluate EXP and exit if an exception is thrown." + (call/exit-on-exception (lambda () exp ...))) + (define* (compile-files source-directory build-directory files #:key (host %host-type) @@ -139,15 +161,18 @@ files are for HOST, a GNU triplet such as \"x86_64-linux-gnu\"." (define (build file) (with-mutex progress-lock (report-compilation file total completed)) - (with-fluids ((*current-warning-prefix* "")) - (with-target host - (lambda () - (let ((relative (relative-file source-directory file))) - (compile-file file - #:output-file (string-append build-directory "/" - (scm->go relative)) - #:opts (append warning-options - (optimization-options relative))))))) + + ;; Exit as soon as something goes wrong. + (exit-on-exception + (with-fluids ((*current-warning-prefix* "")) + (with-target host + (lambda () + (let ((relative (relative-file source-directory file))) + (compile-file file + #:output-file (string-append build-directory "/" + (scm->go relative)) + #:opts (append warning-options + (optimization-options relative)))))))) (with-mutex progress-lock (set! completed (+ 1 completed)))) diff --git a/guix/build/cvs.scm b/guix/build/cvs.scm index 9976e624b3..7111043747 100644 --- a/guix/build/cvs.scm +++ b/guix/build/cvs.scm @@ -55,19 +55,20 @@ Return #t on success, #f otherwise." ;; Use "-z0" because enabling compression leads to hangs during checkout on ;; certain repositories, such as ;; ":pserver:anonymous@cvs.savannah.gnu.org:/sources/gnustandards". - (and (zero? (system* cvs-command "-z0" - "-d" cvs-root-directory - "checkout" - (if (string-match "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" revision) - "-D" "-r") - revision - module)) - ;; Copy rather than rename in case MODULE and DIRECTORY are on - ;; different devices. - (copy-recursively module directory) + (invoke cvs-command "-z0" + "-d" cvs-root-directory + "checkout" + (if (string-match "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" revision) + "-D" "-r") + revision + module) - (with-directory-excursion directory - (for-each delete-file-recursively (find-cvs-directories))) - #t)) + ;; Copy rather than rename in case MODULE and DIRECTORY are on + ;; different devices. + (copy-recursively module directory) + + (with-directory-excursion directory + (for-each delete-file-recursively (find-cvs-directories))) + #t) ;;; cvs.scm ends here diff --git a/guix/build/dub-build-system.scm b/guix/build/dub-build-system.scm index ed86635708..9a72e3d544 100644 --- a/guix/build/dub-build-system.scm +++ b/guix/build/dub-build-system.scm @@ -121,6 +121,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (replace 'check check) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index 094b04750a..47a9eda9e6 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -270,6 +270,7 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages." (modify-phases gnu:%standard-phases (replace 'unpack unpack) (add-after 'unpack 'set-emacs-load-path set-emacs-load-path) + (delete 'bootstrap) (delete 'configure) ;; Move the build phase after install: the .el files are byte compiled ;; directly in the store. diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm index 2bd4e39854..fdacd30dd6 100644 --- a/guix/build/emacs-utils.scm +++ b/guix/build/emacs-utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2014, 2018 Mark H Weaver ;;; Copyright © 2014 Alex Kost ;;; Copyright © 2018 Maxim Cournoyer ;;; @@ -60,7 +60,9 @@ (define* (emacs-byte-compile-directory dir) "Byte compile all files in DIR and its sub-directories." - (let ((expr `(byte-recompile-directory (file-name-as-directory ,dir) 0))) + (let ((expr `(progn + (setq byte-compile-debug t) ; for proper exit status + (byte-recompile-directory (file-name-as-directory ,dir) 0 1)))) (emacs-batch-eval expr))) (define-syntax emacs-substitute-sexps diff --git a/guix/build/font-build-system.scm b/guix/build/font-build-system.scm index f2a646f6f4..6726595fe1 100644 --- a/guix/build/font-build-system.scm +++ b/guix/build/font-build-system.scm @@ -59,6 +59,7 @@ archive, or a font file." (define %standard-phases (modify-phases gnu:%standard-phases (replace 'unpack unpack) + (delete 'bootstrap) (delete 'configure) (delete 'check) (delete 'build) diff --git a/guix/build/glib-or-gtk-build-system.scm b/guix/build/glib-or-gtk-build-system.scm index b6291e735b..ba680fd1a9 100644 --- a/guix/build/glib-or-gtk-build-system.scm +++ b/guix/build/glib-or-gtk-build-system.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Federico Beffa ;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -202,16 +203,16 @@ add a dependency of that output on GLib and GTK+." (define* (compile-glib-schemas #:key outputs #:allow-other-keys) "Implement phase \"glib-or-gtk-compile-schemas\": compile \"glib\" schemas if needed." - (every (match-lambda - ((output . directory) - (let ((schemasdir (string-append directory - "/share/glib-2.0/schemas"))) - (if (and (directory-exists? schemasdir) - (not (file-exists? - (string-append schemasdir "/gschemas.compiled")))) - (zero? (system* "glib-compile-schemas" schemasdir)) - #t)))) - outputs)) + (for-each (match-lambda + ((output . directory) + (let ((schemasdir (string-append directory + "/share/glib-2.0/schemas"))) + (when (and (directory-exists? schemasdir) + (not (file-exists? + (string-append schemasdir "/gschemas.compiled")))) + (invoke "glib-compile-schemas" schemasdir))))) + outputs) + #t) (define %standard-phases (modify-phases gnu:%standard-phases diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 7b43361f99..be5ad78b93 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,10 +27,13 @@ #:use-module (ice-9 format) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (srfi srfi-26) #:use-module (rnrs io ports) #:export (%standard-phases %license-file-regexp + dump-file-contents gnu-build)) ;; Commentary: @@ -83,6 +87,9 @@ See https://reproducible-builds.org/specs/source-date-epoch/." (#f ; not cross compiling '()))) + ;; Tell 'ld-wrapper' to disallow non-store libraries. + (setenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES" "no") + ;; When cross building, $PATH must refer only to native (host) inputs since ;; target inputs are not executable. (set-path-environment-variable "PATH" '("bin" "sbin") @@ -152,12 +159,50 @@ working directory." ;; Preserve timestamps (set to the Epoch) on the copied tree so that ;; things work deterministically. (copy-recursively source "." - #:keep-mtime? #t) - #t) - (and (if (string-suffix? ".zip" source) - (zero? (system* "unzip" source)) - (zero? (system* "tar" "xvf" source))) - (chdir (first-subdirectory "."))))) + #:keep-mtime? #t)) + (begin + (if (string-suffix? ".zip" source) + (invoke "unzip" source) + (invoke "tar" "xvf" source)) + (chdir (first-subdirectory ".")))) + #t) + +(define %bootstrap-scripts + ;; Typical names of Autotools "bootstrap" scripts. + '("bootstrap" "bootstrap.sh" "autogen.sh")) + +(define* (bootstrap #:key (bootstrap-scripts %bootstrap-scripts) + #:allow-other-keys) + "If the code uses Autotools and \"configure\" is missing, run +\"autoreconf\". Otherwise do nothing." + ;; Note: Run that right after 'unpack' so that the generated files are + ;; visible when the 'patch-source-shebangs' phase runs. + (if (not (file-exists? "configure")) + + ;; First try one of the BOOTSTRAP-SCRIPTS. If none exists, and it's + ;; clearly an Autoconf-based project, run 'autoreconf'. Otherwise, do + ;; nothing (perhaps the user removed or overrode the 'configure' phase.) + (let ((script (find file-exists? bootstrap-scripts))) + ;; GNU packages often invoke the 'git-version-gen' script from + ;; 'configure.ac' so make sure it has a valid shebang. + (false-if-file-not-found + (patch-shebang "build-aux/git-version-gen")) + + (if script + (let ((script (string-append "./" script))) + (format #t "running '~a'~%" script) + (if (executable-file? script) + (begin + (patch-shebang script) + (invoke script)) + (invoke "sh" script))) + (if (or (file-exists? "configure.ac") + (file-exists? "configure.in")) + (invoke "autoreconf" "-vif") + (format #t "no 'configure.ac' or anything like that, \ +doing nothing~%")))) + (format #t "GNU build system bootstrapping not needed~%")) + #t) ;; See . (define* (patch-usr-bin-file #:key native-inputs inputs @@ -184,7 +229,8 @@ $CONFIG_SHELL, but some don't, such as `mkinstalldirs' or Automake's (lambda (file stat) ;; Filter out symlinks. (eq? 'regular (stat:type stat))) - #:stat lstat))) + #:stat lstat)) + #t) (define (patch-generated-file-shebangs . rest) "Patch shebangs in generated files, including `SHELL' variables in @@ -199,7 +245,9 @@ makefiles." #:stat lstat)) ;; Patch `SHELL' in generated makefiles. - (for-each patch-makefile-SHELL (find-files "." "^(GNU)?[mM]akefile$"))) + (for-each patch-makefile-SHELL (find-files "." "^(GNU)?[mM]akefile$")) + + #t) (define* (configure #:key build target native-inputs inputs outputs (configure-flags '()) out-of-source? @@ -279,33 +327,61 @@ makefiles." ;; Call `configure' with a relative path. Otherwise, GCC's build system ;; (for instance) records absolute source file names, which typically ;; contain the hash part of the `.drv' file, leading to a reference leak. - (zero? (apply system* bash - (string-append srcdir "/configure") - flags)))) + (apply invoke bash + (string-append srcdir "/configure") + flags))) (define* (build #:key (make-flags '()) (parallel-build? #t) #:allow-other-keys) - (zero? (apply system* "make" - `(,@(if parallel-build? - `("-j" ,(number->string (parallel-job-count))) - '()) - ,@make-flags)))) + (apply invoke "make" + `(,@(if parallel-build? + `("-j" ,(number->string (parallel-job-count))) + '()) + ,@make-flags))) + +(define* (dump-file-contents directory file-regexp + #:optional (port (current-error-port))) + "Dump to PORT the contents of files in DIRECTORY that match FILE-REGEXP." + (define (dump file) + (let ((prefix (string-append "\n--- " file " "))) + (display (if (< (string-length prefix) 78) + (string-pad-right prefix 78 #\-) + prefix) + port) + (display "\n\n" port) + (call-with-input-file file + (lambda (log) + (dump-port log port))) + (display "\n" port))) + + (for-each dump (find-files directory file-regexp))) + +(define %test-suite-log-regexp + ;; Name of test suite log files as commonly found in GNU-based build systems + ;; and CMake. + "^(test-?suite\\.log|LastTestFailed\\.log)$") (define* (check #:key target (make-flags '()) (tests? (not target)) (test-target "check") (parallel-tests? #t) + (test-suite-log-regexp %test-suite-log-regexp) #:allow-other-keys) (if tests? - (zero? (apply system* "make" test-target - `(,@(if parallel-tests? - `("-j" ,(number->string (parallel-job-count))) - '()) - ,@make-flags))) - (begin - (format #t "test suite not run~%") - #t))) + (guard (c ((invoke-error? c) + ;; Dump the test suite log to facilitate debugging. + (display "\nTest suite failed, dumping logs.\n" + (current-error-port)) + (dump-file-contents "." test-suite-log-regexp) + (raise c))) + (apply invoke "make" test-target + `(,@(if parallel-tests? + `("-j" ,(number->string (parallel-job-count))) + '()) + ,@make-flags))) + (format #t "test suite not run~%")) + #t) (define* (install #:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" "install" make-flags))) + (apply invoke "make" "install" make-flags)) (define* (patch-shebangs #:key inputs outputs (patch-shebangs? #t) #:allow-other-keys) @@ -371,10 +447,8 @@ makefiles." (let ((debug (debug-file file))) (mkdir-p (dirname debug)) (copy-file file debug) - (and (zero? (system* strip-command "--only-keep-debug" debug)) - (begin - (chmod debug #o400) - #t)))) + (invoke strip-command "--only-keep-debug" debug) + (chmod debug #o400))) (define (add-debug-link file) ;; Add a debug link in FILE (info "(binutils) strip"). @@ -384,10 +458,10 @@ makefiles." ;; `bfd_fill_in_gnu_debuglink_section' function.) No reference to ;; DEBUG-OUTPUT is kept because bfd keeps only the basename of the debug ;; file. - (zero? (system* objcopy-command "--enable-deterministic-archives" - (string-append "--add-gnu-debuglink=" - (debug-file file)) - file))) + (invoke objcopy-command "--enable-deterministic-archives" + (string-append "--add-gnu-debuglink=" + (debug-file file)) + file)) (define (strip-dir dir) (format #t "stripping binaries in ~s with ~s and flags ~s~%" @@ -397,17 +471,29 @@ makefiles." debug-output objcopy-command)) (for-each (lambda (file) - (and (or (elf-file? file) (ar-file? file)) - (or (not debug-output) - (make-debug-file file)) + (when (or (elf-file? file) (ar-file? file)) + ;; If an error occurs while processing a file, issue a + ;; warning and continue to the next file. + (guard (c ((invoke-error? c) + (format (current-error-port) + "warning: ~a: program ~s exited\ +~@[ with non-zero exit status ~a~]\ +~@[ terminated by signal ~a~]~%" + file + (invoke-error-program c) + (invoke-error-exit-status c) + (invoke-error-term-signal c)))) + (when debug-output + (make-debug-file file)) - ;; Ensure the file is writable. - (begin (make-file-writable file) #t) + ;; Ensure the file is writable. + (make-file-writable file) - (zero? (apply system* strip-command - (append strip-flags (list file)))) - (or (not debug-output) - (add-debug-link file)))) + (apply invoke strip-command + (append strip-flags (list file))) + + (when debug-output + (add-debug-link file))))) (find-files dir (lambda (file stat) ;; Ignore symlinks such as: @@ -415,15 +501,17 @@ makefiles." (eq? 'regular (stat:type stat))) #:stat lstat))) - (or (not strip-binaries?) - (every strip-dir - (append-map (match-lambda - ((_ . dir) - (filter-map (lambda (d) - (let ((sub (string-append dir "/" d))) - (and (directory-exists? sub) sub))) - strip-directories))) - outputs)))) + (when strip-binaries? + (for-each + strip-dir + (append-map (match-lambda + ((_ . dir) + (filter-map (lambda (d) + (let ((sub (string-append dir "/" d))) + (and (directory-exists? sub) sub))) + strip-directories))) + outputs))) + #t) (define* (validate-runpath #:key (validate-runpath? #t) @@ -466,10 +554,11 @@ phase after stripping." (filter-map (sub-directory output) elf-directories))) outputs))) - (every* validate dirs)) - (begin - (format (current-error-port) "skipping RUNPATH validation~%") - #t))) + (unless (every* validate dirs) + (error "RUNPATH validation failed"))) + (format (current-error-port) "skipping RUNPATH validation~%")) + + #t) (define* (validate-documentation-location #:key outputs #:allow-other-keys) @@ -549,47 +638,45 @@ DOCUMENTATION-COMPRESSOR-FLAGS." (apply throw args)))))) (define (maybe-compress-directory directory regexp) - (or (not (directory-exists? directory)) - (match (find-files directory regexp) - (() ;nothing to compress - #t) - ((files ...) ;one or more files - (format #t - "compressing documentation in '~a' with ~s and flags ~s~%" - directory documentation-compressor - documentation-compressor-flags) - (call-with-values - (lambda () - (partition symbolic-link? files)) - (lambda (symlinks regular-files) - ;; Compress the non-symlink files, and adjust symlinks to refer - ;; to the compressed files. Leave files that have hard links - ;; unchanged ('gzip' would refuse to compress them anyway.) - ;; Also, do not retarget symbolic links pointing to other - ;; symbolic links, since these are not compressed. - (and (every retarget-symlink - (filter (lambda (symlink) - (and (not (points-to-symlink? symlink)) - (string-match regexp symlink))) - symlinks)) - (zero? - (apply system* documentation-compressor - (append documentation-compressor-flags - (remove has-links? regular-files))))))))))) + (when (directory-exists? directory) + (match (find-files directory regexp) + (() ;nothing to compress + #t) + ((files ...) ;one or more files + (format #t + "compressing documentation in '~a' with ~s and flags ~s~%" + directory documentation-compressor + documentation-compressor-flags) + (call-with-values + (lambda () + (partition symbolic-link? files)) + (lambda (symlinks regular-files) + ;; Compress the non-symlink files, and adjust symlinks to refer + ;; to the compressed files. Leave files that have hard links + ;; unchanged ('gzip' would refuse to compress them anyway.) + ;; Also, do not retarget symbolic links pointing to other + ;; symbolic links, since these are not compressed. + (for-each retarget-symlink + (filter (lambda (symlink) + (and (not (points-to-symlink? symlink)) + (string-match regexp symlink))) + symlinks)) + (apply invoke documentation-compressor + (append documentation-compressor-flags + (remove has-links? regular-files))))))))) (define (maybe-compress output) - (and (maybe-compress-directory (string-append output "/share/man") - "\\.[0-9]+$") - (maybe-compress-directory (string-append output "/share/info") - "\\.info(-[0-9]+)?$"))) + (maybe-compress-directory (string-append output "/share/man") + "\\.[0-9]+$") + (maybe-compress-directory (string-append output "/share/info") + "\\.info(-[0-9]+)?$")) (if compress-documentation? (match outputs (((names . directories) ...) - (every maybe-compress directories))) - (begin - (format #t "not compressing documentation~%") - #t))) + (for-each maybe-compress directories))) + (format #t "not compressing documentation~%")) + #t) (define* (delete-info-dir-file #:key outputs #:allow-other-keys) "Delete any 'share/info/dir' file from OUTPUTS." @@ -672,6 +759,7 @@ which cannot be found~%" (let-syntax ((phases (syntax-rules () ((_ p ...) `((p . ,p) ...))))) (phases set-SOURCE-DATE-EPOCH set-paths install-locale unpack + bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install @@ -704,17 +792,26 @@ in order. Return #t if all the PHASES succeeded, #f otherwise." ;; The trick is to #:allow-other-keys everywhere, so that each procedure in ;; PHASES can pick the keyword arguments it's interested in. - (every (match-lambda - ((name . proc) - (let ((start (current-time time-monotonic))) - (format #t "starting phase `~a'~%" name) - (let ((result (apply proc args)) - (end (current-time time-monotonic))) - (format #t "phase `~a' ~:[failed~;succeeded~] after ~,1f seconds~%" - name result - (elapsed-time end start)) + (for-each (match-lambda + ((name . proc) + (let ((start (current-time time-monotonic))) + (format #t "starting phase `~a'~%" name) + (let ((result (apply proc args)) + (end (current-time time-monotonic))) + (format #t "phase `~a' ~:[failed~;succeeded~] after ~,1f seconds~%" + name result + (elapsed-time end start)) - ;; Dump the environment variables as a shell script, for handy debugging. - (system "export > $NIX_BUILD_TOP/environment-variables") - result)))) - phases)) + ;; Issue a warning unless the result is #t. + (unless (eqv? result #t) + (format (current-error-port) "\ +## WARNING: phase `~a' returned `~s'. Return values other than #t +## are deprecated. Please migrate this package so that its phase +## procedures report errors by raising an exception, and otherwise +## always return #t.~%" + name result)) + + ;; Dump the environment variables as a shell script, for handy debugging. + (system "export > $NIX_BUILD_TOP/environment-variables") + result)))) + phases)) diff --git a/guix/build/gnu-dist.scm b/guix/build/gnu-dist.scm index ad69c6cf16..bf1c63cb85 100644 --- a/guix/build/gnu-dist.scm +++ b/guix/build/gnu-dist.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Ludovic Courtès +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,24 +42,22 @@ (begin (format #t "bootstrapping with `~a'...~%" file) - (zero? - (system* (string-append "./" file)))) + (invoke (string-append "./" file))) (try-files files ... (else fallback ...))))))) (try-files "bootstrap" "bootstrap.sh" "autogen" "autogen.sh" (else (format #t "bootstrapping with `autoreconf'...~%") - (zero? (system* "autoreconf" "-vfi")))))) + (invoke "autoreconf" "-vfi"))))) (define* (build #:key build-before-dist? make-flags (dist-target "distcheck") #:allow-other-keys #:rest args) - (and (or (not build-before-dist?) - (let ((build (assq-ref %standard-phases 'build))) - (apply build args))) - (begin - (format #t "building target `~a'~%" dist-target) - (zero? (apply system* "make" dist-target make-flags))))) + (when build-before-dist? + (let ((build (assq-ref %standard-phases 'build))) + (apply build args))) + (format #t "building target `~a'~%" dist-target) + (apply invoke "make" dist-target make-flags)) (define* (install-dist #:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index 3114067aa9..7c833a616f 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -261,6 +261,7 @@ files in OUTPUTS." (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (delete 'patch-generated-file-shebangs) (replace 'unpack unpack) diff --git a/guix/build/gremlin.scm b/guix/build/gremlin.scm index fed529b193..bb019967e5 100644 --- a/guix/build/gremlin.scm +++ b/guix/build/gremlin.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,7 +35,7 @@ elf-dynamic-info elf-dynamic-info? - elf-dynamic-info-sopath + elf-dynamic-info-soname elf-dynamic-info-needed elf-dynamic-info-rpath elf-dynamic-info-runpath diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm index 3afc37e16d..268d59c1be 100644 --- a/guix/build/haskell-build-system.scm +++ b/guix/build/haskell-build-system.scm @@ -266,6 +266,7 @@ given Haskell package." (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (add-before 'configure 'setup-compiler setup-compiler) (add-before 'install 'haddock haddock) (add-after 'install 'register register) diff --git a/guix/build/hg.scm b/guix/build/hg.scm index ae4574de57..ea51eb670b 100644 --- a/guix/build/hg.scm +++ b/guix/build/hg.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,19 +34,20 @@ "Fetch CHANGESET from URL into DIRECTORY. CHANGESET must be a valid Mercurial changeset identifier. Return #t on success, #f otherwise." - (and (zero? (system* hg-command - "clone" url - "--rev" changeset - ;; Disable TLS certificate verification. The hash of - ;; the checkout is known in advance anyway. - "--insecure" - directory)) - (with-directory-excursion directory - (begin - ;; The contents of '.hg' vary as a function of the current - ;; status of the Mercurial repo. Since we want a fixed - ;; output, this directory needs to be taken out. - (delete-file-recursively ".hg") - #t)))) + (invoke hg-command + "clone" url + "--rev" changeset + ;; Disable TLS certificate verification. The hash of + ;; the checkout is known in advance anyway. + "--insecure" + directory) + + ;; The contents of '.hg' vary as a function of the current + ;; status of the Mercurial repo. Since we want a fixed + ;; output, this directory needs to be taken out. + (with-directory-excursion directory + (delete-file-recursively ".hg")) + + #t) ;;; hg.scm ends here diff --git a/guix/build/minify-build-system.scm b/guix/build/minify-build-system.scm index 3580deda07..563def88e9 100644 --- a/guix/build/minify-build-system.scm +++ b/guix/build/minify-build-system.scm @@ -60,6 +60,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (replace 'build build) (delete 'check) diff --git a/guix/build/ocaml-build-system.scm b/guix/build/ocaml-build-system.scm index f77251ca09..d10431d8ef 100644 --- a/guix/build/ocaml-build-system.scm +++ b/guix/build/ocaml-build-system.scm @@ -103,6 +103,7 @@ ;; Everything is as with the GNU Build System except for the `configure' ;; , `build', `check' and `install' phases. (modify-phases gnu:%standard-phases + (delete 'bootstrap) (add-before 'configure 'ocaml-findlib-environment ocaml-findlib-environment) (add-before 'install 'prepare-install prepare-install) diff --git a/guix/build/perl-build-system.scm b/guix/build/perl-build-system.scm index b2024e4406..c5f5baa3a9 100644 --- a/guix/build/perl-build-system.scm +++ b/guix/build/perl-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2015 Ludovic Courtès +;;; Copyright © 2013, 2015, 2018 Ludovic Courtès +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,7 +50,7 @@ "INSTALLDIRS=site" "NO_PERLLOCAL=1" ,@make-maker-flags)) (else (error "no Build.PL or Makefile.PL found"))))) (format #t "running `perl' with arguments ~s~%" args) - (zero? (apply system* "perl" args)))) + (apply invoke "perl" args))) (define-syntax-rule (define-w/gnu-fallback* (name args ...) body ...) (define* (name args ... #:rest rest) @@ -58,24 +59,24 @@ (apply (assoc-ref gnu:%standard-phases 'name) rest)))) (define-w/gnu-fallback* (build) - (zero? (system* "./Build"))) + (invoke "./Build")) (define-w/gnu-fallback* (check #:key target (tests? (not target)) (test-flags '()) #:allow-other-keys) (if tests? - (zero? (apply system* "./Build" "test" test-flags)) - (begin - (format #t "test suite not run~%") - #t))) + (apply invoke "./Build" "test" test-flags) + (format #t "test suite not run~%")) + #t) (define-w/gnu-fallback* (install) - (zero? (system* "./Build" "install"))) + (invoke "./Build" "install")) (define %standard-phases ;; Everything is as with the GNU Build System except for the `configure', ;; `build', `check', and `install' phases. (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'install install) (replace 'check check) (replace 'build build) diff --git a/guix/build/profiles.scm b/guix/build/profiles.scm index b4160fba1b..819688a913 100644 --- a/guix/build/profiles.scm +++ b/guix/build/profiles.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2017 Ludovic Courtès +;;; Copyright © 2015, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +24,7 @@ #:use-module (ice-9 ftw) #:use-module (ice-9 match) #:use-module (ice-9 pretty-print) + #:re-export (symlink-relative) ;for convenience #:export (ensure-writable-directory build-profile)) @@ -129,12 +130,15 @@ instead make DIRECTORY a \"real\" directory containing symlinks." (apply throw args)))))) (define* (build-profile output inputs - #:key manifest search-paths) - "Build a user profile from INPUTS in directory OUTPUT. Write MANIFEST, an -sexp, to OUTPUT/manifest. Create OUTPUT/etc/profile with Bash definitions for --all the variables listed in SEARCH-PATHS." + #:key manifest search-paths + (symlink symlink)) + "Build a user profile from INPUTS in directory OUTPUT, using SYMLINK to +create symlinks. Write MANIFEST, an sexp, to OUTPUT/manifest. Create +OUTPUT/etc/profile with Bash definitions for -all the variables listed in +SEARCH-PATHS." ;; Make the symlinks. (union-build output inputs + #:symlink symlink #:log-port (%make-void-port "w")) ;; Store meta-data. diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index dd07986b94..376ea81f1a 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -1,9 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2015, 2016, 2018 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov -;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015, 2018 Mark H Weaver ;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -120,14 +121,15 @@ (format #t "running \"python setup.py\" with command ~s and parameters ~s~%" command params) (if use-setuptools? - (zero? (apply system* "python" "-c" setuptools-shim - command params)) - (zero? (apply system* "python" "./setup.py" command params)))) + (apply invoke "python" "-c" setuptools-shim + command params) + (apply invoke "python" "./setup.py" command params))) (error "no setup.py found"))) (define* (build #:key use-setuptools? #:allow-other-keys) "Build a given Python package." - (call-setuppy "build" '() use-setuptools?)) + (call-setuppy "build" '() use-setuptools?) + #t) (define* (check #:key tests? test-target use-setuptools? #:allow-other-keys) "Run the test suite of a given Python package." @@ -137,15 +139,12 @@ ;; (given with `package_dir`). This will by copied to the output, too, ;; so we need to remove. (let ((before (find-files "build" "\\.egg-info$" #:directories? #t))) - (if (call-setuppy test-target '() use-setuptools?) - (let* ((after (find-files "build" "\\.egg-info$" #:directories? #t)) - (inter (lset-difference eqv? after before))) - (for-each delete-file-recursively inter) - #t) - #f)) - (begin - (format #t "test suite not run~%") - #t))) + (call-setuppy test-target '() use-setuptools?) + (let* ((after (find-files "build" "\\.egg-info$" #:directories? #t)) + (inter (lset-difference string=? after before))) + (for-each delete-file-recursively inter))) + (format #t "test suite not run~%")) + #t) (define (get-python-version python) (let* ((version (last (string-split python #\-))) @@ -182,7 +181,8 @@ when running checks after installing the package." "--root=/") '()) configure-flags))) - (call-setuppy "install" params use-setuptools?))) + (call-setuppy "install" params use-setuptools?) + #t)) (define* (wrap #:key inputs outputs #:allow-other-keys) (define (list-of-files dir) @@ -211,7 +211,8 @@ when running checks after installing the package." (let ((files (list-of-files dir))) (for-each (cut wrap-program <> var) files))) - bindirs))) + bindirs) + #t)) (define* (rename-pth-file #:key name inputs outputs #:allow-other-keys) "Rename easy-install.pth to NAME.pth to avoid conflicts between packages @@ -243,10 +244,21 @@ installed with setuptools." #t)) #t)) +(define* (enable-bytecode-determinism #:rest _) + "Improve determinism of pyc files." + ;; Set DETERMINISTIC_BUILD to override the embedded mtime in pyc files. + (setenv "DETERMINISTIC_BUILD" "1") + ;; Use deterministic hashes for strings, bytes, and datetime objects. + (setenv "PYTHONHASHSEED" "0") + #t) + (define %standard-phases ;; 'configure' phase is not needed. (modify-phases gnu:%standard-phases (add-after 'unpack 'ensure-no-mtimes-pre-1980 ensure-no-mtimes-pre-1980) + (add-after 'ensure-no-mtimes-pre-1980 'enable-bytecode-determinism + enable-bytecode-determinism) + (delete 'bootstrap) (delete 'configure) (replace 'install install) (replace 'check check) diff --git a/guix/build/r-build-system.scm b/guix/build/r-build-system.scm index 24aa73d4f2..4d8ac5b479 100644 --- a/guix/build/r-build-system.scm +++ b/guix/build/r-build-system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +24,7 @@ #:use-module (ice-9 popen) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-35) #:export (%standard-phases r-build)) @@ -34,12 +35,19 @@ ;; Code: (define (invoke-r command params) - (zero? (apply system* "R" "CMD" command params))) + (apply invoke "R" "CMD" command params)) (define (pipe-to-r command params) (let ((port (apply open-pipe* OPEN_WRITE "R" params))) (display command port) - (zero? (status:exit-val (close-pipe port))))) + (let ((code (status:exit-val (close-pipe port)))) + (unless (zero? code) + (raise (condition ((@@ (guix build utils) &invoke-error) + (program "R") + (arguments (string-append params " " command)) + (exit-status (status:exit-val code)) + (term-signal (status:term-sig code)) + (stop-signal (status:stop-sig code))))))))) (define (generate-site-path inputs) (string-join (map (match-lambda @@ -68,13 +76,12 @@ (pkg-name (car (scandir libdir (negate (cut member <> '("." "..")))))) (testdir (string-append libdir pkg-name "/" test-target)) (site-path (string-append libdir ":" (generate-site-path inputs)))) - (if (and tests? (file-exists? testdir)) - (begin - (setenv "R_LIBS_SITE" site-path) - (pipe-to-r (string-append "tools::testInstalledPackage(\"" pkg-name "\", " - "lib.loc = \"" libdir "\")") - '("--no-save" "--slave"))) - #t))) + (when (and tests? (file-exists? testdir)) + (setenv "R_LIBS_SITE" site-path) + (pipe-to-r (string-append "tools::testInstalledPackage(\"" pkg-name "\", " + "lib.loc = \"" libdir "\")") + '("--no-save" "--slave"))) + #t)) (define* (install #:key outputs inputs (configure-flags '()) #:allow-other-keys) @@ -99,6 +106,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (delete 'build) (delete 'check) ; tests must be run after installation diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm index 09ae2390a5..abef6937bc 100644 --- a/guix/build/ruby-build-system.scm +++ b/guix/build/ruby-build-system.scm @@ -308,6 +308,7 @@ extended with definitions for VARS." (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (replace 'unpack unpack) (add-before 'build 'extract-gemspec extract-gemspec) diff --git a/guix/build/scons-build-system.scm b/guix/build/scons-build-system.scm index a8760968d8..eb013f03b6 100644 --- a/guix/build/scons-build-system.scm +++ b/guix/build/scons-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Arun Isaac +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,27 +32,27 @@ (define* (build #:key outputs (scons-flags '()) (parallel-build? #t) #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (mkdir-p out) - (zero? (apply system* "scons" - (append (if parallel-build? - (list "-j" (number->string - (parallel-job-count))) - (list)) - scons-flags))))) + (apply invoke "scons" + (append (if parallel-build? + (list "-j" (number->string + (parallel-job-count))) + (list)) + scons-flags)))) (define* (check #:key tests? test-target (scons-flags '()) #:allow-other-keys) "Run the test suite of a given SCons application." - (cond (tests? - (zero? (apply system* "scons" test-target scons-flags))) - (else - (format #t "test suite not run~%") - #t))) + (if tests? + (apply invoke "scons" test-target scons-flags) + (format #t "test suite not run~%")) + #t) (define* (install #:key outputs (scons-flags '()) #:allow-other-keys) "Install a given SCons application." - (zero? (apply system* "scons" "install" scons-flags))) + (apply invoke "scons" "install" scons-flags)) (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (delete 'configure) (replace 'build build) (replace 'check check) diff --git a/guix/build/svn.scm b/guix/build/svn.scm index 31c30edaf5..252d1d4ee5 100644 --- a/guix/build/svn.scm +++ b/guix/build/svn.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès ;;; Copyright © 2014 Sree Harsha Totakura +;;; Copyright © 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,23 +35,24 @@ (password #f)) "Fetch REVISION from URL into DIRECTORY. REVISION must be an integer, and a valid Subversion revision. Return #t on success, #f otherwise." - (and (zero? (apply system* svn-command - "checkout" "--non-interactive" - ;; Trust the server certificate. This is OK as we - ;; verify the checksum later. This can be removed when - ;; ca-certificates package is added. - "--trust-server-cert" "-r" (number->string revision) - `(,@(if (and user-name password) - (list (string-append "--username=" user-name) - (string-append "--password=" password)) - '()) - ,url ,directory))) - (with-directory-excursion directory - (begin - ;; The contents of '.svn' vary as a function of the current status - ;; of the repo. Since we want a fixed output, this directory needs - ;; to be taken out. - (delete-file-recursively ".svn") - #t)))) + (apply invoke svn-command + "checkout" "--non-interactive" + ;; Trust the server certificate. This is OK as we + ;; verify the checksum later. This can be removed when + ;; ca-certificates package is added. + "--trust-server-cert" "-r" (number->string revision) + `(,@(if (and user-name password) + (list (string-append "--username=" user-name) + (string-append "--password=" password)) + '()) + ,url ,directory)) + + ;; The contents of '.svn' vary as a function of the current status + ;; of the repo. Since we want a fixed output, this directory needs + ;; to be taken out. + (with-directory-excursion directory + (delete-file-recursively ".svn")) + + #t) ;;; svn.scm ends here diff --git a/guix/build/texlive-build-system.scm b/guix/build/texlive-build-system.scm index f6b9b96b87..1c393ecd9d 100644 --- a/guix/build/texlive-build-system.scm +++ b/guix/build/texlive-build-system.scm @@ -34,11 +34,11 @@ ;; Code: (define (compile-with-latex format file) - (zero? (system* format - "-interaction=batchmode" - "-output-directory=build" - (string-append "&" format) - file))) + (invoke format + "-interaction=batchmode" + "-output-directory=build" + (string-append "&" format) + file)) (define* (configure #:key inputs #:allow-other-keys) (let* ((out (string-append (getcwd) "/.texlive-union")) @@ -81,6 +81,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (delete 'check) diff --git a/guix/build/union.scm b/guix/build/union.scm index 1179f1234b..fff795c4d3 100644 --- a/guix/build/union.scm +++ b/guix/build/union.scm @@ -27,7 +27,10 @@ #:use-module (rnrs io ports) #:export (union-build - warn-about-collision)) + warn-about-collision + + relative-file-name + symlink-relative)) ;;; Commentary: ;;; @@ -78,14 +81,23 @@ identical, #f otherwise." (or (eof-object? n1) (loop)))))))))))))) +(define %harmless-collisions + ;; This is a list of files that are known to collide, but for which emitting + ;; a warning doesn't make sense. For example, "icon-theme.cache" is + ;; regenerated by a profile hook which shadows the file provided by + ;; individual packages, and "gschemas.compiled" is made available to + ;; applications via 'glib-or-gtk-build-system'. + '("icon-theme.cache" "gschemas.compiled")) + (define (warn-about-collision files) "Handle the collision among FILES by emitting a warning and choosing the first one of THEM." - (format (current-error-port) - "~%warning: collision encountered:~%~{ ~a~%~}" - files) (let ((file (first files))) - (format (current-error-port) "warning: choosing ~a~%" file) + (unless (member (basename file) %harmless-collisions) + (format (current-error-port) + "~%warning: collision encountered:~%~{ ~a~%~}" + files) + (format (current-error-port) "warning: choosing ~a~%" file)) file)) (define* (union-build output inputs @@ -174,4 +186,47 @@ returns #f, skip the faulty file altogether." (union-of-directories output (delete-duplicates inputs))) + +;;; +;;; Relative symlinks. +;;; + +(define %not-slash + (char-set-complement (char-set #\/))) + +(define (relative-file-name reference file) + "Given REFERENCE and FILE, both of which are absolute file names, return the +file name of FILE relative to REFERENCE. + + (relative-file-name \"/gnu/store/foo\" \"/gnu/store/bin/bar\") + => \"../bin/bar\" + +Note that this is from a purely lexical standpoint; conversely, \"..\" is +*not* resolved lexically on POSIX in the presence of symlinks." + (if (and (string-prefix? "/" file) (string-prefix? "/" reference)) + (let loop ((reference (string-tokenize reference %not-slash)) + (file (string-tokenize file %not-slash))) + (define (finish) + (string-join (append (make-list (length reference) "..") file) + "/")) + + (match reference + (() + (finish)) + ((head . tail) + (match file + (() + (finish)) + ((head* . tail*) + (if (string=? head head*) + (loop tail tail*) + (finish))))))) + file)) + +(define (symlink-relative old new) + "Assuming both OLD and NEW are absolute file names, make NEW a symlink to +OLD, but using a relative file name." + (symlink (relative-file-name (dirname new) old) + new)) + ;;; union.scm ends here diff --git a/guix/build/utils.scm b/guix/build/utils.scm index d7ed3d5177..c58a1afd1c 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -1,8 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov -;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2015, 2018 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +23,8 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (srfi srfi-60) #:use-module (ice-9 ftw) #:use-module (ice-9 match) @@ -61,6 +63,7 @@ delete-file-recursively file-name-predicate find-files + false-if-file-not-found search-path-as-list set-path-environment-variable @@ -85,7 +88,14 @@ fold-port-matches remove-store-references wrap-program + invoke + invoke-error? + invoke-error-program + invoke-error-arguments + invoke-error-exit-status + invoke-error-term-signal + invoke-error-stop-signal locale-category->string)) @@ -396,6 +406,15 @@ also be included. If FAIL-ON-ERROR? is true, raise an exception upon error." stat) string is an expression evaluating to a symbol, and ((_ phases (add-after old-phase-name new-phase-name new-phase)) (alist-cons-after old-phase-name new-phase-name new-phase phases)))) +(define-condition-type &invoke-error &error + invoke-error? + (program invoke-error-program) + (arguments invoke-error-arguments) + (exit-status invoke-error-exit-status) + (term-signal invoke-error-term-signal) + (stop-signal invoke-error-stop-signal)) + (define (invoke program . args) - "Invoke PROGRAM with the given ARGS. Raise an error if the exit -code is non-zero; otherwise return #t." - (let ((status (apply system* program args))) - (unless (zero? status) - (error (format #f "program ~s exited with non-zero code" program) - status)) + "Invoke PROGRAM with the given ARGS. Raise an exception +if the exit code is non-zero; otherwise return #t." + (let ((code (apply system* program args))) + (unless (zero? code) + (raise (condition (&invoke-error + (program program) + (arguments args) + (exit-status (status:exit-val code)) + (term-signal (status:term-sig code)) + (stop-signal (status:stop-sig code)))))) #t)) diff --git a/guix/build/waf-build-system.scm b/guix/build/waf-build-system.scm index 85f0abcfd6..f0364e867d 100644 --- a/guix/build/waf-build-system.scm +++ b/guix/build/waf-build-system.scm @@ -70,6 +70,7 @@ (define %standard-phases (modify-phases gnu:%standard-phases + (delete 'bootstrap) (replace 'configure configure) (replace 'build build) (replace 'check check) diff --git a/guix/config.scm.in b/guix/config.scm.in index 8f2c4abd8e..aeea81bd3f 100644 --- a/guix/config.scm.in +++ b/guix/config.scm.in @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2017 Caleb Ristvedt ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ %store-directory %state-directory + %store-database-directory %config-directory %guix-register-program @@ -80,6 +82,10 @@ (or (getenv "NIX_STATE_DIR") (string-append %localstatedir "/guix"))) +(define %store-database-directory + (or (getenv "NIX_DB_DIR") + (string-append %state-directory "/db"))) + (define %config-directory ;; This must match `GUIX_CONFIGURATION_DIRECTORY' as defined in `nix/local.mk'. (or (getenv "GUIX_CONFIGURATION_DIRECTORY") diff --git a/guix/docker.scm b/guix/docker.scm index a75534c33b..b869901599 100644 --- a/guix/docker.scm +++ b/guix/docker.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ricardo Wurmus -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2018 Ludovic Courtès ;;; Copyright © 2018 Chris Marusich ;;; ;;; This file is part of GNU Guix. @@ -26,6 +26,7 @@ delete-file-recursively with-directory-excursion invoke)) + #:use-module (json) ;guile-json #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) #:use-module ((texinfo string-utils) @@ -34,9 +35,6 @@ #:use-module (ice-9 match) #:export (build-docker-image)) -;; Load Guile-JSON at run time to simplify the job of 'imported-modules' & co. -(module-use! (current-module) (resolve-interface '(json))) - ;; Generate a 256-bit identifier in hexadecimal encoding for the Docker image. (define docker-id (compose bytevector->base16-string sha256 string->utf8)) diff --git a/guix/download.scm b/guix/download.scm index 7aa6c03665..988117885c 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -391,11 +391,6 @@ (plain-file "content-addressed-mirrors" (object->string %content-addressed-mirrors))) -(define (gnutls-package) - "Return the default GnuTLS package." - (let ((module (resolve-interface '(gnu packages tls)))) - (module-ref module 'gnutls))) - (define built-in-builders* (let ((cache (make-weak-key-hash-table))) (lambda () @@ -512,12 +507,14 @@ own. This helper makes it easier to deal with \"tar bombs\"." ;; Use ungrafted tar/gzip so that the resulting tarball doesn't depend on ;; whether grafts are enabled. (gexp->derivation (or name file-name) - #~(begin - (mkdir #$output) - (setenv "PATH" (string-append #$gzip "/bin")) - (chdir #$output) - (zero? (system* (string-append #$tar "/bin/tar") - "xf" #$drv))) + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir #$output) + (setenv "PATH" (string-append #$gzip "/bin")) + (chdir #$output) + (invoke (string-append #$tar "/bin/tar") + "xf" #$drv))) #:graft? #f #:local-build? #t))) @@ -545,11 +542,13 @@ own. This helper makes it easier to deal with \"zip bombs\"." ;; Use ungrafted unzip so that the resulting tarball doesn't depend on ;; whether grafts are enabled. (gexp->derivation (or name file-name) - #~(begin - (mkdir #$output) - (chdir #$output) - (zero? (system* (string-append #$unzip "/bin/unzip") - #$drv))) + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir #$output) + (chdir #$output) + (invoke (string-append #$unzip "/bin/unzip") + #$drv))) #:graft? #f #:local-build? #t))) diff --git a/guix/gexp.scm b/guix/gexp.scm index d26fad7e0b..153b29bd42 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -33,6 +33,7 @@ #:export (gexp gexp? with-imported-modules + with-extensions gexp-input gexp-input? @@ -118,10 +119,11 @@ ;; "G expressions". (define-record-type - (make-gexp references modules proc) + (make-gexp references modules extensions proc) gexp? (references gexp-references) ;list of (modules gexp-self-modules) ;list of module names + (extensions gexp-self-extensions) ;list of lowerable things (proc gexp-proc)) ;procedure (define (write-gexp gexp port) @@ -492,19 +494,20 @@ whether this should be considered a \"native\" input or not." (set-record-type-printer! write-gexp-output) -(define (gexp-modules gexp) - "Return the list of Guile module names GEXP relies on. If (gexp? GEXP) is -false, meaning that GEXP is a plain Scheme object, return the empty list." +(define (gexp-attribute gexp self-attribute) + "Recurse on GEXP and the expressions it refers to, summing the items +returned by SELF-ATTRIBUTE, a procedure that takes a gexp." (if (gexp? gexp) (delete-duplicates - (append (gexp-self-modules gexp) + (append (self-attribute gexp) (append-map (match-lambda (($ (? gexp? exp)) - (gexp-modules exp)) + (gexp-attribute exp self-attribute)) (($ (lst ...)) (append-map (lambda (item) (if (gexp? item) - (gexp-modules item) + (gexp-attribute item + self-attribute) '())) lst)) (_ @@ -512,6 +515,17 @@ false, meaning that GEXP is a plain Scheme object, return the empty list." (gexp-references gexp)))) '())) ;plain Scheme data type +(define (gexp-modules gexp) + "Return the list of Guile module names GEXP relies on. If (gexp? GEXP) is +false, meaning that GEXP is a plain Scheme object, return the empty list." + (gexp-attribute gexp gexp-self-modules)) + +(define (gexp-extensions gexp) + "Return the list of Guile extensions (packages) GEXP relies on. If (gexp? +GEXP) is false, meaning that GEXP is a plain Scheme object, return the empty +list." + (gexp-attribute gexp gexp-self-extensions)) + (define* (lower-inputs inputs #:key system target) "Turn any package from INPUTS into a derivation for SYSTEM; return the @@ -577,6 +591,7 @@ names and file names suitable for the #:allowed-references argument to (modules '()) (module-path %load-path) (guile-for-build (%guile-for-build)) + (effective-version "2.2") (graft? (%graft?)) references-graphs allowed-references disallowed-references @@ -595,6 +610,9 @@ names of Guile modules searched in MODULE-PATH to be copied in the store, compiled, and made available in the load path during the execution of EXP---e.g., '((guix build utils) (guix build gnu-build-system)). +EFFECTIVE-VERSION determines the string to use when adding extensions of +EXP (see 'with-extensions') to the search path---e.g., \"2.2\". + GRAFT? determines whether packages referred to by EXP should be grafted when applicable. @@ -630,7 +648,7 @@ The other arguments are as for 'derivation'." (define (graphs-file-names graphs) ;; Return a list of (FILE-NAME . STORE-PATH) pairs made from GRAPHS. (map (match-lambda - ;; TODO: Remove 'derivation?' special cases. + ;; TODO: Remove 'derivation?' special cases. ((file-name (? derivation? drv)) (cons file-name (derivation->output-path drv))) ((file-name (? derivation? drv) sub-drv) @@ -639,7 +657,13 @@ The other arguments are as for 'derivation'." (cons file-name thing))) graphs)) - (mlet* %store-monad (;; The following binding forces '%current-system' and + (define (extension-flags extension) + `("-L" ,(string-append (derivation->output-path extension) + "/share/guile/site/" effective-version) + "-C" ,(string-append (derivation->output-path extension) + "/lib/guile/" effective-version "/site-ccache"))) + + (mlet* %store-monad ( ;; The following binding forces '%current-system' and ;; '%current-target-system' to be looked up at >>= ;; time. (graft? (set-grafting graft?)) @@ -660,16 +684,24 @@ The other arguments are as for 'derivation'." #:target target)) (builder (text-file script-name (object->string sexp))) + (extensions -> (gexp-extensions exp)) + (exts (mapm %store-monad + (lambda (obj) + (lower-object obj system)) + extensions)) (modules (if (pair? %modules) (imported-modules %modules #:system system #:module-path module-path - #:guile guile-for-build) + #:guile guile-for-build + #:deprecation-warnings + deprecation-warnings) (return #f))) (compiled (if (pair? %modules) (compiled-modules %modules #:system system #:module-path module-path + #:extensions extensions #:guile guile-for-build #:deprecation-warnings deprecation-warnings) @@ -702,6 +734,7 @@ The other arguments are as for 'derivation'." `("-L" ,(derivation->output-path modules) "-C" ,(derivation->output-path compiled)) '()) + ,@(append-map extension-flags exts) ,builder) #:outputs outputs #:env-vars env-vars @@ -711,6 +744,7 @@ The other arguments are as for 'derivation'." ,@(if modules `((,modules) (,compiled) ,@inputs) inputs) + ,@(map list exts) ,@(match graphs (((_ . inputs) ...) inputs) (_ '()))) @@ -859,6 +893,17 @@ environment." (identifier-syntax modules))) body ...)) +(define-syntax-parameter current-imported-extensions + ;; Current list of extensions. + (identifier-syntax '())) + +(define-syntax-rule (with-extensions extensions body ...) + "Mark the gexps defined in BODY... as requiring EXTENSIONS in their +execution environment." + (syntax-parameterize ((current-imported-extensions + (identifier-syntax extensions))) + body ...)) + (define-syntax gexp (lambda (s) (define (collect-escapes exp) @@ -955,6 +1000,7 @@ environment." (refs (map escape->ref escapes))) #`(make-gexp (list #,@refs) current-imported-modules + current-imported-extensions (lambda #,formals #,sexp))))))) @@ -974,7 +1020,15 @@ environment." (define* (imported-files files #:key (name "file-import") (system (%current-system)) - (guile (%guile-for-build))) + (guile (%guile-for-build)) + + ;; XXX: The only reason we have + ;; #:deprecation-warnings is because (guix build + ;; utils), which we use here, relies on _IO*, which + ;; is deprecated in 2.2. On the next full-rebuild + ;; cycle, we should disable such warnings + ;; unconditionally. + (deprecation-warnings #f)) "Return a derivation that imports FILES into STORE. FILES must be a list of (FINAL-PATH . FILE) pairs. Each FILE is mapped to FINAL-PATH in the resulting store path. FILE can be either a file name, or a file-like object, @@ -1010,13 +1064,25 @@ as returned by 'local-file' for example." (gexp->derivation name build #:system system #:guile-for-build guile - #:local-build? #t))) + #:local-build? #t + + ;; TODO: On the next rebuild cycle, set to "no" + ;; unconditionally. + #:env-vars + (case deprecation-warnings + ((#f) + '(("GUILE_WARN_DEPRECATED" . "no"))) + ((detailed) + '(("GUILE_WARN_DEPRECATED" . "detailed"))) + (else + '()))))) (define* (imported-modules modules #:key (name "module-import") (system (%current-system)) (guile (%guile-for-build)) - (module-path %load-path)) + (module-path %load-path) + (deprecation-warnings #f)) "Return a derivation that contains the source files of MODULES, a list of module names such as `(ice-9 q)'. All of MODULES must be either names of modules to be found in the MODULE-PATH search path, or a module name followed @@ -1041,58 +1107,118 @@ last one is created from the given object." (cons f (search-path* module-path f)))))) modules))) (imported-files files #:name name #:system system - #:guile guile))) + #:guile guile + #:deprecation-warnings deprecation-warnings))) (define* (compiled-modules modules #:key (name "module-import-compiled") (system (%current-system)) (guile (%guile-for-build)) (module-path %load-path) + (extensions '()) (deprecation-warnings #f)) "Return a derivation that builds a tree containing the `.go' files corresponding to MODULES. All the MODULES are built in a context where they can refer to each other." + (define total (length modules)) + + (define build-utils-hack? + ;; To avoid a full rebuild, we limit the fix below to the case where + ;; MODULE-PATH is different from %LOAD-PATH. This happens when building + ;; modules for 'compute-guix-derivation' upon 'guix pull'. TODO: Make + ;; this unconditional on the next rebuild cycle. + (and (member '(guix build utils) modules) + (not (equal? module-path %load-path)))) + (mlet %store-monad ((modules (imported-modules modules #:system system #:guile guile #:module-path - module-path))) + module-path + #:deprecation-warnings + deprecation-warnings))) (define build (gexp (begin (primitive-load (ungexp %utils-module)) ;for 'mkdir-p' (use-modules (ice-9 ftw) + (ice-9 format) + (srfi srfi-1) (srfi srfi-26) (system base compile)) (define (regular? file) (not (member file '("." "..")))) - (define (process-directory directory output) + (define (process-entry entry output processed) + (if (file-is-directory? entry) + (let ((output (string-append output "/" (basename entry)))) + (mkdir-p output) + (process-directory entry output processed)) + (let* ((base (basename entry ".scm")) + (output (string-append output "/" base ".go"))) + (format #t "[~2@a/~2@a] Compiling '~a'...~%" + (+ 1 processed) (ungexp total) entry) + (compile-file entry + #:output-file output + #:opts %auto-compilation-options) + (+ 1 processed)))) + + (define (process-directory directory output processed) (let ((entries (map (cut string-append directory "/" <>) (scandir directory regular?)))) - (for-each (lambda (entry) - (if (file-is-directory? entry) - (let ((output (string-append output "/" - (basename entry)))) - (mkdir-p output) - (process-directory entry output)) - (let* ((base (string-drop-right - (basename entry) - 4)) ;.scm - (output (string-append output "/" base - ".go"))) - (compile-file entry - #:output-file output - #:opts - %auto-compilation-options)))) - entries))) + (fold (cut process-entry <> output <>) + processed + entries))) + + (setvbuf (current-output-port) + (cond-expand (guile-2.2 'line) (else _IOLBF))) + + (ungexp-splicing + (if build-utils-hack? + (gexp ((define mkdir-p + ;; Capture 'mkdir-p'. + (@ (guix build utils) mkdir-p)))) + '())) + + ;; Add EXTENSIONS to the search path. + ;; TODO: Remove the outer 'ungexp-splicing' on the next rebuild cycle. + (ungexp-splicing + (if (null? extensions) + '() + (gexp ((set! %load-path + (append (map (lambda (extension) + (string-append extension + "/share/guile/site/" + (effective-version))) + '((ungexp-native-splicing extensions))) + %load-path)) + (set! %load-compiled-path + (append (map (lambda (extension) + (string-append extension "/lib/guile/" + (effective-version) + "/site-ccache")) + '((ungexp-native-splicing extensions))) + %load-compiled-path)))))) (set! %load-path (cons (ungexp modules) %load-path)) + + (ungexp-splicing + (if build-utils-hack? + ;; Above we loaded our own (guix build utils) but now we may + ;; need to load a compile a different one. Thus, force a + ;; reload. + (gexp ((let ((utils (ungexp + (file-append modules + "/guix/build/utils.scm")))) + (when (file-exists? utils) + (load utils))))) + '())) + (mkdir (ungexp output)) (chdir (ungexp modules)) - (process-directory "." (ungexp output))))) + (process-directory "." (ungexp output) 0)))) ;; TODO: Pass MODULES as an environment variable. (gexp->derivation name build @@ -1121,20 +1247,34 @@ they can refer to each other." (module-ref (resolve-interface '(gnu packages guile)) 'guile-2.2)) -(define* (load-path-expression modules #:optional (path %load-path)) +(define* (load-path-expression modules #:optional (path %load-path) + #:key (extensions '())) "Return as a monadic value a gexp that sets '%load-path' and '%load-compiled-path' to point to MODULES, a list of module names. MODULES are searched for in PATH." (mlet %store-monad ((modules (imported-modules modules #:module-path path)) (compiled (compiled-modules modules + #:extensions extensions #:module-path path))) (return (gexp (eval-when (expand load eval) (set! %load-path - (cons (ungexp modules) %load-path)) + (cons (ungexp modules) + (append (map (lambda (extension) + (string-append extension + "/share/guile/site/" + (effective-version))) + '((ungexp-native-splicing extensions))) + %load-path))) (set! %load-compiled-path (cons (ungexp compiled) - %load-compiled-path))))))) + (append (map (lambda (extension) + (string-append extension + "/lib/guile/" + (effective-version) + "/site-ccache")) + '((ungexp-native-splicing extensions))) + %load-compiled-path)))))))) (define* (gexp->script name exp #:key (guile (default-guile)) @@ -1143,7 +1283,9 @@ are searched for in PATH." imported modules in its search path. Look up EXP's modules in MODULE-PATH." (mlet %store-monad ((set-load-path (load-path-expression (gexp-modules exp) - module-path))) + module-path + #:extensions + (gexp-extensions exp)))) (gexp->derivation name (gexp (call-with-output-file (ungexp output) @@ -1172,35 +1314,38 @@ the resulting file. When SET-LOAD-PATH? is true, emit code in the resulting file to set '%load-path' and '%load-compiled-path' to honor EXP's imported modules. Lookup EXP's modules in MODULE-PATH." - (match (if set-load-path? (gexp-modules exp) '()) - (() ;zero modules - (gexp->derivation name - (gexp - (call-with-output-file (ungexp output) - (lambda (port) - (for-each (lambda (exp) - (write exp port)) - '(ungexp (if splice? - exp - (gexp ((ungexp exp))))))))) - #:local-build? #t - #:substitutable? #f)) - ((modules ...) - (mlet %store-monad ((set-load-path (load-path-expression modules - module-path))) - (gexp->derivation name - (gexp - (call-with-output-file (ungexp output) - (lambda (port) - (write '(ungexp set-load-path) port) - (for-each (lambda (exp) - (write exp port)) - '(ungexp (if splice? - exp - (gexp ((ungexp exp))))))))) - #:module-path module-path - #:local-build? #t - #:substitutable? #f))))) + (define modules (gexp-modules exp)) + (define extensions (gexp-extensions exp)) + + (if (or (not set-load-path?) + (and (null? modules) (null? extensions))) + (gexp->derivation name + (gexp + (call-with-output-file (ungexp output) + (lambda (port) + (for-each (lambda (exp) + (write exp port)) + '(ungexp (if splice? + exp + (gexp ((ungexp exp))))))))) + #:local-build? #t + #:substitutable? #f) + (mlet %store-monad ((set-load-path + (load-path-expression modules module-path + #:extensions extensions))) + (gexp->derivation name + (gexp + (call-with-output-file (ungexp output) + (lambda (port) + (write '(ungexp set-load-path) port) + (for-each (lambda (exp) + (write exp port)) + '(ungexp (if splice? + exp + (gexp ((ungexp exp))))))))) + #:module-path module-path + #:local-build? #t + #:substitutable? #f)))) (define* (text-file* name #:rest text) "Return as a monadic value a derivation that builds a text file containing diff --git a/guix/http-client.scm b/guix/http-client.scm index e8a2a23fc5..3b34d4ffba 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -114,7 +114,7 @@ Raise an '&http-get-error' condition if downloading fails." 308) ; permanent redirection (let ((uri (resolve-uri-reference (response-location resp) uri))) (close-port port) - (format #t (G_ "following redirection to `~a'...~%") + (format (current-error-port) (G_ "following redirection to `~a'...~%") (uri->string uri)) (loop uri))) (else diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 58c051e283..08bed8767c 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -88,9 +88,10 @@ "Return the base distribution module for a given module. E.g. the 'ok' module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would return \"Test-Simple\"" - (assoc-ref (json-fetch (string-append "https://fastapi.metacpan.org/v1/module/" - module - "?fields=distribution")) + (assoc-ref (json-fetch-alist (string-append + "https://fastapi.metacpan.org/v1/module/" + module + "?fields=distribution")) "distribution")) (define (package->upstream-name package) @@ -113,7 +114,7 @@ return \"Test-Simple\"" "Return an alist representation of the CPAN metadata for the perl module MODULE, or #f on failure. MODULE should be e.g. \"Test::Script\"" ;; This API always returns the latest release of the module. - (json-fetch (string-append "https://fastapi.metacpan.org/v1/release/" name))) + (json-fetch-alist (string-append "https://fastapi.metacpan.org/v1/release/" name))) (define (cpan-home name) (string-append "http://search.cpan.org/dist/" name "/")) diff --git a/guix/import/cran.scm b/guix/import/cran.scm index ec2b7e6029..a5203fe78d 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -25,7 +25,6 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) - #:use-module (srfi srfi-41) #:use-module (ice-9 receive) #:use-module (web uri) #:use-module (guix memoization) @@ -43,7 +42,7 @@ #:use-module (gnu packages) #:export (cran->guix-package bioconductor->guix-package - recursive-import + cran-recursive-import %cran-updater %bioconductor-updater @@ -128,9 +127,9 @@ package definition." (define %cran-url "http://cran.r-project.org/web/packages/") (define %bioconductor-url "https://bioconductor.org/packages/") -;; The latest Bioconductor release is 3.6. Bioconductor packages should be +;; The latest Bioconductor release is 3.7. Bioconductor packages should be ;; updated together. -(define %bioconductor-version "3.6") +(define %bioconductor-version "3.7") (define %bioconductor-packages-list-url (string-append "https://bioconductor.org/packages/" @@ -231,13 +230,7 @@ empty list when the FIELD cannot be found." "translations" "utils")) -(define (guix-name name) - "Return a Guix package name for a given R package name." - (string-append "r-" (string-map (match-lambda - (#\_ #\-) - (#\. #\-) - (chr (char-downcase chr))) - name))) +(define cran-guix-name (cut guix-name "r-" <>)) (define (needs-fortran? tarball) "Check if the TARBALL contains Fortran source files." @@ -318,7 +311,7 @@ from the alist META, which was derived from the R package's DESCRIPTION file." (listify meta "Depends")))))) (values `(package - (name ,(guix-name name)) + (name ,(cran-guix-name name)) (version ,version) (source (origin (method url-fetch) @@ -327,12 +320,12 @@ from the alist META, which was derived from the R package's DESCRIPTION file." (base32 ,(bytevector->nix-base32-string (file-sha256 tarball)))))) ,@(if (not (equal? (string-append "r-" name) - (guix-name name))) + (cran-guix-name name))) `((properties ,`(,'quasiquote ((,'upstream-name . ,name))))) '()) (build-system r-build-system) ,@(maybe-inputs sysdepends) - ,@(maybe-inputs (map guix-name propagate) 'propagated-inputs) + ,@(maybe-inputs (map cran-guix-name propagate) 'propagated-inputs) ,@(maybe-inputs `(,@(if (needs-fortran? tarball) '("gfortran") '()) @@ -356,63 +349,10 @@ s-expression corresponding to that package, or #f on failure." (and=> (fetch-description repo package-name) (cut description->package repo <>))))) -(define* (recursive-import package-name #:optional (repo 'cran)) - "Generate a stream of package expressions for PACKAGE-NAME and all its -dependencies." - (receive (package . dependencies) - (cran->guix-package package-name repo) - (if (not package) - stream-null - - ;; Generate a lazy stream of package expressions for all unknown - ;; dependencies in the graph. - (let* ((make-state (lambda (queue done) - (cons queue done))) - (next (match-lambda - (((next . rest) . done) next))) - (imported (match-lambda - ((queue . done) done))) - (done? (match-lambda - ((queue . done) - (zero? (length queue))))) - (unknown? (lambda* (dependency #:optional (done '())) - (and (not (member dependency - done)) - (null? (find-packages-by-name - (guix-name dependency)))))) - (update (lambda (state new-queue) - (match state - (((head . tail) . done) - (make-state (lset-difference - equal? - (lset-union equal? new-queue tail) - done) - (cons head done))))))) - (stream-cons - package - (stream-unfold - ;; map: produce a stream element - (lambda (state) - (cran->guix-package (next state) repo)) - - ;; predicate - (negate done?) - - ;; generator: update the queue - (lambda (state) - (receive (package . dependencies) - (cran->guix-package (next state) repo) - (if package - (update state (filter (cut unknown? <> - (cons (next state) - (imported state))) - (car dependencies))) - ;; TODO: Try the other archives before giving up - (update state (imported state))))) - - ;; initial state - (make-state (filter unknown? (car dependencies)) - (list package-name)))))))) +(define* (cran-recursive-import package-name #:optional (repo 'gnu)) + (recursive-import package-name repo + #:repo->guix-package cran->guix-package + #:guix-name cran-guix-name)) ;;; diff --git a/guix/import/crate.scm b/guix/import/crate.scm index a7485bb4d0..3724a457a4 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -51,7 +51,7 @@ (define (crate-kind-predicate kind) (lambda (dep) (string=? (assoc-ref dep "kind") kind))) - (and-let* ((crate-json (json-fetch (string-append crate-url crate-name))) + (and-let* ((crate-json (json-fetch-alist (string-append crate-url crate-name))) (crate (assoc-ref crate-json "crate")) (name (assoc-ref crate "name")) (version (assoc-ref crate "max_version")) @@ -63,7 +63,7 @@ string->license) '())) ;missing license info (path (string-append "/" version "/dependencies")) - (deps-json (json-fetch (string-append crate-url name path))) + (deps-json (json-fetch-alist (string-append crate-url name path))) (deps (assoc-ref deps-json "dependencies")) (input-crates (filter (crate-kind-predicate "normal") deps)) (native-input-crates diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm index 43e9eb60c9..65e0be45ab 100644 --- a/guix/import/elpa.scm +++ b/guix/import/elpa.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,8 @@ #:use-module (guix packages) #:use-module ((guix utils) #:select (call-with-temporary-output-file)) #:export (elpa->guix-package - %elpa-updater)) + %elpa-updater + elpa-recursive-import)) (define (elpa-dependencies->names deps) "Convert DEPS, a list of symbol/version pairs à la ELPA, to a list of @@ -200,13 +202,15 @@ type ''." (define source-url (elpa-package-source-url pkg)) + (define dependencies-names + (filter-dependencies (elpa-dependencies->names + (elpa-package-inputs pkg)))) + (define dependencies - (let* ((deps (elpa-package-inputs pkg)) - (names (filter-dependencies (elpa-dependencies->names deps)))) - (map (lambda (n) - (let ((new-n (elpa-name->package-name n))) - (list new-n (list 'unquote (string->symbol new-n))))) - names))) + (map (lambda (n) + (let ((new-n (elpa-name->package-name n))) + (list new-n (list 'unquote (string->symbol new-n))))) + dependencies-names)) (define (maybe-inputs input-type inputs) (match inputs @@ -218,23 +222,25 @@ type ''." (let ((tarball (with-store store (download-to-store store source-url)))) - `(package - (name ,(elpa-name->package-name name)) - (version ,version) - (source (origin - (method url-fetch) - (uri (string-append ,@(factorize-uri source-url version))) - (sha256 - (base32 - ,(if tarball - (bytevector->nix-base32-string (file-sha256 tarball)) - "failed to download package"))))) - (build-system emacs-build-system) - ,@(maybe-inputs 'propagated-inputs dependencies) - (home-page ,(elpa-package-home-page pkg)) - (synopsis ,(elpa-package-synopsis pkg)) - (description ,(elpa-package-description pkg)) - (license ,license)))) + (values + `(package + (name ,(elpa-name->package-name name)) + (version ,version) + (source (origin + (method url-fetch) + (uri (string-append ,@(factorize-uri source-url version))) + (sha256 + (base32 + ,(if tarball + (bytevector->nix-base32-string (file-sha256 tarball)) + "failed to download package"))))) + (build-system emacs-build-system) + ,@(maybe-inputs 'propagated-inputs dependencies) + (home-page ,(elpa-package-home-page pkg)) + (synopsis ,(elpa-package-synopsis pkg)) + (description ,(elpa-package-description pkg)) + (license ,license)) + dependencies-names))) (define* (elpa->guix-package name #:optional (repo 'gnu)) "Fetch the package NAME from REPO and produce a Guix package S-expression." @@ -289,4 +295,11 @@ type ''." (pred package-from-gnu.org?) (latest latest-release))) +(define elpa-guix-name (cut guix-name "emacs-" <>)) + +(define* (elpa-recursive-import package-name #:optional (repo 'gnu)) + (recursive-import package-name repo + #:repo->guix-package elpa->guix-package + #:guix-name elpa-guix-name)) + ;;; elpa.scm ends here diff --git a/guix/import/gem.scm b/guix/import/gem.scm index 6e914d6290..646163fb7b 100644 --- a/guix/import/gem.scm +++ b/guix/import/gem.scm @@ -38,7 +38,7 @@ (define (rubygems-fetch name) "Return an alist representation of the RubyGems metadata for the package NAME, or #f on failure." - (json-fetch + (json-fetch-alist (string-append "https://rubygems.org/api/v1/gems/" name ".json"))) (define (ruby-package-name name) diff --git a/guix/import/github.scm b/guix/import/github.scm index 4b7d53c704..ef226911b9 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm @@ -22,31 +22,16 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) - #:use-module (json) #:use-module (guix utils) #:use-module ((guix download) #:prefix download:) #:use-module (guix import utils) + #:use-module (guix import json) #:use-module (guix packages) #:use-module (guix upstream) #:use-module (guix http-client) #:use-module (web uri) #:export (%github-updater)) -(define (json-fetch* url) - "Return a representation of the JSON resource URL (a list or hash table), or -#f if URL returns 403 or 404." - (guard (c ((and (http-get-error? c) - (let ((error (http-get-error-code c))) - (or (= 403 error) - (= 404 error)))) - #f)) ;; "expected" if there is an authentification error (403), - ;; or if package is unknown (404). - ;; Note: github.com returns 403 if we omit a 'User-Agent' header. - (let* ((port (http-fetch url)) - (result (json->scm port))) - (close-port port) - result))) - (define (find-extension url) "Return the extension of the archive e.g. '.tar.gz' given a URL, or false if none is recognized" @@ -144,7 +129,7 @@ the package e.g. 'bedtools2'. Return #f if there is no releases" "https://api.github.com/repos/" (github-user-slash-repository url) "/releases")) - (json (json-fetch* + (json (json-fetch (if token (string-append api-url "?access_token=" token) api-url)))) diff --git a/guix/import/json.scm b/guix/import/json.scm index c76bc9313c..3f2ab1e3ea 100644 --- a/guix/import/json.scm +++ b/guix/import/json.scm @@ -22,15 +22,25 @@ #:use-module (guix http-client) #:use-module (guix import utils) #:use-module (srfi srfi-34) - #:export (json-fetch)) + #:export (json-fetch + json-fetch-alist)) (define (json-fetch url) - "Return an alist representation of the JSON resource URL, or #f on failure." + "Return a representation of the JSON resource URL (a list or hash table), or +#f if URL returns 403 or 404." (guard (c ((and (http-get-error? c) - (= 404 (http-get-error-code c))) - #f)) ;"expected" if package is unknown - (let* ((port (http-fetch url #:headers '((user-agent . "GNU Guile") - (Accept . "application/json")))) - (result (hash-table->alist (json->scm port)))) + (let ((error (http-get-error-code c))) + (or (= 403 error) + (= 404 error)))) + #f)) + ;; Note: many websites returns 403 if we omit a 'User-Agent' header. + (let* ((port (http-fetch url #:headers '((user-agent . "GNU Guile") + (Accept . "application/json")))) + (result (json->scm port))) (close-port port) result))) + +(define (json-fetch-alist url) + "Return an alist representation of the JSON resource URL, or #f if URL +returns 403 or 404." + (hash-table->alist (json-fetch url))) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index bb0db1ba85..6beab6b010 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -51,8 +51,8 @@ (define (pypi-fetch name) "Return an alist representation of the PyPI metadata for the package NAME, or #f on failure." - (json-fetch (string-append "https://pypi.python.org/pypi/" - name "/json"))) + (json-fetch-alist (string-append "https://pypi.python.org/pypi/" + name "/json"))) ;; For packages found on PyPI that lack a source distribution. (define-condition-type &missing-source-error &error diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm index 5b25adc674..ec93fbced6 100644 --- a/guix/import/stackage.scm +++ b/guix/import/stackage.scm @@ -60,7 +60,7 @@ (let* ((url (if (string=? "" version) (string-append %stackage-url "/lts") (string-append %stackage-url "/lts-" version))) - (lts-info (json-fetch url))) + (lts-info (json-fetch-alist url))) (if lts-info (reverse lts-info) (leave-with-message "LTS release version not found: ~a" version)))))) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index efc6169077..df85904c6f 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Jelle Licht ;;; Copyright © 2016 David Craven ;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,6 +40,8 @@ #:use-module (ice-9 regex) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-41) #:export (factorize-uri hash-table->alist @@ -61,7 +64,11 @@ alist->package read-lines - chunk-lines)) + chunk-lines + + guix-name + + recursive-import)) (define (factorize-uri uri version) "Factorize URI, a package tarball URI as a string, such that any occurrences @@ -357,3 +364,71 @@ separated by PRED." (if (null? after) (reverse res) (loop (cdr after) res)))))) + +(define (guix-name prefix name) + "Return a Guix package name for a given package name." + (string-append prefix (string-map (match-lambda + (#\_ #\-) + (#\. #\-) + (chr (char-downcase chr))) + name))) + +(define* (recursive-import package-name repo + #:key repo->guix-package guix-name + #:allow-other-keys) + "Generate a stream of package expressions for PACKAGE-NAME and all its +dependencies." + (receive (package . dependencies) + (repo->guix-package package-name repo) + (if (not package) + stream-null + + ;; Generate a lazy stream of package expressions for all unknown + ;; dependencies in the graph. + (let* ((make-state (lambda (queue done) + (cons queue done))) + (next (match-lambda + (((next . rest) . done) next))) + (imported (match-lambda + ((queue . done) done))) + (done? (match-lambda + ((queue . done) + (zero? (length queue))))) + (unknown? (lambda* (dependency #:optional (done '())) + (and (not (member dependency + done)) + (null? (find-packages-by-name + (guix-name dependency)))))) + (update (lambda (state new-queue) + (match state + (((head . tail) . done) + (make-state (lset-difference + equal? + (lset-union equal? new-queue tail) + done) + (cons head done))))))) + (stream-cons + package + (stream-unfold + ;; map: produce a stream element + (lambda (state) + (repo->guix-package (next state) repo)) + + ;; predicate + (negate done?) + + ;; generator: update the queue + (lambda (state) + (receive (package . dependencies) + (repo->guix-package package-name repo) + (if package + (update state (filter (cut unknown? <> + (cons (next state) + (imported state))) + (car dependencies))) + ;; TODO: Try the other archives before giving up + (update state (imported state))))) + + ;; initial state + (make-state (filter unknown? (car dependencies)) + (list package-name)))))))) diff --git a/guix/man-db.scm b/guix/man-db.scm index 732aef1083..4cef874f8b 100644 --- a/guix/man-db.scm +++ b/guix/man-db.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +19,7 @@ (define-module (guix man-db) #:use-module (guix zlib) #:use-module ((guix build utils) #:select (find-files)) + #:use-module (gdbm) ;gdbm-ffi #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) #:use-module (ice-9 match) @@ -44,9 +45,6 @@ ;;; ;;; Code: -;; Load 'gdbm-ffi' at run time to simplify the job of 'imported-modules' & co. -(module-autoload! (current-module) '(gdbm) '(gdbm-open GDBM_WRCREAT)) - (define-record-type (mandb-entry file-name name section synopsis kind) mandb-entry? diff --git a/guix/packages.scm b/guix/packages.scm index b5c0b60440..c762fa7c39 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès -;;; Copyright © 2014, 2015, 2017 Mark H Weaver +;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2017 Efraim Flashner @@ -35,6 +35,7 @@ #:use-module (guix sets) #:use-module (ice-9 match) #:use-module (ice-9 vlist) + #:use-module (ice-9 regex) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-11) @@ -106,6 +107,7 @@ package-cross-derivation package-output package-grafts + package-patched-vulnerabilities package/inherit transitive-input-references @@ -388,10 +390,37 @@ object." (define-condition-type &package-cross-build-system-error &package-error package-cross-build-system-error?) +(define* (package-full-name package #:optional (delimiter "@")) + "Return the full name of PACKAGE--i.e., `NAME@VERSION'. By specifying +DELIMITER (a string), you can customize what will appear between the name and +the version. By default, DELIMITER is \"@\"." + (string-append (package-name package) delimiter (package-version package))) -(define (package-full-name package) - "Return the full name of PACKAGE--i.e., `NAME-VERSION'." - (string-append (package-name package) "-" (package-version package))) +(define (patch-file-name patch) + "Return the basename of PATCH's file name, or #f if the file name could not +be determined." + (match patch + ((? string?) + (basename patch)) + ((? origin?) + (and=> (origin-actual-file-name patch) basename)))) + +(define %vulnerability-regexp + ;; Regexp matching a CVE identifier in patch file names. + (make-regexp "CVE-[0-9]{4}-[0-9]+")) + +(define (package-patched-vulnerabilities package) + "Return the list of patched vulnerabilities of PACKAGE as a list of CVE +identifiers. The result is inferred from the file names of patches." + (define (patch-vulnerabilities patch) + (map (cut match:substring <> 0) + (list-matches %vulnerability-regexp patch))) + + (let ((patches (filter-map patch-file-name + (or (and=> (package-source package) + origin-patches) + '())))) + (append-map patch-vulnerabilities patches))) (define (%standard-patch-inputs) (let* ((canonical (module-ref (resolve-interface '(gnu packages base)) @@ -519,9 +548,9 @@ specifies modules in scope when evaluating SNIPPET." ;; Use '--force' so that patches that do not apply perfectly are ;; rejected. Use '--no-backup-if-mismatch' to prevent making ;; "*.orig" file if a patch is applied with offset. - (zero? (system* (string-append #+patch "/bin/patch") - "--force" "--no-backup-if-mismatch" - #+@flags "--input" patch))) + (invoke (string-append #+patch "/bin/patch") + "--force" "--no-backup-if-mismatch" + #+@flags "--input" patch)) (define (first-file directory) ;; Return the name of the first file in DIRECTORY. @@ -546,64 +575,74 @@ specifies modules in scope when evaluating SNIPPET." #+decomp "/bin")) ;; SOURCE may be either a directory or a tarball. - (and (if (file-is-directory? #+source) - (let* ((store (%store-directory)) - (len (+ 1 (string-length store))) - (base (string-drop #+source len)) - (dash (string-index base #\-)) - (directory (string-drop base (+ 1 dash)))) - (mkdir directory) - (copy-recursively #+source directory) - #t) - #+(if (string=? decompression-type "unzip") - #~(zero? (system* "unzip" #+source)) - #~(zero? (system* (string-append #+tar "/bin/tar") - "xvf" #+source)))) - (let ((directory (first-file "."))) - (format (current-error-port) - "source is under '~a'~%" directory) - (chdir directory) + (if (file-is-directory? #+source) + (let* ((store (%store-directory)) + (len (+ 1 (string-length store))) + (base (string-drop #+source len)) + (dash (string-index base #\-)) + (directory (string-drop base (+ 1 dash)))) + (mkdir directory) + (copy-recursively #+source directory)) + #+(if (string=? decompression-type "unzip") + #~(invoke "unzip" #+source) + #~(invoke (string-append #+tar "/bin/tar") + "xvf" #+source))) - (and (every apply-patch '#+patches) - #+@(if snippet - #~((let ((module (make-fresh-user-module))) - (module-use-interfaces! - module - (map resolve-interface '#+modules)) - ((@ (system base compile) compile) - '#+snippet - #:to 'value - #:opts %auto-compilation-options - #:env module))) - #~()) + (let ((directory (first-file "."))) + (format (current-error-port) + "source is under '~a'~%" directory) + (chdir directory) - (begin (chdir "..") #t) + (for-each apply-patch '#+patches) - (unless tar-supports-sort? - (call-with-output-file ".file_list" - (lambda (port) - (for-each (lambda (name) - (format port "~a~%" name)) - (find-files directory - #:directories? #t - #:fail-on-error? #t))))) - (zero? (apply system* - (string-append #+tar "/bin/tar") - "cvf" #$output - ;; The bootstrap xz does not support - ;; threaded compression (introduced in - ;; 5.2.0), but it ignores the extra flag. - (string-append "--use-compress-program=" - #+xz "/bin/xz --threads=0") - ;; avoid non-determinism in the archive - "--mtime=@0" - "--owner=root:0" - "--group=root:0" - (if tar-supports-sort? - `("--sort=name" - ,directory) - '("--no-recursion" - "--files-from=.file_list")))))))))) + (let ((result #+(if snippet + #~(let ((module (make-fresh-user-module))) + (module-use-interfaces! + module + (map resolve-interface '#+modules)) + ((@ (system base compile) compile) + '#+snippet + #:to 'value + #:opts %auto-compilation-options + #:env module)) + #~#t))) + ;; Issue a warning unless the result is #t. + (unless (eqv? result #t) + (format (current-error-port) "\ +## WARNING: the snippet returned `~s'. Return values other than #t +## are deprecated. Please migrate this package so that its snippet +## reports errors by raising an exception, and otherwise returns #t.~%" + result)) + (unless result + (error "snippet returned false"))) + + (chdir "..") + + (unless tar-supports-sort? + (call-with-output-file ".file_list" + (lambda (port) + (for-each (lambda (name) + (format port "~a~%" name)) + (find-files directory + #:directories? #t + #:fail-on-error? #t))))) + (apply invoke + (string-append #+tar "/bin/tar") + "cvf" #$output + ;; The bootstrap xz does not support + ;; threaded compression (introduced in + ;; 5.2.0), but it ignores the extra flag. + (string-append "--use-compress-program=" + #+xz "/bin/xz --threads=0") + ;; avoid non-determinism in the archive + "--mtime=@0" + "--owner=root:0" + "--group=root:0" + (if tar-supports-sort? + `("--sort=name" + ,directory) + '("--no-recursion" + "--files-from=.file_list"))))))) (let ((name (tarxz-name original-file-name))) (gexp->derivation name build @@ -935,6 +974,10 @@ and return it." (($ name version source build-system args inputs propagated-inputs native-inputs self-native-input? outputs) + ;; Even though we prefer to use "@" to separate the package + ;; name from the package version in various user-facing parts + ;; of Guix, checkStoreName (in nix/libstore/store-api.cc) + ;; prohibits the use of "@", so use "-" instead. (or (make-bag build-system (string-append name "-" version) #:system system #:target target diff --git a/guix/profiles.scm b/guix/profiles.scm index 95dc9746bd..ebd7da2a24 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -25,6 +25,7 @@ ;;; along with GNU Guix. If not, see . (define-module (guix profiles) + #:use-module ((guix config) #:select (%state-directory)) #:use-module ((guix utils) #:hide (package-name->name+version)) #:use-module ((guix build utils) #:select (package-name->name+version)) @@ -77,6 +78,7 @@ manifest-entry-dependencies manifest-entry-search-paths manifest-entry-parent + manifest-entry-properties manifest-pattern manifest-pattern? @@ -118,7 +120,13 @@ generation-file-name switch-to-generation roll-back - delete-generation)) + delete-generation + + %user-profile-directory + %profile-directory + %current-profile + canonicalize-profile + user-friendly-profile)) ;;; Commentary: ;;; @@ -168,13 +176,15 @@ (version manifest-entry-version) ; string (output manifest-entry-output ; string (default "out")) - (item manifest-entry-item) ; package | store path + (item manifest-entry-item) ; package | file-like | store path (dependencies manifest-entry-dependencies ; * (default '())) (search-paths manifest-entry-search-paths ; search-path-specification* (default '())) (parent manifest-entry-parent ; promise (#f | ) - (default (delay #f)))) + (default (delay #f))) + (properties manifest-entry-properties ; list of symbol/value pairs + (default '()))) (define-record-type* manifest-pattern make-manifest-pattern @@ -313,18 +323,20 @@ denoting a specific output of a package." (define (entry->gexp entry) (match entry (($ name version output (? string? path) - (deps ...) (search-paths ...)) + (deps ...) (search-paths ...) _ (properties ...)) #~(#$name #$version #$output #$path (propagated-inputs #$(map entry->gexp deps)) (search-paths #$(map search-path-specification->sexp - search-paths)))) - (($ name version output (? package? package) - (deps ...) (search-paths ...)) + search-paths)) + (properties . #$properties))) + (($ name version output package + (deps ...) (search-paths ...) _ (properties ...)) #~(#$name #$version #$output (ungexp package (or output "out")) (propagated-inputs #$(map entry->gexp deps)) (search-paths #$(map search-path-specification->sexp - search-paths)))))) + search-paths)) + (properties . #$properties))))) (match manifest (($ (entries ...)) @@ -387,7 +399,9 @@ procedure is here for backward-compatibility and will eventually vanish." (dependencies deps*) (search-paths (map sexp->search-path-specification search-paths)) - (parent parent)))) + (parent parent) + (properties (or (assoc-ref extra-stuff 'properties) + '()))))) entry)))) (match sexp @@ -671,7 +685,13 @@ if not found." (return (find-among-inputs inputs))))) ((? string? item) (mlet %store-monad ((refs (references* item))) - (return (find-among-store-items refs))))))) + (return (find-among-store-items refs)))) + (item + ;; XXX: ITEM might be a 'computed-file' or anything like that, in + ;; which case we don't know what to do. The fix may be to check + ;; references once ITEM is compiled, as proposed at + ;; . + (return #f))))) (anym %store-monad entry-lookup-package (manifest-entries manifest))) @@ -837,6 +857,57 @@ MANIFEST. Single-file bundles are required by programs such as Git and Lynx." #:local-build? #t #:substitutable? #f)) +(define (glib-schemas manifest) + "Return a derivation that unions all schemas from manifest entries and +creates the Glib 'gschemas.compiled' file." + (define glib ; lazy reference + (module-ref (resolve-interface '(gnu packages glib)) 'glib)) + + (mlet %store-monad ((%glib (manifest-lookup-package manifest "glib")) + ;; XXX: Can't use glib-compile-schemas corresponding + ;; to the glib referenced by 'manifest'. Because + ;; '%glib' can be either a package or store path, and + ;; there's no way to get the "bin" output for the later. + (glib-compile-schemas + -> #~(string-append #+glib:bin + "/bin/glib-compile-schemas"))) + + (define build + (with-imported-modules '((guix build utils) + (guix build union) + (guix build profiles) + (guix search-paths) + (guix records)) + #~(begin + (use-modules (guix build utils) + (guix build union) + (guix build profiles) + (srfi srfi-26)) + + (let* ((destdir (string-append #$output "/share/glib-2.0/schemas")) + (schemadirs (filter file-exists? + (map (cut string-append <> "/share/glib-2.0/schemas") + '#$(manifest-inputs manifest))))) + + ;; Union all the schemas. + (mkdir-p (string-append #$output "/share/glib-2.0")) + (union-build destdir schemadirs + #:log-port (%make-void-port "w")) + + (let ((dir destdir)) + (when (file-is-directory? dir) + (ensure-writable-directory dir) + (invoke #+glib-compile-schemas + (string-append "--targetdir=" dir) + dir))))))) + + ;; Don't run the hook when there's nothing to do. + (if %glib + (gexp->derivation "glib-schemas" build + #:local-build? #t + #:substitutable? #f) + (return #f)))) + (define (gtk-icon-themes manifest) "Return a derivation that unions all icon themes from manifest entries and creates the GTK+ 'icon-theme.cache' file for each theme." @@ -1139,41 +1210,39 @@ the entries in MANIFEST." (define build (with-imported-modules modules - #~(begin - (add-to-load-path (string-append #$gdbm-ffi "/share/guile/site/" - (effective-version))) + (with-extensions (list gdbm-ffi) ;for (guix man-db) + #~(begin + (use-modules (guix man-db) + (guix build utils) + (srfi srfi-1) + (srfi srfi-19)) - (use-modules (guix man-db) - (guix build utils) - (srfi srfi-1) - (srfi srfi-19)) + (define (compute-entries) + (append-map (lambda (directory) + (let ((man (string-append directory "/share/man"))) + (if (directory-exists? man) + (mandb-entries man) + '()))) + '#$(manifest-inputs manifest))) - (define (compute-entries) - (append-map (lambda (directory) - (let ((man (string-append directory "/share/man"))) - (if (directory-exists? man) - (mandb-entries man) - '()))) - '#$(manifest-inputs manifest))) + (define man-directory + (string-append #$output "/share/man")) - (define man-directory - (string-append #$output "/share/man")) + (mkdir-p man-directory) - (mkdir-p man-directory) - - (format #t "Creating manual page database...~%") - (force-output) - (let* ((start (current-time)) - (entries (compute-entries)) - (_ (write-mandb-database (string-append man-directory - "/index.db") - entries)) - (duration (time-difference (current-time) start))) - (format #t "~a entries processed in ~,1f s~%" - (length entries) - (+ (time-second duration) - (* (time-nanosecond duration) (expt 10 -9)))) - (force-output))))) + (format #t "Creating manual page database...~%") + (force-output) + (let* ((start (current-time)) + (entries (compute-entries)) + (_ (write-mandb-database (string-append man-directory + "/index.db") + entries)) + (duration (time-difference (current-time) start))) + (format #t "~a entries processed in ~,1f s~%" + (length entries) + (+ (time-second duration) + (* (time-nanosecond duration) (expt 10 -9)))) + (force-output)))))) (gexp->derivation "manual-database" build @@ -1192,6 +1261,7 @@ the entries in MANIFEST." fonts-dir-file ghc-package-cache-file ca-certificate-bundle + glib-schemas gtk-icon-themes gtk-im-modules xdg-desktop-database @@ -1202,6 +1272,7 @@ the entries in MANIFEST." (hooks %default-profile-hooks) (locales? #t) (allow-collisions? #f) + (relative-symlinks? #f) system target) "Return a derivation that builds a profile (aka. 'user environment') with the given MANIFEST. The profile includes additional derivations returned by @@ -1213,6 +1284,9 @@ with a different version number.) When LOCALES? is true, the build is performed under a UTF-8 locale; this adds a dependency on the 'glibc-utf8-locales' package. +When RELATIVE-SYMLINKS? is true, use relative file names for symlink targets. +This is one of the things to do for the result to be relocatable. + When TARGET is true, it must be a GNU triplet, and the packages in MANIFEST are cross-built for TARGET." (mlet* %store-monad ((system (if system @@ -1275,6 +1349,9 @@ are cross-built for TARGET." (manifest-entries manifest)))))) (build-profile #$output '#$inputs + #:symlink #$(if relative-symlinks? + #~symlink-relative + #~symlink) #:manifest '#$(manifest->gexp manifest) #:search-paths search-paths)))) @@ -1452,4 +1529,44 @@ because the NUMBER is zero.)" (else (delete-and-return))))) +(define %user-profile-directory + (and=> (getenv "HOME") + (cut string-append <> "/.guix-profile"))) + +(define %profile-directory + (string-append %state-directory "/profiles/" + (or (and=> (or (getenv "USER") + (getenv "LOGNAME")) + (cut string-append "per-user/" <>)) + "default"))) + +(define %current-profile + ;; Call it `guix-profile', not `profile', to allow Guix profiles to + ;; coexist with Nix profiles. + (string-append %profile-directory "/guix-profile")) + +(define (canonicalize-profile profile) + "If PROFILE is %USER-PROFILE-DIRECTORY, return %CURRENT-PROFILE. Otherwise +return PROFILE unchanged. The goal is to treat '-p ~/.guix-profile' as if +'-p' was omitted." ; see + + ;; Trim trailing slashes so that the basename comparison below works as + ;; intended. + (let ((profile (string-trim-right profile #\/))) + (if (and %user-profile-directory + (string=? (canonicalize-path (dirname profile)) + (dirname %user-profile-directory)) + (string=? (basename profile) (basename %user-profile-directory))) + %current-profile + profile))) + +(define (user-friendly-profile profile) + "Return either ~/.guix-profile if that's what PROFILE refers to, directly or +indirectly, or PROFILE." + (if (and %user-profile-directory + (false-if-exception + (string=? (readlink %user-profile-directory) profile))) + %user-profile-directory + profile)) + ;;; profiles.scm ends here diff --git a/guix/records.scm b/guix/records.scm index c02395f2ae..da3ecdaaf8 100644 --- a/guix/records.scm +++ b/guix/records.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,13 +52,48 @@ ((weird _ ...) ;weird! (syntax-violation name "invalid field specifier" #'weird))))) +(define (print-record-abi-mismatch-error port key args + default-printer) + (match args + ((rtd . _) + ;; The source file where this exception is thrown must be recompiled. + (format port "ERROR: ~a: record ABI mismatch; recompilation needed" + rtd)))) + +(set-exception-printer! 'record-abi-mismatch-error + print-record-abi-mismatch-error) + +(eval-when (expand load eval) + ;; The procedures below are needed both at run time and at expansion time. + + (define (current-abi-identifier type) + "Return an identifier unhygienically derived from TYPE for use as its +\"current ABI\" variable." + (let ((type-name (syntax->datum type))) + (datum->syntax + type + (string->symbol + (string-append "% " (symbol->string type-name) + " abi-cookie"))))) + + (define (abi-check type cookie) + "Return syntax that checks that the current \"application binary +interface\" (ABI) for TYPE is equal to COOKIE." + (with-syntax ((current-abi (current-abi-identifier type))) + #`(unless (eq? current-abi #,cookie) + (throw 'record-abi-mismatch-error #,type))))) + (define-syntax make-syntactic-constructor (syntax-rules () "Make the syntactic constructor NAME for TYPE, that calls CTOR, and expects all of EXPECTED fields to be initialized. DEFAULTS is the list of FIELD/DEFAULT-VALUE tuples, THUNKED is the list of identifiers of thunked -fields, and DELAYED is the list of identifiers of delayed fields." +fields, and DELAYED is the list of identifiers of delayed fields. + +ABI-COOKIE is the cookie (an integer) against which to check the run-time ABI +of TYPE matches the expansion-time ABI." ((_ type name ctor (expected ...) + #:abi-cookie abi-cookie #:thunked thunked #:delayed delayed #:innate innate @@ -130,6 +165,7 @@ fields, and DELAYED is the list of identifiers of delayed fields." (syntax-case s (inherit expected ...) ((_ (inherit orig-record) (field value) (... ...)) #`(let* #,(field-bindings #'((field value) (... ...))) + #,(abi-check #'type abi-cookie) #,(record-inheritance #'orig-record #'((field value) (... ...))))) ((_ (field value) (... ...)) @@ -144,6 +180,7 @@ fields, and DELAYED is the list of identifiers of delayed fields." (cond ((lset= eq? fields '(expected ...)) #`(let* #,(field-bindings #'((field value) (... ...))) + #,(abi-check #'type abi-cookie) (ctor #,@(map field-value '(expected ...))))) ((pair? (lset-difference eq? fields '(expected ...))) @@ -270,6 +307,16 @@ inherited." ;; The real value of that field is a promise, so force it. (force (real-get x))))))) + (define (compute-abi-cookie field-specs) + ;; Compute an "ABI cookie" for the given FIELD-SPECS. We use + ;; 'string-hash' because that's a better hash function that 'hash' on a + ;; list of symbols. + (syntax-case field-specs () + (((field get properties ...) ...) + (string-hash (object->string + (syntax->datum #'((field properties ...) ...))) + most-positive-fixnum)))) + (syntax-case s () ((_ type syntactic-ctor ctor pred (field get properties ...) ...) @@ -278,7 +325,8 @@ inherited." (delayed (filter-map delayed-field? field-spec)) (innate (filter-map innate-field? field-spec)) (defaults (filter-map field-default-value - #'((field properties ...) ...)))) + #'((field properties ...) ...))) + (cookie (compute-abi-cookie field-spec))) (with-syntax (((field-spec* ...) (map field-spec->srfi-9 field-spec)) ((thunked-field-accessor ...) @@ -298,10 +346,13 @@ inherited." (ctor field ...) pred field-spec* ...) + (define #,(current-abi-identifier #'type) + #,cookie) thunked-field-accessor ... delayed-field-accessor ... (make-syntactic-constructor type syntactic-ctor ctor (field ...) + #:abi-cookie #,cookie #:thunked #,thunked #:delayed #,delayed #:innate #,innate diff --git a/guix/scripts.scm b/guix/scripts.scm index 4a7ae7baa3..4cbbbeb96f 100644 --- a/guix/scripts.scm +++ b/guix/scripts.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014 Deck Pickard ;;; Copyright © 2015, 2016 Alex Kost ;;; @@ -170,7 +170,7 @@ Show what and how will/would be built." (define age (match (false-if-not-found (lstat (string-append (config-directory #:ensure? #f) - "/latest"))) + "/current"))) (#f #f) (stat (- (time-second (current-time time-utc)) (stat:mtime stat))))) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 401087e830..4dd4fbccdf 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -661,43 +661,47 @@ build." (define system (assoc-ref opts 'system)) (define graft? (assoc-ref opts 'graft?)) - (parameterize ((%graft? graft?)) - (append-map (match-lambda - ((? package? p) - (let ((p (or (and graft? (package-replacement p)) p))) - (match src - (#f - (list (package->derivation store p system))) - (#t - (match (package-source p) - (#f - (format (current-error-port) - (G_ "~a: warning: \ + ;; We may get 'unbound-variable' errors while evaluating the 'inputs' fields + ;; of user packages. Since 'guix build' is the primary tool for people + ;; testing new packages, report such errors gracefully. + (with-unbound-variable-handling + (parameterize ((%graft? graft?)) + (append-map (match-lambda + ((? package? p) + (let ((p (or (and graft? (package-replacement p)) p))) + (match src + (#f + (list (package->derivation store p system))) + (#t + (match (package-source p) + (#f + (format (current-error-port) + (G_ "~a: warning: \ package '~a' has no source~%") - (location->string (package-location p)) - (package-name p)) - '()) - (s - (list (package-source-derivation store s))))) - (proc - (map (cut package-source-derivation store <>) - (proc p)))))) - ((? derivation? drv) - (list drv)) - ((? procedure? proc) - (list (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (proc)) - #:system system))) - ((? gexp? gexp) - (list (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (gexp->derivation "gexp" gexp - #:system system)))))) - (map (cut transform store <>) - (options->things-to-build opts))))) + (location->string (package-location p)) + (package-name p)) + '()) + (s + (list (package-source-derivation store s))))) + (proc + (map (cut package-source-derivation store <>) + (proc p)))))) + ((? derivation? drv) + (list drv)) + ((? procedure? proc) + (list (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (proc)) + #:system system))) + ((? gexp? gexp) + (list (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (gexp->derivation "gexp" gexp + #:system system)))))) + (map (cut transform store <>) + (options->things-to-build opts)))))) (define (show-build-log store file urls) "Show the build log for FILE, falling back to remote logs from URLS if diff --git a/guix/scripts/import/cran.scm b/guix/scripts/import/cran.scm index d65c644c05..30ae6d4342 100644 --- a/guix/scripts/import/cran.scm +++ b/guix/scripts/import/cran.scm @@ -99,8 +99,10 @@ Import and convert the CRAN package for PACKAGE-NAME.\n")) `(define-public ,(string->symbol name) ,pkg)) (_ #f)) - (reverse (stream->list (recursive-import package-name - (or (assoc-ref opts 'repo) 'cran))))) + (reverse + (stream->list + (cran-recursive-import package-name + (or (assoc-ref opts 'repo) 'cran))))) ;; Single import (let ((sexp (cran->guix-package package-name (or (assoc-ref opts 'repo) 'cran)))) diff --git a/guix/scripts/import/elpa.scm b/guix/scripts/import/elpa.scm index 34eb16485e..f1ed5016ba 100644 --- a/guix/scripts/import/elpa.scm +++ b/guix/scripts/import/elpa.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Federico Beffa +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,10 +22,12 @@ #:use-module (guix utils) #:use-module (guix scripts) #:use-module (guix import elpa) + #:use-module (guix import utils) #:use-module (guix scripts import) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-37) + #:use-module (srfi srfi-41) #:use-module (ice-9 match) #:use-module (ice-9 format) #:export (guix-import-elpa)) @@ -45,6 +48,8 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n")) (display (G_ " -h, --help display this help and exit")) (display (G_ " + -r, --recursive generate package expressions for all Emacs packages that are not yet in Guix")) + (display (G_ " -V, --version display version information and exit")) (newline) (show-bug-report-information)) @@ -62,6 +67,9 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n")) (lambda (opt name arg result) (alist-cons 'repo (string->symbol arg) (alist-delete 'repo result)))) + (option '(#\r "recursive") #f #f + (lambda (opt name arg result) + (alist-cons 'recursive #t result))) %standard-import-options)) @@ -87,10 +95,20 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n")) (reverse opts)))) (match args ((package-name) - (let ((sexp (elpa->guix-package package-name (assoc-ref opts 'repo)))) - (unless sexp - (leave (G_ "failed to download package '~a'~%") package-name)) - sexp)) + (if (assoc-ref opts 'recursive) + (map (match-lambda + ((and ('package ('name name) . rest) pkg) + `(define-public ,(string->symbol name) + ,pkg)) + (_ #f)) + (reverse + (stream->list + (elpa-recursive-import package-name + (or (assoc-ref opts 'repo) 'gnu))))) + (let ((sexp (elpa->guix-package package-name (assoc-ref opts 'repo)))) + (unless sexp + (leave (G_ "failed to download package '~a'~%") package-name)) + sexp))) (() (leave (G_ "too few arguments~%"))) ((many ...) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 4ec3267007..e477bf0ddc 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Cyril Roelandt ;;; Copyright © 2014, 2015 Eric Bavier -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016 Hartmut Goebel @@ -809,15 +809,6 @@ descriptions maintained upstream." (emit-warning package (G_ "invalid license field") 'license)))) -(define (patch-file-name patch) - "Return the basename of PATCH's file name, or #f if the file name could not -be determined." - (match patch - ((? string?) - (basename patch)) - ((? origin?) - (and=> (origin-actual-file-name patch) basename)))) - (define (call-with-networking-fail-safe message error-value proc) "Call PROC catching any network-related errors. Upon a networking error, display a message including MESSAGE and return ERROR-VALUE." @@ -878,20 +869,14 @@ the NIST server non-fatal." (() #t) ((vulnerabilities ...) - (let* ((patches (filter-map patch-file-name - (or (and=> (package-source package) - origin-patches) - '()))) + (let* ((patched (package-patched-vulnerabilities package)) (known-safe (or (assq-ref (package-properties package) 'lint-hidden-cve) '())) (unpatched (remove (lambda (vuln) (let ((id (vulnerability-id vuln))) - (or - (find (cute string-contains - <> id) - patches) - (member id known-safe)))) + (or (member id patched) + (member id known-safe)))) vulnerabilities))) (unless (null? unpatched) (emit-warning package @@ -1037,7 +1022,7 @@ them for PACKAGE." (check check-inputs-should-be-native)) (lint-checker (name 'inputs-should-not-be-input) - (description "Identify inputs that should be inputs at all") + (description "Identify inputs that shouldn't be inputs at all") (check check-inputs-should-not-be-an-input-at-all)) (lint-checker (name 'patch-file-names) diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 56d6de6308..fb61d7c059 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. @@ -494,6 +494,30 @@ slot (which must later be released with 'release-build-slot'), or #f and #f." (() (values #f #f)))))) +(define (call-with-timeout timeout drv thunk) + "Call THUNK and leave after TIMEOUT seconds. If TIMEOUT is #f, simply call +THUNK. Use DRV as an indication of what we were building when the timeout +expired." + (if (number? timeout) + (dynamic-wind + (lambda () + (sigaction SIGALRM + (lambda _ + ;; The exit code here will be 1, which guix-daemon will + ;; interpret as a transient failure. + (leave (G_ "timeout expired while offloading '~a'~%") + (derivation-file-name drv)))) + (alarm timeout)) + thunk + (lambda () + (alarm 0))) + (thunk))) + +(define-syntax-rule (with-timeout timeout drv exp ...) + "Evaluate EXP... and leave after TIMEOUT seconds if EXP hasn't completed. +If TIMEOUT is #f, simply evaluate EXP..." + (call-with-timeout timeout drv (lambda () exp ...))) + (define* (process-request wants-local? system drv features #:key print-build-trace? (max-silent-time 3600) @@ -520,13 +544,18 @@ slot (which must later be released with 'release-build-slot'), or #f and #f." (display "# accept\n") (let ((inputs (string-tokenize (read-line))) (outputs (string-tokenize (read-line)))) - (transfer-and-offload drv machine - #:inputs inputs - #:outputs outputs - #:max-silent-time max-silent-time - #:build-timeout build-timeout - #:print-build-trace? - print-build-trace?))) + ;; Even if BUILD-TIMEOUT is honored by MACHINE, there can + ;; be issues with the connection or deadlocks that could + ;; lead the 'guix offload' process to remain stuck forever. + ;; To avoid that, install a timeout here as well. + (with-timeout build-timeout drv + (transfer-and-offload drv machine + #:inputs inputs + #:outputs outputs + #:max-silent-time max-silent-time + #:build-timeout build-timeout + #:print-build-trace? + print-build-trace?)))) (lambda () (release-build-slot slot))) @@ -755,6 +784,7 @@ This tool is meant to be used internally by 'guix-daemon'.\n")) ;;; eval: (put 'with-machine-lock 'scheme-indent-function 2) ;;; eval: (put 'with-file-lock 'scheme-indent-function 1) ;;; eval: (put 'with-error-to-port 'scheme-indent-function 1) +;;; eval: (put 'with-timeout 'scheme-indent-function 2) ;;; End: ;;; offload.scm ends here diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 488638adc5..76729d8e10 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2017 Ludovic Courtès +;;; Copyright © 2015, 2017, 2018 Ludovic Courtès ;;; Copyright © 2017 Efraim Flashner -;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017, 2018 Ricardo Wurmus ;;; Copyright © 2018 Konrad Hinsen ;;; Copyright © 2018 Chris Marusich ;;; @@ -32,17 +32,20 @@ #:use-module (guix packages) #:use-module (guix profiles) #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system gnu) #:use-module (guix scripts build) #:use-module (gnu packages) #:use-module (gnu packages bootstrap) #:use-module (gnu packages compression) #:use-module (gnu packages guile) - #:autoload (gnu packages base) (tar) + #:use-module (gnu packages base) #:autoload (gnu packages package-management) (guix) #:autoload (gnu packages gnupg) (libgcrypt) #:autoload (gnu packages guile) (guile2.0-json guile-json) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-37) #:use-module (ice-9 match) #:export (compressor? @@ -90,7 +93,7 @@ found." (compressor (first %compressors)) localstatedir? (symlinks '()) - (tar tar)) + (archiver tar)) "Return a self-contained tarball containing a store initialized with the closure of PROFILE, a derivation. The tarball contains /gnu/store; if LOCALSTATEDIR? is true, it also contains /var/guix, including /var/guix/db @@ -99,11 +102,14 @@ with a properly initialized store database. SYMLINKS must be a list of (SOURCE -> TARGET) tuples denoting symlinks to be added to the pack." (define build - (with-imported-modules '((guix build utils) - (guix build store-copy) - (gnu build install)) + (with-imported-modules (source-module-closure + '((guix build utils) + (guix build union) + (guix build store-copy) + (gnu build install))) #~(begin (use-modules (guix build utils) + ((guix build union) #:select (relative-file-name)) (gnu build install) (srfi srfi-1) (srfi srfi-26) @@ -116,9 +122,17 @@ added to the pack." ;; parent directories. (match-lambda ((source '-> target) - (let ((target (string-append #$profile "/" target))) - `((directory ,(dirname source)) - (,source -> ,target)))))) + (let ((target (string-append #$profile "/" target)) + (parent (dirname source))) + ;; Never add a 'directory' directive for "/" so as to + ;; preserve its ownnership when extracting the archive (see + ;; below), and also because this would lead to adding the + ;; same entries twice in the tarball. + `(,@(if (string=? parent "/") + '() + `((directory ,parent))) + (,source + -> ,(relative-file-name parent target))))))) (define directives ;; Fully-qualified symlinks. @@ -128,7 +142,7 @@ added to the pack." ;; 2014-07-28. For testing, we use the bootstrap tar, which is ;; older and doesn't support it. (define tar-supports-sort? - (zero? (system* (string-append #+tar "/bin/tar") + (zero? (system* (string-append #+archiver "/bin/tar") "cf" "/dev/null" "--files-from=/dev/null" "--sort=name"))) @@ -137,11 +151,13 @@ added to the pack." (string-append #$(if localstatedir? (file-append guix "/sbin:") "") - #$tar "/bin")) + #$archiver "/bin")) - ;; Note: there is not much to gain here with deduplication and - ;; there is the overhead of the '.links' directory, so turn it - ;; off. + ;; Note: there is not much to gain here with deduplication and there + ;; is the overhead of the '.links' directory, so turn it off. + ;; Furthermore GNU tar < 1.30 sometimes fails to extract tarballs + ;; with hard links: + ;; . (populate-single-profile-directory %root #:profile #$profile #:closure "profile" @@ -188,6 +204,8 @@ added to the pack." (filter-map (match-lambda (('directory directory) (string-append "." directory)) + ((source '-> _) + (string-append "." source)) (_ #f)) directives))))))))) @@ -196,13 +214,97 @@ added to the pack." build #:references-graphs `(("profile" ,profile)))) +(define* (squashfs-image name profile + #:key target + deduplicate? + (compressor (first %compressors)) + localstatedir? + (symlinks '()) + (archiver squashfs-tools-next)) + "Return a squashfs image containing a store initialized with the closure of +PROFILE, a derivation. The image contains a subset of /gnu/store, empty mount +points for virtual file systems (like procfs), and optional symlinks. + +SYMLINKS must be a list of (SOURCE -> TARGET) tuples denoting symlinks to be +added to the pack." + (define build + (with-imported-modules '((guix build utils) + (guix build store-copy) + (gnu build install)) + #~(begin + (use-modules (guix build utils) + (gnu build install) + (guix build store-copy) + (srfi srfi-1) + (srfi srfi-26) + (ice-9 match)) + + (setenv "PATH" (string-append #$archiver "/bin")) + + ;; We need an empty file in order to have a valid file argument when + ;; we reparent the root file system. Read on for why that's + ;; necessary. + (with-output-to-file ".empty" (lambda () (display ""))) + + ;; Create the squashfs image in several steps. + ;; Add all store items. Unfortunately mksquashfs throws away all + ;; ancestor directories and only keeps the basename. We fix this + ;; in the following invocations of mksquashfs. + (apply invoke "mksquashfs" + `(,@(call-with-input-file "profile" + read-reference-graph) + ,#$output + + ;; Do not perform duplicate checking because we + ;; don't have any dupes. + "-no-duplicates" + "-comp" + ,#+(compressor-name compressor))) + + ;; Here we reparent the store items. For each sub-directory of + ;; the store prefix we need one invocation of "mksquashfs". + (for-each (lambda (dir) + (apply invoke "mksquashfs" + `(".empty" + ,#$output + "-root-becomes" ,dir))) + (reverse (string-tokenize (%store-directory) + (char-set-complement (char-set #\/))))) + + ;; Add symlinks and mount points. + (apply invoke "mksquashfs" + `(".empty" + ,#$output + ;; Create SYMLINKS via pseudo file definitions. + ,@(append-map + (match-lambda + ((source '-> target) + (list "-p" + (string-join + ;; name s mode uid gid symlink + (list source + "s" "777" "0" "0" + (string-append #$profile "/" target)))))) + '#$symlinks) + + ;; Create empty mount points. + "-p" "/proc d 555 0 0" + "-p" "/sys d 555 0 0" + "-p" "/dev d 555 0 0"))))) + + (gexp->derivation (string-append name + (compressor-extension compressor) + ".squashfs") + build + #:references-graphs `(("profile" ,profile)))) + (define* (docker-image name profile #:key target deduplicate? (compressor (first %compressors)) localstatedir? (symlinks '()) - (tar tar)) + (archiver tar)) "Return a derivation to construct a Docker image of PROFILE. The image is a tarball conforming to the Docker Image Specification, compressed with COMPRESSOR. It can be passed to 'docker load'. If TARGET is true, it @@ -216,11 +318,13 @@ the image." (('gnu rest ...) #t) (rest #f))) + (define defmod 'define-module) ;trick Geiser + (define config ;; (guix config) module for consumption by (guix gcrypt). (scheme-file "gcrypt-config.scm" #~(begin - (define-module (guix config) + (#$defmod (guix config) #:export (%libgcrypt)) ;; XXX: Work around . @@ -236,34 +340,190 @@ the image." guile-json)) (define build - (with-imported-modules `(,@(source-module-closure '((guix docker)) - #:select? not-config?) - (guix build store-copy) - ((guix config) => ,config)) - #~(begin - ;; Guile-JSON is required by (guix docker). - (add-to-load-path - (string-append #+json "/share/guile/site/" - (effective-version))) + ;; Guile-JSON is required by (guix docker). + (with-extensions (list json) + (with-imported-modules `(,@(source-module-closure '((guix docker)) + #:select? not-config?) + (guix build store-copy) + ((guix config) => ,config)) + #~(begin + (use-modules (guix docker) (srfi srfi-19) (guix build store-copy)) - (use-modules (guix docker) (srfi srfi-19) (guix build store-copy)) + (setenv "PATH" (string-append #$archiver "/bin")) - (setenv "PATH" (string-append #$tar "/bin")) - - (build-docker-image #$output - (call-with-input-file "profile" - read-reference-graph) - #$profile - #:system (or #$target (utsname:machine (uname))) - #:symlinks '#$symlinks - #:compressor '#$(compressor-command compressor) - #:creation-time (make-time time-utc 0 1))))) + (build-docker-image #$output + (call-with-input-file "profile" + read-reference-graph) + #$profile + #:system (or #$target (utsname:machine (uname))) + #:symlinks '#$symlinks + #:compressor '#$(compressor-command compressor) + #:creation-time (make-time time-utc 0 1)))))) (gexp->derivation (string-append name ".tar" (compressor-extension compressor)) build #:references-graphs `(("profile" ,profile)))) + +;;; +;;; Compiling C programs. +;;; + +;; A C compiler. That lowers to a single program that can be passed typical C +;; compiler flags, and it makes sure the whole toolchain is available. +(define-record-type + (%c-compiler toolchain guile) + c-compiler? + (toolchain c-compiler-toolchain) + (guile c-compiler-guile)) + +(define* (c-compiler #:optional inputs + #:key (guile (default-guile))) + (%c-compiler inputs guile)) + +(define (bootstrap-c-compiler) + "Return the C compiler that uses the bootstrap toolchain. This is used only +by '--bootstrap', for testing purposes." + (define bootstrap-toolchain + (list (first (assoc-ref %bootstrap-inputs "gcc")) + (first (assoc-ref %bootstrap-inputs "binutils")) + (first (assoc-ref %bootstrap-inputs "libc")))) + + (c-compiler bootstrap-toolchain + #:guile %bootstrap-guile)) + +(define-gexp-compiler (c-compiler-compiler (compiler ) system target) + "Lower COMPILER to a single script that does the right thing." + (define toolchain + (or (c-compiler-toolchain compiler) + (list (first (assoc-ref (standard-packages) "gcc")) + (first (assoc-ref (standard-packages) "ld-wrapper")) + (first (assoc-ref (standard-packages) "binutils")) + (first (assoc-ref (standard-packages) "libc")) + (gexp-input (first (assoc-ref (standard-packages) "libc")) + "static")))) + + (define inputs + (match (append-map package-propagated-inputs + (filter package? toolchain)) + (((labels things . _) ...) + (append toolchain things)))) + + (define search-paths + (cons $PATH + (append-map package-native-search-paths + (filter package? inputs)))) + + (define run + (with-imported-modules (source-module-closure + '((guix build utils) + (guix search-paths))) + #~(begin + (use-modules (guix build utils) (guix search-paths) + (ice-9 match)) + + (define (output-file args) + (let loop ((args args)) + (match args + (() "a.out") + (("-o" file _ ...) file) + ((head rest ...) (loop rest))))) + + (set-search-paths (map sexp->search-path-specification + '#$(map search-path-specification->sexp + search-paths)) + '#$inputs) + + (let ((output (output-file (command-line)))) + (apply invoke "gcc" (cdr (command-line))) + (invoke "strip" output))))) + + (when target + ;; TODO: Yep, we'll have to do it someday! + (leave (G_ "cross-compilation not implemented here; +please email '~a'~%") + (@ (guix config) %guix-bug-report-address))) + + (gexp->script "c-compiler" run + #:guile (c-compiler-guile compiler))) + + +;;; +;;; Wrapped package. +;;; + +(define* (wrapped-package package + #:optional (compiler (c-compiler))) + (define runner + (local-file (search-auxiliary-file "run-in-namespace.c"))) + + (define build + (with-imported-modules (source-module-closure + '((guix build utils) + (guix build union))) + #~(begin + (use-modules (guix build utils) + ((guix build union) #:select (relative-file-name)) + (ice-9 ftw) + (ice-9 match)) + + (define (strip-store-prefix file) + ;; Given a file name like "/gnu/store/…-foo-1.2/bin/foo", return + ;; "/bin/foo". + (let* ((len (string-length (%store-directory))) + (base (string-drop file (+ 1 len)))) + (match (string-index base #\/) + (#f base) + (index (string-drop base index))))) + + (define (build-wrapper program) + ;; Build a user-namespace wrapper for PROGRAM. + (format #t "building wrapper for '~a'...~%" program) + (copy-file #$runner "run.c") + + (substitute* "run.c" + (("@WRAPPED_PROGRAM@") program) + (("@STORE_DIRECTORY@") (%store-directory))) + + (let* ((base (strip-store-prefix program)) + (result (string-append #$output "/" base))) + (mkdir-p (dirname result)) + (invoke #$compiler "-std=gnu99" "-static" "-Os" "-g0" "-Wall" + "run.c" "-o" result) + (delete-file "run.c"))) + + (setvbuf (current-output-port) + (cond-expand (guile-2.2 'line) + (else _IOLBF))) + + ;; Link the top-level files of PACKAGE so that search paths are + ;; properly defined in PROFILE/etc/profile. + (mkdir #$output) + (for-each (lambda (file) + (unless (member file '("." ".." "bin" "sbin" "libexec")) + (let ((file* (string-append #$package "/" file))) + (symlink (relative-file-name #$output file*) + (string-append #$output "/" file))))) + (scandir #$package)) + + (for-each build-wrapper + (append (find-files #$(file-append package "/bin")) + (find-files #$(file-append package "/sbin")) + (find-files #$(file-append package "/libexec"))))))) + + (computed-file (string-append (package-full-name package "-") "R") + build)) + +(define (map-manifest-entries proc manifest) + "Apply PROC to all the entries of MANIFEST and return a new manifest." + (make-manifest + (map (lambda (entry) + (manifest-entry + (inherit entry) + (item (proc (manifest-entry-item entry))))) + (manifest-entries manifest)))) + ;;; ;;; Command-line options. @@ -283,6 +543,7 @@ the image." (define %formats ;; Supported pack formats. `((tarball . ,self-contained-tarball) + (squashfs . ,squashfs-image) (docker . ,docker-image))) (define %options @@ -301,6 +562,9 @@ the image." (option '(#\f "format") #t #f (lambda (opt name arg result) (alist-cons 'format (string->symbol arg) result))) + (option '(#\R "relocatable") #f #f + (lambda (opt name arg result) + (alist-cons 'relocatable? #t result))) (option '(#\e "expression") #t #f (lambda (opt name arg result) (alist-cons 'expression arg result))) @@ -353,6 +617,8 @@ Create a bundle of PACKAGE.\n")) (display (G_ " -f, --format=FORMAT build a pack in the given FORMAT")) (display (G_ " + -R, --relocatable produce relocatable executables")) + (display (G_ " -e, --expression=EXPR consider the package EXPR evaluates to")) (display (G_ " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) @@ -397,9 +663,15 @@ Create a bundle of PACKAGE.\n")) (read/eval-package-expression exp)) (x #f))) - (define (manifest-from-args opts) - (let ((packages (filter-map maybe-package-argument opts)) - (manifest-file (assoc-ref opts 'manifest))) + (define (manifest-from-args store opts) + (let* ((transform (options->transformation opts)) + (packages (map (match-lambda + (((? package? package) output) + (list (transform store package) output)) + ((? package? package) + (list (transform store package) "out"))) + (filter-map maybe-package-argument opts))) + (manifest-file (assoc-ref opts 'manifest))) (cond ((and manifest-file (not (null? packages))) (leave (G_ "both a manifest and a package list were given~%"))) @@ -409,39 +681,49 @@ Create a bundle of PACKAGE.\n")) (else (packages->manifest packages))))) (with-error-handling - (let* ((dry-run? (assoc-ref opts 'dry-run?)) - (manifest (manifest-from-args opts)) - (pack-format (assoc-ref opts 'format)) - (name (string-append (symbol->string pack-format) - "-pack")) - (target (assoc-ref opts 'target)) - (bootstrap? (assoc-ref opts 'bootstrap?)) - (compressor (if bootstrap? - bootstrap-xz - (assoc-ref opts 'compressor))) - (tar (if bootstrap? - %bootstrap-coreutils&co - tar)) - (symlinks (assoc-ref opts 'symlinks)) - (build-image (match (assq-ref %formats pack-format) - ((? procedure? proc) proc) - (#f - (leave (G_ "~a: unknown pack format") - format)))) - (localstatedir? (assoc-ref opts 'localstatedir?))) - (with-store store - (parameterize ((%graft? (assoc-ref opts 'graft?)) - (%guile-for-build (package-derivation - store - (if (assoc-ref opts 'bootstrap?) - %bootstrap-guile - (canonical-package guile-2.2))))) - ;; Set the build options before we do anything else. - (set-build-options-from-command-line store opts) + (with-store store + ;; Set the build options before we do anything else. + (set-build-options-from-command-line store opts) + (parameterize ((%graft? (assoc-ref opts 'graft?)) + (%guile-for-build (package-derivation + store + (if (assoc-ref opts 'bootstrap?) + %bootstrap-guile + (canonical-package guile-2.2)) + #:graft? (assoc-ref opts 'graft?)))) + (let* ((dry-run? (assoc-ref opts 'dry-run?)) + (relocatable? (assoc-ref opts 'relocatable?)) + (manifest (let ((manifest (manifest-from-args store opts))) + ;; Note: We cannot honor '--bootstrap' here because + ;; 'glibc-bootstrap' lacks 'libc.a'. + (if relocatable? + (map-manifest-entries wrapped-package manifest) + manifest))) + (pack-format (assoc-ref opts 'format)) + (name (string-append (symbol->string pack-format) + "-pack")) + (target (assoc-ref opts 'target)) + (bootstrap? (assoc-ref opts 'bootstrap?)) + (compressor (if bootstrap? + bootstrap-xz + (assoc-ref opts 'compressor))) + (archiver (if (equal? pack-format 'squashfs) + squashfs-tools-next + (if bootstrap? + %bootstrap-coreutils&co + tar))) + (symlinks (assoc-ref opts 'symlinks)) + (build-image (match (assq-ref %formats pack-format) + ((? procedure? proc) proc) + (#f + (leave (G_ "~a: unknown pack format") + format)))) + (localstatedir? (assoc-ref opts 'localstatedir?))) (run-with-store store (mlet* %store-monad ((profile (profile-derivation manifest + #:relative-symlinks? relocatable? #:hooks (if bootstrap? '() %default-profile-hooks) @@ -456,8 +738,8 @@ Create a bundle of PACKAGE.\n")) symlinks #:localstatedir? localstatedir? - #:tar - tar))) + #:archiver + archiver))) (mbegin %store-monad (show-what-to-build* (list drv) #:use-substitutes? diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 4f519e6f33..29829f52c8 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -64,46 +64,6 @@ ;;; Profiles. ;;; -(define %user-profile-directory - (and=> (getenv "HOME") - (cut string-append <> "/.guix-profile"))) - -(define %profile-directory - (string-append %state-directory "/profiles/" - (or (and=> (or (getenv "USER") - (getenv "LOGNAME")) - (cut string-append "per-user/" <>)) - "default"))) - -(define %current-profile - ;; Call it `guix-profile', not `profile', to allow Guix profiles to - ;; coexist with Nix profiles. - (string-append %profile-directory "/guix-profile")) - -(define (canonicalize-profile profile) - "If PROFILE is %USER-PROFILE-DIRECTORY, return %CURRENT-PROFILE. Otherwise -return PROFILE unchanged. The goal is to treat '-p ~/.guix-profile' as if -'-p' was omitted." ; see - - ;; Trim trailing slashes so that the basename comparison below works as - ;; intended. - (let ((profile (string-trim-right profile #\/))) - (if (and %user-profile-directory - (string=? (canonicalize-path (dirname profile)) - (dirname %user-profile-directory)) - (string=? (basename profile) (basename %user-profile-directory))) - %current-profile - profile))) - -(define (user-friendly-profile profile) - "Return either ~/.guix-profile if that's what PROFILE refers to, directly or -indirectly, or PROFILE." - (if (and %user-profile-directory - (false-if-exception - (string=? (readlink %user-profile-directory) profile))) - %user-profile-directory - profile)) - (define (ensure-default-profile) "Ensure the default profile symlink and directory exist and are writable." diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 64c2196e03..499de0ec45 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès ;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. @@ -25,10 +25,15 @@ #:use-module (guix config) #:use-module (guix packages) #:use-module (guix derivations) + #:use-module (guix profiles) #:use-module (guix gexp) #:use-module (guix grafts) #:use-module (guix monads) #:use-module (guix scripts build) + #:autoload (guix self) (whole-package) + #:autoload (gnu packages ssh) (guile-ssh) + #:autoload (gnu packages tls) (gnutls) + #:use-module ((guix scripts package) #:select (build-and-use-profile)) #:use-module ((guix build utils) #:select (with-directory-excursion delete-file-recursively)) #:use-module ((guix build download) @@ -158,6 +163,12 @@ Download and deploy the latest version of Guix.\n")) ;; a makefile, and, similarly, is intended to always keep this name. "build-aux/build-self.scm") +(define %pull-version + ;; This is the version of the 'guix pull' protocol. It specifies what's + ;; expected from %SELF-BUILD-FILE. The initial version ("0") was when we'd + ;; place a set of compiled Guile modules in ~/.config/guix/latest. + 1) + (define* (build-from-source source #:key verbose? commit) "Return a derivation to build Guix from SOURCE, using the self-build script @@ -170,35 +181,62 @@ contained therein. Use COMMIT as the version string." (build (primitive-load script))) ;; BUILD must be a monadic procedure of at least one argument: the source ;; tree. - (build source #:verbose? verbose? #:version commit))) + ;; + ;; Note: BUILD can return #f if it does not support %PULL-VERSION. In the + ;; future we'll fall back to a previous version of the protocol when that + ;; happens. + (build source #:verbose? verbose? #:version commit + #:pull-version %pull-version))) + +(define (whole-package-for-legacy name modules) + "Return a full-blown Guix package for MODULES, a derivation that builds Guix +modules in the old ~/.config/guix/latest style." + (whole-package name modules + + ;; In the "old style", %SELF-BUILD-FILE would simply return a + ;; derivation that builds modules. We have to infer what the + ;; dependencies of these modules were. + (list guile-json guile-git guile-bytestructures + guile-ssh gnutls))) + +(define* (derivation->manifest-entry drv + #:key url branch commit) + "Return a manifest entry for DRV, which represents Guix at COMMIT. Record +URL, BRANCH, and COMMIT as a property in the manifest entry." + (mbegin %store-monad + (what-to-build (list drv)) + (built-derivations (list drv)) + (let ((out (derivation->output-path drv))) + (return (manifest-entry + (name "guix") + (version (string-take commit 7)) + (item (if (file-exists? (string-append out "/bin/guix")) + drv + (whole-package-for-legacy (string-append name "-" + version) + drv))) + (properties + `((source (repository + (version 0) + (url ,url) + (branch ,branch) + (commit ,commit)))))))))) (define* (build-and-install source config-dir - #:key verbose? commit) + #:key verbose? url branch commit) "Build the tool from SOURCE, and install it in CONFIG-DIR." - (mlet* %store-monad ((source (build-from-source source - #:commit commit - #:verbose? verbose?)) - (source-dir -> (derivation->output-path source)) - (to-do? (what-to-build (list source))) - (built? (built-derivations (list source)))) - ;; Always update the 'latest' symlink, regardless of whether SOURCE was - ;; already built or not. - (if built? - (mlet* %store-monad - ((latest -> (string-append config-dir "/latest")) - (done (indirect-root-added latest))) - (if (and (file-exists? latest) - (string=? (readlink latest) source-dir)) - (begin - (display (G_ "Guix already up to date\n")) - (return #t)) - (begin - (switch-symlinks latest source-dir) - (format #t - (G_ "updated ~a successfully deployed under `~a'~%") - %guix-package-name latest) - (return #t)))) - (leave (G_ "failed to update Guix, check the build log~%"))))) + (define update-profile + (store-lift build-and-use-profile)) + + (mlet* %store-monad ((drv (build-from-source source + #:commit commit + #:verbose? verbose?)) + (entry (derivation->manifest-entry drv + #:url url + #:branch branch + #:commit commit))) + (update-profile (string-append config-dir "/current") + (manifest (list entry))))) (define (honor-lets-encrypt-certificates! store) "Tell Guile-Git to use the Let's Encrypt certificates." @@ -279,6 +317,11 @@ certificates~%")) (canonical-package guile-2.2))))) (run-with-store store (build-and-install checkout (config-directory) + #:url url + #:branch (match ref + (('branch . branch) + branch) + (_ #f)) #:commit commit #:verbose? (assoc-ref opts 'verbose?)))))))))))) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index af501eb8f7..14be8ff8cf 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -393,9 +393,11 @@ it atomically, and then run OS's activation script." "~Y-~m-~d ~H:~M"))) (define* (profile-boot-parameters #:optional (profile %system-profile) - (numbers (generation-numbers profile))) - "Return a list of 'boot-parameters' for the generations of PROFILE specified by -NUMBERS, which is a list of generation numbers." + (numbers + (reverse (generation-numbers profile)))) + "Return a list of 'boot-parameters' for the generations of PROFILE specified +by NUMBERS, which is a list of generation numbers. The list is ordered from +the most recent to the oldest profiles." (define (system->boot-parameters system number time) (unless-file-not-found (let* ((params (read-boot-parameters-file system)) @@ -590,17 +592,17 @@ any, are available. Raise an error if they're not." (define labeled (filter (lambda (fs) - (eq? (file-system-title fs) 'label)) + (file-system-label? (file-system-device fs))) relevant)) (define literal (filter (lambda (fs) - (eq? (file-system-title fs) 'device)) + (string? (file-system-device fs))) relevant)) (define uuid (filter (lambda (fs) - (eq? (file-system-title fs) 'uuid)) + (uuid? (file-system-device fs))) relevant)) (define fail? #f) @@ -628,15 +630,15 @@ any, are available. Raise an error if they're not." (strerror errno)) (unless (string-prefix? "/" device) (display-hint (format #f (G_ "If '~a' is a file system -label, you need to add @code{(title 'label)} to your @code{file-system} -definition.") - device))))))) +label, write @code{(file-system-label ~s)} in your @code{device} field.") + device device))))))) literal) (for-each (lambda (fs) - (unless (find-partition-by-label (file-system-device fs)) - (error (G_ "~a: error: file system with label '~a' not found~%") - (file-system-location* fs) - (file-system-device fs)))) + (let ((label (file-system-label->string + (file-system-device fs)))) + (unless (find-partition-by-label label) + (error (G_ "~a: error: file system with label '~a' not found~%") + (file-system-location* fs) label)))) labeled) (for-each (lambda (fs) (unless (find-partition-by-uuid (file-system-device fs)) @@ -677,10 +679,13 @@ available in the initrd. Note that mapped devices are responsible for checking this by themselves in their 'check' procedure." (define (file-system-/dev fs) (let ((device (file-system-device fs))) - (match (file-system-title fs) - ('device device) - ('uuid (find-partition-by-uuid device)) - ('label (find-partition-by-label device))))) + (match device + ((? string?) + device) + ((? uuid?) + (find-partition-by-uuid device)) + ((? file-system-label?) + (find-partition-by-label (file-system-label->string device)))))) (define file-systems (filter file-system-needed-for-boot? @@ -735,7 +740,7 @@ checking this by themselves in their 'check' procedure." ;; for ;; a discussion. (define latest - (string-append (config-directory) "/latest")) + (string-append (config-directory) "/current")) (unless (file-exists? latest) (warning (G_ "~a not found: 'guix pull' was never run~%") latest) diff --git a/guix/scripts/system/search.scm b/guix/scripts/system/search.scm index 7229c60a02..955cdd1e95 100644 --- a/guix/scripts/system/search.scm +++ b/guix/scripts/system/search.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2018 Ludovic Courtès +;;; Copyright © 2018 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,10 +60,8 @@ provided TYPE has a default value." (define (service-type-shepherd-names type) "Return the default names of Shepherd services created for TYPE." - (match (map shepherd-service-provision - (service-type-default-shepherd-services type)) - (((names . _) ...) - names))) + (append-map shepherd-service-provision + (service-type-default-shepherd-services type))) (define* (service-type->recutils type port #:optional (width (%text-width)) diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm index 5c934abaef..d7c2fbea10 100644 --- a/guix/scripts/weather.scm +++ b/guix/scripts/weather.scm @@ -208,10 +208,10 @@ unavailable)~%")) 0 queue))) (newline) (unless (null? missing) - (let ((missing (length missing))) - (match (queued-subset queue missing) - (#f #f) - ((= length queued) + (match (queued-subset queue missing) + (#f #f) + ((= length queued) + (let ((missing (length missing))) (format #t (G_ " ~,1f% (~h out of ~h) of the missing items \ are queued~%") (* 100. (/ queued missing)) diff --git a/guix/search-paths.scm b/guix/search-paths.scm index 4bf0e44389..002e6342bb 100644 --- a/guix/search-paths.scm +++ b/guix/search-paths.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,7 +38,8 @@ string-tokenize* evaluate-search-paths environment-variable-definition - search-path-definition)) + search-path-definition + set-search-paths)) ;;; Commentary: ;;; @@ -196,4 +197,14 @@ prefix/suffix." #:kind kind #:separator separator)))) +(define* (set-search-paths search-paths directories + #:key (setenv setenv)) + "Set the search path environment variables specified by SEARCH-PATHS for the +given directories." + (for-each (match-lambda + ((spec . value) + (setenv (search-path-specification-variable spec) + value))) + (evaluate-search-paths search-paths directories))) + ;;; search-paths.scm ends here diff --git a/guix/self.scm b/guix/self.scm index 6220efb397..e71e086cdc 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -34,6 +34,7 @@ #:use-module (srfi srfi-9) #:use-module (ice-9 match) #:export (make-config.scm + whole-package ;for internal use in 'guix pull' compiled-guix guix-derivation reload-guix)) @@ -82,6 +83,7 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches." ("guile-json" (ref '(gnu packages guile) 'guile-json)) ("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh)) ("guile-git" (ref '(gnu packages guile) 'guile-git)) + ("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3)) ("libgcrypt" (ref '(gnu packages gnupg) 'libgcrypt)) ("zlib" (ref '(gnu packages compression) 'zlib)) ("gzip" (ref '(gnu packages compression) 'gzip)) @@ -92,6 +94,7 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches." ("guile2.0-json" (ref '(gnu packages guile) 'guile2.0-json)) ("guile2.0-ssh" (ref '(gnu packages ssh) 'guile2.0-ssh)) ("guile2.0-git" (ref '(gnu packages guile) 'guile2.0-git)) + ;; XXX: No "guile2.0-sqlite3". (_ #f)))) ;no such package @@ -167,7 +170,8 @@ must be present in the search path." (source (imported-files (string-append name "-source") (append module-files extra-files)))) (node name modules source dependencies - (compiled-modules name source modules + (compiled-modules name source + (map car module-files) (map node-source dependencies) (map node-compiled dependencies) #:extensions extensions @@ -189,7 +193,229 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (file-name->module-name (string-drop file prefix))) (scheme-files (string-append directory "/" sub-directory))))) +(define* (sub-directory item sub-directory) + "Return SUB-DIRECTORY within ITEM, which may be a file name or a file-like +object." + (match item + ((? string?) + ;; This is the optimal case: we return a new "source". Thus, a + ;; derivation that depends on this sub-directory does not depend on ITEM + ;; itself. + (local-file (string-append item "/" sub-directory) + #:recursive? #t)) + ;; TODO: Add 'local-file?' case. + (_ + ;; In this case, anything that refers to the result also depends on ITEM, + ;; which isn't great. + (file-append item "/" sub-directory)))) + +(define* (locale-data source domain + #:optional (directory domain)) + "Return the locale data from 'po/DIRECTORY' in SOURCE, corresponding to +DOMAIN, a gettext domain." + (define gettext + (module-ref (resolve-interface '(gnu packages gettext)) + 'gettext-minimal)) + + (define build + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils) + (srfi srfi-26) + (ice-9 match) (ice-9 ftw)) + + (define po-directory + #+(sub-directory source (string-append "po/" directory))) + + (define (compile language) + (let ((gmo (string-append #$output "/" language "/LC_MESSAGES/" + #$domain ".mo"))) + (mkdir-p (dirname gmo)) + (invoke #+(file-append gettext "/bin/msgfmt") + "-c" "--statistics" "--verbose" + "-o" gmo + (string-append po-directory "/" language ".po")))) + + (define (linguas) + ;; Return the list of languages. Note: don't read 'LINGUAS' + ;; because it contains things like 'en@boldquot' that do not have + ;; a corresponding .po file. + (map (cut basename <> ".po") + (scandir po-directory + (cut string-suffix? ".po" <>)))) + + (for-each compile (linguas))))) + + (computed-file (string-append "guix-locale-" domain) + build)) + +(define (info-manual source) + "Return the Info manual built from SOURCE." + (define texinfo + (module-ref (resolve-interface '(gnu packages texinfo)) + 'texinfo)) + + (define graphviz + (module-ref (resolve-interface '(gnu packages graphviz)) + 'graphviz)) + + (define documentation + (sub-directory source "doc")) + + (define examples + (sub-directory source "gnu/system/examples")) + + (define build + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (mkdir #$output) + + ;; Create 'version.texi'. + ;; XXX: Can we use a more meaningful version string yet one that + ;; doesn't change at each commit? + (call-with-output-file "version.texi" + (lambda (port) + (let ((version "0.0-git)")) + (format port " +@set UPDATED 1 January 1970 +@set UPDATED-MONTH January 1970 +@set EDITION ~a +@set VERSION ~a\n" version version)))) + + ;; Copy configuration templates that the manual includes. + (for-each (lambda (template) + (copy-file template + (string-append + "os-config-" + (basename template ".tmpl") + ".texi"))) + (find-files #$examples "\\.tmpl$")) + + ;; Build graphs. + (mkdir-p (string-append #$output "/images")) + (for-each (lambda (dot-file) + (invoke #+(file-append graphviz "/bin/dot") + "-Tpng" "-Gratio=.9" "-Gnodesep=.005" + "-Granksep=.00005" "-Nfontsize=9" + "-Nheight=.1" "-Nwidth=.1" + "-o" (string-append #$output "/images/" + (basename dot-file ".dot") + ".png") + dot-file)) + (find-files (string-append #$documentation "/images") + "\\.dot$")) + + ;; Copy other PNGs. + (for-each (lambda (png-file) + (install-file png-file + (string-append #$output "/images"))) + (find-files (string-append #$documentation "/images") + "\\.png$")) + + ;; Finally build the manual. Copy it the Texinfo files to $PWD and + ;; add a symlink to the 'images' directory so that 'makeinfo' can + ;; see those images and produce image references in the Info output. + (copy-recursively #$documentation "." + #:log (%make-void-port "w")) + (delete-file-recursively "images") + (symlink (string-append #$output "/images") "images") + + (for-each (lambda (texi) + (unless (string=? "guix.texi" texi) + ;; Create 'version-LL.texi'. + (let* ((base (basename texi ".texi")) + (dot (string-index base #\.)) + (tag (string-drop base (+ 1 dot)))) + (symlink "version.texi" + (string-append "version-" tag ".texi")))) + + (invoke #+(file-append texinfo "/bin/makeinfo") + texi "-I" #$documentation + "-I" "." + "-o" (string-append #$output "/" + (basename texi ".texi") + ".info"))) + (cons "guix.texi" + (find-files "." "^guix\\.[a-z]{2}\\.texi$")))))) + + (computed-file "guix-manual" build)) + +(define* (guix-command modules #:key source (dependencies '()) + (guile-version (effective-version))) + "Return the 'guix' command such that it adds MODULES and DEPENDENCIES in its +load path." + (program-file "guix-command" + #~(begin + (set! %load-path + (append '#$(map (lambda (package) + (file-append package + "/share/guile/site/" + guile-version)) + dependencies) + %load-path)) + + (set! %load-compiled-path + (append '#$(map (lambda (package) + (file-append package "/lib/guile/" + guile-version + "/site-ccache")) + dependencies) + %load-compiled-path)) + + (set! %load-path (cons #$modules %load-path)) + (set! %load-compiled-path + (cons #$modules %load-compiled-path)) + + (let ((guix-main (module-ref (resolve-interface '(guix ui)) + 'guix-main))) + #$(if source + #~(begin + (bindtextdomain "guix" + #$(locale-data source "guix")) + (bindtextdomain "guix-packages" + #$(locale-data source + "guix-packages" + "packages"))) + #t) + + ;; XXX: It would be more convenient to change it to: + ;; (exit (apply guix-main (command-line))) + (apply guix-main (command-line)))))) + +(define* (whole-package name modules dependencies + #:key + (guile-version (effective-version)) + info + (command (guix-command modules + #:dependencies dependencies + #:guile-version guile-version))) + "Return the whole Guix package NAME that uses MODULES, a derivation of all +the modules, and DEPENDENCIES, a list of packages depended on. COMMAND is the +'guix' program to use; INFO is the Info manual." + ;; TODO: Move compiled modules to 'lib/guile' instead of 'share/guile'. + (computed-file name + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir-p (string-append #$output "/bin")) + (symlink #$command + (string-append #$output "/bin/guix")) + + (let ((modules (string-append #$output + "/share/guile/site/" + (effective-version))) + (info #$info)) + (mkdir-p (dirname modules)) + (symlink #$modules modules) + (when info + (symlink #$info + (string-append #$output + "/share/info")))))))) + (define* (compiled-guix source #:key (version %guix-version) + (pull-version 1) (name (string-append "guix-" version)) (guile-version (effective-version)) (guile-for-build (guile-for-build guile-version)) @@ -215,12 +441,16 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." "guile-git" "guile2.0-git")) + (define guile-sqlite3 + (package-for-guile guile-version + "guile-sqlite3" + "guile2.0-sqlite3")) (define dependencies (match (append-map (lambda (package) (cons (list "x" package) - (package-transitive-inputs package))) - (list guile-git guile-json guile-ssh)) + (package-transitive-propagated-inputs package))) + (list guile-git guile-json guile-ssh guile-sqlite3)) (((labels packages _ ...) ...) packages))) @@ -248,25 +478,37 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (specification->package "libgcrypt")))) + ;; (guix man-db) is needed at build-time by (guix profiles) + ;; but we don't need to compile it; not compiling it allows + ;; us to avoid an extra dependency on guile-gdbm-ffi. + #:extra-files + `(("guix/man-db.scm" ,(local-file "../guix/man-db.scm"))) + #:guile-for-build guile-for-build)) (define *extra-modules* (scheme-node "guix-extra" (filter-map (match-lambda (('guix 'scripts _ ..1) #f) + (('guix 'man-db) #f) (name name)) (scheme-modules* source "guix")) (list *core-modules*) #:extensions dependencies #:guile-for-build guile-for-build)) - (define *package-modules* - (scheme-node "guix-packages" + (define *core-package-modules* + (scheme-node "guix-packages-base" `((gnu packages) - ,@(scheme-modules* source "gnu/packages")) + (gnu packages base)) (list *core-modules* *extra-modules*) #:extensions dependencies - #:extra-files ;all the non-Scheme files + + ;; Add all the non-Scheme files here. We must do it here so + ;; that 'search-patches' & co. can find them. Ideally we'd + ;; keep them next to the .scm files that use them but it's + ;; difficult to do (XXX). + #:extra-files (file-imports source "gnu/packages" (lambda (file stat) (and (eq? 'regular (stat:type stat)) @@ -276,23 +518,37 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (not (string-suffix? "~" file))))) #:guile-for-build guile-for-build)) + (define *package-modules* + (scheme-node "guix-packages" + (scheme-modules* source "gnu/packages") + (list *core-modules* *extra-modules* *core-package-modules*) + #:extensions dependencies + #:guile-for-build guile-for-build)) + (define *system-modules* (scheme-node "guix-system" `((gnu system) (gnu services) ,@(scheme-modules* source "gnu/system") ,@(scheme-modules* source "gnu/services")) - (list *package-modules* *extra-modules* *core-modules*) + (list *core-package-modules* *package-modules* + *extra-modules* *core-modules*) #:extensions dependencies #:extra-files - (file-imports source "gnu/system/examples" (const #t)) + (append (file-imports source "gnu/system/examples" + (const #t)) + + ;; Build-side code that we don't build. Some of + ;; these depend on guile-rsvg, the Shepherd, etc. + (file-imports source "gnu/build" (const #t))) #:guile-for-build guile-for-build)) (define *cli-modules* (scheme-node "guix-cli" (scheme-modules* source "/guix/scripts") - (list *core-modules* *extra-modules* *package-modules* + (list *core-modules* *extra-modules* + *core-package-modules* *package-modules* *system-modules*) #:extensions dependencies #:guile-for-build guile-for-build)) @@ -318,31 +574,52 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." %guix-home-page-url))) #:guile-for-build guile-for-build)) - (directory-union name - (append-map (lambda (node) - (list (node-source node) - (node-compiled node))) + (define built-modules + (directory-union (string-append name "-modules") + (append-map (lambda (node) + (list (node-source node) + (node-compiled node))) - ;; Note: *CONFIG* comes first so that it - ;; overrides the (guix config) module that - ;; comes with *CORE-MODULES*. - (list *config* - *cli-modules* - *system-modules* - *package-modules* - *extra-modules* - *core-modules*)) + ;; Note: *CONFIG* comes first so that it + ;; overrides the (guix config) module that + ;; comes with *CORE-MODULES*. + (list *config* + *cli-modules* + *system-modules* + *package-modules* + *core-package-modules* + *extra-modules* + *core-modules*)) - ;; Silently choose the first entry upon collision so that - ;; we choose *CONFIG*. - #:resolve-collision 'first + ;; Silently choose the first entry upon collision so that + ;; we choose *CONFIG*. + #:resolve-collision 'first - ;; When we do (add-to-store "utils.scm"), "utils.scm" must - ;; be a regular file, not a symlink. Thus, arrange so that - ;; regular files appear as regular files in the final - ;; output. - #:copy? #t - #:quiet? #t)) + ;; When we do (add-to-store "utils.scm"), "utils.scm" must + ;; be a regular file, not a symlink. Thus, arrange so that + ;; regular files appear as regular files in the final + ;; output. + #:copy? #t + #:quiet? #t)) + + ;; Version 0 of 'guix pull' meant we'd just return Scheme modules. + ;; Version 1 is when we return the full package. + (cond ((= 1 pull-version) + ;; The whole package, with a standard file hierarchy. + (let ((command (guix-command built-modules + #:source source + #:dependencies dependencies + #:guile-version guile-version))) + (whole-package name built-modules dependencies + #:command command + #:info (info-manual source) + #:guile-version guile-version))) + ((= 0 pull-version) + ;; Legacy 'guix pull': just return the compiled modules. + built-modules) + (else + ;; Unsupported 'guix pull' version. + #f))) ;;; @@ -451,6 +728,11 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (define (imported-files name files) ;; This is a non-monadic, simplified version of 'imported-files' from (guix ;; gexp). + (define same-target? + (match-lambda* + (((file1 . _) (file2 . _)) + (string=? file1 file2)))) + (define build (with-imported-modules (source-module-closure '((guix build utils))) @@ -467,14 +749,15 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." ;; symlinks, as this makes a difference for ;; 'add-to-store'. (copy-file store-path final-path))) - '#$files)))) + '#$(delete-duplicates files same-target?))))) ;; We're just copying files around, no need to substitute or offload it. (computed-file name build #:options '(#:local-build? #t - #:substitutable? #f))) + #:substitutable? #f + #:env-vars (("COLUMNS" . "200"))))) -(define* (compiled-modules name module-tree modules +(define* (compiled-modules name module-tree module-files #:optional (dependencies '()) (dependencies-compiled '()) @@ -482,6 +765,9 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (extensions '()) ;full-blown Guile packages parallel? guile-for-build) + "Build all the MODULE-FILES from MODULE-TREE. MODULE-FILES must be a list +like '(\"guix/foo.scm\" \"gnu/bar.scm\") and MODULE-TREE is the directory +containing MODULE-FILES and possibly other files as well." ;; This is a non-monadic, enhanced version of 'compiled-file' from (guix ;; gexp). (define build @@ -512,16 +798,13 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (* 100. (/ completed total)) total) (force-output)) - (define (process-directory directory output) - (let ((files (find-files directory "\\.scm$")) - (prefix (+ 1 (string-length directory)))) - ;; Hide compilation warnings. - (parameterize ((current-warning-port (%make-void-port "w"))) - (compile-files directory #$output - (map (cut string-drop <> prefix) files) - #:workers (parallel-job-count) - #:report-load report-load - #:report-compilation report-compilation)))) + (define (process-directory directory files output) + ;; Hide compilation warnings. + (parameterize ((current-warning-port (%make-void-port "w"))) + (compile-files directory #$output files + #:workers (parallel-job-count) + #:report-load report-load + #:report-compilation report-compilation))) (setvbuf (current-output-port) _IONBF) (setvbuf (current-error-port) _IONBF) @@ -549,7 +832,7 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." (mkdir #$output) (chdir #+module-tree) - (process-directory "." #$output) + (process-directory "." '#+module-files #$output) (newline)))) (computed-file name build @@ -558,7 +841,11 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'." `(#:local-build? #f ;allow substitutes ;; Don't annoy people about _IONBF deprecation. - #:env-vars (("GUILE_WARN_DEPRECATED" . "no"))))) + ;; Initialize 'terminal-width' in (system repl debug) + ;; to a large-enough value to make backtrace more + ;; verbose. + #:env-vars (("GUILE_WARN_DEPRECATED" . "no") + ("COLUMNS" . "200"))))) ;;; @@ -586,9 +873,12 @@ running Guile." 'guile-2.0)))) (define* (guix-derivation source version - #:optional (guile-version (effective-version))) + #:optional (guile-version (effective-version)) + #:key (pull-version 0)) "Return, as a monadic value, the derivation to build the Guix from SOURCE -for GUILE-VERSION. Use VERSION as the version string." +for GUILE-VERSION. Use VERSION as the version string. PULL-VERSION specifies +the version of the 'guix pull' protocol. Return #f if this PULL-VERSION value +is not supported." (define (shorten version) (if (and (string-every char-set:hex-digit version) (> (string-length version) 9)) @@ -600,11 +890,15 @@ for GUILE-VERSION. Use VERSION as the version string." (mbegin %store-monad (set-guile-for-build guile) - (lower-object (compiled-guix source - #:version version - #:name (string-append "guix-" - (shorten version)) - #:guile-version (match guile-version - ("2.2.2" "2.2") - (version version)) - #:guile-for-build guile)))) + (let ((guix (compiled-guix source + #:version version + #:name (string-append "guix-" + (shorten version)) + #:pull-version pull-version + #:guile-version (match guile-version + ("2.2.2" "2.2") + (version version)) + #:guile-for-build guile))) + (if guix + (lower-object guix) + (return #f))))) diff --git a/guix/store/database.scm b/guix/store/database.scm new file mode 100644 index 0000000000..3623c0e7a0 --- /dev/null +++ b/guix/store/database.scm @@ -0,0 +1,234 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Caleb Ristvedt +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; 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 (guix store database) + #:use-module (sqlite3) + #:use-module (guix config) + #:use-module (guix serialization) + #:use-module (guix store deduplication) + #:use-module (guix base16) + #:use-module (guix build syscalls) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-19) + #:use-module (ice-9 match) + #:export (sqlite-register + register-path + reset-timestamps)) + +;;; Code for working with the store database directly. + + +(define-syntax-rule (with-database file db exp ...) + "Open DB from FILE and close it when the dynamic extent of EXP... is left." + (let ((db (sqlite-open file))) + (dynamic-wind noop + (lambda () + exp ...) + (lambda () + (sqlite-close db))))) + +(define (last-insert-row-id db) + ;; XXX: (sqlite3) currently lacks bindings for 'sqlite3_last_insert_rowid'. + ;; Work around that. + (let* ((stmt (sqlite-prepare db "SELECT last_insert_rowid();" + #:cache? #t)) + (result (sqlite-fold cons '() stmt))) + (sqlite-finalize stmt) + (match result + ((#(id)) id) + (_ #f)))) + +(define path-id-sql + "SELECT id FROM ValidPaths WHERE path = :path") + +(define* (path-id db path) + "If PATH exists in the 'ValidPaths' table, return its numerical +identifier. Otherwise, return #f." + (let ((stmt (sqlite-prepare db path-id-sql #:cache? #t))) + (sqlite-bind-arguments stmt #:path path) + (let ((result (sqlite-fold cons '() stmt))) + (sqlite-finalize stmt) + (match result + ((#(id) . _) id) + (_ #f))))) + +(define update-sql + "UPDATE ValidPaths SET hash = :hash, registrationTime = :time, deriver = +:deriver, narSize = :size WHERE id = :id") + +(define insert-sql + "INSERT INTO ValidPaths (path, hash, registrationTime, deriver, narSize) +VALUES (:path, :hash, :time, :deriver, :size)") + +(define* (update-or-insert db #:key path deriver hash nar-size time) + "The classic update-if-exists and insert-if-doesn't feature that sqlite +doesn't exactly have... they've got something close, but it involves deleting +and re-inserting instead of updating, which causes problems with foreign keys, +of course. Returns the row id of the row that was modified or inserted." + (let ((id (path-id db path))) + (if id + (let ((stmt (sqlite-prepare db update-sql #:cache? #t))) + (sqlite-bind-arguments stmt #:id id + #:path path #:deriver deriver + #:hash hash #:size nar-size #:time time) + (sqlite-fold cons '() stmt) + (sqlite-finalize stmt) + (last-insert-row-id db)) + (let ((stmt (sqlite-prepare db insert-sql #:cache? #t))) + (sqlite-bind-arguments stmt + #:path path #:deriver deriver + #:hash hash #:size nar-size #:time time) + (sqlite-fold cons '() stmt) ;execute it + (sqlite-finalize stmt) + (last-insert-row-id db))))) + +(define add-reference-sql + "INSERT OR IGNORE INTO Refs (referrer, reference) SELECT :referrer, id +FROM ValidPaths WHERE path = :reference") + +(define (add-references db referrer references) + "REFERRER is the id of the referring store item, REFERENCES is a list +containing store items being referred to. Note that all of the store items in +REFERENCES must already be registered." + (let ((stmt (sqlite-prepare db add-reference-sql #:cache? #t))) + (for-each (lambda (reference) + (sqlite-reset stmt) + (sqlite-bind-arguments stmt #:referrer referrer + #:reference reference) + (sqlite-fold cons '() stmt) ;execute it + (sqlite-finalize stmt) + (last-insert-row-id db)) + references))) + +;; XXX figure out caching of statement and database objects... later +(define* (sqlite-register #:key db-file path (references '()) + deriver hash nar-size) + "Registers this stuff in a database specified by DB-FILE. PATH is the string +path of some store item, REFERENCES is a list of string paths which the store +item PATH refers to (they need to be already registered!), DERIVER is a string +path of the derivation that created the store item PATH, HASH is the +base16-encoded sha256 hash of the store item denoted by PATH (prefixed with +\"sha256:\") after being converted to nar form, and nar-size is the size in +bytes of the store item denoted by PATH after being converted to nar form." + (with-database db-file db + (let ((id (update-or-insert db #:path path + #:deriver deriver + #:hash hash + #:nar-size nar-size + #:time (time-second (current-time time-utc))))) + (add-references db id references)))) + + +;;; +;;; High-level interface. +;;; + +;; TODO: Factorize with that in (gnu build install). +(define (reset-timestamps file) + "Reset the modification time on FILE and on all the files it contains, if +it's a directory." + (let loop ((file file) + (type (stat:type (lstat file)))) + (case type + ((directory) + (utime file 0 0 0 0) + (let ((parent file)) + (for-each (match-lambda + (("." . _) #f) + ((".." . _) #f) + ((file . properties) + (let ((file (string-append parent "/" file))) + (loop file + (match (assoc-ref properties 'type) + ((or 'unknown #f) + (stat:type (lstat file))) + (type type)))))) + (scandir* parent)))) + ((symlink) + ;; FIXME: Implement bindings for 'futime' to reset the timestamps on + ;; symlinks. + #f) + (else + (utime file 0 0 0 0))))) + +;; TODO: make this canonicalize store items that are registered. This involves +;; setting permissions and timestamps, I think. Also, run a "deduplication +;; pass", whatever that involves. Also, handle databases not existing yet +;; (what should the default behavior be? Figuring out how the C++ stuff +;; currently does it sounds like a lot of grepping for global +;; variables...). Also, return #t on success like the documentation says we +;; should. + +(define* (register-path path + #:key (references '()) deriver prefix + state-directory (deduplicate? #t)) + ;; Priority for options: first what is given, then environment variables, + ;; then defaults. %state-directory, %store-directory, and + ;; %store-database-directory already handle the "environment variables / + ;; defaults" question, so we only need to choose between what is given and + ;; those. + "Register PATH as a valid store file, with REFERENCES as its list of +references, and DERIVER as its deriver (.drv that led to it.) If PREFIX is +given, it must be the name of the directory containing the new store to +initialize; if STATE-DIRECTORY is given, it must be a string containing the +absolute file name to the state directory of the store being initialized. +Return #t on success. + +Use with care as it directly modifies the store! This is primarily meant to +be used internally by the daemon's build hook." + (let* ((db-dir (cond + (state-directory + (string-append state-directory "/db")) + (prefix + ;; If prefix is specified, the value of NIX_STATE_DIR + ;; (which affects %state-directory) isn't supposed to + ;; affect db-dir, only the compile-time-customized + ;; default should. + (string-append prefix %localstatedir "/guix/db")) + (else + %store-database-directory))) + (store-dir (if prefix + ;; same situation as above + (string-append prefix %storedir) + %store-directory)) + (to-register (if prefix + (string-append %storedir "/" (basename path)) + ;; note: we assume here that if path is, for + ;; example, /foo/bar/gnu/store/thing.txt and prefix + ;; isn't given, then an environment variable has + ;; been used to change the store directory to + ;; /foo/bar/gnu/store, since otherwise real-path + ;; would end up being /gnu/store/thing.txt, which is + ;; probably not the right file in this case. + path)) + (real-path (string-append store-dir "/" (basename path)))) + (let-values (((hash nar-size) + (nar-sha256 real-path))) + (reset-timestamps real-path) + (sqlite-register + #:db-file (string-append db-dir "/db.sqlite") + #:path to-register + #:references references + #:deriver deriver + #:hash (string-append "sha256:" + (bytevector->base16-string hash)) + #:nar-size nar-size) + + (when deduplicate? + (deduplicate real-path hash #:store store-dir))))) diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm new file mode 100644 index 0000000000..4b4ac01f64 --- /dev/null +++ b/guix/store/deduplication.scm @@ -0,0 +1,148 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Caleb Ristvedt +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; 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 . + +;;; This houses stuff we do to files when they arrive at the store - resetting +;;; timestamps, deduplicating, etc. + +(define-module (guix store deduplication) + #:use-module (guix hash) + #:use-module (guix build utils) + #:use-module (guix base16) + #:use-module (srfi srfi-11) + #:use-module (rnrs io ports) + #:use-module (ice-9 ftw) + #:use-module (guix serialization) + #:export (nar-sha256 + deduplicate)) + +;; Would it be better to just make WRITE-FILE give size as well? I question +;; the general utility of this approach. +(define (counting-wrapper-port output-port) + "Some custom ports don't implement GET-POSITION at all. But if we want to +figure out how many bytes are being written, we will want to use that. So this +makes a wrapper around a port which implements GET-POSITION." + (let ((byte-count 0)) + (make-custom-binary-output-port "counting-wrapper" + (lambda (bytes offset count) + (set! byte-count + (+ byte-count count)) + (put-bytevector output-port bytes + offset count) + count) + (lambda () + byte-count) + #f + (lambda () + (close-port output-port))))) + +(define (nar-sha256 file) + "Gives the sha256 hash of a file and the size of the file in nar form." + (let-values (((port get-hash) (open-sha256-port))) + (let ((wrapper (counting-wrapper-port port))) + (write-file file wrapper) + (force-output wrapper) + (force-output port) + (let ((hash (get-hash)) + (size (port-position wrapper))) + (close-port wrapper) + (values hash size))))) + +(define (tempname-in directory) + "Gives an unused temporary name under DIRECTORY. Not guaranteed to still be +unused by the time you create anything with that name, but a good shot." + (let ((const-part (string-append directory "/.tmp-link-" + (number->string (getpid))))) + (let try ((guess-part + (number->string (random most-positive-fixnum) 16))) + (if (file-exists? (string-append const-part "-" guess-part)) + (try (number->string (random most-positive-fixnum) 16)) + (string-append const-part "-" guess-part))))) + +(define* (get-temp-link target #:optional (link-prefix (dirname target))) + "Like mkstemp!, but instead of creating a new file and giving you the name, +it creates a new hardlink to TARGET and gives you the name. Since +cross-filesystem hardlinks don't work, the temp link must be created on the +same filesystem - where in that filesystem it is can be controlled by +LINK-PREFIX." + (let try ((tempname (tempname-in link-prefix))) + (catch 'system-error + (lambda () + (link target tempname) + tempname) + (lambda (args) + (if (= (system-error-errno args) EEXIST) + (try (tempname-in link-prefix)) + (throw 'system-error args)))))) + +;; There are 3 main kinds of errors we can get from hardlinking: "Too many +;; things link to this" (EMLINK), "this link already exists" (EEXIST), and +;; "can't fit more stuff in this directory" (ENOSPC). + +(define (replace-with-link target to-replace) + "Atomically replace the file TO-REPLACE with a link to TARGET. Note: TARGET +and TO-REPLACE must be on the same file system." + (let ((temp-link (get-temp-link target (dirname to-replace)))) + (rename-file temp-link to-replace))) + +(define-syntax-rule (false-if-system-error (errors ...) exp ...) + "Given ERRORS, a list of system error codes to ignore, evaluates EXP... and +return #f if any of the system error codes in the given list are thrown." + (catch 'system-error + (lambda () + exp ...) + (lambda args + (if (member (system-error-errno args) (list errors ...)) + #f + (apply throw args))))) + +(define* (deduplicate path hash #:key (store %store-directory)) + "Check if a store item with sha256 hash HASH already exists. If so, +replace PATH with a hardlink to the already-existing one. If not, register +PATH so that future duplicates can hardlink to it. PATH is assumed to be +under STORE." + (let* ((links-directory (string-append store "/.links")) + (link-file (string-append links-directory "/" + (bytevector->base16-string hash)))) + (mkdir-p links-directory) + (if (file-is-directory? path) + ;; Can't hardlink directories, so hardlink their atoms. + (for-each (lambda (file) + (unless (member file '("." "..")) + (deduplicate file (nar-sha256 file) + #:store store))) + (scandir path)) + (if (file-exists? link-file) + (false-if-system-error (EMLINK) + (replace-with-link link-file path)) + (catch 'system-error + (lambda () + (link path link-file)) + (lambda args + (let ((errno (system-error-errno args))) + (cond ((= errno EEXIST) + ;; Someone else put an entry for PATH in + ;; LINKS-DIRECTORY before we could. Let's use it. + (false-if-system-error (EMLINK) + (replace-with-link path link-file))) + ((= errno ENOSPC) + ;; There's not enough room in the directory index for + ;; more entries in .links, but that's fine: we can + ;; just stop. + #f) + (else (apply throw args)))))))))) diff --git a/guix/ui.scm b/guix/ui.scm index 536c36e3fe..99f66b0fdc 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès -;;; Copyright © 2013 Mark H Weaver +;;; Copyright © 2013, 2018 Mark H Weaver ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014 Cyril Roelandt ;;; Copyright © 2014 Cyrill Schenkel @@ -41,6 +41,13 @@ #:use-module ((guix licenses) #:select (license? license-name)) #:use-module ((guix build syscalls) #:select (free-disk-space terminal-columns)) + #:use-module ((guix build utils) + ;; XXX: All we need are the bindings related to + ;; '&invoke-error'. However, to work around the bug described + ;; in 5d669883ecc104403c5d3ba7d172e9c02234577c, #:hide + ;; unwanted bindings instead of #:select'ing the needed + ;; bindings. + #:hide (package-name->name+version)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-19) @@ -76,6 +83,7 @@ show-manifest-transaction call-with-error-handling with-error-handling + with-unbound-variable-handling leave-on-EPIPE read/eval read/eval-package-expression @@ -158,7 +166,7 @@ messages." ((proc message (variable) _ ...) ;; We can always omit PROC because when it's useful (i.e., different from ;; "module-lookup"), it gets displayed before. - (format port (G_ "~a: unbound variable") variable)) + (format port (G_ "error: ~a: unbound variable") variable)) (_ (default-printer)))) @@ -173,9 +181,9 @@ messages." modules) module)) -(define* (load* file user-module - #:key (on-error 'nothing-special)) - "Load the user provided Scheme source code FILE." +(define (last-frame-with-source stack) + "Walk stack upwards and return the last frame that has source location +information, or #f if it could not be found." (define (frame-with-source frame) ;; Walk from FRAME upwards until source location information is found. (let loop ((frame frame) @@ -186,6 +194,15 @@ messages." frame (loop (frame-previous frame) frame))))) + (let* ((depth (stack-length stack)) + (last (and (> depth 0) (stack-ref stack 0)))) + (frame-with-source (if (> depth 1) + (stack-ref stack 1) ;skip the 'throw' frame + last)))) + +(define* (load* file user-module + #:key (on-error 'nothing-special)) + "Load the user provided Scheme source code FILE." (define (error-string frame args) (call-with-output-string (lambda (port) @@ -238,12 +255,7 @@ messages." ;; Capture the stack up to this procedure call, excluded, and pass ;; the faulty stack frame to 'report-load-error'. (let* ((stack (make-stack #t handle-error tag)) - (depth (stack-length stack)) - (last (and (> depth 0) (stack-ref stack 0))) - (frame (frame-with-source - (if (> depth 1) - (stack-ref stack 1) ;skip the 'throw' frame - last)))) + (frame (last-frame-with-source stack))) (report-load-error file args frame) @@ -305,6 +317,21 @@ PORT." (- (terminal-columns) 5)))) (texi->plain-text message)))) +(define* (report-unbound-variable-error args #:key frame) + "Return the given unbound-variable error, where ARGS is the list of 'throw' +arguments." + (match args + ((key . args) + (print-exception (current-error-port) frame key args))) + (match args + (('unbound-variable proc message (variable) _ ...) + (match (known-variable-definition variable) + (#f + (display-hint (G_ "Did you forget a @code{use-modules} form?"))) + ((? module? module) + (display-hint (format #f (G_ "Did you forget @code{(use-modules ~a)}?") + (module-name module)))))))) + (define* (report-load-error file args #:optional frame) "Report the failure to load FILE, a user-provided Scheme file. ARGS is the list of arguments received by the 'throw' handler." @@ -325,16 +352,8 @@ ARGS is the list of arguments received by the 'throw' handler." (let ((loc (source-properties->location properties))) (format (current-error-port) (G_ "~a: error: ~a~%") (location->string loc) message))) - (('unbound-variable proc message (variable) _ ...) - (match args - ((key . args) - (print-exception (current-error-port) frame key args))) - (match (known-variable-definition variable) - (#f - (display-hint (G_ "Did you forget a @code{use-modules} form?"))) - (module - (display-hint (format #f (G_ "Did you forget @code{(use-modules ~a)}?") - (module-name module)))))) + (('unbound-variable _ ...) + (report-unbound-variable-error args #:frame frame)) (('srfi-34 obj) (if (message-condition? obj) (if (error-location? obj) @@ -375,6 +394,27 @@ exiting. ARGS is the list of arguments received by the 'throw' handler." (warning (G_ "failed to load '~a':~%") file) (apply display-error #f (current-error-port) args)))) +(define (call-with-unbound-variable-handling thunk) + (define tag + (make-prompt-tag "user-code")) + + (catch 'unbound-variable + (lambda () + (call-with-prompt tag + thunk + (const #f))) + (const #t) + (rec (handle-error . args) + (let* ((stack (make-stack #t handle-error tag)) + (frame (and stack (last-frame-with-source stack)))) + (report-unbound-variable-error args #:frame frame) + (exit 1))))) + +(define-syntax-rule (with-unbound-variable-handling exp ...) + "Capture 'unbound-variable' exceptions in the dynamic extent of EXP... and +report them in a user-friendly way." + (call-with-unbound-variable-handling (lambda () exp ...))) + (define (install-locale) "Install the current locale settings." (catch 'system-error @@ -637,6 +677,16 @@ or remove one of them from the profile.") directories:~{ ~a~}~%") (file-search-error-file-name c) (file-search-error-search-path c))) + ((invoke-error? c) + (leave (G_ "program exited\ +~@[ with non-zero exit status ~a~]\ +~@[ terminated by signal ~a~]\ +~@[ stopped by signal ~a~]: ~s~%") + (invoke-error-exit-status c) + (invoke-error-term-signal c) + (invoke-error-stop-signal c) + (cons (invoke-error-program c) + (invoke-error-arguments c)))) ((and (error-location? c) (message-condition? c)) (format (current-error-port) (G_ "~a: error: ~a~%") diff --git a/guix/utils.scm b/guix/utils.scm index 92e45de616..e9efea5866 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2013, 2014, 2015 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2014 Ian Denhardt @@ -84,6 +84,7 @@ version-major+minor version-major guile-version>? + version-prefix? string-replace-substring arguments-from-environment-variable file-extension @@ -521,6 +522,27 @@ minor version numbers from version-string." (micro-version)) str)) +(define version-prefix? + (let ((not-dot (char-set-complement (char-set #\.)))) + (lambda (v1 v2) + "Return true if V1 is a version prefix of V2: + + (version-prefix? \"4.1\" \"4.16.2\") => #f + (version-prefix? \"4.1\" \"4.1.2\") => #t +" + (define (list-prefix? lst1 lst2) + (match lst1 + (() #t) + ((head1 tail1 ...) + (match lst2 + (() #f) + ((head2 tail2 ...) + (and (equal? head1 head2) + (list-prefix? tail1 tail2))))))) + + (list-prefix? (string-tokenize v1 not-dot) + (string-tokenize v2 not-dot))))) + (define (file-extension file) "Return the extension of FILE or #f if there is none." (let ((dot (string-rindex file #\.))) diff --git a/m4/guix.m4 b/m4/guix.m4 index 8e174e92e5..a6897be961 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -174,6 +174,24 @@ AC_DEFUN([GUIX_CHECK_GUILE_SSH], [ fi]) ]) +dnl GUIX_CHECK_GUILE_SQLITE3 +dnl +dnl Check whether a recent-enough Guile-Sqlite3 is available. +AC_DEFUN([GUIX_CHECK_GUILE_SQLITE3], [ + dnl Check whether 'sqlite-bind-arguments' is available. It was introduced + dnl in February 2018: + dnl . + AC_CACHE_CHECK([whether Guile-Sqlite3 is available and recent enough], + [guix_cv_have_recent_guile_sqlite3], + [GUILE_CHECK([retval], + [(@ (sqlite3) sqlite-bind-arguments)]) + if test "$retval" = 0; then + guix_cv_have_recent_guile_sqlite3="yes" + else + guix_cv_have_recent_guile_sqlite3="no" + fi]) +]) + dnl GUIX_TEST_ROOT_DIRECTORY AC_DEFUN([GUIX_TEST_ROOT_DIRECTORY], [ AC_CACHE_CHECK([for unit test root directory], diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index 34647e6774..c7f32494d0 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -1244,6 +1244,7 @@ static bool canBuildLocally(const string & platform) return platform == settings.thisSystem #if __linux__ || (platform == "i686-linux" && settings.thisSystem == "x86_64-linux") + || (platform == "armhf-linux" && settings.thisSystem == "aarch64-linux") #endif ; } @@ -2220,6 +2221,13 @@ void DerivationGoal::runChild() throw SysError("cannot set i686-linux personality"); } + if (drv.platform == "armhf-linux" && + (settings.thisSystem == "aarch64-linux" || + (!strcmp(utsbuf.sysname, "Linux") && !strcmp(utsbuf.machine, "aarch64")))) { + if (personality(PER_LINUX32) == -1) + throw SysError("cannot set armhf-linux personality"); + } + /* Impersonate a Linux 2.6 machine to get some determinism in builds that depend on the kernel version. */ if ((drv.platform == "i686-linux" || drv.platform == "x86_64-linux") && settings.impersonateLinux26) { diff --git a/nix/local.mk b/nix/local.mk index 4452301c63..39717711f8 100644 --- a/nix/local.mk +++ b/nix/local.mk @@ -22,7 +22,7 @@ # BUILT_SOURCES += %D%/libstore/schema.sql.hh -CLEANFILES += $(BUILT_SOURCES) +CLEANFILES += %D%/libstore/schema.sql.hh noinst_LIBRARIES = libformat.a libutil.a libstore.a diff --git a/po/doc/guix-manual.fr.po b/po/doc/guix-manual.fr.po index 409bb66809..57ac09a3f5 100644 --- a/po/doc/guix-manual.fr.po +++ b/po/doc/guix-manual.fr.po @@ -1,25 +1,24 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# French translation of guix. +# Copyright (C) 2013-2018 the authors of Guix (msgids) +# This file is distributed under the same license as the guix package. +# Julien Lepiller , 2018. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: guix-manual 0.15.0-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" "POT-Creation-Date: 2018-04-29 20:48+0200\n" -"PO-Revision-Date: 2018-04-13 22:46+0200\n" +"PO-Revision-Date: 2018-06-06 23:32+0200\n" "Last-Translator: Julien Lepiller \n" -"Language-Team: \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# contributing.fr.po #-#-#-#-#\n" -"X-Generator: Poedit 2.0.6\n" -"#-#-#-#-# guix.fr.po #-#-#-#-#\n" -"X-Generator: Poedit 2.0.6\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Offlate 0.1\n" #. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-# #. type: chapter @@ -34,17 +33,17 @@ msgstr "Contribuer" #. type: Plain text #: doc/contributing.texi:9 msgid "" -"This project is a cooperative effort, and we need your help to make it grow! " -"Please get in touch with us on @email{guix-devel@@gnu.org} and @code{#guix} " -"on the Freenode IRC network. We welcome ideas, bug reports, patches, and " +"This project is a cooperative effort, and we need your help to make it grow!" +" Please get in touch with us on @email{guix-devel@@gnu.org} and @code{#guix}" +" on the Freenode IRC network. We welcome ideas, bug reports, patches, and " "anything that may be helpful to the project. We particularly welcome help " "on packaging (@pxref{Packaging Guidelines})." msgstr "" "Ce projet est un effort coopératif et nous avons besoin de votre aide pour " "le faire grandir ! Contactez-nous sur @email{guix-devel@@gnu.org} et " -"@code{#guix} sur le réseau IRC Freenode. Nous accueillons les idées, les " -"rapports de bogues, les correctifs et tout ce qui pourrait aider le projet. " -"Nous apprécions particulièrement toute aide sur la création de paquets " +"@code{#guix} sur le réseau IRC Freenode. Nous accueillons les idées, les " +"rapports de bogues, les correctifs et tout ce qui pourrait aider le projet." +" Nous apprécions particulièrement toute aide sur la création de paquets " "(@pxref{Consignes d'empaquetage})." #. type: cindex @@ -64,26 +63,26 @@ msgstr "convention de contribution" msgid "" "We want to provide a warm, friendly, and harassment-free environment, so " "that anyone can contribute to the best of their abilities. To this end our " -"project uses a ``Contributor Covenant'', which was adapted from @url{http://" -"contributor-covenant.org/}. You can find a local version in the @file{CODE-" -"OF-CONDUCT} file in the source tree." +"project uses a ``Contributor Covenant'', which was adapted from " +"@url{http://contributor-covenant.org/}. You can find a local version in the" +" @file{CODE-OF-CONDUCT} file in the source tree." msgstr "" "Nous souhaitons fournir un environnement chaleureux, amical et sans " "harcèlement pour que tout le monde puisse contribuer au mieux de ses " -"capacités. Pour cela notre projet a une « Convention de contribution » " -"adaptée de @url{http://contributor-covenant.org/}. Vous pouvez trouver une " +"capacités. Pour cela notre projet a une « Convention de contribution » " +"adaptée de @url{http://contributor-covenant.org/}. Vous pouvez trouver une " "version locale dans le fichier @file{CODE-OF-CONDUCT} dans l'arborescence " "des sources." #. type: Plain text #: doc/contributing.texi:21 msgid "" -"Contributors are not required to use their legal name in patches and on-line " -"communication; they can use any name or pseudonym of their choice." +"Contributors are not required to use their legal name in patches and on-line" +" communication; they can use any name or pseudonym of their choice." msgstr "" "Les contributeurs n'ont pas besoin d'utiliser leur nom légal dans leurs " -"correctifs et leurs communications en ligne ; ils peuvent utiliser n'importe " -"quel nom ou pseudonyme de leur choix." +"correctifs et leurs communications en ligne ; ils peuvent utiliser n'importe" +" quel nom ou pseudonyme de leur choix." #. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-# #. type: section @@ -98,14 +97,14 @@ msgstr "Construire depuis Git" #. type: menuentry #: doc/contributing.texi:28 doc/guix.texi:282 msgid "The latest and greatest." -msgstr "" +msgstr "toujours le plus récent." #. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-# #. type: section #. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-# #. type: menuentry -#: doc/contributing.texi:28 doc/contributing.texi:102 doc/contributing.texi:103 -#: doc/guix.texi:282 +#: doc/contributing.texi:28 doc/contributing.texi:102 +#: doc/contributing.texi:103 doc/guix.texi:282 #, no-wrap msgid "Running Guix Before It Is Installed" msgstr "Lancer Guix avant qu'il ne soit installé" @@ -119,8 +118,8 @@ msgstr "Astuces pour les hackers." #. type: section #. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-# #. type: menuentry -#: doc/contributing.texi:28 doc/contributing.texi:169 doc/contributing.texi:170 -#: doc/guix.texi:282 +#: doc/contributing.texi:28 doc/contributing.texi:169 +#: doc/contributing.texi:170 doc/guix.texi:282 #, no-wrap msgid "The Perfect Setup" msgstr "La configuration parfaite" @@ -134,8 +133,8 @@ msgstr "Les bons outils." #. type: section #. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-# #. type: menuentry -#: doc/contributing.texi:28 doc/contributing.texi:228 doc/contributing.texi:229 -#: doc/guix.texi:282 doc/guix.texi:284 +#: doc/contributing.texi:28 doc/contributing.texi:228 +#: doc/contributing.texi:229 doc/guix.texi:282 doc/guix.texi:284 #, no-wrap msgid "Coding Style" msgstr "Style de code" @@ -149,8 +148,8 @@ msgstr "Hygiène du contributeur." #. type: section #. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-# #. type: menuentry -#: doc/contributing.texi:28 doc/contributing.texi:326 doc/contributing.texi:327 -#: doc/guix.texi:282 +#: doc/contributing.texi:28 doc/contributing.texi:326 +#: doc/contributing.texi:327 doc/guix.texi:282 #, no-wrap msgid "Submitting Patches" msgstr "Envoyer des correctifs" @@ -163,11 +162,11 @@ msgstr "Partager votre travail." #. type: Plain text #: doc/contributing.texi:35 msgid "" -"If you want to hack Guix itself, it is recommended to use the latest version " -"from the Git repository:" +"If you want to hack Guix itself, it is recommended to use the latest version" +" from the Git repository:" msgstr "" -"Si vous souhaitez travailler sur Guix lui-même, il est recommandé d'utiliser " -"la dernière version du dépôt Git :" +"Si vous souhaitez travailler sur Guix lui-même, il est recommandé d'utiliser" +" la dernière version du dépôt Git :" #. type: example #: doc/contributing.texi:38 @@ -182,8 +181,8 @@ msgid "" "addition to those mentioned in the installation instructions " "(@pxref{Requirements})." msgstr "" -"Lors de la construction de Guix depuis un extrait, les paquets suivants sont " -"requis en plus de ceux mentionnés dans les instructions d'installation " +"Lors de la construction de Guix depuis un extrait, les paquets suivants sont" +" requis en plus de ceux mentionnés dans les instructions d'installation " "(@pxref{Prérequis})." #. type: item @@ -220,7 +219,8 @@ msgstr "@url{http://www.graphviz.org/, Graphviz};" #: doc/contributing.texi:50 #, no-wrap msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}." -msgstr "@url{http://www.gnu.org/software/help2man/, GNU Help2man (facultatif)}." +msgstr "" +"@url{http://www.gnu.org/software/help2man/, GNU Help2man (facultatif)}." #. type: Plain text #: doc/contributing.texi:57 @@ -248,8 +248,8 @@ msgid "" "Extra dependencies can be added with @option{--ad-hoc}:" msgstr "" "@xref{Invoquer guix environment}, pour plus d'information sur cette " -"commande. On peut ajouter des dépendances supplémentaires avec @option{--ad-" -"hoc} :" +"commande. On peut ajouter des dépendances supplémentaires avec " +"@option{--ad-hoc} :" #. type: example #: doc/contributing.texi:67 @@ -264,7 +264,7 @@ msgid "" "Autoconf and Automake. If you get an error like this one:" msgstr "" "Lancez @command{./bootstrap} pour générer l'infrastructure du système de " -"construction avec Autoconf et Automake. Si vous avez une erreur comme :" +"construction avec Autoconf et Automake. Si vous avez une erreur comme :" #. type: example #: doc/contributing.texi:74 @@ -279,15 +279,15 @@ msgid "" "provided by pkg-config. Make sure that @file{pkg.m4} is available. The " "same holds for the @file{guile.m4} set of macros provided by Guile. For " "instance, if you installed Automake in @file{/usr/local}, it wouldn’t look " -"for @file{.m4} files in @file{/usr/share}. In that case, you have to invoke " -"the following command:" +"for @file{.m4} files in @file{/usr/share}. In that case, you have to invoke" +" the following command:" msgstr "" "cela signifie probablement qu'Autoconf n'a pas pu trouver @file{pkg.m4} qui " -"est fournit par pkg-config. Assurez-vous que @file{pkg.m4} est disponible. " -"C'est aussi vrai pour l'ensemble de macros de @file{guile.m4} fournies par " -"Guile. Par exemple, si vous avez installé Automake dans @file{/usr/local}, " -"il ne cherchera pas les fichiers @file{.m4} dans @file{/usr/share}. Dans ce " -"case vous devez invoquer la commande suivante :" +"est fournit par pkg-config. Assurez-vous que @file{pkg.m4} est disponible." +" C'est aussi vrai pour l'ensemble de macros de @file{guile.m4} fournies par" +" Guile. Par exemple, si vous avez installé Automake dans @file{/usr/local}," +" il ne cherchera pas les fichiers @file{.m4} dans @file{/usr/share}. Dans " +"ce case vous devez invoquer la commande suivante :" #. type: example #: doc/contributing.texi:86 @@ -307,12 +307,12 @@ msgstr "" #. type: Plain text #: doc/contributing.texi:95 msgid "" -"Then, run @command{./configure} as usual. Make sure to pass @code{--" -"localstatedir=@var{directory}} where @var{directory} is the " +"Then, run @command{./configure} as usual. Make sure to pass " +"@code{--localstatedir=@var{directory}} where @var{directory} is the " "@code{localstatedir} value used by your current installation (@pxref{The " "Store}, for information about this)." msgstr "" -"Ensuite, lancez @command{./configure} comme d'habitude. Assurez-vous de " +"Ensuite, lancez @command{./configure} comme d'habitude. Assurez-vous de " "passer @code{--localstatedir=@var{directory}} où @var{directory} est la " "valeur @code{localstatedir} utilisée par votre installation actuelle " "(@pxref{Le dépôt} pour plus d'informations à ce propos)." @@ -326,40 +326,40 @@ msgid "" "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}." +"(@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}." #. type: Plain text #: doc/contributing.texi:109 msgid "" -"In order to keep a sane working environment, you will find it useful to test " -"the changes made in your local source tree checkout without actually " +"In order to keep a sane working environment, you will find it useful to test" +" the changes made in your local source tree checkout without actually " "installing them. So that you can distinguish between your ``end-user'' hat " "and your ``motley'' costume." msgstr "" "Pour garder un environnement de travail sain, il est utile de tester les " -"changement localement sans les installer pour de vrai. Pour pouvoir " +"changement localement sans les installer pour de vrai. Pour pouvoir " "distinguer votre rôle « d'utilisateur final » de celui parfois haut en " "couleur de « développeur »." #. type: Plain text #: doc/contributing.texi:117 msgid "" -"To that end, all the command-line tools can be used even if you have not run " -"@code{make install}. To do that, prefix each command with @command{./pre-" +"To that end, all the command-line tools can be used even if you have not run" +" @code{make install}. To do that, prefix each command with @command{./pre-" "inst-env} (the @file{pre-inst-env} script lives in the top build tree of " -"Guix), as in@footnote{The @option{-E} flag to @command{sudo} guarantees that " -"@code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and " -"the tools it uses can find the Guile modules they need.}:" +"Guix), as in@footnote{The @option{-E} flag to @command{sudo} guarantees that" +" @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and" +" the tools it uses can find the Guile modules they need.}:" msgstr "" "Pour cela, tous les outils en ligne de commande sont utilisables même sans " -"avoir lancé @code{make install}. Vous devez pour cela préfixer chaque " +"avoir lancé @code{make install}. Vous devez pour cela préfixer chaque " "commande par @command{./pre-inst-env} (le script @file{pre-inst-env} se " "trouve dans le répertoire de plus haut niveau de l'arborescence des sources " -"de Guix) comme cela@footnote{L'option @option{-E} de @command{sudo} garantie " -"que @code{GUILE_LOAD_PATH} est bien paramétré pour @command{guix-daemon} et " -"les outils qu'il utilise puissent trouver les modules Guile dont ils ont " +"de Guix) comme cela@footnote{L'option @option{-E} de @command{sudo} garantie" +" que @code{GUILE_LOAD_PATH} est bien paramétré pour @command{guix-daemon} et" +" les outils qu'il utilise puissent trouver les modules Guile dont ils ont " "besoin.} :" #. type: example @@ -460,47 +460,49 @@ msgstr "" msgid "" "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the " "local source tree; it simply updates the @file{~/.config/guix/latest} " -"symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if you " -"want to upgrade your local source tree.@footnote{If you would like to set up " -"@command{guix} to use your Git checkout, you can point the @file{~/.config/" -"guix/latest} symlink to your Git checkout directory. If you are the sole " -"user of your system, you may also consider pointing the @file{/root/.config/" -"guix/latest} symlink to point to @file{~/.config/guix/latest}; this way it " -"will always use the same @command{guix} as your user does.}" +"symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if you" +" want to upgrade your local source tree.@footnote{If you would like to set " +"up @command{guix} to use your Git checkout, you can point the " +"@file{~/.config/guix/latest} symlink to your Git checkout directory. If you" +" are the sole user of your system, you may also consider pointing the " +"@file{/root/.config/guix/latest} symlink to point to " +"@file{~/.config/guix/latest}; this way it will always use the same " +"@command{guix} as your user does.}" msgstr "" "Remarquez que @command{./pre-inst-env guix pull} ne met @emph{pas} à jour " "l'arborescence des sources locale ; il met seulement à jour le lien " -"symbolique @file{~/.config/guix/latest} (@pxref{Invoquer guix pull}). Lancez " -"@command{git pull} à la place si vous voulez mettre à jour votre " +"symbolique @file{~/.config/guix/latest} (@pxref{Invoquer guix pull}). " +"Lancez @command{git pull} à la place si vous voulez mettre à jour votre " "arborescence des sources locale@footnote{Si vous voulez paramétrer " -"@command{guix} pour qu'il utilise votre dépôt Git, vous pouvez faire pointer " -"le lien symbolique @file{~/.config/guix/latest} vers le répertoire contenant " -"ce dépôt. Si vous le seul utilisateur du système, vous pouvez aussi " -"considérer faire pointer le lien symbolique @file{/root/.config/guix/latest} " -"vers @file{~/.config/guix/latest} ; comme ça root aura toujours la même " -"commande @command{guix} que votre utilisateur}." +"@command{guix} pour qu'il utilise votre dépôt Git, vous pouvez faire pointer" +" le lien symbolique @file{~/.config/guix/latest} vers le répertoire " +"contenant ce dépôt. Si vous le seul utilisateur du système, vous pouvez " +"aussi considérer faire pointer le lien symbolique " +"@file{/root/.config/guix/latest} vers @file{~/.config/guix/latest} ; comme " +"ça root aura toujours la même commande @command{guix} que votre " +"utilisateur}." #. type: Plain text #: doc/contributing.texi:177 msgid "" "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}." +"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}." msgstr "" "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}." +"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}." #. type: Plain text #: doc/contributing.texi:185 msgid "" -"Geiser allows for interactive and incremental development from within Emacs: " -"code compilation and evaluation from within buffers, access to on-line " +"Geiser allows for interactive and incremental development from within Emacs:" +" code compilation and evaluation from within buffers, access to on-line " "documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump " "to an object definition, a REPL to try out your code, and more " "(@pxref{Introduction,,, geiser, Geiser User Manual}). For convenient Guix " @@ -511,9 +513,10 @@ msgstr "" "compilation du code et son évaluation depuis les buffers, l'accès à la " "documentation en ligne (docstrings), la complétion sensible au contexte, " "@kbd{M-.} pour sauter à la définition d'un objet, un REPL pour tester votre " -"code, et bien plus (@pxref{Introduction,,, geiser, Geiser User Manual}). " -"Pour travailler confortablement sur Guix, assurez-vous de modifier le chemin " -"de chargement de Guile pour qu'il trouve les fichiers source de votre dépôt :" +"code, et bien plus (@pxref{Introduction,,, geiser, Geiser User Manual}). " +"Pour travailler confortablement sur Guix, assurez-vous de modifier le chemin" +" de chargement de Guile pour qu'il trouve les fichiers source de votre dépôt" +" :" #. type: lisp #: doc/contributing.texi:190 @@ -531,11 +534,18 @@ msgstr "" #: doc/contributing.texi:198 msgid "" "To actually edit the code, Emacs already has a neat Scheme mode. But in " -"addition to that, you must not miss @url{http://www.emacswiki.org/emacs/" -"ParEdit, Paredit}. It provides facilities to directly operate on the syntax " -"tree, such as raising an s-expression or wrapping it, swallowing or " -"rejecting the following s-expression, etc." +"addition to that, you must not miss " +"@url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. It provides " +"facilities to directly operate on the syntax tree, such as raising an " +"s-expression or wrapping it, swallowing or rejecting the following " +"s-expression, etc." msgstr "" +"Pour effectivement éditer le code, Emacs a déjà un très bon mode Scheme. " +"Mais en plus de ça, vous ne devez pas rater " +"@url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. Il fournit des " +"fonctionnalités pour opérer directement sur l'arbre de syntaxe, comme " +"relever une s-expression ou l'envelopper, absorber ou rejeter la " +"s-expression suivante, etc." #. type: cindex #: doc/contributing.texi:199 @@ -561,15 +571,15 @@ msgid "" "We also provide templates for common git commit messages and package " "definitions in the @file{etc/snippets} directory. These templates can be " "used with @url{http://joaotavora.github.io/yasnippet/, YASnippet} to expand " -"short trigger strings to interactive text snippets. You may want to add the " -"snippets directory to the @var{yas-snippet-dirs} variable in Emacs." +"short trigger strings to interactive text snippets. You may want to add the" +" snippets directory to the @var{yas-snippet-dirs} variable in Emacs." msgstr "" "Nous fournissons aussi des modèles pour les messages de commit git communs " -"et les définitions de paquets dans le répertoire @file{etc/snippets}. Ces " +"et les définitions de paquets dans le répertoire @file{etc/snippets}. Ces " "modèles s'utilisent avec @url{http://joaotavora.github.io/yasnippet/, " "YASnippet} pour développer des chaînes courtes de déclenchement en extraits " -"de texte interactifs. Vous pouvez ajouter le répertoire des modèles dans la " -"variables @var{yas-snippet-dirs} d'Emacs." +"de texte interactifs. Vous pouvez ajouter le répertoire des modèles dans la" +" variables @var{yas-snippet-dirs} d'Emacs." #. type: lisp #: doc/contributing.texi:213 @@ -593,8 +603,8 @@ msgid "" "updating a package." msgstr "" "Les extraits de messages de commit dépendent de @url{https://magit.vc/, " -"Magit} pour afficher les fichiers sélectionnés. Lors de la modification d'un " -"message de commit, tapez @code{add} suivi de @kbd{TAB} pour insérer un " +"Magit} pour afficher les fichiers sélectionnés. Lors de la modification " +"d'un message de commit, tapez @code{add} suivi de @kbd{TAB} pour insérer un " "modèle de message de commit pour ajouter un paquet ; tapez @code{update} " "suivi de @kbd{TAB} pour insérer un modèle pour la mise à jour d'un paquet." @@ -608,8 +618,8 @@ msgid "" "@code{...}, which also can be expanded further." msgstr "" "L'extrait principal pour @code{scheme-mode} est lancé en tapant " -"@code{package…} suivi par @kbd{TAB}. Cet extrait insère aussi la chaîne de " -"déclenchement @code{origin…}, qui peut aussi être étendue. L'extrait " +"@code{package…} suivi par @kbd{TAB}. Cet extrait insère aussi la chaîne de " +"déclenchement @code{origin…}, qui peut aussi être étendue. L'extrait " "@code{origin} lui-même peut aussi insérer des chaînes de déclenchement qui " "finissent sur @code{…}, qui peuvent aussi être étendues." @@ -620,9 +630,9 @@ msgid "" "standards, GNU Coding Standards}). However, they do not say much about " "Scheme, so here are some additional rules." msgstr "" -"En général notre code suit le Standard de Code GNU (@pxref{Top,,, standards, " -"GNU Coding Standards}). Cependant, il ne parle pas beaucoup de Scheme, donc " -"voici quelques règles supplémentaires." +"En général notre code suit le Standard de Code GNU (@pxref{Top,,, standards," +" GNU Coding Standards}). Cependant, il ne parle pas beaucoup de Scheme, " +"donc voici quelques règles supplémentaires." #. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-# #. type: subsection @@ -691,7 +701,7 @@ msgid "" "is code that involves input/output, and procedures that implement low-level " "concepts, such as the @code{memoize} procedure." msgstr "" -"Le code Scheme dans Guix est écrit dans un style purement fonctionnel. Le " +"Le code Scheme dans Guix est écrit dans un style purement fonctionnel. Le " "code qui s'occupe des entrées-sorties est une exception ainsi que les " "procédures qui implémentent des concepts bas-niveau comme la procédure " "@code{memoize}." @@ -699,14 +709,14 @@ msgstr "" #. type: Plain text #: doc/contributing.texi:256 msgid "" -"Guile modules that are meant to be used on the builder side must live in the " -"@code{(guix build @dots{})} name space. They must not refer to other Guix " -"or GNU modules. However, it is OK for a ``host-side'' module to use a build-" -"side module." +"Guile modules that are meant to be used on the builder side must live in the" +" @code{(guix build @dots{})} name space. They must not refer to other Guix " +"or GNU modules. However, it is OK for a ``host-side'' module to use a " +"build-side module." msgstr "" "Les modules Guile qui sont sensés être utilisés du côté de la construction " -"doivent se trouver dans l'espace de nom @code{(guix build @dots{})}. Ils ne " -"doivent pas se référer à d'autres modules Guix ou GNU. Cependant il est " +"doivent se trouver dans l'espace de nom @code{(guix build @dots{})}. Ils ne" +" doivent pas se référer à d'autres modules Guix ou GNU@. Cependant il est " "correct pour un module « côté hôte » de dépendre d'un module coté " "construction." @@ -729,8 +739,8 @@ msgid "" "reports." msgstr "" "La tendance en Lisp classique est d'utiliser des listes pour tout " -"représenter et de naviguer dedans « à la main ( avec @code{car}, @code{cdr}, " -"@code{cadr} et compagnie. Il y a plusieurs problèmes avec ce style, " +"représenter et de naviguer dedans « à la main ( avec @code{car}, @code{cdr}," +" @code{cadr} et compagnie. Il y a plusieurs problèmes avec ce style, " "notamment le fait qu'il soit dur à lire, source d'erreur et un obstacle aux " "rapports d'erreur bien typés." @@ -738,13 +748,13 @@ msgstr "" #: doc/contributing.texi:273 msgid "" "Guix code should define appropriate data types (for instance, using " -"@code{define-record-type*}) rather than abuse lists. In addition, it should " -"use pattern matching, via Guile’s @code{(ice-9 match)} module, especially " +"@code{define-record-type*}) rather than abuse lists. In addition, it should" +" use pattern matching, via Guile’s @code{(ice-9 match)} module, especially " "when matching lists." msgstr "" "Le code de Guix devrait définir des types de données appropriées (par " -"exemple, avec @code{define-record-type*}) plutôt que d'abuser des listes. En " -"plus, il devrait utiliser la recherche de motifs, via le module Guile " +"exemple, avec @code{define-record-type*}) plutôt que d'abuser des listes. " +"En plus, il devrait utiliser la recherche de motifs, via le module Guile " "@code{(ice-9 match)}, surtout pour rechercher dans des listes." #. type: cindex @@ -762,32 +772,33 @@ msgstr "style de code" #. type: Plain text #: doc/contributing.texi:285 msgid "" -"When writing Scheme code, we follow common wisdom among Scheme programmers. " -"In general, we follow the @url{http://mumble.net/~campbell/scheme/style.txt, " -"Riastradh's Lisp Style Rules}. This document happens to describe the " -"conventions mostly used in Guile’s code too. It is very thoughtful and well " -"written, so please do read it." +"When writing Scheme code, we follow common wisdom among Scheme programmers." +" In general, we follow the " +"@url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style " +"Rules}. This document happens to describe the conventions mostly used in " +"Guile’s code too. It is very thoughtful and well written, so please do read" +" it." msgstr "" "Lorsque nous écrivons du code Scheme, nous suivons la sagesse commune aux " -"programmeurs Scheme. En général, nous suivons les @url{http://mumble.net/" -"~campbell/scheme/style.txt, règles de style de Riastradh}. Ce document " -"décrit aussi les conventions utilisées dans le code de Guile. Il est bien " -"pensé et bien écrit, alors n'hésitez pas à le lire." +"programmeurs Scheme. En général, nous suivons les " +"@url{http://mumble.net/~campbell/scheme/style.txt, règles de style de " +"Riastradh}. Ce document décrit aussi les conventions utilisées dans le code" +" de Guile. Il est bien pensé et bien écrit, alors n'hésitez pas à le lire." #. type: Plain text #: doc/contributing.texi:292 msgid "" -"Some special forms introduced in Guix, such as the @code{substitute*} macro, " -"have special indentation rules. These are defined in the @file{.dir-locals." -"el} file, which Emacs automatically uses. Also note that Emacs-Guix " +"Some special forms introduced in Guix, such as the @code{substitute*} macro," +" have special indentation rules. These are defined in the @file{.dir-" +"locals.el} file, which Emacs automatically uses. Also note that Emacs-Guix " "provides @code{guix-devel-mode} mode that indents and highlights Guix code " "properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference " "Manual})." msgstr "" "Certaines formes spéciales introduites dans Guix comme la macro " -"@code{substitute*} ont des règles d'indentation spécifiques. Elles sont " +"@code{substitute*} ont des règles d'indentation spécifiques. Elles sont " "définies dans le fichier @file{.dir-locals.el} qu'Emacs utilise " -"automatiquement. Remarquez aussi qu'Emacs-Guix fournit le mode @code{guix-" +"automatiquement. Remarquez aussi qu'Emacs-Guix fournit le mode @code{guix-" "devel-mode} qui indente et colore le code Guix correctement " "(@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})." @@ -810,8 +821,8 @@ msgid "" "rules. To automatically indent a package definition, you can also run:" msgstr "" "Si vous n'utilisez pas Emacs, assurez-vous que votre éditeur connaisse ces " -"règles. Pour indenter automatiquement une définition de paquet, vous pouvez " -"aussi lancer :" +"règles. Pour indenter automatiquement une définition de paquet, vous pouvez" +" aussi lancer :" #. type: example #: doc/contributing.texi:300 @@ -822,13 +833,13 @@ msgstr "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n" #. type: Plain text #: doc/contributing.texi:306 msgid "" -"This automatically indents the definition of @var{package} in @file{gnu/" -"packages/@var{file}.scm} by running Emacs in batch mode. To indent a whole " -"file, omit the second argument:" +"This automatically indents the definition of @var{package} in " +"@file{gnu/packages/@var{file}.scm} by running Emacs in batch mode. To " +"indent a whole file, omit the second argument:" msgstr "" -"Cela indente automatiquement la définition de @var{package} dans @file{gnu/" -"packages/@var{file}.scm} en lançant Emacs en mode commande. Pour indenter un " -"fichier complet, n'indiquez pas de second argument :" +"Cela indente automatiquement la définition de @var{package} dans " +"@file{gnu/packages/@var{file}.scm} en lançant Emacs en mode commande. Pour " +"indenter un fichier complet, n'indiquez pas de second argument :" #. type: example #: doc/contributing.texi:309 @@ -840,7 +851,7 @@ msgstr "./etc/indent-code.el gnu/services/@var{file}.scm\n" #: doc/contributing.texi:311 #, no-wrap msgid "Vim, Scheme code editing" -msgstr "" +msgstr "Vim, édition de code Scheme" #. type: Plain text #: doc/contributing.texi:317 @@ -850,6 +861,11 @@ msgid "" "Additionally, @uref{https://www.vim.org/scripts/script.php?script_id=3998, " "@code{paredit.vim}} may help you deal with all these parentheses." msgstr "" +"Si vous éditez du code avec Vim, nous recommandons de lancer @code{:set " +"autoindent} pour que votre code soit automatiquement indenté au moment où " +"vous l'entrez. En plus, " +"@uref{https://www.vim.org/scripts/script.php?script_id=3998, " +"@code{paredit.vim}} peut vous aider à gérer toutes ces parenthèses." #. type: Plain text #: doc/contributing.texi:321 @@ -859,8 +875,9 @@ msgid "" "@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." +"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:324 @@ -868,20 +885,20 @@ msgid "" "Procedures should not have more than four positional parameters. Use " "keyword parameters for procedures that take more than four parameters." msgstr "" -"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 prennent plus " -"de quatre paramètres." +"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 prennent plus" +" de quatre paramètres." #. type: Plain text #: doc/contributing.texi:333 msgid "" -"Development is done using the Git distributed version control system. Thus, " -"access to the repository is not strictly necessary. We welcome " +"Development is done using the Git distributed version control system. Thus," +" access to the repository is not strictly necessary. We welcome " "contributions in the form of patches as produced by @code{git format-patch} " "sent to the @email{guix-patches@@gnu.org} mailing list." msgstr "" -"Le développement se fait avec le système de contrôle de version Git. Ainsi, " -"l'accès au dépôt n'est pas strictement nécessaire. Nous accueillons les " +"Le développement se fait avec le système de contrôle de version Git. Ainsi," +" l'accès au dépôt n'est pas strictement nécessaire. Nous accueillons les " "contributions sous forme de correctifs produits par @code{git format-patch} " "envoyés sur la liste de diffusion @email{guix-patches@@gnu.org}." @@ -897,7 +914,7 @@ msgid "" msgstr "" "Cette liste de diffusion est gérée par une instance Debbugs accessible à " "l'adresse @uref{https://bugs.gnu.org/guix-patches}, qui nous permet de " -"suivre les soumissions. Chaque message envoyé à cette liste se voit " +"suivre les soumissions. Chaque message envoyé à cette liste se voit " "attribuer un numéro de suivi ; les gens peuvent ensuite répondre à cette " "soumission en envoyant un courriel à @code{@var{NNN}@@debbugs.gnu.org}, où " "@var{NNN} est le numéro de suivi (@pxref{Envoyer une série de correctifs})." @@ -916,8 +933,8 @@ msgstr "" #. type: Plain text #: doc/contributing.texi:347 msgid "" -"Before submitting a patch that adds or modifies a package definition, please " -"run through this check list:" +"Before submitting a patch that adds or modifies a package definition, please" +" run through this check list:" msgstr "" "Avant de soumettre un correctif qui ajoute ou modifie la définition d'un " "paquet, veuillez vérifier cette check-list :" @@ -931,8 +948,8 @@ msgid "" "@code{gpg --verify} command." msgstr "" "Si les auteurs du paquet logiciel fournissent une signature cryptographique " -"pour l'archive, faîtes un effort pour vérifier l'authenticité de l'archive. " -"Pour un fichier de signature GPG détaché, cela se fait avec la commande " +"pour l'archive, faîtes un effort pour vérifier l'authenticité de l'archive." +" Pour un fichier de signature GPG détaché, cela se fait avec la commande " "@code{gpg --verify}." #. type: enumerate @@ -942,15 +959,15 @@ msgid "" "package. @xref{Synopses and Descriptions}, for some guidelines." msgstr "" "Prenez un peu de temps pour fournir un synopsis et une description adéquats " -"pour le paquet. Voir @xref{Synopsis et descriptions} pour quelques lignes " +"pour le paquet. Voir @xref{Synopsis et descriptions} pour quelques lignes " "directrices." #. type: enumerate #: doc/contributing.texi:363 msgid "" "Run @code{guix lint @var{package}}, where @var{package} is the name of the " -"new or modified package, and fix any errors it reports (@pxref{Invoking guix " -"lint})." +"new or modified package, and fix any errors it reports (@pxref{Invoking guix" +" lint})." msgstr "" "Lancez @code{guix lint @var{paquet}}, où @var{paquet} est le nom du nouveau " "paquet ou du paquet modifié, et corrigez les erreurs qu'il rapporte " @@ -977,8 +994,8 @@ msgid "" "Make sure the package does not use bundled copies of software already " "available as separate packages." msgstr "" -"Assurez-vous que le paquet n'utilise pas de copie groupée d'un logiciel déjà " -"disponible dans un paquet séparé." +"Assurez-vous que le paquet n'utilise pas de copie groupée d'un logiciel déjà" +" disponible dans un paquet séparé." #. type: enumerate #: doc/contributing.texi:381 @@ -986,20 +1003,20 @@ msgid "" "Sometimes, packages include copies of the source code of their dependencies " "as a convenience for users. However, as a distribution, we want to make " "sure that such packages end up using the copy we already have in the " -"distribution, if there is one. This improves resource usage (the dependency " -"is built and stored only once), and allows the distribution to make " +"distribution, if there is one. This improves resource usage (the dependency" +" is built and stored only once), and allows the distribution to make " "transverse changes such as applying security updates for a given software " "package in a single place and have them affect the whole system---something " "that bundled copies prevent." msgstr "" "Parfois, les paquets incluent des copie du code source de leurs dépendances " -"pour le confort de leurs utilisateurs. Cependant, en tant que distribution, " -"nous voulons nous assurer que ces paquets utilisent bien les copient que " -"nous avons déjà dans la distribution si elles existent. Cela améliore " +"pour le confort de leurs utilisateurs. Cependant, en tant que distribution," +" nous voulons nous assurer que ces paquets utilisent bien les copient que " +"nous avons déjà dans la distribution si elles existent. Cela améliore " "l'utilisation des ressources (la dépendance n'est construite et stockée " "qu'une seule fois) et permet à la distribution de faire des changements " -"transversaux comme appliquer des correctifs de sécurité pour un paquet donné " -"depuis un unique emplacement et qu'ils affectent tout le système, ce " +"transversaux comme appliquer des correctifs de sécurité pour un paquet donné" +" depuis un unique emplacement et qu'ils affectent tout le système, ce " "qu'empêchent les copies groupées." #. type: enumerate @@ -1012,9 +1029,9 @@ msgid "" "dependencies should be used." msgstr "" "Regardez le profile rapporté par @command{guix size} (@pxref{Invoking 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 " +"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." #. type: enumerate @@ -1025,8 +1042,8 @@ msgid "" "will help you do that (@pxref{Invoking guix refresh})." msgstr "" "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})." +"(s'ils existent) ne sont pas affectés par le changement ; @code{guix refresh" +" --list-dependant @var{paquet}} vous aidera (@pxref{Invoquer guix refresh})." #. type: cindex #: doc/contributing.texi:395 @@ -1075,10 +1092,10 @@ msgid "" "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})." +"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})." #. type: item #: doc/contributing.texi:410 @@ -1094,7 +1111,7 @@ msgid "" "months or so." msgstr "" "branche @code{core-updates} (peut inclure des changements majeurs et " -"potentiellement disruptifs). Cette branche devrait être fusionnée dans " +"potentiellement disruptifs). Cette branche devrait être fusionnée dans " "@code{master} tous les 2,5 mois environ." #. type: enumerate @@ -1107,7 +1124,7 @@ msgid "" msgstr "" "Toutes ces branches sont gérées par notre ferme de construction et " "fusionnées dans @code{master} une fois que tout a été construit " -"correctement. Cela nous permet de corriger des problèmes avant qu'ils " +"correctement. Cela nous permet de corriger des problèmes avant qu'ils " "n'atteignent les utilisateurs et réduit la fenêtre pendant laquelle les " "binaires pré-construits ne sont pas disponibles." @@ -1130,7 +1147,7 @@ msgid "" "means checking whether an independent build of the package yields the exact " "same result that you obtained, bit for bit." msgstr "" -"Vérifiez si le processus de construction du paquet est déterministe. Cela " +"Vérifiez si le processus de construction du paquet est déterministe. Cela " "signifie typiquement vérifier qu'une construction indépendante du paquet " "renvoie exactement le même résultat que vous avez obtenu, bit à bit." @@ -1156,8 +1173,8 @@ msgid "" "timestamps or randomly-generated output in the build result." msgstr "" "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." +"comme l'horodatage ou des sorties générées aléatoirement dans le résultat de" +" la construction." #. type: enumerate #: doc/contributing.texi:448 @@ -1172,26 +1189,27 @@ msgid "" "system kernel---e.g., reliance on @code{uname} or @file{/proc} files." msgstr "" "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}." +"(@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}." #. type: enumerate #: doc/contributing.texi:454 msgid "" -"When writing documentation, please use gender-neutral wording when referring " -"to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, " +"When writing documentation, please use gender-neutral wording when referring" +" to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, " "singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth." msgstr "" "Lorsque vous écrivez de la documentation, utilisez une formulation au genre " -"neutre lorsque vous vous référez à des personnes, comme le @uref{https://fr." -"wikipedia.org/wiki/They_singulier, ``they''@comma{} ``their''@comma{} " -"``them'' singulier} (en anglais)." +"neutre lorsque vous vous référez à des personnes, comme le " +"@uref{https://fr.wikipedia.org/wiki/They_singulier, ``they''@comma{} " +"``their''@comma{} ``them'' singulier} (en anglais)." #. type: enumerate #: doc/contributing.texi:458 @@ -1200,24 +1218,24 @@ msgid "" "unrelated changes together makes reviewing harder and slower." msgstr "" "Vérifiez que votre correctif contienne seulement un ensemble de changements " -"liés. Grouper des changements non liés ensemble rend la revue plus difficile " -"et plus lente." +"liés. Grouper des changements non liés ensemble rend la revue plus " +"difficile et plus lente." #. type: enumerate #: doc/contributing.texi:461 msgid "" -"Examples of unrelated changes include the addition of several packages, or a " -"package update along with fixes to that package." +"Examples of unrelated changes include the addition of several packages, or a" +" package update along with fixes to that package." msgstr "" -"Ajouter plusieurs paquet ou une mise à jour d'un paquet avec des corrections " -"dans ce paquet sont des exemples de changements sans rapport." +"Ajouter plusieurs paquet ou une mise à jour d'un paquet avec des corrections" +" dans ce paquet sont des exemples de changements sans rapport." #. type: enumerate #: doc/contributing.texi:466 msgid "" -"Please follow our code formatting rules, possibly running the @command{etc/" -"indent-code.el} script to do that automatically for you (@pxref{Formatting " -"Code})." +"Please follow our code formatting rules, possibly running the " +"@command{etc/indent-code.el} script to do that automatically for you " +"(@pxref{Formatting Code})." msgstr "" "Suivez nos règles de formatage de code, éventuellement en lançant le script " "@command{et/indent-code.el} pour le faire automatiquement (@pxref{Formatage " @@ -1228,16 +1246,16 @@ msgstr "" msgid "" "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a " "subject. You may use your email client or the @command{git send-email} " -"command (@pxref{Sending a Patch Series}). We prefer to get patches in plain " -"text messages, either inline or as MIME attachments. You are advised to pay " -"attention if your email client changes anything like line breaks or " +"command (@pxref{Sending a Patch Series}). We prefer to get patches in plain" +" text messages, either inline or as MIME attachments. You are advised to " +"pay attention if your email client changes anything like line breaks or " "indentation which could potentially break the patches." msgstr "" "Lorsque vous envoyez un correctif à la liste de diffusion, utilisez " -"@samp{[PATCH] @dots{}} comme sujet. Vous pouvez utiliser votre client de " +"@samp{[PATCH] @dots{}} comme sujet. Vous pouvez utiliser votre client de " "courriel ou la commande @command{git send-email} (@pxref{Envoyer une série " -"de correctifs}). Nous préférons recevoir des correctifs en texte brut, soit " -"en ligne, soit en pièce-jointe MIME. Nous vous conseillons de faire " +"de correctifs}). Nous préférons recevoir des correctifs en texte brut, soit" +" en ligne, soit en pièce-jointe MIME@. Nous vous conseillons de faire " "attention si votre client de courriel change par exemple les retours à la " "ligne ou l'indentation, ce qui peut casser les correctifs." @@ -1247,8 +1265,8 @@ msgid "" "When a bug is resolved, please close the thread by sending an email to " "@email{@var{NNN}-done@@debbugs.gnu.org}." msgstr "" -"Lorsqu'un bogue est résolu, veuillez fermer le fil en envoyant un courriel à " -"@email{@var{NNN}-done@@debbugs.gnu.org}." +"Lorsqu'un bogue est résolu, veuillez fermer le fil en envoyant un courriel à" +" @email{@var{NNN}-done@@debbugs.gnu.org}." #. type: anchor{#1} #: doc/contributing.texi:480 doc/contributing.texi:482 @@ -1283,19 +1301,20 @@ msgid "" "are kept together. See @uref{https://debbugs.gnu.org/Advanced.html, the " "Debbugs documentation} for more information." msgstr "" -"Lorsque vous envoyez une série de correctifs (p.e. avec @code{git send-" -"email}), envoyez d'abord une premier message à @email{guix-patches@@gnu.org} " -"puis envoyez le reste des correctifs à @email{@var{NNN}@@debbugs.gnu.org} " -"pour vous assurer qu'ils seront groupés ensemble. Voyez @uref{https://" -"debbugs.gnu.org/Advanced.html, la documentation de Debbugs} pour plus " -"d'informations." +"Lorsque vous envoyez une série de correctifs (p.@@:: ex.@: avec @code{git " +"send-email}), envoyez d'abord une premier message à @email{guix-" +"patches@@gnu.org} puis envoyez le reste des correctifs à " +"@email{@var{NNN}@@debbugs.gnu.org} pour vous assurer qu'ils seront groupés " +"ensemble. Voyez @uref{https://debbugs.gnu.org/Advanced.html, la " +"documentation de Debbugs} pour plus d'informations." #. type: Plain text #: doc/guix.texi:7 msgid "@documentencoding UTF-8" msgstr "" "@documentencoding UTF-8\n" -"@documentlanguage fr" +"@documentlanguage fr\n" +"@frenchspacing on" #. type: title #: doc/guix.texi:7 doc/guix.texi:77 @@ -1324,8 +1343,8 @@ msgid "" "Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright " "@copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017 " "Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright " -"@copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017, 2018 Clément " -"Lassieur@* Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright " +"@copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017, 2018 Clément" +" Lassieur@* Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright " "@copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo " "Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright " "@copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher " @@ -1335,8 +1354,8 @@ msgid "" "Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 " "Andy Wingo@* Copyright @copyright{} 2017, 2018 Arun Isaac@* Copyright " "@copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* " -"Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike " -"Gerwitz" +"Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike" +" Gerwitz" msgstr "" "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic " "Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright " @@ -1350,8 +1369,8 @@ msgstr "" "Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright " "@copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017 " "Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright " -"@copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017, 2018 Clément " -"Lassieur@* Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright " +"@copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017, 2018 Clément" +" Lassieur@* Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright " "@copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo " "Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright " "@copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher " @@ -1361,8 +1380,8 @@ msgstr "" "Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 " "Andy Wingo@* Copyright @copyright{} 2017, 2018 Arun Isaac@* Copyright " "@copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* " -"Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike " -"Gerwitz" +"Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike" +" Gerwitz" #. type: copying #: doc/guix.texi:58 @@ -1377,7 +1396,7 @@ msgstr "" "Vous avez la permission de copier, distribuer ou modifier ce document sous " "les termes de la Licence GNU Free Documentation, version 1.3 ou toute " "version ultérieure publiée par la Free Software Foundation ; sans section " -"invariante, texte de couverture et sans texte de quatrième de couverture. " +"invariante, texte de couverture et sans texte de quatrième de couverture. " "Une copie de la licence est incluse dans la section intitulée « GNU Free " "Documentation License »." @@ -1508,8 +1527,8 @@ msgid "" "This document describes GNU Guix version @value{VERSION}, a functional " "package management tool written for the GNU system." msgstr "" -"Cette documentation décrit GNU Guix version @value{VERSION}, un outils de " -"gestion de paquets fonctionnel écrit pour le système GNU." +"Cette documentation décrit GNU Guix version @value{VERSION}, un outil de " +"gestion de paquets fonctionnel écrit pour le système GNU@." #. type: chapter #: doc/guix.texi:106 doc/guix.texi:294 doc/guix.texi:295 @@ -1751,7 +1770,7 @@ msgstr "Invoquer guix package" #. type: menuentry #: doc/guix.texi:140 doc/guix.texi:1682 msgid "Package installation, removal, etc." -msgstr "Installation, suppression, etc. de paquets." +msgstr "Installation, suppression, etc.@: de paquets." #. type: section #: doc/guix.texi:140 doc/guix.texi:142 doc/guix.texi:1682 doc/guix.texi:2245 @@ -2215,7 +2234,8 @@ msgid "Configuring the operating system." msgstr "Configurer le système d'exploitation." #. type: section -#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21351 doc/guix.texi:21352 +#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21351 +#: doc/guix.texi:21352 #, no-wrap msgid "Documentation" msgstr "Documentation" @@ -2226,7 +2246,8 @@ msgid "Browsing software user manuals." msgstr "Visualiser les manuels d'utilisateur des logiciels." #. type: section -#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21415 doc/guix.texi:21416 +#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21415 +#: doc/guix.texi:21416 #, no-wrap msgid "Installing Debugging Files" msgstr "Installer les fichiers de débogage" @@ -2237,7 +2258,8 @@ msgid "Feeding the debugger." msgstr "Nourrir le débogueur." #. type: section -#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21481 doc/guix.texi:21482 +#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21481 +#: doc/guix.texi:21482 #, no-wrap msgid "Security Updates" msgstr "Mises à jour de sécurité" @@ -2248,7 +2270,8 @@ msgid "Deploying security fixes quickly." msgstr "Déployer des correctifs de sécurité rapidement." #. type: section -#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21601 doc/guix.texi:21602 +#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21601 +#: doc/guix.texi:21602 #, no-wrap msgid "Package Modules" msgstr "Modules de paquets" @@ -2271,7 +2294,8 @@ msgid "Growing the distribution." msgstr "Faire grandir la distribution." #. type: section -#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:22106 doc/guix.texi:22107 +#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:22106 +#: doc/guix.texi:22107 #, no-wrap msgid "Bootstrapping" msgstr "Bootstrapping" @@ -2357,7 +2381,7 @@ msgstr "Installer GuixSD dans une VM" #. type: menuentry #: doc/guix.texi:210 doc/guix.texi:8090 msgid "GuixSD playground." -msgstr "Jouer avec GuixSD." +msgstr "Jouer avec GuixSD@." #. type: subsection #: doc/guix.texi:210 doc/guix.texi:8090 doc/guix.texi:8659 doc/guix.texi:8660 @@ -2379,7 +2403,7 @@ msgstr "Utiliser le système de configuration" #. type: menuentry #: doc/guix.texi:228 doc/guix.texi:8715 msgid "Customizing your GNU system." -msgstr "Personnaliser votre système GNU." +msgstr "Personnaliser votre système GNU@." #. type: node #: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:8933 @@ -2450,7 +2474,8 @@ msgid "Specifying system services." msgstr "Spécifier les services du système." #. type: subsection -#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:19720 doc/guix.texi:19721 +#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:19720 +#: doc/guix.texi:19721 #, no-wrap msgid "Setuid Programs" msgstr "Programmes setuid" @@ -2470,7 +2495,7 @@ msgstr "Certificats X.509" #. type: menuentry #: doc/guix.texi:228 doc/guix.texi:8715 msgid "Authenticating HTTPS servers." -msgstr "Authentifier les serveurs HTTPS." +msgstr "Authentifier les serveurs HTTPS@." #. type: subsection #: doc/guix.texi:228 doc/guix.texi:1492 doc/guix.texi:8715 doc/guix.texi:19829 @@ -2485,7 +2510,8 @@ msgid "Configuring libc's name service switch." msgstr "Configurer le « name service switch » de la libc." #. type: subsection -#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:19967 doc/guix.texi:19968 +#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:19967 +#: doc/guix.texi:19968 #, no-wrap msgid "Initial RAM Disk" msgstr "Disque de RAM initial" @@ -2496,7 +2522,8 @@ msgid "Linux-Libre bootstrapping." msgstr "Démarrage de Linux-Libre." #. type: subsection -#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:20127 doc/guix.texi:20128 +#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:20127 +#: doc/guix.texi:20128 #, no-wrap msgid "Bootloader Configuration" msgstr "Configuration du chargeur d'amorçage" @@ -2552,268 +2579,291 @@ msgid "Essential system services." msgstr "Services systèmes essentiels." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:10488 doc/guix.texi:10489 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:10488 +#: doc/guix.texi:10489 #, no-wrap msgid "Scheduled Job Execution" -msgstr "" +msgstr "Exécution de tâches planifiées" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "The mcron service." -msgstr "" +msgstr "Le service mcron." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:10583 doc/guix.texi:10584 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:10583 +#: doc/guix.texi:10584 #, no-wrap msgid "Log Rotation" -msgstr "" +msgstr "Rotation des journaux" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "The rottlog service." -msgstr "" +msgstr "Le service rottlog." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:10685 doc/guix.texi:10686 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:10685 +#: doc/guix.texi:10686 #, no-wrap msgid "Networking Services" -msgstr "" +msgstr "Services réseau" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Network setup, SSH daemon, etc." -msgstr "" +msgstr "Paramétres réseau, démon SSH, etc." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:11431 doc/guix.texi:11432 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:11431 +#: doc/guix.texi:11432 #, no-wrap msgid "X Window" -msgstr "" +msgstr "Système de fenêtrage X" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Graphical display." -msgstr "" +msgstr "Affichage graphique." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:11677 doc/guix.texi:11678 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:11677 +#: doc/guix.texi:11678 #, no-wrap msgid "Printing Services" -msgstr "" +msgstr "Services d'impression" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Local and remote printer support." -msgstr "" +msgstr "Support pour les imprimantes locales et distantes." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:12514 doc/guix.texi:12515 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:12514 +#: doc/guix.texi:12515 #, no-wrap msgid "Desktop Services" -msgstr "" +msgstr "Services de bureaux" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "D-Bus and desktop services." -msgstr "" +msgstr "D-Bus et les services de bureaux." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:12807 doc/guix.texi:12808 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:12807 +#: doc/guix.texi:12808 #, no-wrap msgid "Database Services" -msgstr "" +msgstr "Services de bases de données" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "SQL databases, key-value stores, etc." -msgstr "" +msgstr "Bases SQL, clefs-valeurs, etc." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:12931 doc/guix.texi:12932 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:12931 +#: doc/guix.texi:12932 #, no-wrap msgid "Mail Services" -msgstr "" +msgstr "Services de courriels" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "IMAP, POP3, SMTP, and all that." -msgstr "" +msgstr "IMAP, POP3, SMTP, et tout ça." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:14383 doc/guix.texi:14384 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:14383 +#: doc/guix.texi:14384 #, no-wrap msgid "Messaging Services" -msgstr "" +msgstr "Services de messagerie" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Messaging services." -msgstr "" +msgstr "Services de messagerie." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:14851 doc/guix.texi:14852 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:14851 +#: doc/guix.texi:14852 #, no-wrap msgid "Telephony Services" -msgstr "" +msgstr "Services de téléphonie" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Telephony services." -msgstr "" +msgstr "Services de téléphonie." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15056 doc/guix.texi:15057 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15056 +#: doc/guix.texi:15057 #, no-wrap msgid "Monitoring Services" -msgstr "" +msgstr "Services de surveillance" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Monitoring services." -msgstr "" +msgstr "Services de surveillance." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15209 doc/guix.texi:15210 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15209 +#: doc/guix.texi:15210 #, no-wrap msgid "Kerberos Services" -msgstr "" +msgstr "Services Kerberos" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Kerberos services." -msgstr "" +msgstr "Services Kerberos." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15335 doc/guix.texi:15336 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15335 +#: doc/guix.texi:15336 #, no-wrap msgid "Web Services" -msgstr "" +msgstr "Services web" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Web servers." -msgstr "" +msgstr "Services web." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15944 doc/guix.texi:15945 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15944 +#: doc/guix.texi:15945 #, no-wrap msgid "Certificate Services" -msgstr "" +msgstr "Services de certificats" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "TLS certificates via Let's Encrypt." -msgstr "" +msgstr "Certificats TLS via Let's Encrypt." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16090 doc/guix.texi:16091 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16090 +#: doc/guix.texi:16091 #, no-wrap msgid "DNS Services" -msgstr "" +msgstr "Services DNS" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "DNS daemons." -msgstr "" +msgstr "Démons DNS@." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16494 doc/guix.texi:16495 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16494 +#: doc/guix.texi:16495 #, no-wrap msgid "VPN Services" -msgstr "" +msgstr "Services VPN" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "VPN daemons." -msgstr "" +msgstr "Démons VPN" #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16852 doc/guix.texi:16853 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16852 +#: doc/guix.texi:16853 #, no-wrap msgid "Network File System" -msgstr "" +msgstr "Système de fichiers en réseau" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "NFS related services." -msgstr "" +msgstr "Services liés à NFS@." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16967 doc/guix.texi:16968 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16967 +#: doc/guix.texi:16968 #, no-wrap msgid "Continuous Integration" -msgstr "" +msgstr "Intégration continue" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "The Cuirass service." -msgstr "" +msgstr "Le service Cuirass." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:17063 doc/guix.texi:17064 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:17063 +#: doc/guix.texi:17064 #, no-wrap msgid "Power management Services" -msgstr "" +msgstr "Services de gestion de l'énergie" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "The TLP tool." -msgstr "" +msgstr "L'outil TLP@." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:17591 doc/guix.texi:17592 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:17591 +#: doc/guix.texi:17592 #, no-wrap msgid "Audio Services" -msgstr "" +msgstr "Services audio" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "The MPD." -msgstr "" +msgstr "MPD@." #. type: node #: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:17641 #, no-wrap msgid "Virtualization Services" -msgstr "" +msgstr "Services de virtualisation" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Virtualization services." -msgstr "" +msgstr "Services de virtualisation." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:18434 doc/guix.texi:18435 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:18434 +#: doc/guix.texi:18435 #, no-wrap msgid "Version Control Services" -msgstr "" +msgstr "Services de contrôle de version" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Providing remote access to Git repositories." -msgstr "" +msgstr "Fournit des accès distants à des dépôts Git." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:19528 doc/guix.texi:19529 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:19528 +#: doc/guix.texi:19529 #, no-wrap msgid "Game Services" -msgstr "" +msgstr "Services de jeu" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Game servers." -msgstr "" +msgstr "Serveurs de jeu." #. type: subsubsection -#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:19559 doc/guix.texi:19560 +#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:19559 +#: doc/guix.texi:19560 #, no-wrap msgid "Miscellaneous Services" -msgstr "" +msgstr "Services divers" #. type: menuentry #: doc/guix.texi:256 doc/guix.texi:9718 msgid "Other services." -msgstr "" +msgstr "D'autres services." #. type: subsubsection #: doc/guix.texi:263 doc/guix.texi:20846 doc/guix.texi:20848 @@ -2849,7 +2899,7 @@ msgstr "Référence de service" #. type: menuentry #: doc/guix.texi:263 doc/guix.texi:20846 msgid "API reference." -msgstr "Référence de l'API." +msgstr "Référence de l'API@." #. type: subsubsection #: doc/guix.texi:263 doc/guix.texi:20846 doc/guix.texi:21266 @@ -2957,7 +3007,7 @@ msgstr "Polices de caractères" #. type: menuentry #: doc/guix.texi:274 doc/guix.texi:21730 msgid "Fond of fonts." -msgstr "" +msgstr "À fond les fontes." #. type: cindex #: doc/guix.texi:297 @@ -2969,19 +3019,19 @@ msgstr "but" #: doc/guix.texi:304 msgid "" "GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using " -"the international phonetic alphabet (IPA).} is a package management tool for " -"the GNU system. Guix makes it easy for unprivileged users to install, " +"the international phonetic alphabet (IPA).} is a package management tool for" +" the GNU system. Guix makes it easy for unprivileged users to install, " "upgrade, or remove 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." msgstr "" "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 " +"« 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." +"la construction de paquets depuis les sources et plus généralement aide à la" +" création et à la maintenance d'environnements logiciels." #. type: cindex #: doc/guix.texi:305 @@ -2993,8 +3043,8 @@ msgstr "interfaces utilisateurs" #: doc/guix.texi:310 msgid "" "Guix provides a command-line package management interface (@pxref{Invoking " -"guix package}), a set of command-line utilities (@pxref{Utilities}), as well " -"as Scheme programming interfaces (@pxref{Programming Interface})." +"guix package}), a set of command-line utilities (@pxref{Utilities}), as well" +" as Scheme programming interfaces (@pxref{Programming Interface})." msgstr "" "Guix fournit une interface de gestion des paquets par la ligne de commande " "(@pxref{Invoquer guix package}), un ensemble d'utilitaires en ligne de " @@ -3011,8 +3061,8 @@ msgstr "démon de construction" #: doc/guix.texi:314 msgid "" "Its @dfn{build daemon} is responsible for building packages on behalf of " -"users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries " -"from authorized sources (@pxref{Substitutes})." +"users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries" +" from authorized sources (@pxref{Substitutes})." msgstr "" "Son @dfn{démon de construction} est responsable de la construction des " "paquets pour les utilisateurs (@pxref{Paramétrer le démon}) et du " @@ -3039,19 +3089,19 @@ msgid "" "computing freedom}. It is @emph{extensible}: users can write their own " "package definitions (@pxref{Defining Packages}) and make them available as " "independent package modules (@pxref{Package Modules}). It is also " -"@emph{customizable}: users can @emph{derive} specialized package definitions " -"from existing ones, including from the command line (@pxref{Package " +"@emph{customizable}: users can @emph{derive} specialized package definitions" +" from existing ones, including from the command line (@pxref{Package " "Transformation Options})." msgstr "" "Guix contient de nombreuses définitions de paquet GNU et non-GNU qui " "respectent tous les @uref{https://www.gnu.org/philosophy/free-sw.fr.html, " -"libertés de l'utilisateur}. Il est @emph{extensible} : les utilisateurs " +"libertés de l'utilisateur}. Il est @emph{extensible} : les utilisateurs " "peuvent écrire leurs propres définitions de paquets (@pxref{Defining " "Packages}) et les rendre disponibles dans des modules de paquets " -"indépendants (@pxref{Package Modules}). Il est aussi " +"indépendants (@pxref{Package Modules}). Il est aussi " "@emph{personnalisable} : les utilisateurs peuvent @emph{dériver} des " -"définitions de paquets spécialisées à partir de définitions existantes, même " -"depuis la ligne de commande (@pxref{Package Transformation Options})." +"définitions de paquets spécialisées à partir de définitions existantes, même" +" depuis la ligne de commande (@pxref{Package Transformation Options})." #. type: cindex #: doc/guix.texi:326 doc/guix.texi:7984 doc/guix.texi:8062 @@ -3078,12 +3128,13 @@ msgid "" "Configuration})." msgstr "" "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 " +"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})." +"transactionnelle, reproductible et sans état (@pxref{Configuration " +"système})." #. type: cindex #: doc/guix.texi:337 @@ -3095,35 +3146,35 @@ msgstr "gestion de paquet fonctionnelle" #: doc/guix.texi:352 msgid "" "Under the hood, Guix implements the @dfn{functional package management} " -"discipline pioneered by Nix (@pxref{Acknowledgments}). In Guix, the package " -"build and installation process is seen as a @emph{function}, in the " +"discipline pioneered by Nix (@pxref{Acknowledgments}). In Guix, the package" +" build and installation process is seen as a @emph{function}, in the " "mathematical sense. That function takes inputs, such as build scripts, a " "compiler, and libraries, and returns an installed package. As a pure " "function, its result depends solely on its inputs---for instance, it cannot " "refer to software or scripts that were not explicitly passed as inputs. A " "build function always produces the same result when passed a given set of " "inputs. It cannot alter the environment of the running system in any way; " -"for instance, it cannot create, modify, or delete files outside of its build " -"and installation directories. This is achieved by running build processes " +"for instance, it cannot create, modify, or delete files outside of its build" +" and installation directories. This is achieved by running build processes " "in isolated environments (or @dfn{containers}), where only their explicit " "inputs are visible." msgstr "" "Sous le capot, Guix implémente la discipline de @dfn{gestion de paquet " -"fonctionnel} inventé par Nix (@pxref{Remerciements}). Dans Guix le processus " -"de construction et d'installation des paquets est vu comme une " -"@emph{fonction} dans le sens mathématique du terme. Cette fonction a des " +"fonctionnel} inventé par Nix (@pxref{Remerciements}). Dans Guix le " +"processus de construction et d'installation des paquets est vu comme une " +"@emph{fonction} dans le sens mathématique du terme. Cette fonction a des " "entrées (comme des scripts de construction, un compilateur et des " -"bibliothèques) et renvoie un paquet installé. En tant que fonction pure, son " -"résultat ne dépend que de ses entrées. Par exemple, il ne peut pas faire " -"référence à des logiciels ou des scripts qui n'ont pas été explicitement " -"passés en entrée. Une fonction de construction produit toujours le même " -"résultat quand on lui donne le même ensemble d'entrée. Elle ne peut pas " -"modifier l'environnement du système en cours d'exécution d'aucune manière ; " -"par exemple elle ne peut pas créer, modifier ou supprimer des fichiers en " -"dehors de ses répertoires de construction et d'installation. Ce résultat " -"s'obtient en lançant les processus de construction dans des environnements " -"isolés (ou des @dfn{conteneurs}) où seules les entrées explicites sont " -"visibles." +"bibliothèques) et renvoie un paquet installé. En tant que fonction pure, " +"son résultat ne dépend que de ses entrées. Par exemple, il ne peut pas " +"faire référence à des logiciels ou des scripts qui n'ont pas été " +"explicitement passés en entrée. Une fonction de construction produit " +"toujours le même résultat quand on lui donne le même ensemble d'entrée. " +"Elle ne peut pas modifier l'environnement du système en cours d'exécution " +"d'aucune manière ; par exemple elle ne peut pas créer, modifier ou supprimer" +" des fichiers en dehors de ses répertoires de construction et " +"d'installation. Ce résultat s'obtient en lançant les processus de " +"construction dans des environnements isolés (ou des @dfn{conteneurs}) où " +"seules les entrées explicites sont visibles." #. type: cindex #: doc/guix.texi:353 doc/guix.texi:4186 @@ -3134,8 +3185,8 @@ msgstr "dépôt" #. type: Plain text #: doc/guix.texi:360 msgid "" -"The result of package build functions is @dfn{cached} in the file system, in " -"a special directory called @dfn{the store} (@pxref{The Store}). Each " +"The result of package build functions is @dfn{cached} in the file system, in" +" a special directory called @dfn{the store} (@pxref{The Store}). Each " "package is installed in a directory of its own in the store---by default " "under @file{/gnu/store}. The directory name contains a hash of all the " "inputs used to build that package; thus, changing an input yields a " @@ -3143,10 +3194,10 @@ msgid "" msgstr "" "Le résultat des fonctions de construction de paquets est mis en @dfn{cache} " "dans le système de fichier, dans répertoire spécial appelé le @dfn{dépôt} " -"(@pxref{The Store}). Chaque paquet est installé dans son répertoire propre " -"dans le dépôt — par défaut dans @file{/gnu/store}. Le nom du répertoire " -"contient un hash de toutes les entrées utilisées pour construire le paquet ; " -"ainsi, changer une entrée donnera un nom de répertoire différent." +"(@pxref{The Store}). Chaque paquet est installé dans son répertoire propre " +"dans le dépôt — par défaut dans @file{/gnu/store}. Le nom du répertoire " +"contient un hash de toutes les entrées utilisées pour construire le paquet ;" +" ainsi, changer une entrée donnera un nom de répertoire différent." #. type: Plain text #: doc/guix.texi:364 @@ -3157,8 +3208,8 @@ msgid "" msgstr "" "Cette approche est le fondement des fonctionnalités les plus importante de " "Guix : le support des mises à jour des paquets et des retours en arrière " -"transactionnels, l'installation différenciée par utilisateur et le ramassage " -"de miettes pour les paquets (@pxref{Fonctionnalités})." +"transactionnels, l'installation différenciée par utilisateur et le ramassage" +" de miettes pour les paquets (@pxref{Fonctionnalités})." #. type: cindex #: doc/guix.texi:370 @@ -3169,14 +3220,15 @@ msgstr "installer Guix" #. type: Plain text #: doc/guix.texi:375 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." +"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." +"@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:380 @@ -3187,7 +3239,7 @@ msgid "" "@pxref{System Installation}." msgstr "" "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 " +"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{System Installation}." @@ -3201,15 +3253,15 @@ msgstr "distro extérieure" #: doc/guix.texi:387 msgid "" "When installed on a running GNU/Linux system---thereafter called a " -"@dfn{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." +"@dfn{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." msgstr "" "Lorsqu'il est installé sur an 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 " +"@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." #. type: Plain text @@ -3225,7 +3277,7 @@ msgstr "" #: doc/guix.texi:403 #, no-wrap msgid "installing Guix from binaries" -msgstr "" +msgstr "installer Guix depuis les binaires" #. type: Plain text #: doc/guix.texi:409 @@ -3233,38 +3285,54 @@ 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." +"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." #. type: Plain text #: doc/guix.texi:414 msgid "" -"We provide a @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-" -"install.sh, shell installer script}, which automates the download, " -"installation, and initial configuration of Guix. It should be run as the " -"root user." +"We provide a " +"@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, " +"shell installer script}, which automates the download, installation, and " +"initial configuration of Guix. It should be run as the root user." msgstr "" +"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." #. type: Plain text #: doc/guix.texi:416 msgid "Installing goes along these lines:" -msgstr "" +msgstr "L'installation se comme ceci :" #. type: cindex #: doc/guix.texi:419 #, no-wrap msgid "downloading Guix binary" -msgstr "" +msgstr "téléchargement du Guix binaire" #. type: enumerate #: doc/guix.texi:424 msgid "" -"Download the binary tarball from @indicateurl{ftp://alpha.gnu.org/gnu/guix/" -"guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is " +"Download the binary tarball from " +"@indicateurl{ftp://alpha.gnu.org/gnu/guix/guix-" +"binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is " "@code{x86_64-linux} for an @code{x86_64} machine already running the kernel " "Linux, and so on." msgstr "" +"Téléchargez l'archive binaire depuis " +"@indicateurl{ftp://alpha.gnu.org/gnu/guix/guix-" +"binary-@value{VERSION}.@var{système}.tar.xz}, où @var{système} est " +"@code{x86_64-linux} pour une machine @code{x86_64} sur laquelle tourne déjà " +"le noyau Linux, etc." #. type: enumerate #: doc/guix.texi:428 @@ -3272,6 +3340,8 @@ msgid "" "Make sure to download the associated @file{.sig} file and to verify the " "authenticity of the tarball against it, along these lines:" msgstr "" +"Assurez-vous de télécharger le fichier @file{.sig} associé et de vérifier " +"l'authenticité de l'archive avec, comme ceci :" #. type: example #: doc/guix.texi:432 @@ -3280,6 +3350,8 @@ msgid "" "$ wget ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n" "$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n" msgstr "" +"$ wget ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{système}.tar.xz.sig\n" +"$ gpg --verify guix-binary-@value{VERSION}.@var{système}.tar.xz.sig\n" #. type: Plain text #: doc/guix.texi:436 doc/guix.texi:8198 @@ -3287,17 +3359,21 @@ msgid "" "If that command fails because you do not have the required public key, then " "run this command to import it:" msgstr "" +"Si cette commande échoue parce que vous n'avez pas la clef publique requise," +" lancez cette commande pour l'importer :" #. type: example #: doc/guix.texi:439 doc/guix.texi:8201 #, no-wrap -msgid "$ gpg --keyserver pgp.mit.edu --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n" +msgid "" +"$ gpg --keyserver pgp.mit.edu --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n" msgstr "" +"$ gpg --keyserver pgp.mit.edu --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n" #. type: Plain text #: doc/guix.texi:444 doc/guix.texi:8206 msgid "and rerun the @code{gpg --verify} command." -msgstr "" +msgstr "et relancez la commande @code{gpg --verify}." #. type: enumerate #: doc/guix.texi:448 @@ -3306,6 +3382,9 @@ msgid "" "distribution, you may have to run @code{su -} or @code{sudo -i}. As " "@code{root}, run:" msgstr "" +"Maintenant, vous devez devenir l'utilisateur @code{root}. En fonction de " +"votre distribution, vous devrez lancer @code{su -} ou @code{sudo -i}. En " +"tant que @code{root}, lancez :" #. type: example #: doc/guix.texi:454 @@ -3316,6 +3395,10 @@ msgid "" " guix-binary-@value{VERSION}.@var{system}.tar.xz\n" "# mv var/guix /var/ && mv gnu /\n" msgstr "" +"# cd /tmp\n" +"# tar --warning=no-timestamp -xf \\\n" +" guix-binary-@value{VERSION}.@var{système}.tar.xz\n" +"# mv var/guix /var/ && mv gnu /\n" #. type: enumerate #: doc/guix.texi:459 @@ -3323,6 +3406,9 @@ 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)." #. type: enumerate #: doc/guix.texi:462 @@ -3330,6 +3416,8 @@ msgid "" "Do @emph{not} unpack the tarball on a working Guix system since that would " "overwrite its own essential files." msgstr "" +"Ne décompressez @emph{pas} l'archive sur un système Guix lancé car cela " +"écraserait ses propres fichiers essentiels." #. type: enumerate #: doc/guix.texi:472 @@ -3337,16 +3425,25 @@ msgid "" "The @code{--warning=no-timestamp} option makes sure GNU@tie{}tar does not " "emit warnings about ``implausibly old time stamps'' (such warnings were " "triggered by GNU@tie{}tar 1.26 and older; recent versions are fine.) They " -"stem from the fact that all the files in the archive have their modification " -"time set to zero (which means January 1st, 1970.) This is done on purpose " +"stem from the fact that all the files in the archive have their modification" +" time set to zero (which means January 1st, 1970.) This is done on purpose " "to make sure the archive content is independent of its creation time, thus " "making it reproducible." msgstr "" +"L'option @code{--warning=no-timestamp} s'assure que GNU@tie{}tar ne produise" +" pas d'avertissement disant que « l'horodatage est trop vieux pour être " +"plausible » (ces avertissements étaient produits par GNU@tie{}tar 1.26 et " +"précédents ; les versions récentes n'ont pas ce problème). Cela vient du " +"fait que les fichiers de l'archive ont pour date de modification zéro (ce " +"qui signifie le 1er janvier 1970). C'est fait exprès pour s'assurer que le " +"contenu de l'archive ne dépende pas de la date de création, ce qui la rend " +"reproductible." #. type: enumerate #: doc/guix.texi:475 msgid "Make @code{root}'s profile available under @file{~root/.guix-profile}:" msgstr "" +"Rendez le profil de @code{root} disponible sous @file{~root/.guix-profile} :" #. type: example #: doc/guix.texi:479 @@ -3355,6 +3452,8 @@ msgid "" "# ln -sf /var/guix/profiles/per-user/root/guix-profile \\\n" " ~root/.guix-profile\n" msgstr "" +"# ln -sf /var/guix/profiles/per-user/root/guix-profile \\\n" +" ~root/.guix-profile\n" #. type: enumerate #: doc/guix.texi:483 @@ -3362,6 +3461,8 @@ msgid "" "Source @file{etc/profile} to augment @code{PATH} and other relevant " "environment variables:" msgstr "" +"Sourcez @file{etc/profile} pour augmenter @code{PATH} et les autres " +"variables d'environnement nécessaires :" #. type: example #: doc/guix.texi:487 @@ -3370,6 +3471,8 @@ msgid "" "# GUIX_PROFILE=\"`echo ~root`/.guix-profile\" ; \\\n" " source $GUIX_PROFILE/etc/profile\n" msgstr "" +"# GUIX_PROFILE=\"`echo ~root`/.guix-profile\" ; \\\n" +" source $GUIX_PROFILE/etc/profile\n" #. type: enumerate #: doc/guix.texi:492 @@ -3377,11 +3480,14 @@ msgid "" "Create the group and user accounts for build users as explained below " "(@pxref{Build Environment Setup})." msgstr "" +"Créez le groupe et les comptes utilisateurs pour les utilisateurs de " +"construction comme expliqué plus loin (@pxref{Build Environment Setup})." #. type: enumerate #: doc/guix.texi:495 msgid "Run the daemon, and set it to automatically start on boot." msgstr "" +"Lancez le démon et paramétrez-le pour démarrer automatiquement au démarrage." #. type: enumerate #: doc/guix.texi:498 @@ -3389,6 +3495,8 @@ msgid "" "If your host distro uses the systemd init system, this can be achieved with " "these commands:" msgstr "" +"Si votre distribution hôte utilise le système d'initialisation systemd, cela" +" peut se faire avec ces commandes :" #. type: example #: doc/guix.texi:510 @@ -3398,11 +3506,15 @@ msgid "" " /etc/systemd/system/\n" "# systemctl start guix-daemon && systemctl enable guix-daemon\n" msgstr "" +"# cp ~root/.guix-profile/lib/systemd/system/guix-daemon.service \\\n" +" /etc/systemd/system/\n" +"# systemctl start guix-daemon && systemctl enable guix-daemon\n" #. type: itemize #: doc/guix.texi:513 doc/guix.texi:7635 msgid "If your host distro uses the Upstart init system:" msgstr "" +"Si votre distribution hôte utilise le système d'initialisation Upstart :" #. type: example #: doc/guix.texi:518 @@ -3412,24 +3524,29 @@ msgid "" "# cp ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/\n" "# start guix-daemon\n" msgstr "" +"# initctl reload-configuration\n" +"# cp ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/\n" +"# start guix-daemon\n" #. type: enumerate #: doc/guix.texi:521 msgid "Otherwise, you can still start the daemon manually with:" -msgstr "" +msgstr "Sinon, vous pouvez toujours démarrer le démon manuellement avec :" #. type: example #: doc/guix.texi:524 #, no-wrap msgid "# ~root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild\n" -msgstr "" +msgstr "# ~root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild\n" #. type: enumerate #: doc/guix.texi:529 msgid "" -"Make the @command{guix} command available to other users on the machine, for " -"instance with:" +"Make the @command{guix} command available to other users on the machine, for" +" instance with:" msgstr "" +"Rendez la commande @command{guix} disponible pour les autres utilisateurs " +"sur la machine, par exemple avec :" #. type: example #: doc/guix.texi:534 @@ -3439,6 +3556,9 @@ msgid "" "# cd /usr/local/bin\n" "# ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix\n" msgstr "" +"# mkdir -p /usr/local/bin\n" +"# cd /usr/local/bin\n" +"# ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix\n" #. type: enumerate #: doc/guix.texi:538 @@ -3446,6 +3566,8 @@ msgid "" "It is also a good idea to make the Info version of this manual available " "there:" msgstr "" +"C'est aussi une bonne idée de rendre la version Info de ce manuel disponible" +" ici :" #. type: example #: doc/guix.texi:544 @@ -3456,6 +3578,10 @@ msgid "" "# for i in /var/guix/profiles/per-user/root/guix-profile/share/info/* ;\n" " do ln -s $i ; done\n" msgstr "" +"# mkdir -p /usr/local/share/info\n" +"# cd /usr/local/share/info\n" +"# for i in /var/guix/profiles/per-user/root/guix-profile/share/info/* ;\n" +" do ln -s $i ; done\n" #. type: enumerate #: doc/guix.texi:550 @@ -3465,12 +3591,16 @@ msgid "" "Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info " "search path.)" msgstr "" +"Comme cela, en supposant que @file{/usr/local/share/info} est dans le chemin" +" de recherche, lancer @command{info guix} ouvrira ce manuel (@pxref{Other " +"Info Directories,,, texinfo, GNU Texinfo}, pour plus de détails sur comment " +"changer le chemin de recherche de Info)." #. type: cindex #: doc/guix.texi:552 doc/guix.texi:2304 doc/guix.texi:10194 #, no-wrap msgid "substitutes, authorization thereof" -msgstr "" +msgstr "substituts, autorisations" #. type: enumerate #: doc/guix.texi:555 @@ -3478,14 +3608,18 @@ 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 :" +"Pour utiliser les substituts de @code{hydra.gnu.org} ou l'un de ses mirroirs" +" (@pxref{Substituts}), autorisez-les :" #. type: example #: doc/guix.texi:558 #, no-wrap -msgid "# guix archive --authorize < ~root/.guix-profile/share/guix/hydra.gnu.org.pub\n" +msgid "" +"# guix archive --authorize < ~root/.guix-" +"profile/share/guix/hydra.gnu.org.pub\n" msgstr "" +"# guix archive --authorize < ~root/.guix-" +"profile/share/guix/hydra.gnu.org.pub\n" #. type: enumerate #: doc/guix.texi:563 @@ -3493,34 +3627,44 @@ msgid "" "Each user may need to perform a few additional steps to make their Guix " "environment ready for use, @pxref{Application Setup}." msgstr "" +"Chaque utilisateur peut avoir besoin d'effectuer des étapes supplémentaires " +"pour que leur environnement Guix soit prêt à être utilisé, " +"@pxref{Application Setup}." #. type: Plain text #: doc/guix.texi:566 msgid "Voilà, the installation is complete!" -msgstr "" +msgstr "Voilà, l'installation est terminée !" #. type: Plain text #: doc/guix.texi:569 msgid "" -"You can confirm that Guix is working by installing a sample package into the " -"root profile:" +"You can confirm that Guix is working by installing a sample package into the" +" root profile:" msgstr "" +"Vous pouvez confirmer que Guix fonctionne en installant un paquet d'exemple " +"dans le profil de root :" #. type: example #: doc/guix.texi:572 #, no-wrap msgid "# guix package -i hello\n" -msgstr "" +msgstr "# guix package -i hello\n" #. type: Plain text #: doc/guix.texi:579 msgid "" "The @code{guix} package must remain available in @code{root}'s profile, or " -"it would become subject to garbage collection---in which case you would find " -"yourself badly handicapped by the lack of the @command{guix} command. In " +"it would become subject to garbage collection---in which case you would find" +" yourself badly handicapped by the lack of the @command{guix} command. In " "other words, do not remove @code{guix} by running @code{guix package -r " "guix}." msgstr "" +"Le paquet @code{guix} doit rester disponible dans le profil de @code{root} " +"ou il pourrait être sujet au ramassage de miettes — dans ce cas vous vous " +"retrouveriez gravement handicapé par l'absence de la commande " +"@command{guix}. En d'autres termes, ne supprimez pas @code{guix} en lançant" +" @code{guix package -r guix}." #. type: Plain text #: doc/guix.texi:582 @@ -3528,59 +3672,67 @@ 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 :" #. type: example #: doc/guix.texi:585 #, no-wrap msgid "make guix-binary.@var{system}.tar.xz\n" -msgstr "" +msgstr "make guix-binary.@var{system}.tar.xz\n" #. type: Plain text #: doc/guix.texi:589 msgid "... which, in turn, runs:" -msgstr "" +msgstr "… ce qui à son tour lance :" #. type: example #: doc/guix.texi:592 #, no-wrap msgid "guix pack -s @var{system} --localstatedir guix\n" -msgstr "" +msgstr "guix pack -s @var{system} --localstatedir guix\n" #. type: Plain text #: doc/guix.texi:595 msgid "@xref{Invoking guix pack}, for more info on this handy tool." -msgstr "" +msgstr "@xref{Invoking guix pack}, pour plus d'info sur cet outil pratique." #. type: Plain text #: doc/guix.texi:603 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 " +"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." #. type: Plain text #: doc/guix.texi:605 msgid "GNU Guix depends on the following packages:" -msgstr "" +msgstr "GNU Guix dépend des paquets suivants :" #. type: item #: doc/guix.texi:607 #, no-wrap msgid "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or" -msgstr "" +msgstr "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 ou" #. type: itemize #: doc/guix.texi:609 msgid "later, including 2.2.x;" -msgstr "" +msgstr "ultérieure, dont 2.2.x," #. type: item #: doc/guix.texi:609 #, no-wrap msgid "@url{http://gnupg.org/, GNU libgcrypt};" -msgstr "" +msgstr "@url{http://gnupg.org/, GNU libgcrypt}," #. type: itemize #: doc/guix.texi:614 @@ -3589,6 +3741,9 @@ msgid "" "(@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, " "gnutls-guile, GnuTLS-Guile});" msgstr "" +"@uref{http://gnutls.org/, GnuTLS}, en particulier ses liaisons Guile " +"(@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, " +"gnutls-guile, GnuTLS-Guile})," #. type: itemize #: doc/guix.texi:618 @@ -3596,40 +3751,51 @@ msgid "" "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 " "or later;" msgstr "" +"@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, d'août 2017 ou " +"ultérieur," #. type: item #: doc/guix.texi:618 #, no-wrap msgid "@url{http://zlib.net, zlib};" -msgstr "" +msgstr "@url{http://zlib.net, zlib}," #. type: item #: doc/guix.texi:619 #, no-wrap msgid "@url{http://www.gnu.org/software/make/, GNU Make}." -msgstr "" +msgstr "@url{http://www.gnu.org/software/make/, GNU Make}." #. type: Plain text #: doc/guix.texi:623 msgid "The following dependencies are optional:" -msgstr "" +msgstr "Les dépendances suivantes sont facultatives :" #. type: itemize #: doc/guix.texi:631 msgid "" -"Installing @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} " -"will allow you to use the @command{guix import pypi} command " +"Installing @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON}" +" will allow you to use the @command{guix import pypi} command " "(@pxref{Invoking guix import}). It is of interest primarily for developers " "and not for casual users." msgstr "" +"Installer @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} " +"vous permettra d'utiliser la commande @command{guix import pypi} " +"(@pxref{Invoking guix import}). Il est surtout utile pour les développeurs " +"et pas pour les utilisateurs occasionnels." #. type: itemize #: doc/guix.texi:638 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." +"@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." #. type: itemize #: doc/guix.texi:642 @@ -3637,6 +3803,8 @@ msgid "" "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} " "can use it to compress build logs." msgstr "" +"Lorsque @url{http://www.bzip.org, libbz2} est disponible, @command{guix-" +"daemon} peut l'utiliser pour compresser les journaux de construction." #. type: Plain text #: doc/guix.texi:646 @@ -3644,29 +3812,31 @@ msgid "" "Unless @code{--disable-daemon} was passed to @command{configure}, the " "following packages are also needed:" msgstr "" +"À moins que @code{--disable-daemon} ne soit passé à @command{configure}, les" +" paquets suivants sont aussi requis :" #. type: item #: doc/guix.texi:648 #, no-wrap msgid "@url{http://sqlite.org, SQLite 3};" -msgstr "" +msgstr "@url{http://sqlite.org, SQLite 3}," #. type: item #: doc/guix.texi:649 #, no-wrap msgid "@url{http://gcc.gnu.org, GCC's g++}, with support for the" -msgstr "" +msgstr "@url{http://gcc.gnu.org, GCC's g++}, avec le support pour le" #. type: itemize #: doc/guix.texi:651 msgid "C++11 standard." -msgstr "" +msgstr "standard C++11." #. type: cindex #: doc/guix.texi:653 #, no-wrap msgid "state directory" -msgstr "" +msgstr "répertoire d'état" #. type: Plain text #: doc/guix.texi:661 @@ -3679,12 +3849,19 @@ msgid "" "misconfiguration of @var{localstatedir} so you do not inadvertently corrupt " "your store (@pxref{The Store})." msgstr "" +"Lorsque vous configurez Guix sur un système qui a déjà une installation de " +"Guix, assurez-vous de spécifier le même répertoire d'état que l'installation" +" existante avec l'option @code{--localstatedir} du script " +"@command{configure} (@pxref{Directory Variables, @code{localstatedir},, " +"standards, GNU Coding Standards}). Le script @command{configure} vous " +"protège des mauvaises configurations involontaires de @var{localstatedir} " +"pour éviter que vous ne corrompiez votre dépôt (@pxref{The Store})." #. type: cindex #: doc/guix.texi:662 #, no-wrap msgid "Nix, compatibility" -msgstr "" +msgstr "Nix, compatibilité" #. type: Plain text #: doc/guix.texi:667 @@ -3693,49 +3870,72 @@ msgid "" "manager} is available, you can instead configure Guix with @code{--disable-" "daemon}. In that case, Nix replaces the three dependencies above." msgstr "" +"Lorsque vous avez une installation fonctionnelle du " +"@url{http://nixos.org/nix/, gestionnaire de paquets Nix}, vous pouvez " +"configurer Guix avec @code{--disable-daemon}. Dan ce cas, Nix remplace les " +"trois dépendances au dessus." #. type: Plain text #: doc/guix.texi:677 msgid "" "Guix is compatible with Nix, so it is possible to share the same store " -"between both. To do so, you must pass @command{configure} not only the same " -"@code{--with-store-dir} value, but also the same @code{--localstatedir} " -"value. The latter is essential because it specifies where the database that " -"stores metadata about the store is located, among other things. The default " -"values for Nix are @code{--with-store-dir=/nix/store} and @code{--" -"localstatedir=/nix/var}. Note that @code{--disable-daemon} is not required " -"if your goal is to share the store with Nix." +"between both. To do so, you must pass @command{configure} not only the same" +" @code{--with-store-dir} value, but also the same @code{--localstatedir} " +"value. The latter is essential because it specifies where the database that" +" stores metadata about the store is located, among other things. The " +"default values for Nix are @code{--with-store-dir=/nix/store} and " +"@code{--localstatedir=/nix/var}. Note that @code{--disable-daemon} is not " +"required if your goal is to share the store with Nix." msgstr "" +"Guix est compatible avec Nix, donc il est possible de partager le même dépôt" +" entre les deux. Pour cela, vous devez passer à @command{configure} non " +"seulement la même valeur de @code{--with-store-dir} mais aussi la même " +"valeur de @code{--localstatedir}. Cette dernière est nécessaires car elle " +"spécifie l'emplacement de la base de données qui stocke les métadonnées sur " +"le dépôt, entre autres choses. Les valeurs par défaut pour Nix sont " +"@code{--with-store-dir=/nix/store} et @code{--localstatedir=/nix/var}. " +"Remarquez que @code{--disable-daemon} n'est pas requis si votre but est de " +"partager le dépôt avec Nix." #. type: cindex #: doc/guix.texi:681 #, no-wrap msgid "test suite" -msgstr "" +msgstr "suite de tests" #. type: Plain text #: doc/guix.texi:687 msgid "" "After a successful @command{configure} and @code{make} run, it is a good " "idea to run the test suite. It can help catch issues with the setup or " -"environment, or bugs in Guix itself---and really, reporting test failures is " -"a good way to help improve the software. To run the test suite, type:" +"environment, or bugs in Guix itself---and really, reporting test failures is" +" a good way to help improve the software. To run the test suite, type:" msgstr "" +"Après avoir lancé @command{configure} et @code{make} correctement, c'est une" +" bonne idée de lancer la suite de tests. Elle peut aider à trouver des " +"erreurs avec la configuration ou l'environnement, ou des bogues dans Guix " +"lui-même — et vraiment, rapporter des échecs de tests est une bonne manière " +"d'aider à améliorer le logiciel. Pour lancer la suite de tests, tapez :" #. type: example #: doc/guix.texi:690 #, no-wrap msgid "make check\n" -msgstr "" +msgstr "make check\n" #. type: Plain text #: doc/guix.texi:697 msgid "" -"Test cases can run in parallel: you can use the @code{-j} option of GNU@tie{}" -"make to speed things up. The first run may take a few minutes on a recent " -"machine; subsequent runs will be faster because the store that is created " -"for test purposes will already have various things in cache." +"Test cases can run in parallel: you can use the @code{-j} option of " +"GNU@tie{}make to speed things up. The first run may take a few minutes on a" +" recent machine; subsequent runs will be faster because the store that is " +"created for test purposes will already have various things in cache." msgstr "" +"Les cas de tests peuvent être lancés en parallèle : vous pouvez utiliser " +"l'option @code{-j} de GNU@tie{}make pour accélérer les choses. Le premier " +"lancement peut prendre plusieurs minutes sur une machine récente ; les " +"lancements suivants seront plus rapides car le dépôt créé pour les tests " +"aura déjà plusieurs choses en cache." #. type: Plain text #: doc/guix.texi:700 @@ -3743,12 +3943,14 @@ msgid "" "It is also possible to run a subset of the tests by defining the " "@code{TESTS} makefile variable as in this example:" msgstr "" +"Il est aussi possible de lancer un sous-ensemble des tests en définissant la" +" variable makefile @code{TESTS} comme dans cet exemple :" #. type: example #: doc/guix.texi:703 #, no-wrap msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n" -msgstr "" +msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n" #. type: Plain text #: doc/guix.texi:708 @@ -3757,12 +3959,16 @@ msgid "" "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 :" #. type: example #: doc/guix.texi:711 #, no-wrap msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n" -msgstr "" +msgstr "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n" #. type: Plain text #: doc/guix.texi:717 @@ -3772,6 +3978,10 @@ msgid "" "well as version numbers of the dependencies (@pxref{Requirements}) in your " "message." msgstr "" +"Après un échec, envoyez un courriel à @email{bug-guix@@gnu.org} et attachez " +"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{Requirements}) " +"dans votre message." #. type: Plain text #: doc/guix.texi:721 @@ -3780,23 +3990,29 @@ msgid "" "operating system instances. It can only run on systems where Guix is " "already installed, using:" msgstr "" +"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 :" #. type: example #: doc/guix.texi:724 #, no-wrap msgid "make check-system\n" -msgstr "" +msgstr "make check-system\n" #. type: Plain text #: doc/guix.texi:728 -msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:" +msgid "" +"or, again, by defining @code{TESTS} to select a subset of tests to run:" msgstr "" +"Ou, de nouveau, en définissant @code{TESTS} pour choisir un sous-ensemble " +"des tests à lancer :" #. type: example #: doc/guix.texi:731 #, no-wrap msgid "make check-system TESTS=\"basic mcron\"\n" -msgstr "" +msgstr "make check-system TESTS=\"basic mcron\"\n" #. type: Plain text #: doc/guix.texi:739 @@ -3805,15 +4021,16 @@ msgid "" "They work by running the operating systems under test with lightweight " "instrumentation in a virtual machine (VM). They can be computationally " "intensive or rather cheap, depending on whether substitutes are available " -"for their dependencies (@pxref{Substitutes}). Some of them require a lot of " -"storage space to hold VM images." +"for their dependencies (@pxref{Substitutes}). Some of them require a lot of" +" storage space to hold VM images." msgstr "" -"Ces tests systèmes sont définis dans les modules @code{(gnu tests @dots{})}. " -"Ils fonctionnent en lançant les systèmes d'exploitation sous test avec une " -"instrumentation légère dans une machine virtuelle (VM). Ils peuvent être " +"Ces tests systèmes sont définis dans les modules @code{(gnu tests @dots{})}." +" Ils fonctionnent en lançant les systèmes d'exploitation sous test avec une " +"instrumentation légère dans une machine virtuelle (VM). Ils peuvent être " "intenses en terme de calculs ou plutôt rapides en fonction de la " -"disponibilité des substituts de leurs dépendances (@pxref{Substituts}). " -"Certains requièrent beaucoup d'espace disque pour contenir les images des VM." +"disponibilité des substituts de leurs dépendances (@pxref{Substituts}). " +"Certains requièrent beaucoup d'espace disque pour contenir les images des " +"VM@." #. type: Plain text #: doc/guix.texi:742 @@ -3821,24 +4038,33 @@ msgid "" "Again in case of test failures, please send @email{bug-guix@@gnu.org} all " "the details." msgstr "" +"De nouveau, en cas d'échec, envoyez tous les détails à @email{bug-" +"guix@@gnu.org}." #. type: cindex #: doc/guix.texi:746 #, no-wrap msgid "daemon" -msgstr "" +msgstr "démon" #. type: Plain text #: doc/guix.texi:754 msgid "" "Operations such as building a package or running the garbage collector are " -"all performed by a specialized process, the @dfn{build daemon}, on behalf of " -"clients. Only the daemon may access the store and its associated database. " -"Thus, any operation that manipulates the store goes through the daemon. For " -"instance, command-line tools such as @command{guix package} and " +"all performed by a specialized process, the @dfn{build daemon}, on behalf of" +" clients. Only the daemon may access the store and its associated database." +" Thus, any operation that manipulates the store goes through the daemon. " +"For instance, command-line tools such as @command{guix package} and " "@command{guix build} communicate with the daemon (@i{via} remote procedure " "calls) to instruct it what to do." msgstr "" +"Les opérations comme la construction d'un paquet ou le lancement du ramasse-" +"miettes sont toutes effectuées par un processus spécialisé, le @dfn{démon de" +" construction}, pour le compte des clients. Seul le démon peut accéder au " +"dépôt et à sa base de données associée. Ainsi, toute opération manipulant " +"le dépôt passe par le démon. Par exemple, les outils en ligne de commande " +"comme @command{guix package} et @command{guix build} communiquent avec le " +"démon (@i{via} des appels de procédures distantes) pour lui dire quoi faire." #. type: Plain text #: doc/guix.texi:758 @@ -3848,32 +4074,39 @@ msgid "" "the daemon to download pre-built binaries." msgstr "" "Les sections suivantes expliquent comment préparer l'environnement du démon " -"de construction. Voir aussi @ref{Substituts} pour apprendre comment " +"de construction. Voir aussi @ref{Substituts} pour apprendre comment " "permettre le téléchargement de binaires pré-construits." #. type: cindex #: doc/guix.texi:768 doc/guix.texi:1193 #, no-wrap msgid "build environment" -msgstr "" +msgstr "environnement de construction" #. type: Plain text #: doc/guix.texi:776 msgid "" "In a standard multi-user setup, Guix and its daemon---the @command{guix-" -"daemon} program---are installed by the system administrator; @file{/gnu/" -"store} is owned by @code{root} and @command{guix-daemon} runs as " +"daemon} program---are installed by the system administrator; " +"@file{/gnu/store} is owned by @code{root} and @command{guix-daemon} runs as " "@code{root}. Unprivileged users may use Guix tools to build packages or " "otherwise access the store, and the daemon will do it on their behalf, " "ensuring that the store is kept in a consistent state, and allowing built " "packages to be shared among users." msgstr "" +"Dans une installation standard multi-utilisateurs, Guix et son démon — le " +"programme @command{guix-daemon} — sont installé par l'administrateur système" +" ; @file{/gnu/store} appartient à @code{root} et @command{guix-daemon} est " +"lancé en @code{root}. Les utilisateurs non-privilégiés peuvent utiliser les" +" outils Guix pour construire des paquets ou accéder au dépôt et le démon le " +"fera pour leur compte en s'assurant que le dépôt garde un état cohérent et " +"permet le partage des paquets déjà construits entre les utilisateurs." #. type: cindex #: doc/guix.texi:777 #, no-wrap msgid "build users" -msgstr "" +msgstr "utilisateurs de construction" #. type: Plain text #: doc/guix.texi:788 @@ -3881,14 +4114,27 @@ msgid "" "When @command{guix-daemon} runs as @code{root}, you may not want package " "build processes themselves to run as @code{root} too, for obvious security " "reasons. To avoid that, a special pool of @dfn{build users} should be " -"created for use by build processes started by the daemon. These build users " -"need not have a shell and a home directory: they will just be used when the " -"daemon drops @code{root} privileges in build processes. Having several such " -"users allows the daemon to launch distinct build processes under separate " -"UIDs, which guarantees that they do not interfere with each other---an " -"essential feature since builds are regarded as pure functions " +"created for use by build processes started by the daemon. These build users" +" need not have a shell and a home directory: they will just be used when the" +" daemon drops @code{root} privileges in build processes. Having several " +"such users allows the daemon to launch distinct build processes under " +"separate UIDs, which guarantees that they do not interfere with each other" +"---an essential feature since builds are regarded as pure functions " "(@pxref{Introduction})." msgstr "" +"Alors que @command{guix-daemon} tourne en @code{root}, vous n'avez pas " +"forcément envie que les processus de construction de paquets tournent aussi " +"en @code{root}, pour des raisons de sécurité évidentes. Pour éviter cela, " +"vous devriez créer une réserve spéciale d'@dfn{utilisateurs de construction}" +" que les processus de construction démarrés par le démon utiliseront. Ces " +"utilisateurs de construction n'ont pas besoin d'un shell ou d'un répertoire " +"personnel ; ils seront seulement utilisés quand le démon délaissera ses " +"privilèges @code{root} dans les processus de construction. En ayant " +"plusieurs de ces utilisateurs, vous permettez au démon de lancer des " +"processus de construction distincts sous des UID différent, ce qui garanti " +"qu'aucune interférence n'ait lieu entre les uns et les autres — une " +"fonctionnalité essentielle puisque les constructions sont supposées être des" +" fonctions pures (@pxref{Introduction})." #. type: Plain text #: doc/guix.texi:791 @@ -3896,6 +4142,9 @@ msgid "" "On a GNU/Linux system, a build user pool may be created like this (using " "Bash syntax and the @code{shadow} commands):" msgstr "" +"Sur un système GNU/Linux, on peut créer une réserve d'utilisateurs de " +"construction comme ceci (avec la syntaxe Bash et les commandes " +"@code{shadow}) :" #. type: example #: doc/guix.texi:803 @@ -3910,6 +4159,14 @@ msgid "" " guixbuilder$i;\n" " done\n" msgstr "" +"# groupadd --system guixbuild\n" +"# for i in `seq -w 1 10`;\n" +" do\n" +" useradd -g guixbuild -G guixbuild \\\n" +" -d /var/empty -s `which nologin` \\\n" +" -c \"Utilisateur de construction Guix $i\" --system \\\n" +" guixbuilder$i;\n" +" done\n" #. type: Plain text #: doc/guix.texi:813 @@ -3921,30 +4178,46 @@ msgid "" "group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} " "instead of @code{-G guixbuild} (@pxref{Invoking guix system})." msgstr "" +"Le nombre d'utilisateurs de construction détermine le nombre de tâches de " +"constructions qui peuvent tourner en parallèle, tel que spécifié par " +"l'option @option{--max-jobs} (@pxref{Invoking guix-daemon, @option{--max-" +"jobs}}). Pour utiliser @command{guix system vm} et les commandes liées, " +"vous devrez ajouter les utilisateurs de construction au groupe @code{kvm} " +"pour qu'ils puissent accéder à @file{/dev/kvm} avec @code{-G guixbuild,kvm} " +"plutôt que @code{-G guixbuild} (@pxref{Invoking guix system})." #. type: Plain text #: doc/guix.texi:822 msgid "" "The @code{guix-daemon} program may then be run as @code{root} with the " "following command@footnote{If your machine uses the systemd init system, " -"dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file " -"in @file{/etc/systemd/system} will ensure that @command{guix-daemon} is " +"dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file" +" in @file{/etc/systemd/system} will ensure that @command{guix-daemon} is " "automatically started. Similarly, if your machine uses the Upstart init " "system, drop the @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} " "file in @file{/etc/init}.}:" msgstr "" +"Le programme @code{guix-daemon} peut ensuite être lancé en @code{root} avec " +"la commande suivante@footnote{Si votre machine utilise le système " +"d'initialisation systemd, copiez le fichier " +"@file{@var{prefix}/lib/systemd/system/guix-daemon.service} dans " +"@file{/etc/systemd/system} pour vous assurer que @command{guix-daemon} est " +"démarré automatiquement. De même, si votre machine utilise le système " +"d'initialisation Upstart, copiez le fichier " +"@file{@var{prefix}/lib/upstart/system/guix-daemon.conf} dans " +"@file{/etc/init}.} :" #. type: example #: doc/guix.texi:825 doc/guix.texi:1186 #, no-wrap msgid "# guix-daemon --build-users-group=guixbuild\n" -msgstr "" +msgstr "# guix-daemon --build-users-group=guixbuild\n" #. type: cindex #: doc/guix.texi:827 doc/guix.texi:1191 #, no-wrap msgid "chroot" -msgstr "" +msgstr "chroot" #. type: Plain text #: doc/guix.texi:832 @@ -3953,6 +4226,9 @@ msgid "" "@code{guixbuilder} users. On GNU/Linux, by default, the chroot environment " "contains nothing but:" msgstr "" +"De cette façon, le démon démarre les processus de construction dans un " +"chroot, sous un des utilisateurs @code{guixbuilder}. Sur GNU/Linux par " +"défaut, l'environnement chroot ne contient rien d'autre que :" #. type: itemize #: doc/guix.texi:840 @@ -3962,6 +4238,11 @@ msgid "" "in the chroot's @code{/dev} is fixed, most of these files can only be " "created if the host has them.};" msgstr "" +"un répertoire @code{/dev} minimal, créé presque indépendamment du " +"@code{/dev} de l'hôte@footnote{« presque », parce que même si l'ensemble des" +" fichiers qui apparaissent dans le @code{/dev} du chroot sont déterminés à " +"l'avance, la plupart de ces fichiers ne peut pas être créée si l'hôte ne les" +" a pas.} ;" #. type: itemize #: doc/guix.texi:844 @@ -3969,6 +4250,8 @@ msgid "" "the @code{/proc} directory; it only shows the processes of the container " "since a separate PID name space is used;" msgstr "" +"le répertoire @code{/proc} ; il ne montre que les processus du conteneur car" +" on utilise une espace de nom séparé pour les PID ;" #. type: itemize #: doc/guix.texi:848 @@ -3976,11 +4259,13 @@ msgid "" "@file{/etc/passwd} with an entry for the current user and an entry for user " "@file{nobody};" msgstr "" +"@file{/etc/passwd} avec une entrée pour l'utilisateur actuel et une entrée " +"pour l'utilisateur @file{nobody} ;" #. type: itemize #: doc/guix.texi:851 msgid "@file{/etc/group} with an entry for the user's group;" -msgstr "" +msgstr "@file{/etc/group} avec une entrée pour le groupe de l'utilisateur ;" #. type: itemize #: doc/guix.texi:855 @@ -3988,11 +4273,13 @@ msgid "" "@file{/etc/hosts} with an entry that maps @code{localhost} to " "@code{127.0.0.1};" msgstr "" +"@file{/etc/hosts} avec une entrée qui fait correspondre @code{localhost} à " +"@code{127.0.0.1} ;" #. type: itemize #: doc/guix.texi:858 msgid "a writable @file{/tmp} directory." -msgstr "" +msgstr "un répertoire @file{/tmp} inscriptible." #. type: Plain text #: doc/guix.texi:867 @@ -4005,12 +4292,20 @@ msgid "" "avoids discrepancies in cases where build processes capture the name of " "their build tree." msgstr "" +"Vous pouvez influencer le répertoire où le démon stocke les arbres de " +"construction @i{via} la variable d'environnement @code{TMPDIR}. Cependant, " +"l'arbre de construction dans le chroot sera toujours appelé @file{/tmp/guix-" +"build-@var{nom}.drv-0}, où @var{nom} est le nom de la dérivation — p.@: " +"ex.@: @code{coreutils-8.24}. De cette façon, la valeur de @code{TMPDIR} ne " +"fuite pas à l'intérieur des environnements de construction, ce qui évite des" +" différences lorsque le processus de construction retient le nom de leur " +"répertoire de construction." #. type: vindex #: doc/guix.texi:868 doc/guix.texi:2411 #, no-wrap msgid "http_proxy" -msgstr "" +msgstr "http_proxy" #. type: Plain text #: doc/guix.texi:872 @@ -4019,8 +4314,8 @@ msgid "" "downloads it performs, be it for fixed-output derivations " "(@pxref{Derivations}) or for substitutes (@pxref{Substitutes})." msgstr "" -"Le démon tient aussi compte de la variable d'environnement @code{http_proxy} " -"pour ses téléchargements HTTP, que ce soit pour les dérivations à sortie " +"Le démon tient aussi compte de la variable d'environnement @code{http_proxy}" +" pour ses téléchargements HTTP, que ce soit pour les dérivations à sortie " "fixes (@pxref{Derivations}) ou pour les substituts (@pxref{Substituts})." #. type: Plain text @@ -4028,51 +4323,73 @@ msgstr "" msgid "" "If you are installing Guix as an unprivileged user, it is still possible to " "run @command{guix-daemon} provided you pass @code{--disable-chroot}. " -"However, build processes will not be isolated from one another, and not from " -"the rest of the system. Thus, build processes may interfere with each " +"However, build processes will not be isolated from one another, and not from" +" the rest of the system. Thus, build processes may interfere with each " "other, and may access programs, libraries, and other files available on the " "system---making it much harder to view them as @emph{pure} functions." msgstr "" +"Si vous installez Guix en tant qu'utilisateur non-privilégié, il est " +"toujours possible de lancer @command{guix-daemon} si vous passez " +"@code{--disable-chroot}. Cependant, les processus de construction ne seront" +" pas isolés les uns des autres ni du reste du système. Ainsi les processus " +"de construction peuvent interférer les uns avec les autres, et peuvent " +"accéder à des programmes, des bibliothèques et d'autres fichiers présents " +"sur le système — ce qui rend plus difficile de les voir comme des fonctions " +"@emph{pures}." #. type: subsection #: doc/guix.texi:883 #, no-wrap msgid "Using the Offload Facility" -msgstr "" +msgstr "Utiliser le dispositif de déchargement" #. type: cindex #: doc/guix.texi:885 #, no-wrap msgid "offloading" -msgstr "" +msgstr "déchargement" #. type: cindex #: doc/guix.texi:886 doc/guix.texi:1247 #, no-wrap msgid "build hook" -msgstr "" +msgstr "crochet de construction" #. type: Plain text #: doc/guix.texi:900 msgid "" "When desired, the build daemon can @dfn{offload} derivation builds to other " -"machines running Guix, using the @code{offload} @dfn{build hook}" -"@footnote{This feature is available only when @uref{https://github.com/" -"artyom-poptsov/guile-ssh, Guile-SSH} is present.}. When that feature is " -"enabled, a list of user-specified build machines is read from @file{/etc/" -"guix/machines.scm}; every time a build is requested, for instance via " -"@code{guix build}, the daemon attempts to offload it to one of the machines " -"that satisfy the constraints of the derivation, in particular its system " -"type---e.g., @file{x86_64-linux}. Missing prerequisites for the build are " -"copied over SSH to the target machine, which then proceeds with the build; " -"upon success the output(s) of the build are copied back to the initial " -"machine." +"machines running Guix, using the @code{offload} @dfn{build " +"hook}@footnote{This feature is available only when " +"@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is present.}." +" When that feature is enabled, a list of user-specified build machines is " +"read from @file{/etc/guix/machines.scm}; every time a build is requested, " +"for instance via @code{guix build}, the daemon attempts to offload it to one" +" of the machines that satisfy the constraints of the derivation, in " +"particular its system type---e.g., @file{x86_64-linux}. Missing " +"prerequisites for the build are copied over SSH to the target machine, which" +" then proceeds with the build; upon success the output(s) of the build are " +"copied back to the initial machine." msgstr "" +"Si vous le souhaitez, le démon de construction peut @dfn{décharger} des " +"constructions de dérivations sur d'autres machines Guix avec le @dfn{crochet" +" de construction} @code{offload}@footnote{Cette fonctionnalité n'est " +"disponible que si @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-" +"SSH} est présent.}. Lorsque cette fonctionnalité est activée, Guix lit une " +"liste de machines de constructions spécifiée par l'utilisateur dans " +"@file{/etc/guix/machines.scm} ; à chaque fois qu'une construction est " +"demandée, par exemple par @code{guix build}, le démon essaie de la décharger" +" sur une des machines qui satisfont les contraintes de la dérivation, en " +"particulier le type de système, p.@: ex.@: @file{x86_64-linux}. Les " +"prérequis manquants pour la construction sont copiés par SSH sur la machine " +"de construction qui procède ensuite à la construction ; si elle réussi, les " +"sorties de la construction sont copiés vers la machine de départ." #. type: Plain text #: doc/guix.texi:902 msgid "The @file{/etc/guix/machines.scm} file typically looks like this:" msgstr "" +"Le fichier @file{/etc/guix/machines.scm} ressemble typiquement à cela :" #. type: example #: doc/guix.texi:910 @@ -4086,6 +4403,13 @@ msgid "" " (speed 2.)) ;incredibly fast!\n" "\n" msgstr "" +"(list (build-machine\n" +" (name \"eightysix.example.org\")\n" +" (system \"x86_64-linux\")\n" +" (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n" +" (user \"bob\")\n" +" (speed 2.)) ;très rapide !\n" +"\n" #. type: example #: doc/guix.texi:919 @@ -4100,6 +4424,14 @@ msgid "" " (string-append (getenv \"HOME\")\n" " \"/.ssh/identity-for-guix\"))))\n" msgstr "" +" (build-machine\n" +" (name \"meeps.example.org\")\n" +" (system \"mips64el-linux\")\n" +" (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n" +" (user \"alice\")\n" +" (private-key\n" +" (string-append (getenv \"HOME\")\n" +" \"/.ssh/identity-for-guix\"))))\n" #. type: Plain text #: doc/guix.texi:925 @@ -4107,24 +4439,35 @@ msgid "" "In the example above we specify a list of two build machines, one for the " "@code{x86_64} architecture and one for the @code{mips64el} architecture." msgstr "" +"Dans l'exemple ci-dessus nous spécifions une liste de deux machines de " +"construction, une pour l'architecture @code{x86_64} et une pour " +"l'architecture @code{mips64el}." #. type: Plain text #: doc/guix.texi:934 msgid "" "In fact, this file is---not surprisingly!---a Scheme file that is evaluated " -"when the @code{offload} hook is started. Its return value must be a list of " -"@code{build-machine} objects. While this example shows a fixed list of " +"when the @code{offload} hook is started. Its return value must be a list of" +" @code{build-machine} objects. While this example shows a fixed list of " "build machines, one could imagine, say, using DNS-SD to return a list of " "potential build machines discovered in the local network " -"(@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme " -"Programs}). The @code{build-machine} data type is detailed below." +"(@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme" +" Programs}). The @code{build-machine} data type is detailed below." msgstr "" +"En fait, ce fichier est — et ça ne devrait pas vous surprendre ! — un " +"fichier Scheme qui est évalué au démarrage du crochet @code{offload}. Sa " +"valeur de retour doit être une liste d'objets @code{build-machine}. Même si" +" cet exemple montre une liste fixée de machines de construction, on pourrait" +" imaginer par exemple utiliser DNS-SD pour renvoyer une liste de machines de" +" constructions potentielles découvertes sur le réseau local " +"(@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme" +" Programs}). Le type de données @code{build-machine} est détaillé plus bas." #. type: deftp #: doc/guix.texi:935 #, no-wrap msgid "{Data Type} build-machine" -msgstr "" +msgstr "{Type de données} build-machine" #. type: deftp #: doc/guix.texi:938 @@ -4132,6 +4475,8 @@ msgid "" "This data type represents build machines to which the daemon may offload " "builds. The important fields are:" msgstr "" +"Ce type de données représente les machines de construction sur lesquelles le" +" démon peut décharger des constructions. Les champs importants sont :" #. type: code{#1} #: doc/guix.texi:941 doc/guix.texi:3402 doc/guix.texi:9406 doc/guix.texi:9470 @@ -4141,43 +4486,48 @@ msgstr "" #: doc/guix.texi:19946 doc/guix.texi:21154 #, no-wrap msgid "name" -msgstr "" +msgstr "name" #. type: table #: doc/guix.texi:943 msgid "The host name of the remote machine." -msgstr "" +msgstr "Le nom d'hôte de la machine distante." #. type: item #: doc/guix.texi:944 #, no-wrap msgid "system" -msgstr "" +msgstr "system" #. type: table #: doc/guix.texi:946 msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}." msgstr "" +"Le type de système de la machine distante, p.@: ex.@: " +"@code{\"x86_64-linux\"}." #. type: code{#1} #: doc/guix.texi:947 doc/guix.texi:11010 #, no-wrap msgid "user" -msgstr "" +msgstr "user" #. type: table #: doc/guix.texi:951 msgid "" "The user account to use when connecting to the remote machine over SSH. " -"Note that the SSH key pair must @emph{not} be passphrase-protected, to allow " -"non-interactive logins." +"Note that the SSH key pair must @emph{not} be passphrase-protected, to allow" +" non-interactive logins." msgstr "" +"Le compte utilisateur à utiliser lors de la connexion à la machine distante " +"par SSH@. Remarquez que la paire de clef SSH ne doit @emph{pas} être " +"protégée par mot de passe pour permettre des connexions non-interactives." #. type: item #: doc/guix.texi:952 #, no-wrap msgid "host-key" -msgstr "" +msgstr "host-key" #. type: table #: doc/guix.texi:956 @@ -4186,12 +4536,15 @@ msgid "" "This is used to authenticate the machine when we connect to it. It is a " "long string that looks like this:" msgstr "" +"Cela doit être la @dfn{clef d'hôte SSH publique} de la machine au format " +"OpenSSH@. Elle est utilisée pour authentifier la machine lors de la " +"connexion. C'est une longue chaîne qui ressemble à cela :" #. type: example #: doc/guix.texi:959 #, no-wrap msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n" -msgstr "" +msgstr "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n" #. type: table #: doc/guix.texi:964 @@ -4199,6 +4552,8 @@ msgid "" "If the machine is running the OpenSSH daemon, @command{sshd}, the host key " "can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}." msgstr "" +"Si la machine utilise le démon OpenSSH, @command{sshd}, la clef d'hôte se " +"trouve dans un fichier comme @file{/etc/ssh/ssh_host_ed25519_key.pub}." #. type: table #: doc/guix.texi:969 @@ -4208,6 +4563,10 @@ msgid "" "be converted to the OpenSSH format using @command{lsh-export-key} " "(@pxref{Converting keys,,, lsh, LSH Manual}):" msgstr "" +"Si la machine utilise le démon SSH de GNU@tie{}lsh, la clef d'hôte est dans " +"@file{/etc/lsh/host-key.pub} ou un fichier similaire. Elle peut être " +"convertie au format OpenSSH avec @command{lsh-export-key} " +"(@pxref{Converting keys,,, lsh, LSH Manual}) :" #. type: example #: doc/guix.texi:973 @@ -4216,28 +4575,31 @@ msgid "" "$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n" "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n" msgstr "" +"$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n" +"ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n" #. type: deftp #: doc/guix.texi:978 msgid "A number of optional fields may be specified:" msgstr "" +"Il y a un certain nombre de champs facultatifs que vous pouvez remplir :" #. type: item #: doc/guix.texi:981 #, no-wrap msgid "@code{port} (default: @code{22})" -msgstr "" +msgstr "@code{port} (par défaut : @code{22})" #. type: table #: doc/guix.texi:983 msgid "Port number of SSH server on the machine." -msgstr "" +msgstr "Numéro de port du serveur SSH sur la machine." #. type: item #: doc/guix.texi:984 #, no-wrap msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})" -msgstr "" +msgstr "@code{private-key} (par défaut : @file{~root/.ssh/id_rsa})" #. type: table #: doc/guix.texi:987 @@ -4245,6 +4607,8 @@ msgid "" "The SSH private key file to use when connecting to the machine, in OpenSSH " "format." msgstr "" +"Le fichier de clef privée à utiliser lors de la connexion à la machine, au " +"format OpenSSH@." #. type: table #: doc/guix.texi:990 @@ -4252,23 +4616,27 @@ msgid "" "Note that the default value is the private key @emph{of the root account}. " "Make sure it exists if you use the default." msgstr "" +"Remarquez que la valeur par défaut est la clef privée @emph{du compte root}." +" Assurez-vous qu'elle existe si vous utilisez la valeur par défaut." #. type: item #: doc/guix.texi:991 #, no-wrap msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})" -msgstr "" +msgstr "@code{compression} (par défaut : @code{\"zlib@@openssh.com,zlib\"})" #. type: item #: doc/guix.texi:992 doc/guix.texi:10422 #, no-wrap msgid "@code{compression-level} (default: @code{3})" -msgstr "" +msgstr "@code{compression-level} (par défaut : @code{3})" #. type: table #: doc/guix.texi:994 msgid "The SSH-level compression methods and compression level requested." msgstr "" +"Les méthodes de compression au niveau SSH et le niveau de compression " +"demandé." #. type: table #: doc/guix.texi:997 @@ -4276,36 +4644,44 @@ msgid "" "Note that offloading relies on SSH compression to reduce bandwidth usage " "when transferring files to and from build machines." msgstr "" +"Remarquez que le déchargement utilise la compression SSH pour réduire la " +"bande passante utilisée lors du transfert vers et depuis les machines de " +"construction." #. type: item #: doc/guix.texi:998 #, no-wrap msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})" msgstr "" +"@code{daemon-socket} (par défaut : @code{\"/var/guix/daemon-" +"socket/socket\"})" #. type: table #: doc/guix.texi:1001 msgid "" -"File name of the Unix-domain socket @command{guix-daemon} is listening to on " -"that machine." +"File name of the Unix-domain socket @command{guix-daemon} is listening to on" +" that machine." msgstr "" +"Le nom de fichier du socket Unix-domain sur lequel @command{guix-daemon} " +"écoute sur cette machine." #. type: item #: doc/guix.texi:1002 #, no-wrap msgid "@code{parallel-builds} (default: @code{1})" -msgstr "" +msgstr "@code{parallel-builds} (par défaut : @code{1})" #. type: table #: doc/guix.texi:1004 msgid "The number of builds that may run in parallel on the machine." msgstr "" +"Le nombre de constructions qui peuvent tourner simultanément sur la machine." #. type: item #: doc/guix.texi:1005 #, no-wrap msgid "@code{speed} (default: @code{1.0})" -msgstr "" +msgstr "@code{speed} (par défaut : @code{1.0})" #. type: table #: doc/guix.texi:1008 @@ -4313,12 +4689,14 @@ msgid "" "A ``relative speed factor''. The offload scheduler will tend to prefer " "machines with a higher speed factor." msgstr "" +"Un « facteur de vitesse relatif ». L'ordonnanceur des constructions tendra " +"à préférer les machines avec un plus grand facteur de vitesse." #. type: item #: doc/guix.texi:1009 #, no-wrap msgid "@code{features} (default: @code{'()})" -msgstr "" +msgstr "@code{features} (par défaut : @code{'()})" #. type: table #: doc/guix.texi:1014 @@ -4328,6 +4706,11 @@ msgid "" "corresponding hardware support. Derivations can request features by name, " "and they will be scheduled on matching build machines." msgstr "" +"Une liste de chaînes qui contient les fonctionnalités spécifiques supportées" +" par la machine. Un exemple est @code{\"kvm\"} pour les machines qui ont le" +" module Linux KVM et le support matériel correspondant. Les dérivations " +"peuvent demander des fonctionnalités par leur nom et seront orchestrées sur " +"les machines de construction correspondantes." #. type: Plain text #: doc/guix.texi:1022 @@ -4336,12 +4719,16 @@ msgid "" "In addition, the Guix modules must be in @code{$GUILE_LOAD_PATH} on the " "build machine---you can check whether this is the case by running:" msgstr "" +"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 :" #. type: example #: doc/guix.texi:1025 #, no-wrap msgid "ssh build-machine guile -c \"'(use-modules (guix config))'\"\n" -msgstr "" +msgstr "ssh build-machine guile -c \"'(use-modules (guix config))'\"\n" #. type: Plain text #: doc/guix.texi:1032 @@ -4352,12 +4739,18 @@ msgid "" "key pair on each machine to allow the daemon to export signed archives of " "files from the store (@pxref{Invoking guix archive}):" msgstr "" +"Il reste une dernière chose à faire maintenant que @file{machines.scm} est " +"en place. Comme expliqué ci-dessus, lors du déchargement les fichiers sont " +"transférés entre les dépôts des machines. Pour que cela fonctionne, vous " +"devez d'abord générer une paire de clef sur chaque machine pour permettre au" +" démon d'exporter des archives signées des fichiers de son dépôt " +"(@pxref{Invoking guix archive}) :" #. type: example #: doc/guix.texi:1035 #, no-wrap msgid "# guix archive --generate-key\n" -msgstr "" +msgstr "# guix archive --generate-key\n" #. type: Plain text #: doc/guix.texi:1040 @@ -4365,18 +4758,22 @@ msgid "" "Each build machine must authorize the key of the master machine so that it " "accepts store items it receives from the master:" msgstr "" +"Chaque machine de construction doit autoriser la clef de la machine " +"maîtresse pour qu'ils acceptent les éléments de dépôt de celle-ci :" #. type: example #: doc/guix.texi:1043 #, no-wrap msgid "# guix archive --authorize < master-public-key.txt\n" -msgstr "" +msgstr "# guix archive --authorize < master-public-key.txt\n" #. type: Plain text #: doc/guix.texi:1047 msgid "" "Likewise, the master machine must authorize the key of each build machine." msgstr "" +"De même, la machine maîtresse doit autoriser les clefs de chaque machine de " +"construction." #. type: Plain text #: doc/guix.texi:1053 @@ -4387,12 +4784,18 @@ msgid "" "can make sure they are genuine, have not been tampered with, and that they " "are signed by an authorized key." msgstr "" +"Toute cette histoire de clefs permet d'exprimer la confiance mutuelle deux-" +"à-deux entre le maître et les machines de construction. Concrètement, " +"lorsque le maître reçoit des fichiers d'une machine de construction (et " +"vice-versa), son démon de construction s'assure qu'ils sont authentiques, " +"n'ont pas été modifiés par un tiers et qu'il sont signés par un clef " +"autorisée." #. type: cindex #: doc/guix.texi:1054 #, no-wrap msgid "offload test" -msgstr "" +msgstr "test du déchargement" #. type: Plain text #: doc/guix.texi:1057 @@ -4400,12 +4803,14 @@ msgid "" "To test whether your setup is operational, run this command on the master " "node:" msgstr "" +"Pour tester que votre paramétrage fonctionne, lancez cette commande sur le " +"nœud maître :" #. type: example #: doc/guix.texi:1060 #, no-wrap msgid "# guix offload test\n" -msgstr "" +msgstr "# guix offload test\n" #. type: Plain text #: doc/guix.texi:1066 @@ -4415,19 +4820,26 @@ msgid "" "available on each machine, attempt to export to the machine and import from " "it, and report any error in the process." msgstr "" +"Cela essaiera de se connecter à toutes les machines de construction " +"spécifiées dans @file{/etc/guix/machines.scm}, s'assurera que Guile et les " +"modules Guix sont disponibles sur toutes les machines et tentera d'exporter " +"vers la machine et d'importer depuis elle, et rapportera toute erreur " +"survenu pendant le processus." #. type: Plain text #: doc/guix.texi:1069 msgid "" -"If you want to test a different machine file, just specify it on the command " -"line:" +"If you want to test a different machine file, just specify it on the command" +" line:" msgstr "" +"Si vous souhaitez tester un fichier de machines différent, spécifiez-le sur " +"la ligne de commande :" #. type: example #: doc/guix.texi:1072 #, no-wrap msgid "# guix offload test machines-qualif.scm\n" -msgstr "" +msgstr "# guix offload test machines-qualif.scm\n" #. type: Plain text #: doc/guix.texi:1076 @@ -4435,82 +4847,91 @@ msgid "" "Last, you can test the subset of the machines whose name matches a regular " "expression like this:" msgstr "" +"Enfin, vous pouvez tester un sous-ensemble de machines dont le nom " +"correspond à une expression rationnelle comme ceci :" #. type: example #: doc/guix.texi:1079 #, no-wrap msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n" -msgstr "" +msgstr "# guix offload test machines.scm '\\.gnu\\.org$'\n" #. type: cindex #: doc/guix.texi:1081 #, no-wrap msgid "offload status" -msgstr "" +msgstr "statut du déchargement" #. type: Plain text #: doc/guix.texi:1084 msgid "" -"To display the current load of all build hosts, run this command on the main " -"node:" +"To display the current load of all build hosts, run this command on the main" +" node:" msgstr "" +"Pour afficher la charge actuelle de tous les hôtes de construction, lancez " +"cette commande sur le nœud principal :" #. type: example #: doc/guix.texi:1087 #, no-wrap msgid "# guix offload status\n" -msgstr "" +msgstr "# guix offload status\n" #. type: cindex #: doc/guix.texi:1093 #, no-wrap msgid "SELinux, daemon policy" -msgstr "" +msgstr "SELinux, politique du démon" #. type: cindex #: doc/guix.texi:1094 #, no-wrap msgid "mandatory access control, SELinux" -msgstr "" +msgstr "contrôle d'accès obligatoire, SELinux" #. type: cindex #: doc/guix.texi:1095 #, no-wrap msgid "security, guix-daemon" -msgstr "" +msgstr "sécurité, guix-daemon" #. type: Plain text #: doc/guix.texi:1101 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 " +"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@." #. type: subsubsection #: doc/guix.texi:1102 #, no-wrap msgid "Installing the SELinux policy" -msgstr "" +msgstr "Installer la politique SELinux" #. type: cindex #: doc/guix.texi:1103 #, no-wrap msgid "SELinux, policy installation" -msgstr "" +msgstr "SELinux, installation de la politique" #. type: Plain text #: doc/guix.texi:1105 msgid "To install the policy run this command as root:" -msgstr "" +msgstr "Pour installer la politique, lancez cette commande en root :" #. type: example #: doc/guix.texi:1108 #, no-wrap msgid "semodule -i etc/guix-daemon.cil\n" -msgstr "" +msgstr "semodule -i etc/guix-daemon.cil\n" #. type: Plain text #: doc/guix.texi:1112 @@ -4518,6 +4939,8 @@ msgid "" "Then relabel the file system with @code{restorecon} or by a different " "mechanism provided by your system." msgstr "" +"Puis ré-étiquetez le système de fichier avec @code{restorecon} ou par un " +"mécanisme différent fournit par votre système." #. type: Plain text #: doc/guix.texi:1117 @@ -4526,12 +4949,15 @@ msgid "" "daemon has been restarted, it should be running in the @code{guix_daemon_t} " "context. You can confirm this with the following command:" msgstr "" +"Une fois la politique installée, le système de fichier ré-étiqueté et le " +"démon redémarré, il devrait être lancé dans le contexte " +"@code{guix_daemon_t}. Vous pouvez le confirmer avec la commande suivante :" #. type: example #: doc/guix.texi:1120 #, no-wrap msgid "ps -Zax | grep guix-daemon\n" -msgstr "" +msgstr "ps -Zax | grep guix-daemon\n" #. type: Plain text #: doc/guix.texi:1125 @@ -4539,29 +4965,40 @@ msgid "" "Monitor the SELinux log files as you run a command like @code{guix build " "hello} to convince yourself that SELinux permits all necessary operations." msgstr "" +"Surveillez les fichiers journaux de SELinux pendant que vous lancez une " +"commande comme @code{guix build hello} pour vous convaincre que SELniux " +"permet toutes les opérations nécessaires." #. type: cindex #: doc/guix.texi:1127 #, no-wrap msgid "SELinux, limitations" -msgstr "" +msgstr "SELinux, limites" #. type: Plain text #: doc/guix.texi:1132 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." +"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." #. type: enumerate #: doc/guix.texi:1139 msgid "" "@code{guix_daemon_socket_t} isn’t actually used. None of the socket " "operations involve contexts that have anything to do with " -"@code{guix_daemon_socket_t}. It doesn’t hurt to have this unused label, but " -"it would be preferrable to define socket rules for only this label." +"@code{guix_daemon_socket_t}. It doesn’t hurt to have this unused label, but" +" it would be preferrable to define socket rules for only this label." msgstr "" +"@code{guix_daemon_socket_t} n'est pas vraiment utilisé. Aucune des " +"opérations sur les sockets n'impliquent de contextes qui ont quoi que ce " +"soit à voir avec @code{guix_daemon_socket_t}. Ça ne fait pas de mal d'avoir" +" une étiquette inutilisée, mais il serait préférable de définir des règles " +"sur les sockets uniquement pour cette étiquette." #. type: enumerate #: doc/guix.texi:1150 @@ -4575,6 +5012,16 @@ msgid "" "@file{/tmp}, or the HTTP server’s working directory, etc, this won’t work. " "@code{guix gc} would be prevented from reading and following these links." msgstr "" +"@code{guix gc} ne peut pas accéder à n'importe quel lien vers les profils. " +"Par conception, l'étiquette de fichier de la destination d'un lien " +"symbolique est indépendant de l'étiquette du lien lui-même. Bien que tous " +"les profils sous $localstatedir aient une étiquette, les liens vers ces " +"profils héritent de l'étiquette du répertoire dans lequel ils se trouvent. " +"Pour les liens dans le répertoire personnel cela sera @code{user_home_t}. " +"Mais pour les liens du répertoire personnel de l'utilisateur root, ou " +"@file{/tmp}, ou du répertoire de travail du serveur HTTP, etc, cela ne " +"fonctionnera pas. SELinux empêcherait @code{guix gc} de lire et de suivre " +"ces liens." #. type: enumerate #: doc/guix.texi:1155 @@ -4583,46 +5030,71 @@ msgid "" "This might require extra rules, because SELinux treats network sockets " "differently from files." msgstr "" +"La fonctionnalité du démon d'écouter des connexions TCP pourrait ne plus " +"fonctionner. Cela demande des règles supplémentaires car SELinux traite les" +" sockets réseau différemment des fichiers." #. type: enumerate #: doc/guix.texi:1166 msgid "" -"Currently all files with a name matching the regular expression @code{/gnu/" -"store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the label " -"@code{guix_daemon_exec_t}; this means that @emph{any} file with that name in " -"any profile would be permitted to run in the @code{guix_daemon_t} domain. " -"This is not ideal. An attacker could build a package that provides this " -"executable and convince a user to install and run it, which lifts it into " -"the @code{guix_daemon_t} domain. At that point SELinux could not prevent it " -"from accessing files that are allowed for processes in that domain." +"Currently all files with a name matching the regular expression " +"@code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the " +"label @code{guix_daemon_exec_t}; this means that @emph{any} file with that " +"name in any profile would be permitted to run in the @code{guix_daemon_t} " +"domain. This is not ideal. An attacker could build a package that provides" +" this executable and convince a user to install and run it, which lifts it " +"into the @code{guix_daemon_t} domain. At that point SELinux could not " +"prevent it from accessing files that are allowed for processes in that " +"domain." msgstr "" +"Actuellement tous les fichiers qui correspondent à l'expression rationnelle " +"@code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} reçoivent l'étiquette" +" @code{guix_daemon_exec_t} ; cela signifie que @emph{tout} fichier avec ce " +"nom dans n'importe quel profil serait autorisé à se lancer dans le domaine " +"@code{guix_daemon_t}. Ce n'est pas idéal. Un attaquant pourrait construire" +" un paquet qui fournit cet exécutable et convaincre un utilisateur de " +"l'installer et de le lancer, ce qui l'élève dans le domaine " +"@code{guix_daemon_t}. À ce moment SELinux ne pourrait pas l'empêcher " +"d'accéder à des fichiers autorisés pour les processus de ce domaine." #. type: enumerate #: doc/guix.texi:1174 msgid "" "We could generate a much more restrictive policy at installation time, so " "that only the @emph{exact} file name of the currently installed @code{guix-" -"daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead " -"of using a broad regular expression. The downside is that root would have " +"daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead" +" of using a broad regular expression. The downside is that root would have " "to install or upgrade the policy at installation time whenever the Guix " "package that provides the effectively running @code{guix-daemon} executable " "is upgraded." msgstr "" +"Nous pourrions générer une politique bien plus restrictive à l'installation," +" pour que seuls les noms de fichiers @emph{exacts} de l'exécutable " +"@code{guix-daemon} actuellement installé soit étiqueté avec " +"@code{guix_daemon_exec_t}, plutôt que d'utiliser une expression rationnelle " +"plus large. L'inconvénient c'est que root devrait installer ou mettre à " +"jour la politique à l'installation à chaque fois que le paquet Guix qui " +"fournit l'exécutable @code{guix-daemon} effectivement exécuté est mis à " +"jour." #. type: section #: doc/guix.texi:1177 #, no-wrap msgid "Invoking @command{guix-daemon}" -msgstr "" +msgstr "Invoquer @command{guix-daemon}" #. type: Plain text #: doc/guix.texi:1183 msgid "" -"The @command{guix-daemon} program implements all the functionality to access " -"the store. This includes launching build processes, running the garbage " -"collector, querying the availability of a build result, etc. It is normally " -"run as @code{root} like this:" +"The @command{guix-daemon} program implements all the functionality to access" +" the store. This includes launching build processes, running the garbage " +"collector, querying the availability of a build result, etc. It is normally" +" run as @code{root} like this:" msgstr "" +"Le programme @command{guix-daemon} implémente toutes les fonctionnalités " +"d'accès au dépôt. Cela inclus le lancement des processus de construction, " +"le lancement du ramasse-miettes, la demande de disponibilité des résultats " +"de construction, etc. Il tourne normalement en @code{root} comme ceci :" #. type: Plain text #: doc/guix.texi:1190 @@ -4633,20 +5105,20 @@ msgstr "Pour des détails sur son paramétrage, @pxref{Paramétrer le démon}." #: doc/guix.texi:1192 #, no-wrap msgid "container, build environment" -msgstr "" +msgstr "conteneur, environnement de construction" #. type: cindex #: doc/guix.texi:1194 doc/guix.texi:1732 doc/guix.texi:2392 doc/guix.texi:7648 #, no-wrap msgid "reproducible builds" -msgstr "" +msgstr "constructions reproductibles" #. type: Plain text #: doc/guix.texi:1206 msgid "" "By default, @command{guix-daemon} launches build processes under different " -"UIDs, taken from the build group specified with @code{--build-users-group}. " -"In addition, each build process is run in a chroot environment that only " +"UIDs, taken from the build group specified with @code{--build-users-group}." +" In addition, each build process is run in a chroot environment that only " "contains the subset of the store that the build process depends on, as " "specified by its derivation (@pxref{Programming Interface, derivation}), " "plus a set of specific system directories. By default, the latter contains " @@ -4657,16 +5129,16 @@ msgid "" msgstr "" "Par défaut, @command{guix-daemon} lance les processus de construction sous " "différents UID récupérés depuis le groupe de construction spécifié avec " -"@code{--build-users-group}. En plus, chaque processus de construction est " +"@code{--build-users-group}. En plus, chaque processus de construction est " "lancé dans un environnement chroot qui ne contient que le sous-ensemble du " "dépôt dont le processus de construction dépend, tel que spécifié par sa " "dérivation (@pxref{Interface de programmation, dérivation}), plus un " -"ensemble de répertoires systèmes spécifiques. Par défaut ce dernier contient " -"@file{/dev} et @file{/dev/pts}. De plus, sous GNU/Linux, l'environnement de " -"construction est un @dfn{conteneur} : en plus d'avoir sa propre arborescence " -"du système de fichier, elle a un espace de montage séparé, son propre espace " -"de PID, son espace de réseau, etc. Cela aide à obtenir des constructions " -"reproductibles (@pxref{Fonctionnalités})." +"ensemble de répertoires systèmes spécifiques. Par défaut ce dernier " +"contient @file{/dev} et @file{/dev/pts}. De plus, sous GNU/Linux, " +"l'environnement de construction est un @dfn{conteneur} : en plus d'avoir sa " +"propre arborescence du système de fichier, elle a un espace de montage " +"séparé, son propre espace de PID, son espace de réseau, etc. Cela aide à " +"obtenir des constructions reproductibles (@pxref{Fonctionnalités})." #. type: Plain text #: doc/guix.texi:1215 @@ -4675,10 +5147,20 @@ msgid "" "directory under @file{/tmp} or under the directory specified by its " "@code{TMPDIR} environment variable; this directory is shared with the " "container for the duration of the build. Be aware that using a directory " -"other than @file{/tmp} can affect build results---for example, with a longer " -"directory name, a build process that uses Unix-domain sockets might hit the " -"name length limitation for @code{sun_path}, which it would otherwise not hit." +"other than @file{/tmp} can affect build results---for example, with a longer" +" directory name, a build process that uses Unix-domain sockets might hit the" +" name length limitation for @code{sun_path}, which it would otherwise not " +"hit." msgstr "" +"Lorsque le démon effectue une construction pour le compte de l'utilisateur, " +"il crée un répertoire sous @file{/tmp} ou sous le répertoire spécifié par sa" +" variable d'environnement @code{TMPDIR}. Ce répertoire est partagé avec le " +"conteneur pendant la durée de la construction. Soyez conscient qu'utiliser " +"un répertoire différent de @file{/tmp} peut affecter les résultats de la " +"construction — par exemple avec un nom de répertoire plus long, un processus" +" de construction qui utiliserait des socket Unix-domain pourrait atteindre " +"la limite de longueur de nom de fichier pour @code{sun_path}, qu'il n'aurait" +" sinon pas atteinte." #. type: Plain text #: doc/guix.texi:1219 @@ -4687,17 +5169,21 @@ msgid "" "build failed and the client specified @option{--keep-failed} " "(@pxref{Invoking guix build, @option{--keep-failed}})." msgstr "" +"Le répertoire de construction est automatiquement supprimé à la fin, à moins" +" que la construction n'ait échoué et que le client ait spécifié " +"@option{--keep-failed} (@pxref{Invoking guix build, @option{--keep-" +"failed}})." #. type: Plain text #: doc/guix.texi:1221 msgid "The following command-line options are supported:" -msgstr "" +msgstr "Les options en ligne de commande suivantes sont disponibles :" #. type: item #: doc/guix.texi:1223 #, no-wrap msgid "--build-users-group=@var{group}" -msgstr "" +msgstr "--build-users-group=@var{groupe}" #. type: table #: doc/guix.texi:1226 @@ -4705,20 +5191,20 @@ msgid "" "Take users from @var{group} to run build processes (@pxref{Setting Up the " "Daemon, build users})." msgstr "" -"Prend les utilisateurs de @var{group} pour lancer les processus de " +"Prendre les utilisateurs de @var{group} pour lancer les processus de " "construction (@pxref{Paramétrer le démon, utilisateurs de construction})." #. type: item #: doc/guix.texi:1227 doc/guix.texi:5498 #, no-wrap msgid "--no-substitutes" -msgstr "" +msgstr "--no-substitutes" #. type: cindex #: doc/guix.texi:1228 doc/guix.texi:1744 doc/guix.texi:2248 #, no-wrap msgid "substitutes" -msgstr "" +msgstr "substituts" #. type: table #: doc/guix.texi:1232 doc/guix.texi:5502 @@ -4727,8 +5213,8 @@ msgid "" "locally instead of allowing downloads of pre-built binaries " "(@pxref{Substitutes})." msgstr "" -"Ne pas utiliser de substitut pour les résultats de la construction. C'est-à-" -"dire, toujours construire localement plutôt que de permettre le " +"Ne pas utiliser de substitut pour les résultats de la construction. C'est-" +"à-dire, toujours construire localement plutôt que de permettre le " "téléchargement de binaires pré-construits (@pxref{Substituts})." #. type: table @@ -4738,27 +5224,34 @@ msgid "" "explicitly enable substitution @i{via} the @code{set-build-options} remote " "procedure call (@pxref{The Store})." msgstr "" +"Lorsque le démon tourne avec @code{--no-substitutes}, les clients peuvent " +"toujours activer explicitement la substitution @i{via} l'appel de procédure " +"distante @code{set-build-options} (@pxref{The Store})." #. type: item #: doc/guix.texi:1237 doc/guix.texi:5485 doc/guix.texi:6897 doc/guix.texi:7773 #: doc/guix.texi:7961 #, no-wrap msgid "--substitute-urls=@var{urls}" -msgstr "" +msgstr "--substitute-urls=@var{urls}" #. type: anchor{#1} #: doc/guix.texi:1243 msgid "daemon-substitute-urls" -msgstr "" +msgstr "daemon-substitute-urls" #. type: table #: doc/guix.texi:1243 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})." +"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})." #. type: table #: doc/guix.texi:1246 @@ -4773,31 +5266,37 @@ msgstr "" #: doc/guix.texi:1248 doc/guix.texi:5523 #, no-wrap msgid "--no-build-hook" -msgstr "" +msgstr "--no-build-hook" #. type: table #: doc/guix.texi:1250 msgid "Do not use the @dfn{build hook}." -msgstr "" +msgstr "Ne pas utiliser le @dfn{crochet de construction}." #. type: table #: doc/guix.texi:1254 msgid "" -"The build hook is a helper program that the daemon can start and to which it " -"submits build requests. This mechanism is used to offload builds to other " +"The build hook is a helper program that the daemon can start and to which it" +" submits build requests. This mechanism is used to offload builds to other " "machines (@pxref{Daemon Offload Setup})." msgstr "" +"Le crochet de construction est un programme d'aide qui le démon peut " +"démarrer et auquel soumettre les requêtes de construction. Ce mécanisme est" +" utilisé pour décharger les constructions à d'autres machines (@pxref{Daemon" +" Offload Setup})." #. type: item #: doc/guix.texi:1255 #, no-wrap msgid "--cache-failures" -msgstr "" +msgstr "--cache-failures" #. type: table #: doc/guix.texi:1257 msgid "Cache build failures. By default, only successful builds are cached." msgstr "" +"Mettre les échecs de construction en cache. Par défaut, seules les " +"constructions réussies sont mises en cache." #. type: table #: doc/guix.texi:1262 @@ -4807,18 +5306,22 @@ msgid "" "failures} removes store items from the set of cached failures. " "@xref{Invoking guix gc}." msgstr "" +"Lorsque cette option est utilisée, @command{guix gc --list-failures} peut " +"être utilisé pour demander l'ensemble des éléments du dépôt marqués comme " +"échoués ; @command{guix gc --clear-failures} vide la liste des éléments " +"aillant échoué. @xref{Invoking guix gc}." #. type: item #: doc/guix.texi:1263 doc/guix.texi:5547 #, no-wrap msgid "--cores=@var{n}" -msgstr "" +msgstr "--cores=@var{n}" #. type: itemx #: doc/guix.texi:1264 doc/guix.texi:5548 #, no-wrap msgid "-c @var{n}" -msgstr "" +msgstr "-c @var{n}" #. type: table #: doc/guix.texi:1267 @@ -4826,6 +5329,8 @@ msgid "" "Use @var{n} CPU cores to build each derivation; @code{0} means as many as " "available." msgstr "" +"Utiliser @var{n} cœurs CPU pour construire chaque dérivation ; @code{0} " +"signifie autant que possible." #. type: table #: doc/guix.texi:1271 @@ -4834,6 +5339,9 @@ msgid "" "the @code{--cores} option of @command{guix build} (@pxref{Invoking guix " "build})." msgstr "" +"La valeur par défaut est @code{0}, mais elle peut être modifiée par les " +"clients comme avec l'option @code{--cores} de @command{guix build} " +"(@pxref{Invoking guix build})." #. type: table #: doc/guix.texi:1275 @@ -4842,18 +5350,22 @@ msgid "" "the build process, which can then use it to exploit internal parallelism---" "for instance, by running @code{make -j$NIX_BUILD_CORES}." msgstr "" +"L'effet est de définir la variable d'environnement @code{NIX_BUILD_CORES} " +"dans le processus de construction, qui peut ensuite l'utiliser pour " +"exploiter le parallélisme en interne — par exemple en lançant @code{make " +"-j$NIX_BUILD_CORES}." #. type: item #: doc/guix.texi:1276 doc/guix.texi:5552 #, no-wrap msgid "--max-jobs=@var{n}" -msgstr "" +msgstr "--max-jobs=@var{n}" #. type: itemx #: doc/guix.texi:1277 doc/guix.texi:5553 #, no-wrap msgid "-M @var{n}" -msgstr "" +msgstr "-M @var{n}" #. type: table #: doc/guix.texi:1282 @@ -4863,12 +5375,16 @@ msgid "" "locally; instead, the daemon will offload builds (@pxref{Daemon Offload " "Setup}), or simply fail." msgstr "" +"Permettre au plus @var{n} travaux de construction en parallèle. La valeur " +"par défaut est @code{1}. La mettre à @code{0} signifie qu'aucune " +"construction ne sera effectuée localement ; à la place, le démon déchargera " +"les constructions (@pxref{Daemon Offload Setup}) ou échouera." #. type: item #: doc/guix.texi:1283 doc/guix.texi:5528 #, no-wrap msgid "--max-silent-time=@var{seconds}" -msgstr "" +msgstr "--max-silent-time=@var{secondes}" #. type: table #: doc/guix.texi:1286 doc/guix.texi:5531 @@ -4876,11 +5392,14 @@ msgid "" "When the build or substitution process remains silent for more than " "@var{seconds}, terminate it and report a build failure." msgstr "" +"Lorsque le processus de construction ou de substitution restent silencieux " +"pendant plus de @var{secondes}, le terminer et rapporter une erreur de " +"construction." #. type: table #: doc/guix.texi:1288 doc/guix.texi:1297 msgid "The default value is @code{0}, which disables the timeout." -msgstr "" +msgstr "La valeur par défaut est @code{0}, ce qui désactive le délai." #. type: table #: doc/guix.texi:1291 @@ -4888,12 +5407,14 @@ msgid "" "The value specified here can be overridden by clients (@pxref{Common Build " "Options, @code{--max-silent-time}})." msgstr "" +"La valeur spécifiée ici peut être modifiée par les clients (@pxref{Common " +"Build Options, @code{--max-silent-time}})." #. type: item #: doc/guix.texi:1292 doc/guix.texi:5535 #, no-wrap msgid "--timeout=@var{seconds}" -msgstr "" +msgstr "--timeout=@var{secondes}" #. type: table #: doc/guix.texi:1295 doc/guix.texi:5538 @@ -4901,6 +5422,8 @@ msgid "" "Likewise, when the build or substitution process lasts for more than " "@var{seconds}, terminate it and report a build failure." msgstr "" +"De même, lorsque le processus de construction ou de substitution dure plus " +"de @var{secondes}, le terminer et rapporter une erreur de construction." #. type: table #: doc/guix.texi:1300 @@ -4908,12 +5431,14 @@ msgid "" "The value specified here can be overridden by clients (@pxref{Common Build " "Options, @code{--timeout}})." msgstr "" +"La valeur spécifiée ici peut être modifiée par les clients (@pxref{Common " +"Build Options, @code{--timeout}})." #. type: item #: doc/guix.texi:1301 #, no-wrap msgid "--rounds=@var{N}" -msgstr "" +msgstr "--rounds=@var{N}" #. type: table #: doc/guix.texi:1306 @@ -4923,6 +5448,10 @@ msgid "" "setting can be overridden by clients such as @command{guix build} " "(@pxref{Invoking guix build})." msgstr "" +"Construire chaque dérivations @var{N} fois à la suite, et lever une erreur " +"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{Invoking guix build})." #. type: table #: doc/guix.texi:1310 doc/guix.texi:5830 @@ -4931,17 +5460,20 @@ msgid "" "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." #. type: item #: doc/guix.texi:1311 #, no-wrap msgid "--debug" -msgstr "" +msgstr "--debug" #. type: table #: doc/guix.texi:1313 msgid "Produce debugging output." -msgstr "" +msgstr "Produire une sortie de débogage." #. type: table #: doc/guix.texi:1317 @@ -4950,17 +5482,20 @@ msgid "" "overridden by clients, for example the @code{--verbosity} option of " "@command{guix build} (@pxref{Invoking guix build})." msgstr "" +"Cela est utile pour déboguer des problèmes de démarrage du démon, mais " +"ensuite elle peut être modifiée par les clients, par exemple par l'option " +"@code{--verbosity} de @command{guix build} (@pxref{Invoking guix build})." #. type: item #: doc/guix.texi:1318 #, no-wrap msgid "--chroot-directory=@var{dir}" -msgstr "" +msgstr "--chroot-directory=@var{rép}" #. type: table #: doc/guix.texi:1320 msgid "Add @var{dir} to the build chroot." -msgstr "" +msgstr "Ajouter @var{rép} au chroot de construction" #. type: table #: doc/guix.texi:1326 @@ -4970,17 +5505,22 @@ msgid "" "otherwise. For that reason, it is not recommended to do so. Instead, make " "sure that each derivation declares all the inputs that it needs." msgstr "" +"Cela peut changer le résultat d'un processus de construction — par exemple " +"s'il utilise une dépendance facultative trouvée dans @var{rép} lorsqu'elle " +"est disponible ou pas sinon. Pour cette raison, il n'est pas recommandé " +"d'utiliser cette option. À la place, assurez-vous que chaque dérivation " +"déclare toutes les entrées dont elle a besoin." #. type: item #: doc/guix.texi:1327 #, no-wrap msgid "--disable-chroot" -msgstr "" +msgstr "--disable-chroot" #. type: table #: doc/guix.texi:1329 msgid "Disable chroot builds." -msgstr "" +msgstr "Désactive les constructions dans un chroot." #. type: table #: doc/guix.texi:1334 @@ -4990,12 +5530,16 @@ msgid "" "though, when @command{guix-daemon} is running under an unprivileged user " "account." msgstr "" +"Utiliser cette option n'est pas recommandé car, de nouveau, elle permet aux " +"processus de construction d'accéder à des dépendances non déclarées. Elle " +"est nécessaire cependant lorsque @command{guix-daemon} tourne en tant " +"qu'utilisateur non privilégié." #. type: item #: doc/guix.texi:1335 #, no-wrap msgid "--log-compression=@var{type}" -msgstr "" +msgstr "--log-compression=@var{type}" #. type: table #: doc/guix.texi:1338 @@ -5003,6 +5547,8 @@ msgid "" "Compress build logs according to @var{type}, one of @code{gzip}, " "@code{bzip2}, or @code{none}." msgstr "" +"Compresser les journaux de construction suivant le @var{type}, parmi " +"@code{gzip}, @code{bzip2} ou @code{none}." #. type: table #: doc/guix.texi:1342 @@ -5011,23 +5557,27 @@ msgid "" "@var{localstatedir}. To save space, the daemon automatically compresses " "them with bzip2 by default." msgstr "" +"À moins que @code{--lose-logs} ne soit utilisé, tous les journaux de " +"construction sont gardés dans @var{localstatedir}. Pour gagner de la place," +" le démon les compresse automatiquement avec bzip2 par défaut." #. type: item #: doc/guix.texi:1343 #, no-wrap msgid "--disable-deduplication" -msgstr "" +msgstr "--disable-deduplication" #. type: cindex #: doc/guix.texi:1344 doc/guix.texi:2708 #, no-wrap msgid "deduplication" -msgstr "" +msgstr "déduplication" #. type: table #: doc/guix.texi:1346 msgid "Disable automatic file ``deduplication'' in the store." msgstr "" +"Désactiver la « déduplication » automatique des fichiers dans le dépôt." #. type: table #: doc/guix.texi:1353 @@ -5035,16 +5585,22 @@ msgid "" "By default, files added to the store are automatically ``deduplicated'': if " "a newly added file is identical to another one found in the store, the " "daemon makes the new file a hard link to the other file. This can " -"noticeably reduce disk usage, at the expense of slightly increased input/" -"output load at the end of a build process. This option disables this " +"noticeably reduce disk usage, at the expense of slightly increased " +"input/output load at the end of a build process. This option disables this " "optimization." msgstr "" +"Par défaut, les fichiers ajoutés au dépôt sont automatiquement « dédupliqués" +" » : si un nouveau fichier est identique à un autre fichier trouvé dans le " +"dépôt, le démon en fait un lien en dur vers l'autre fichier. Cela réduit " +"considérablement l'utilisation de l'espace disque au prix d'une charge en " +"entrée/sortie plus grande à la fin d'un processus de construction. Cette " +"option désactive cette optimisation." #. type: item #: doc/guix.texi:1354 #, no-wrap msgid "--gc-keep-outputs[=yes|no]" -msgstr "" +msgstr "--gc-keep-outputs[=yes|no]" #. type: table #: doc/guix.texi:1357 @@ -5052,18 +5608,20 @@ msgid "" "Tell whether the garbage collector (GC) must keep outputs of live " "derivations." msgstr "" +"Dire si le ramasse-miettes (GC) doit garder les sorties des dérivations " +"utilisées." #. type: cindex #: doc/guix.texi:1358 doc/guix.texi:2543 #, no-wrap msgid "GC roots" -msgstr "" +msgstr "racines du GC" #. type: cindex #: doc/guix.texi:1359 doc/guix.texi:2544 #, no-wrap msgid "garbage collector roots" -msgstr "" +msgstr "racines du ramasse-miettes" #. type: table #: doc/guix.texi:1364 @@ -5073,12 +5631,17 @@ msgid "" "meaning that derivation outputs are kept only if they are GC roots. " "@xref{Invoking guix gc}, for more on GC roots." msgstr "" +"Lorsqu'elle est à « yes », le GC gardera les sorties de toutes les " +"dérivations — les fichiers @code{.drv} — utilisées dans le dépôt. La valeur" +" par défaut est « no », ce qui signifie que les sorties des dérivations ne " +"sont gardées que s'il s'agit de racines du GC@. @xref{Invoking guix gc} " +"pour plus d'informations sur les racines du GC@." #. type: item #: doc/guix.texi:1365 #, no-wrap msgid "--gc-keep-derivations[=yes|no]" -msgstr "" +msgstr "--gc-keep-derivations[=yes|no]" #. type: table #: doc/guix.texi:1368 @@ -5086,38 +5649,54 @@ msgid "" "Tell whether the garbage collector (GC) must keep derivations corresponding " "to live outputs." msgstr "" +"Dire si le ramasse-miettes (GC) doit garder les dérivations correspondant à " +"des sorties utilisées." #. type: table #: doc/guix.texi:1373 msgid "" -"When set to ``yes'', as is the case by default, the GC keeps derivations---i." -"e., @code{.drv} files---as long as at least one of their outputs is live. " -"This allows users to keep track of the origins of items in their store. " +"When set to ``yes'', as is the case by default, the GC keeps derivations---" +"i.e., @code{.drv} files---as long as at least one of their outputs is live." +" This allows users to keep track of the origins of items in their store. " "Setting it to ``no'' saves a bit of disk space." msgstr "" +"Lorsqu'elle est à « yes », comme c'est le cas par défaut, le GC garde les " +"dérivations — c.-à-d.@: les fichiers @file{.drv} — tant qu'au moins une de " +"leurs sorties est utilisée. Cela permet aux utilisateurs de garder une " +"trace de l'origine des éléments du dépôt. Le mettre à « no » préserve un " +"peu d'espace disque." #. type: table #: doc/guix.texi:1380 msgid "" "Note that when both @code{--gc-keep-derivations} and @code{--gc-keep-" "outputs} are used, the effect is to keep all the build prerequisites (the " -"sources, compiler, libraries, and other build-time tools) of live objects in " -"the store, regardless of whether these prerequisites are live. This is " +"sources, compiler, libraries, and other build-time tools) of live objects in" +" the store, regardless of whether these prerequisites are live. This is " "convenient for developers since it saves rebuilds or downloads." msgstr "" +"Remarquez qu'avec @code{--gc-keep-derivations} et @code{--gc-keep-outputs}, " +"le GC gardera tous les prérequis de construction (les sources, le " +"compilateur, les bibliothèques, et les autres outils de construction) des " +"objets utilisés dans le dépôt, indépendamment du fait qu'ils soient ou non " +"utilisés. Cela est pratique pour les développeurs car ça leur fait gagner " +"du temps de reconstruction et de téléchargement." #. type: item #: doc/guix.texi:1381 #, no-wrap msgid "--impersonate-linux-2.6" -msgstr "" +msgstr "--impersonate-linux-2.6" #. type: table #: doc/guix.texi:1384 msgid "" -"On Linux-based systems, impersonate Linux 2.6. This means that the kernel's " -"@code{uname} system call will report 2.6 as the release number." +"On Linux-based systems, impersonate Linux 2.6. This means that the kernel's" +" @code{uname} system call will report 2.6 as the release number." msgstr "" +"Sur les système basés sur Linux, se faire passer pour Linux 2.6. Cela " +"signifie que l'appel système du noyau @code{uname} rapportera 2.6 comme " +"numéro de version." #. type: table #: doc/guix.texi:1387 @@ -5125,12 +5704,14 @@ msgid "" "This might be helpful to build programs that (usually wrongfully) depend on " "the kernel version number." msgstr "" +"Cela peut être utile pour construire des programmes qui dépendent " +"(généralement sans fondement) du numéro de version du noyau." #. type: item #: doc/guix.texi:1388 #, no-wrap msgid "--lose-logs" -msgstr "" +msgstr "--lose-logs" #. type: table #: doc/guix.texi:1391 @@ -5138,6 +5719,8 @@ msgid "" "Do not keep build logs. By default they are kept under " "@code{@var{localstatedir}/guix/log}." msgstr "" +"Ne pas garder les journaux de construction. Par défaut ils sont gardés dans" +" @code{@var{localstatedir}/guix/log}." #. type: item #: doc/guix.texi:1392 doc/guix.texi:2890 doc/guix.texi:5783 doc/guix.texi:6924 @@ -5145,36 +5728,43 @@ msgstr "" #: doc/guix.texi:20592 #, no-wrap msgid "--system=@var{system}" -msgstr "" +msgstr "--system=@var{système}" #. type: table #: doc/guix.texi:1396 msgid "" "Assume @var{system} as the current system type. By default it is the " -"architecture/kernel pair found at configure time, such as @code{x86_64-" -"linux}." +"architecture/kernel pair found at configure time, such as " +"@code{x86_64-linux}." msgstr "" +"Supposer que @var{système} est le type de système actuel. Par défaut c'est " +"la paire architecture-noyau trouvée à la configuration, comme " +"@code{x86_64-linux}." #. type: item #: doc/guix.texi:1397 #, no-wrap msgid "--listen=@var{endpoint}" -msgstr "" +msgstr "--listen=@var{extrémité}" #. type: table #: doc/guix.texi:1402 msgid "" "Listen for connections on @var{endpoint}. @var{endpoint} is interpreted as " "the file name of a Unix-domain socket if it starts with @code{/} (slash " -"sign). Otherwise, @var{endpoint} is interpreted as a host name or host name " -"and port to listen to. Here are a few examples:" +"sign). Otherwise, @var{endpoint} is interpreted as a host name or host name" +" and port to listen to. Here are a few examples:" msgstr "" +"Écouter les connexions sur @var{extrémité}. @var{extrémité} est interprété " +"comme un nom de fichier d'un socket Unix-domain s'il commence par @code{/} " +"(barre oblique). Sinon, @var{extrémité} est interprété comme un nom de " +"domaine ou d'hôte et un port sur lequel écouter. Voici quelques exemples :" #. type: item #: doc/guix.texi:1404 #, no-wrap msgid "--listen=/gnu/var/daemon" -msgstr "" +msgstr "--listen=/gnu/var/daemon" #. type: table #: doc/guix.texi:1407 @@ -5182,36 +5772,38 @@ msgid "" "Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, " "creating it if needed." msgstr "" +"Écouter les connexions sur le socket Unix-domain @file{/gnu/var/daemon} en " +"le créant si besoin." #. type: item #: doc/guix.texi:1408 #, no-wrap msgid "--listen=localhost" -msgstr "" +msgstr "--listen=localhost" #. type: cindex #: doc/guix.texi:1409 doc/guix.texi:4235 #, no-wrap msgid "daemon, remote access" -msgstr "" +msgstr "démon, accès distant" #. type: cindex #: doc/guix.texi:1410 doc/guix.texi:4236 #, no-wrap msgid "remote access to the daemon" -msgstr "" +msgstr "accès distant au démon" #. type: cindex #: doc/guix.texi:1411 doc/guix.texi:4237 #, no-wrap msgid "daemon, cluster setup" -msgstr "" +msgstr "démon, paramètres de grappes" #. type: cindex #: doc/guix.texi:1412 doc/guix.texi:4238 #, no-wrap msgid "clusters, daemon setup" -msgstr "" +msgstr "grappes, paramètres du démon" #. type: table #: doc/guix.texi:1415 @@ -5219,12 +5811,14 @@ msgid "" "Listen for TCP connections on the network interface corresponding to " "@code{localhost}, on port 44146." msgstr "" +"Écouter les connexions TCP sur l'interface réseau correspondant à " +"@code{localhost} sur le port 44146." #. type: item #: doc/guix.texi:1416 #, no-wrap msgid "--listen=128.0.0.42:1234" -msgstr "" +msgstr "--listen=128.0.0.42:1234" #. type: table #: doc/guix.texi:1419 @@ -5232,6 +5826,8 @@ msgid "" "Listen for TCP connections on the network interface corresponding to " "@code{128.0.0.42}, on port 1234." msgstr "" +"Écouter les connexions TCP sur l'interface réseau correspondant à " +"@code{128.0.0.42} sur le port 1234." #. type: table #: doc/guix.texi:1426 @@ -5242,16 +5838,21 @@ msgid "" "@code{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, " "@code{GUIX_DAEMON_SOCKET}})." msgstr "" +"Cette option peut être répétée plusieurs fois, auquel cas @command{guix-" +"daemon} accepte des connexions sur toutes les extrémités spécifiées. Les " +"utilisateurs peuvent dire aux commandes clientes à quelle extrémité se " +"connecter en paramétrant la variable d'environnement " +"@code{GUIX_DAEMON_SOCKET} (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})." #. type: quotation #: doc/guix.texi:1427 doc/guix.texi:2325 doc/guix.texi:2789 doc/guix.texi:2952 #: doc/guix.texi:4205 doc/guix.texi:4273 doc/guix.texi:5788 doc/guix.texi:7224 -#: doc/guix.texi:7851 doc/guix.texi:8069 doc/guix.texi:8280 doc/guix.texi:11491 -#: doc/guix.texi:20375 doc/guix.texi:20573 doc/guix.texi:20660 -#: doc/guix.texi:21504 +#: doc/guix.texi:7851 doc/guix.texi:8069 doc/guix.texi:8280 +#: doc/guix.texi:11491 doc/guix.texi:20375 doc/guix.texi:20573 +#: doc/guix.texi:20660 doc/guix.texi:21504 #, no-wrap msgid "Note" -msgstr "" +msgstr "Remarque" #. type: quotation #: doc/guix.texi:1433 @@ -5262,14 +5863,23 @@ msgid "" "where remote access to the daemon is needed, we recommend using Unix-domain " "sockets along with SSH." msgstr "" +"Le protocole du démon est @emph{non authentifié et non chiffré}. Utiliser " +"@code{--listen=@var{host}} est adapté sur des réseaux locaux, comme pour des" +" grappes de serveurs, où seuls des nœuds de confiance peuvent se connecter " +"au démon de construction. Dans les autres cas où l'accès à distance au " +"démon est requis, nous conseillons d'utiliser un socket Unix-domain avec " +"SSH@." #. type: table #: doc/guix.texi:1438 msgid "" "When @code{--listen} is omitted, @command{guix-daemon} listens for " -"connections on the Unix-domain socket located at @file{@var{localstatedir}/" -"guix/daemon-socket/socket}." +"connections on the Unix-domain socket located at " +"@file{@var{localstatedir}/guix/daemon-socket/socket}." msgstr "" +"Lorsque @code{--listen} est omis, @command{guix-daemon} écoute les " +"connexions sur le socket Unix-domain situé à " +"@file{@var{localstatedir}/guix/daemon-socket/socket}." #. type: Plain text #: doc/guix.texi:1448 @@ -5278,29 +5888,33 @@ msgid "" "called @dfn{foreign distro}---a few additional steps are needed to get " "everything in place. Here are some of them." msgstr "" +"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." #. type: anchor{#1} #: doc/guix.texi:1452 msgid "locales-and-locpath" -msgstr "" +msgstr "locales-and-locpath" #. type: cindex #: doc/guix.texi:1452 #, no-wrap msgid "locales, when not on GuixSD" -msgstr "" +msgstr "régionalisation, en dehors de GuixSD" #. type: vindex #: doc/guix.texi:1453 doc/guix.texi:9549 #, no-wrap msgid "LOCPATH" -msgstr "" +msgstr "LOCPATH" #. type: vindex #: doc/guix.texi:1454 #, no-wrap msgid "GUIX_LOCPATH" -msgstr "" +msgstr "GUIX_LOCPATH" #. type: Plain text #: doc/guix.texi:1459 @@ -5310,6 +5924,10 @@ msgid "" "available with Guix and then define the @code{GUIX_LOCPATH} environment " "variable:" msgstr "" +"Les paquets installés @i{via} Guix n'utiliseront pas les données de " +"régionalisation du système hôte. À la place, vous devrez d'abord installer " +"l'un des paquets linguistiques disponibles dans Guix puis définir la " +"variable d'environnement @code{GUIX_LOCPATH} :" #. type: example #: doc/guix.texi:1463 @@ -5318,15 +5936,21 @@ msgid "" "$ guix package -i glibc-locales\n" "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n" msgstr "" +"$ guix package -i glibc-locales\n" +"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n" #. type: Plain text #: doc/guix.texi:1469 msgid "" -"Note that the @code{glibc-locales} package contains data for all the locales " -"supported by the GNU@tie{}libc and weighs in at around 110@tie{}MiB. " -"Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few " -"UTF-8 locales." +"Note that the @code{glibc-locales} package contains data for all the locales" +" supported by the GNU@tie{}libc and weighs in at around 110@tie{}MiB. " +"Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few" +" UTF-8 locales." msgstr "" +"Remarquez que le paquet @code{glibc-locales} contient les données pour tous " +"les environnement linguistiques supportés par la GNU@tie{}libc et pèse " +"environ 110@tie{}Mo. Autrement, les @code{glibc-utf8-locales} est plus " +"petit mais limité à quelques environnements UTF-8." #. type: Plain text #: doc/guix.texi:1473 @@ -5335,25 +5959,38 @@ msgid "" "(@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference " "Manual}). There are two important differences though:" msgstr "" +"La variable @code{GUIX_LOCPATH} joue un rôle similaire à @code{LOCPATH} " +"(@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference " +"Manual}). Il y a deux différences importantes cependant :" #. type: enumerate #: doc/guix.texi:1480 msgid "" -"@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc " -"provided by foreign distros. Thus, using @code{GUIX_LOCPATH} allows you to " -"make sure the programs of the foreign distro will not end up loading " +"@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc" +" provided by foreign distros. Thus, using @code{GUIX_LOCPATH} allows you to" +" make sure the programs of the foreign distro will not end up loading " "incompatible locale data." msgstr "" +"@code{GUIX_LOCPATH} n'est compris que par la libc dans Guix et pas par la " +"libc fournie par les distros externes. Ainsi, utiliser @code{GUIX_LOCPATH} " +"vous permet de vous assurer que les programmes de la distro externe ne " +"chargeront pas de données linguistiques incompatibles." #. type: enumerate #: doc/guix.texi:1487 msgid "" "libc suffixes each entry of @code{GUIX_LOCPATH} with @code{/X.Y}, where " -"@code{X.Y} is the libc version---e.g., @code{2.22}. This means that, should " -"your Guix profile contain a mixture of programs linked against different " +"@code{X.Y} is the libc version---e.g., @code{2.22}. This means that, should" +" your Guix profile contain a mixture of programs linked against different " "libc version, each libc version will only try to load locale data in the " "right format." msgstr "" +"La libc ajoute un suffixe @code{/X.Y} à chaque entrée de " +"@code{GUIX_LOCPATH}, où @code{X.Y} est la version de la libc — p.@: ex.@: " +"@code{2.22}. Cela signifie que, si votre profile Guix contient un mélange " +"de programmes liés avec des versions différentes de la libc, chaque version " +"de la libc essaiera de charger les environnements linguistiques dans le bon " +"format." #. type: Plain text #: doc/guix.texi:1491 @@ -5361,47 +5998,56 @@ msgid "" "This is important because the locale data format used by different libc " "versions may be incompatible." msgstr "" +"Cela est important car le format des données linguistiques utilisés par " +"différentes version de la libc peuvent être incompatibles." #. type: cindex #: doc/guix.texi:1494 #, no-wrap msgid "name service switch, glibc" -msgstr "" +msgstr "name service switch, glibc" #. type: cindex #: doc/guix.texi:1495 #, no-wrap msgid "NSS (name service switch), glibc" -msgstr "" +msgstr "NSS (name service switch), glibc" #. type: cindex #: doc/guix.texi:1496 #, no-wrap msgid "nscd (name service caching daemon)" -msgstr "" +msgstr "nscd (name service caching daemon)" #. type: cindex #: doc/guix.texi:1497 #, no-wrap msgid "name service caching daemon (nscd)" -msgstr "" +msgstr "name service caching daemon (nscd)" #. type: Plain text #: doc/guix.texi:1504 msgid "" "When using Guix on a foreign distro, we @emph{strongly recommend} that the " "system run the GNU C library's @dfn{name service cache daemon}, " -"@command{nscd}, which should be listening on the @file{/var/run/nscd/socket} " -"socket. Failing to do that, applications installed with Guix may fail to " -"look up host names or user accounts, or may even crash. The next paragraphs " -"explain why." +"@command{nscd}, which should be listening on the @file{/var/run/nscd/socket}" +" socket. Failing to do that, applications installed with Guix may fail to " +"look up host names or user accounts, or may even crash. The next paragraphs" +" explain why." msgstr "" +"Lorsque vous utilisez Guix sur une distro externe, nous @emph{recommandons " +"fortement} que ce système fasse tourner le @dfn{démon de cache de service de" +" noms} de la bibliothèque C de GNU, @command{nscd}, qui devrait écouter sur " +"le socket @file{/var/run/nscd/socket}. Sans cela, les applications " +"installées avec Guix peuvent échouer à résoudre des noms d'hôtes ou " +"d'utilisateurs, ou même planter. Les paragraphes suivants expliquent " +"pourquoi." #. type: file{#1} #: doc/guix.texi:1505 #, no-wrap msgid "nsswitch.conf" -msgstr "" +msgstr "nsswitch.conf" #. type: Plain text #: doc/guix.texi:1510 @@ -5411,18 +6057,22 @@ msgid "" "user accounts, and more (@pxref{Name Service Switch,,, libc, The GNU C " "Library Reference Manual})." msgstr "" +"La bibliothèque C de GNU implémente un @dfn{name service switch} (NSS), qui " +"est un mécanisme d'extension pour les « résolutions de noms » en général : " +"résolution de nom d'hôte, de compte utilisateur et plus (@pxref{Name Service" +" Switch,,, libc, The GNU C Library Reference Manual})." #. type: cindex #: doc/guix.texi:1511 #, no-wrap msgid "Network information service (NIS)" -msgstr "" +msgstr "Network information service (NIS)" #. type: cindex #: doc/guix.texi:1512 #, no-wrap msgid "NIS (Network information service)" -msgstr "" +msgstr "NIS (Network information service)" #. type: Plain text #: doc/guix.texi:1521 @@ -5431,11 +6081,20 @@ msgid "" "lookup implementations: for example, the @code{nss-mdns} plugin allow " "resolution of @code{.local} host names, the @code{nis} plugin allows user " "account lookup using the Network information service (NIS), and so on. " -"These extra ``lookup services'' are configured system-wide in @file{/etc/" -"nsswitch.conf}, and all the programs running on the system honor those " -"settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference " +"These extra ``lookup services'' are configured system-wide in " +"@file{/etc/nsswitch.conf}, and all the programs running on the system honor " +"those settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference " "Manual})." msgstr "" +"Comme il est extensible, NSS supporte des @dfn{greffons} qui fournissent une" +" nouvelle implémentation de résolution de nom : par exemple le greffon " +"@code{nss-mdns} permet la résolution de noms d'hôtes en @code{.local}, le " +"greffon @code{nis} permet la résolution de comptes utilisateurs avec le " +"Network Information Service (NIS), etc. Ces « services de recherches » " +"supplémentaires sont configurés au niveau du système dans " +"@file{/etc/nsswitch.conf}, et tous les programmes qui tournent sur ce " +"système honorent ces paramètres (@pxref{NSS Configuration File,,, libc, The " +"GNU C Reference Manual})" #. type: Plain text #: doc/guix.texi:1531 @@ -5444,11 +6103,21 @@ msgid "" "@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, " +"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)." #. type: Plain text #: doc/guix.texi:1536 @@ -5458,6 +6127,11 @@ msgid "" "another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will " "likely crash or have its name lookups fail unexpectedly." msgstr "" +"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 " +"greffons NSS d'une autre bibliothèque C (disons, @code{libnss_mdns.so} pour " +"glibc-2.22), il est très probable qu'elle plante ou que sa résolution de nom" +" échoue de manière inattendue." #. type: Plain text #: doc/guix.texi:1541 @@ -5466,18 +6140,21 @@ msgid "" "this binary incompatibility problem because those @code{libnss_*.so} files " "are loaded in the @command{nscd} process, not in applications themselves." msgstr "" +"Lancer @command{nscd} sur le système, entre autres avantages, élimine ce " +"problème d'incompatibilité binaire car ces fichiers @code{libnss_*.so} sont " +"chargés par le processus @command{nscd}, pas par l'application elle-même." #. type: subsection #: doc/guix.texi:1542 #, no-wrap msgid "X11 Fonts" -msgstr "" +msgstr "Polices X11" #. type: cindex #: doc/guix.texi:1544 doc/guix.texi:22070 #, no-wrap msgid "fonts" -msgstr "" +msgstr "polices" #. type: Plain text #: doc/guix.texi:1552 @@ -5489,6 +6166,13 @@ msgid "" "to install fonts with Guix as well. Essential font packages include " "@code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont-ttf}." msgstr "" +"La majorité des applications graphiques utilisent fontconfig pour trouver et" +" charger les police et effectuer le rendu côté client X11. Le paquet " +"@code{fontconfig} dans Guix cherche les polices dans @file{$HOME/.guix-" +"profile} par défaut. Ainsi, pour permettre aux applications graphiques " +"installées avec Guix d'afficher des polices, vous devez aussi installer des " +"polices avec Guix. Les paquets de polices essentiels sont @code{gs-fonts}, " +"@code{font-dejavu} et @code{font-gnu-freefont-ttf}." #. type: Plain text #: doc/guix.texi:1559 @@ -5496,35 +6180,44 @@ msgid "" "To display text written in Chinese languages, Japanese, or Korean in " "graphical applications, consider installing @code{font-adobe-source-han-" "sans} or @code{font-wqy-zenhei}. The former has multiple outputs, one per " -"language family (@pxref{Packages with Multiple Outputs}). For instance, the " -"following command installs fonts for Chinese languages:" +"language family (@pxref{Packages with Multiple Outputs}). For instance, the" +" following command installs fonts for Chinese languages:" msgstr "" +"Pour afficher des textes écrits en chinois, en japonais ou en coréen dans " +"les applications graphiques, installez @code{font-adobe-source-han-sans} ou " +"@code{font-wqy-zenhei}. Le premier a plusieurs sorties, une par famille de " +"langue (@pxref{Packages with Multiple Outputs}). Par exemple, la commande " +"suivante installe les polices pour le chinois :" #. type: example #: doc/guix.texi:1562 #, no-wrap msgid "guix package -i font-adobe-source-han-sans:cn\n" -msgstr "" +msgstr "guix package -i font-adobe-source-han-sans:cn\n" #. type: code{#1} #: doc/guix.texi:1564 #, no-wrap msgid "xterm" -msgstr "" +msgstr "xterm" #. type: Plain text #: doc/guix.texi:1568 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:" +"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 :" #. type: example #: doc/guix.texi:1571 #, no-wrap msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n" -msgstr "" +msgstr "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n" #. type: Plain text #: doc/guix.texi:1575 @@ -5532,18 +6225,25 @@ msgid "" "To be able to use such full names for the TrueType fonts installed in your " "Guix profile, you need to extend the font path of the X server:" msgstr "" +"Pour pouvoir utiliser ces noms complets avec les polices TrueType installées" +" dans votre profil Guix, vous devez étendre le chemin des polices du serveur" +" X :" #. type: example #: doc/guix.texi:1580 #, no-wrap -msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n" +msgid "" +"xset +fp $(dirname $(readlink -f ~/.guix-" +"profile/share/fonts/truetype/fonts.dir))\n" msgstr "" +"xset +fp $(dirname $(readlink -f ~/.guix-" +"profile/share/fonts/truetype/fonts.dir))\n" #. type: code{#1} #: doc/guix.texi:1582 #, no-wrap msgid "xlsfonts" -msgstr "" +msgstr "xlsfonts" #. type: Plain text #: doc/guix.texi:1585 @@ -5551,34 +6251,42 @@ msgid "" "After that, you can run @code{xlsfonts} (from @code{xlsfonts} package) to " "make sure your TrueType fonts are listed there." msgstr "" +"Ensuite, vous pouvez lancer @code{xlsfonts} (du paquet @code{xlsfonts}) pour" +" vous assurer que vos polices TrueType y sont listées." #. type: code{#1} #: doc/guix.texi:1586 #, no-wrap msgid "fc-cache" -msgstr "" +msgstr "fc-cache" #. type: cindex #: doc/guix.texi:1587 #, no-wrap msgid "font cache" -msgstr "" +msgstr "cache de polices" #. type: Plain text #: doc/guix.texi:1593 msgid "" -"After installing fonts you may have to refresh the font cache to use them in " -"applications. The same applies when applications installed via Guix do not " -"seem to find fonts. To force rebuilding of the font cache run @code{fc-" -"cache -f}. The @code{fc-cache} command is provided by the @code{fontconfig} " -"package." +"After installing fonts you may have to refresh the font cache to use them in" +" applications. The same applies when applications installed via Guix do not" +" seem to find fonts. To force rebuilding of the font cache run @code{fc-" +"cache -f}. The @code{fc-cache} command is provided by the @code{fontconfig}" +" package." msgstr "" +"Après l'installation des polices vous devrez peut-être rafraîchir le cache " +"des polices pour pouvoir les utiliser dans les applications. Ça s'applique " +"aussi lorsque les applications installées avec Guix n'ont pas l'air de " +"trouver les polices. Pour forcer la reconstruction du cache de polices " +"lancez @code{fc-cache -f}. La commande @code{fc-cache} est fournie par le " +"paquet @code{fontconfig}." #. type: code{#1} #: doc/guix.texi:1596 doc/guix.texi:19787 #, no-wrap msgid "nss-certs" -msgstr "" +msgstr "nss-certs" #. type: Plain text #: doc/guix.texi:1599 @@ -5586,26 +6294,32 @@ msgid "" "The @code{nss-certs} package provides X.509 certificates, which allow " "programs to authenticate Web servers accessed over HTTPS." msgstr "" +"Le paquet @code{nss-certs} fournit les certificats X.509 qui permettent aux " +"programmes d'authentifier les serveurs web par HTTPS@." #. type: Plain text #: doc/guix.texi:1604 msgid "" -"When using Guix on a foreign distro, you can install this package and define " -"the relevant environment variables so that packages know where to look for " +"When using Guix on a foreign distro, you can install this package and define" +" the relevant environment variables so that packages know where to look for " "certificates. @xref{X.509 Certificates}, for detailed information." msgstr "" +"Lorsque vous utilisez Guix sur une distribution externe, vous pouvez " +"installer ce paquet et définir les variables d'environnement adéquates pour " +"que les paquets sachent où trouver les certificats. @xref{X.509 " +"Certificates}, pour des informations détaillées." #. type: subsection #: doc/guix.texi:1605 #, no-wrap msgid "Emacs Packages" -msgstr "" +msgstr "Paquets emacs" #. type: code{#1} #: doc/guix.texi:1607 #, no-wrap msgid "emacs" -msgstr "" +msgstr "emacs" #. type: Plain text #: doc/guix.texi:1618 @@ -5613,13 +6327,23 @@ msgid "" "When you install Emacs packages with Guix, the elisp files may be placed " "either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in sub-" "directories of @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}. " -"The latter directory exists because potentially there may exist thousands of " -"Emacs packages and storing all their files in a single directory may not be " -"reliable (because of name conflicts). So we think using a separate " +"The latter directory exists because potentially there may exist thousands of" +" Emacs packages and storing all their files in a single directory may not be" +" reliable (because of name conflicts). So we think using a separate " "directory for each package is a good idea. It is very similar to how the " "Emacs package system organizes the file structure (@pxref{Package Files,,, " "emacs, The GNU Emacs Manual})." msgstr "" +"Lorsque vous installez les paquets Emacs avec Guix, les fichiers elisp " +"peuvent être placés soit dans @file{$HOME/.guix-profile/share/emacs/site-" +"lisp/} soit dans des sous-répertoires de @file{$HOME/.guix-" +"profile/share/emacs/site-lisp/guix.d/}. Ce dernier existe car il existe " +"potentiellement des milliers de paquets Emacs et stocker leurs fichiers dans" +" un seul répertoire peut ne pas être fiable (à cause de conflits de noms). " +"Donc on pense qu'utiliser un répertoire séparé est une bonne idée. C'est " +"très similaire à la manière dont le système de paquet d'Emacs organise la " +"structure de fichiers (@pxref{Package Files,,, emacs, The GNU Emacs " +"Manual})." #. type: Plain text #: doc/guix.texi:1624 @@ -5630,24 +6354,29 @@ msgid "" "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})." #. type: subsection #: doc/guix.texi:1625 #, no-wrap msgid "The GCC toolchain" -msgstr "" +msgstr "La chaîne d'outils GCC" #. type: cindex #: doc/guix.texi:1627 #, no-wrap msgid "GCC" -msgstr "" +msgstr "GCC" #. type: cindex #: doc/guix.texi:1628 #, no-wrap msgid "ld-wrapper" -msgstr "" +msgstr "ld-wrapper" #. type: Plain text #: doc/guix.texi:1637 @@ -5659,12 +6388,19 @@ msgid "" "GNU C Library (headers and binaries, plus debugging symbols in the " "@code{debug} output), Binutils, and a linker wrapper." msgstr "" +"Guix offre des paquets de compilateurs individuels comme @code{gcc} mais si " +"vous avez besoin d'une chaîne de compilation complète pour compiler et lier " +"du code source, vous avez en fait besoin du paquet @code{gcc-toolchain}. Ce" +" paquet fournit une chaîne d'outils GCC pour le développement C/C++, dont " +"GCC 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." #. type: cindex #: doc/guix.texi:1638 #, no-wrap msgid "attempt to use impure library, error message" -msgstr "" +msgstr "tentative d'utiliser une bibliothèque impure, message d'erreur" #. type: Plain text #: doc/guix.texi:1648 @@ -5672,18 +6408,26 @@ msgid "" "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. By default, the linker " -"wrapper refuses to link to libraries outside the store to ensure " -"``purity''. This can be annoying when using the toolchain to link with " -"local libraries. To allow references to libraries outside the store you " -"need to define the environment variable " -"@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}." +"wrapper refuses to link to libraries outside the store to ensure ``purity''." +" This can be annoying when using the toolchain to link with local " +"libraries. To allow references to libraries outside the store you need to " +"define the environment variable @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}." msgstr "" +"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}." #. type: cindex #: doc/guix.texi:1655 #, no-wrap msgid "packages" -msgstr "" +msgstr "paquets" #. type: Plain text #: doc/guix.texi:1660 @@ -5693,6 +6437,10 @@ msgid "" "procedures or dependencies. Guix also goes beyond this obvious set of " "features." msgstr "" +"Le but de GNU Guix est de permettre à ses utilisateurs d'installer, mettre à" +" jour et supprimer facilement des paquets logiciels sans devoir connaître " +"leur procédure de construction ou leurs dépendances. Guix va aussi plus " +"loin que ces fonctionnalités évidentes." #. type: Plain text #: doc/guix.texi:1668 @@ -5705,12 +6453,12 @@ msgid "" "@kbd{M-x guix-help} command to start with it):" msgstr "" "Ce chapitre décrit les principales fonctionnalités de Guix, ainsi que des " -"outils de gestion des paquets qu'il fournit. En plus de l'interface en ligne " -"de commande décrite en dessous de (@pxref{Invoquer guix package, @code{guix " -"package}}), vous pouvez aussi utiliser l'interface Emacs-Guix (@pxref{Top,,, " -"emacs-guix, Le manuel de référence de emacs-guix}), après avoir installé le " -"paquet @code{emacs-guix} (lancez la commande @kbd{M-x guix-help} pour le " -"démarrer) :" +"outils de gestion des paquets qu'il fournit. En plus de l'interface en " +"ligne de commande décrite en dessous de (@pxref{Invoquer guix package, " +"@code{guix package}}), vous pouvez aussi utiliser l'interface Emacs-Guix " +"(@pxref{Top,,, emacs-guix, Le manuel de référence de emacs-guix}), après " +"avoir installé le paquet @code{emacs-guix} (lancez la commande @kbd{M-x " +"guix-help} pour le démarrer) :" #. type: example #: doc/guix.texi:1671 @@ -5721,30 +6469,45 @@ msgstr "guix package -i emacs-guix\n" #. type: Plain text #: doc/guix.texi:1690 msgid "" -"When using Guix, each package ends up in the @dfn{package store}, in its own " -"directory---something that resembles @file{/gnu/store/xxx-package-1.2}, " +"When using Guix, each package ends up in the @dfn{package store}, in its own" +" directory---something that resembles @file{/gnu/store/xxx-package-1.2}, " "where @code{xxx} is a base32 string." msgstr "" +"Lorsque vous utilisez Guix, chaque paquet arrive dans @dfn{dépôt des " +"paquets}, dans son propre répertoire — quelque chose comme " +"@file{/gnu/store/xxx-paquet-1.2}, où @code{xxx} est une chaîne en base32." #. type: Plain text #: doc/guix.texi:1695 msgid "" "Instead of referring to these directories, users have their own " -"@dfn{profile}, which points to the packages that they actually want to use. " -"These profiles are stored within each user's home directory, at @code{$HOME/." -"guix-profile}." +"@dfn{profile}, which points to the packages that they actually want to use." +" These profiles are stored within each user's home directory, at " +"@code{$HOME/.guix-profile}." msgstr "" +"Plutôt que de se rapporter à ces répertoires, les utilisateurs ont leur " +"propre @dfn{profil} qui pointe vers les paquets qu'ils veulent vraiment " +"utiliser. Ces profils sont stockés dans le répertoire personnel de chaque " +"utilisateur dans @code{$HOME/.guix-profile}." #. type: Plain text #: doc/guix.texi:1703 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." +"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." #. type: Plain text #: doc/guix.texi:1707 @@ -5753,50 +6516,73 @@ msgid "" "(@pxref{Invoking guix package}). It operates on the per-user profiles, and " "can be used @emph{with normal user privileges}." msgstr "" +"La commande @command{guix package} est l'outil central pour gérer les " +"paquets (@pxref{Invoking guix package}). Il opère sur les profils " +"utilisateurs et peut être utilisé avec les @emph{privilèges utilisateurs " +"normaux}." #. type: cindex #: doc/guix.texi:1708 doc/guix.texi:1777 #, no-wrap msgid "transactions" -msgstr "" +msgstr "transactions" #. type: Plain text #: doc/guix.texi:1715 msgid "" "The command provides the obvious install, remove, and upgrade operations. " "Each invocation is actually a @emph{transaction}: either the specified " -"operation succeeds, or nothing happens. Thus, if the @command{guix package} " -"process is terminated during the transaction, or if a power outage occurs " +"operation succeeds, or nothing happens. Thus, if the @command{guix package}" +" process is terminated during the transaction, or if a power outage occurs " "during the transaction, then the user's profile remains in its previous " "state, and remains usable." msgstr "" +"La commande fournit les opérations évidentes d'installation, de suppression " +"et de mise à jour. Chaque invocation est en fait une @emph{transaction} : " +"soit l'opération demandée réussi, soit rien ne se passe. Ainsi, si le " +"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." #. type: Plain text #: doc/guix.texi:1723 msgid "" -"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 " +"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 GuixSD is subject to transactional upgrades and roll-back " "(@pxref{Using the Configuration System})." msgstr "" +"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 " +"(@pxref{Using the Configuration System})." #. type: Plain text #: doc/guix.texi:1730 msgid "" -"All packages in the package store may be @emph{garbage-collected}. Guix can " -"determine which packages are still referenced by user profiles, and remove " +"All packages in the package store may be @emph{garbage-collected}. Guix can" +" determine which packages are still referenced by user profiles, and remove " "those that are provably no longer referenced (@pxref{Invoking guix gc}). " "Users may also explicitly remove old generations of their profile so that " "the packages they refer to can be collected." msgstr "" +"Tous les paquets du dépôt des paquets peut être @emph{glané}. Guix peut " +"déterminer quels paquets sont toujours référencés par les profils des " +"utilisateurs et supprimer ceux qui ne sont plus référencés de manière " +"prouvable (@pxref{Invoking guix gc}). Les utilisateurs peuvent toujours " +"explicitement supprimer les anciennes générations de leur profil pour que " +"les paquets auxquels elles faisaient référence puissent être glanés." #. type: cindex #: doc/guix.texi:1731 #, no-wrap msgid "reproducibility" -msgstr "" +msgstr "reproductibilité" #. type: Plain text #: doc/guix.texi:1743 @@ -5806,12 +6592,24 @@ msgid "" "@file{/gnu/store} package directory name contains a hash of all the inputs " "that were used to build that package---compiler, libraries, build scripts, " "etc. This direct correspondence allows users to make sure a given package " -"installation matches the current state of their distribution. It also helps " -"maximize @dfn{build reproducibility}: thanks to the isolated build " +"installation matches the current state of their distribution. It also helps" +" maximize @dfn{build reproducibility}: thanks to the isolated build " "environments that are used, a given build is likely to yield bit-identical " "files when performed on different machines (@pxref{Invoking guix-daemon, " "container})." msgstr "" +"Finalement, Guix prend une approche @dfn{purement fonctionnelle} de la " +"gestion de paquets, telle que décrite dans l'introduction " +"(@pxref{Introduction}). Chaque nom de répertoire de paquet dans " +"@file{/gnu/store} contient un hash de toutes les entrées qui ont été " +"utilisées pendant la construction de ce paquet — le compilateur, les " +"bibliothèques, les scripts de construction, etc. Cette correspondance " +"directe permet aux utilisateurs de s'assurer que l'installation d'un paquet " +"donné correspond à l'état actuel de leur distribution. Elle aide aussi à " +"maximiser la @dfn{reproductibilité} : grâce aux environnements de " +"construction utilisés, une construction donnée à de forte chances de donner " +"des fichiers identiques bit-à-bit lorsqu'elle est effectuée sur des machines" +" différents (@pxref{Invoking guix-daemon, container})." #. type: Plain text #: doc/guix.texi:1754 @@ -5822,14 +6620,14 @@ msgid "" "it and unpacks it; otherwise, it builds the package from source, locally " "(@pxref{Substitutes}). Because build results are usually bit-for-bit " "reproducible, users do not have to trust servers that provide substitutes: " -"they can force a local build and @emph{challenge} providers (@pxref{Invoking " -"guix challenge})." +"they can force a local build and @emph{challenge} providers (@pxref{Invoking" +" guix challenge})." msgstr "" "Ce fondement permet à Guix de supporter le @dfn{déploiement transparent de " -"binaire ou source}. Lorsqu'une binaire pré-construit pour une entrée de " +"binaire ou source}. Lorsqu'une binaire pré-construit pour une entrée de " "@file{/gnu/store} est disponible depuis une source externe (un " "@dfn{substitut}), Guix le télécharge simplement et le décompresse ; sinon, " -"il construit le paquet depuis les sources localement (@pxref{Substituts}). " +"il construit le paquet depuis les sources localement (@pxref{Substituts}). " "Comme les résultats des constructions sont généralement reproductibles au " "bit près, si vous n'avez pas besoin de faire confiance aux serveurs qui " "fournissent les substituts : vous pouvez forcer une construction locale et " @@ -5844,65 +6642,75 @@ msgid "" "package, without having to manually install the dependencies of the package " "into their profile (@pxref{Invoking guix environment})." msgstr "" +"Le contrôle de l'environnement de construction est aussi une fonctionnalité " +"utile pour les développeurs. La commande @command{guix environment} permet " +"aux développeurs d'un paquet de mettre en place rapidement le bon " +"environnement de développement pour leur paquet, sans avoir à installer " +"manuellement les dépendances du paquet dans leur profil (@pxref{Invoking " +"guix environment})." #. type: section #: doc/guix.texi:1762 #, no-wrap msgid "Invoking @command{guix package}" -msgstr "" +msgstr "Invoquer @command{guix package}" #. type: cindex #: doc/guix.texi:1764 #, no-wrap msgid "installing packages" -msgstr "" +msgstr "installer des paquets" #. type: cindex #: doc/guix.texi:1765 #, no-wrap msgid "removing packages" -msgstr "" +msgstr "supprimer des paquets" #. type: cindex #: doc/guix.texi:1766 #, no-wrap msgid "package installation" -msgstr "" +msgstr "installation de paquets" #. type: cindex #: doc/guix.texi:1767 #, no-wrap msgid "package removal" -msgstr "" +msgstr "suppression de paquets" #. type: Plain text #: doc/guix.texi:1773 msgid "" -"The @command{guix package} command is the tool that allows users to install, " -"upgrade, and remove packages, as well as rolling back to previous " +"The @command{guix package} command is the tool that allows users to install," +" upgrade, and remove packages, as well as rolling back to previous " "configurations. It operates only on the user's own profile, and works with " "normal user privileges (@pxref{Features}). Its syntax is:" msgstr "" "La commande @command{guix package} est l'outil qui permet d'installer, " "mettre à jour et supprimer les paquets ainsi que de revenir à une " -"configuration précédente. Elle n'opère que dans le profil de l'utilisateur " +"configuration précédente. Elle n'opère que dans le profil de l'utilisateur " "et fonctionne avec les privilèges utilisateurs normaux " -"(@pxref{Fonctionnalités}). Sa syntaxe est :" +"(@pxref{Fonctionnalités}). Sa syntaxe est :" #. type: example #: doc/guix.texi:1776 #, no-wrap msgid "guix package @var{options}\n" -msgstr "" +msgstr "guix package @var{options}\n" #. type: Plain text #: doc/guix.texi:1782 msgid "" -"Primarily, @var{options} specifies the operations to be performed during the " -"transaction. Upon completion, a new profile is created, but previous " +"Primarily, @var{options} specifies the operations to be performed during the" +" transaction. Upon completion, a new profile is created, but previous " "@dfn{generations} of the profile remain available, should the user want to " "roll back." msgstr "" +"@var{options} spécifie d'abord les opérations à effectuer pendant la " +"transaction. À la fin, une nouvelle génération du profil est créée mais les" +" @dfn{générations} précédentes du profil restent disponibles si " +"l'utilisateur souhaite y revenir." #. type: Plain text #: doc/guix.texi:1785 @@ -5910,27 +6718,33 @@ msgid "" "For example, to remove @code{lua} and install @code{guile} and @code{guile-" "cairo} in a single transaction:" msgstr "" +"Par exemple, pour supprimer @code{lua} et installer @code{guile} et " +"@code{guile-cairo} en une seule transaction :" #. type: example #: doc/guix.texi:1788 #, no-wrap msgid "guix package -r lua -i guile guile-cairo\n" -msgstr "" +msgstr "guix package -r lua -i guile guile-cairo\n" #. type: Plain text #: doc/guix.texi:1794 msgid "" "@command{guix package} also supports a @dfn{declarative approach} whereby " "the user specifies the exact set of packages to be available and passes it " -"@i{via} the @option{--manifest} option (@pxref{profile-manifest, @option{--" -"manifest}})." +"@i{via} the @option{--manifest} option (@pxref{profile-manifest, " +"@option{--manifest}})." msgstr "" +"@command{guix package} supporte aussi une @dfn{approche déclarative} où " +"l'utilisateur spécifie l'ensemble exact des paquets qui doivent être " +"disponibles le passe @i{via} l'option @option{--manifest} (@pxref{profile-" +"manifest, @option{--manifest}})." #. type: cindex #: doc/guix.texi:1795 #, no-wrap msgid "profile" -msgstr "" +msgstr "profil" #. type: Plain text #: doc/guix.texi:1801 @@ -5941,21 +6755,31 @@ msgid "" "@file{$HOME/.guix-profile/bin} to their @code{PATH} environment variable, " "and so on." msgstr "" +"Pour chaque utilisateur, un lien symbolique vers le profil par défaut de cet" +" utilisateur est automatiquement créé dans @file{$HOME/.guix-profile}. Ce " +"lien symbolique pointe toujours vers la génération actuelle du profil par " +"défaut de l'utilisateur. Ainsi, les utilisateurs peuvent ajouter " +"@file{$HOME/.guix-profile/bin} à leur variable d'environnement @code{PATH} " +"etc." #. type: cindex #: doc/guix.texi:1801 doc/guix.texi:1998 #, no-wrap msgid "search paths" -msgstr "" +msgstr "chemins de recherche" #. type: Plain text #: doc/guix.texi:1806 msgid "" "If you are not using the Guix System Distribution, consider adding the " -"following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, " -"bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all " +"following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,," +" bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all " "the right environment variable definitions:" msgstr "" +"Si vous n'utilisez pas la distribution système Guix, vous devriez ajouter " +"les lignes suivantes à votre @file{~/.bash_profile} (@pxref{Bash Startup " +"Files,,, bash, The GNU Bash Reference Manual}) pour que les shells créés " +"ensuite aient les bonnes définitions des variables d'environnement :" #. type: example #: doc/guix.texi:1810 @@ -5964,6 +6788,8 @@ msgid "" "GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n" "source \"$HOME/.guix-profile/etc/profile\"\n" msgstr "" +"GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n" +"source \"$HOME/.guix-profile/etc/profile\"\n" #. type: Plain text #: doc/guix.texi:1821 @@ -5972,42 +6798,56 @@ msgid "" "@dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to " "(@pxref{Invoking guix gc}). That directory is normally " "@code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where " -"@var{localstatedir} is the value passed to @code{configure} as @code{--" -"localstatedir}, and @var{user} is the user name. The @file{per-user} " -"directory is created when @command{guix-daemon} is started, and the " +"@var{localstatedir} is the value passed to @code{configure} as " +"@code{--localstatedir}, and @var{user} is the user name. The @file{per-" +"user} directory is created when @command{guix-daemon} is started, and the " "@var{user} sub-directory is created by @command{guix package}." msgstr "" +"Dans un environnement multi-utilisateur, les profils utilisateurs sont " +"stockés comme une @dfn{racine du ramasse-miettes}, vers laquelle pointe " +"@file{$HOME/.guix-profile} (@pxref{Invoking guix gc}). Ce répertoire est " +"normalement @code{@var{localstatedir}/guix/profiles/per-" +"user/@var{utilisateur}}, où @var{localstatedir} est la valeur passée à " +"@code{configure} avec @code{--localstatedir} et @var{utilisateur} le nom " +"d'utilisateur. Le répertoire @file{per-user} est créé lorsque " +"@command{guix-daemon} est démarré et sous-répertoire @var{utilisateur} est " +"créé par @command{guix package}." #. type: Plain text #: doc/guix.texi:1823 msgid "The @var{options} can be among the following:" -msgstr "" +msgstr "Les @var{options} peuvent être les suivante :" #. type: item #: doc/guix.texi:1826 #, no-wrap msgid "--install=@var{package} @dots{}" -msgstr "" +msgstr "--install=@var{paquet} @dots{}" #. type: itemx #: doc/guix.texi:1827 #, no-wrap msgid "-i @var{package} @dots{}" -msgstr "" +msgstr "-i @var{paquet} @dots{}" #. type: table #: doc/guix.texi:1829 msgid "Install the specified @var{package}s." -msgstr "" +msgstr "Installer les @var{paquet}s spécifiés." #. type: table #: doc/guix.texi:1834 msgid "" "Each @var{package} may specify either a simple package name, such as " "@code{guile}, or a package name followed by an at-sign and version number, " -"such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, " -"the newest version prefixed by @code{1.8} is selected.)" +"such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case," +" the newest version prefixed by @code{1.8} is selected.)" msgstr "" +"Chaque @var{paquet} peut spécifier soit un simple nom de paquet, comme " +"@code{guile} ou un nom de paquet suivi d'un arobase et d'un numéro de " +"version, comme @code{guile@@1.8.8} ou simplement @code{guile@@1.8} (dans ce " +"dernier cas, la version la plus récente commençant par @code{1.8} est " +"utilisée)." #. type: table #: doc/guix.texi:1842 @@ -6016,29 +6856,42 @@ msgid "" "selected. In addition, @var{package} may contain a colon, followed by the " "name of one of the outputs of the package, as in @code{gcc:doc} or " "@code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}). " -"Packages with a corresponding name (and optionally version) are searched for " -"among the GNU distribution modules (@pxref{Package Modules})." +"Packages with a corresponding name (and optionally version) are searched for" +" among the GNU distribution modules (@pxref{Package Modules})." msgstr "" +"Si aucun numéro de version n'est spécifié, la version la plus récente " +"disponible est choisie. En plus, @var{paquet} peut contenir un deux-points," +" suivi du nom d'une des sorties du paquet, comme dans @code{gcc:doc} ou " +"@code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}). Des " +"paquets avec un nom correspondant et (éventuellement une version) sont " +"recherchés dans les modules de la distribution GNU (@pxref{Package " +"Modules})." #. type: cindex #: doc/guix.texi:1843 #, no-wrap msgid "propagated inputs" -msgstr "" +msgstr "entrées propagées" #. type: table #: doc/guix.texi:1849 msgid "" -"Sometimes packages have @dfn{propagated inputs}: these are dependencies that " -"automatically get installed along with the required package (@pxref{package-" -"propagated-inputs, @code{propagated-inputs} in @code{package} objects}, for " -"information about propagated inputs in package definitions)." +"Sometimes packages have @dfn{propagated inputs}: these are dependencies that" +" automatically get installed along with the required package " +"(@pxref{package-propagated-inputs, @code{propagated-inputs} in " +"@code{package} objects}, for information about propagated inputs in package " +"definitions)." msgstr "" +"Parfois les paquets ont des @dfn{entrées propagées} : ce sont des " +"dépendances qui sont installées automatiquement avec le paquet demandé " +"(@pxref{package-propagated-inputs, @code{propagated-inputs} in " +"@code{package} objects} pour plus d'informations sur les entrées propagées " +"dans les définitions des paquets)." #. type: anchor{#1} #: doc/guix.texi:1856 msgid "package-cmd-propagated-inputs" -msgstr "" +msgstr "package-cmd-propagated-inputs" #. type: table #: doc/guix.texi:1856 @@ -6049,6 +6902,12 @@ msgid "" "profile; removing MPC also removes MPFR and GMP---unless they had also been " "explicitly installed by the user." msgstr "" +"Un exemple est la bibliothèque MPC de GNU : ses fichiers d'en-tête C se " +"réfèrent à ceux de la bibliothèque MPFR de GNU, qui se réfèrent en retour à " +"ceux de la bibliothèque GMP. Ainsi, lorsqu'on installe MPC, les " +"bibliothèques MPFR et GMP sont aussi installées dans le profil ; supprimer " +"MPC supprimera aussi MPFR et GMP — à moins qu'ils n'aient été aussi " +"installés explicitement par l'utilisateur." #. type: table #: doc/guix.texi:1861 @@ -6058,23 +6917,27 @@ msgid "" "Any missing or possibly incorrect environment variable definitions are " "reported here." msgstr "" +"D'autre part, les paquets dépendent parfois de la définition de variables " +"d'environnement pour leur chemin de recherche (voir les explications sur " +"@code{--search-paths} plus bas). Toute définition de variable " +"d'environnement manquante ou possiblement incorrecte est rapportée ici." #. type: item #: doc/guix.texi:1862 #, no-wrap msgid "--install-from-expression=@var{exp}" -msgstr "" +msgstr "--install-from-expression=@var{exp}" #. type: itemx #: doc/guix.texi:1863 #, no-wrap msgid "-e @var{exp}" -msgstr "" +msgstr "-e @var{exp}" #. type: table #: doc/guix.texi:1865 msgid "Install the package @var{exp} evaluates to." -msgstr "" +msgstr "Installer le paquet évalué par @var{exp}" #. type: table #: doc/guix.texi:1870 @@ -6084,6 +6947,10 @@ msgid "" "variants of a package, with expressions such as @code{(@@ (gnu packages " "base) guile-final)}." msgstr "" +"@var{exp} doit être une expression Scheme qui s'évalue en un objet " +"@code{}. Cette option est notamment utile pour distinguer les " +"variantes d'un paquet avec le même nom, avec des expressions comme @code{(@@" +" (gnu packages base) guile-final)}." #. type: table #: doc/guix.texi:1874 @@ -6092,23 +6959,26 @@ msgid "" "which may be insufficient when needing a specific output of a multiple-" "output package." msgstr "" +"Remarquez que cette option installe la première sortie du paquet, ce qui " +"peut être insuffisant lorsque vous avez besoin d'une sortie spécifique d'un " +"paquet à plusieurs sorties." #. type: item #: doc/guix.texi:1875 #, no-wrap msgid "--install-from-file=@var{file}" -msgstr "" +msgstr "--install-from-file=@var{fichier}" #. type: itemx #: doc/guix.texi:1876 doc/guix.texi:5699 #, no-wrap msgid "-f @var{file}" -msgstr "" +msgstr "-f @var{fichier}" #. type: table #: doc/guix.texi:1878 msgid "Install the package that the code within @var{file} evaluates to." -msgstr "" +msgstr "Installer le paquet évalué par le code dans le @var{fichier}." #. type: table #: doc/guix.texi:1881 doc/guix.texi:7283 @@ -6116,12 +6986,14 @@ msgid "" "As an example, @var{file} might contain a definition like this " "(@pxref{Defining Packages}):" msgstr "" +"Par exemple, @var{fichier} peut contenir une définition comme celle-ci " +"(@pxref{Defining Packages}) :" #. type: example #: doc/guix.texi:1884 doc/guix.texi:5709 #, no-wrap msgid "@verbatiminclude package-hello.scm\n" -msgstr "" +msgstr "@verbatiminclude package-hello.scm\n" #. type: table #: doc/guix.texi:1890 @@ -6131,49 +7003,57 @@ msgid "" "snapshots and create reproducible development environments (@pxref{Invoking " "guix environment})." msgstr "" +"Les développeurs peuvent trouver utile d'inclure un tel fichier " +"@file{guix.scm} à la racine de l'arborescence des sources de leur projet qui" +" pourrait être utilisé pour tester des versions de développement et créer " +"des environnements de développement reproductibles (@pxref{Invoking guix " +"environment})." #. type: item #: doc/guix.texi:1891 #, no-wrap msgid "--remove=@var{package} @dots{}" -msgstr "" +msgstr "--remove=@var{paquet} @dots{}" #. type: itemx #: doc/guix.texi:1892 #, no-wrap msgid "-r @var{package} @dots{}" -msgstr "" +msgstr "-r @var{paquet} @dots{}" #. type: table #: doc/guix.texi:1894 msgid "Remove the specified @var{package}s." -msgstr "" +msgstr "Supprimer les @var{paquet}s spécifiés." #. type: table #: doc/guix.texi:1899 msgid "" -"As for @code{--install}, each @var{package} may specify a version number and/" -"or output name in addition to the package name. For instance, @code{-r " +"As for @code{--install}, each @var{package} may specify a version number " +"and/or output name in addition to the package name. For instance, @code{-r " "glibc:debug} would remove the @code{debug} output of @code{glibc}." msgstr "" +"Comme pour @code{--install}, chaque @var{paquet} peut spécifier un numéro de" +" version ou un nom de sortie en plus du nom du paquet. Par exemple, " +"@code{-r glibc:debug} supprimerait la sortie @code{debug} de @code{glibc}." #. type: item #: doc/guix.texi:1900 #, no-wrap msgid "--upgrade[=@var{regexp} @dots{}]" -msgstr "" +msgstr "--upgrade[=@var{regexp} @dots{}]" #. type: itemx #: doc/guix.texi:1901 #, no-wrap msgid "-u [@var{regexp} @dots{}]" -msgstr "" +msgstr "-u [@var{regexp} @dots{}]" #. type: cindex #: doc/guix.texi:1902 #, no-wrap msgid "upgrading packages" -msgstr "" +msgstr "mettre à jour des paquets" #. type: table #: doc/guix.texi:1906 @@ -6182,6 +7062,10 @@ msgid "" "specified, upgrade only installed packages whose name matches a " "@var{regexp}. Also see the @code{--do-not-upgrade} option below." msgstr "" +"Mettre à jour tous les paquets installés. Si une @var{regexp} ou plus est " +"spécifiée, la mise à jour n'installera que les paquets dont le nom " +"correspond à @var{regexp}. Voyez aussi l'option @code{--do-not-upgrade} en " +"dessous." #. type: table #: doc/guix.texi:1911 @@ -6190,58 +7074,66 @@ msgid "" "the distribution currently installed. To update your distribution, you " "should regularly run @command{guix pull} (@pxref{Invoking guix pull})." msgstr "" +"Remarquez que cela met à jour vers la dernière version des paquets trouvée " +"dans la distribution actuellement installée. Pour mettre à jour votre " +"distribution, vous devriez lancer régulièrement @command{guix pull} " +"(@pxref{Invoking guix pull})." #. type: item #: doc/guix.texi:1912 #, no-wrap msgid "--do-not-upgrade[=@var{regexp} @dots{}]" -msgstr "" +msgstr "--do-not-upgrade[=@var{regexp} @dots{}]" #. type: table #: doc/guix.texi:1917 msgid "" "When used together with the @code{--upgrade} option, do @emph{not} upgrade " -"any packages whose name matches a @var{regexp}. For example, to upgrade all " -"packages in the current profile except those containing the substring " +"any packages whose name matches a @var{regexp}. For example, to upgrade all" +" packages in the current profile except those containing the substring " "``emacs'':" msgstr "" +"Lorsqu'elle est utilisée avec l'option @code{--upgrade}, ne @emph{pas} " +"mettre à jour les paquets dont le nom correspond à @var{regexp}. Par " +"exemple, pour mettre à jour tous les paquets du profil actuel à l'exception " +"de ceux qui contiennent la chaîne « emacs » :" #. type: example #: doc/guix.texi:1920 #, no-wrap msgid "$ guix package --upgrade . --do-not-upgrade emacs\n" -msgstr "" +msgstr "$ guix package --upgrade . --do-not-upgrade emacs\n" #. type: anchor{#1} #: doc/guix.texi:1922 #, no-wrap msgid "profile-manifest" -msgstr "" +msgstr "profile-manifest" #. type: item #: doc/guix.texi:1922 doc/guix.texi:2877 doc/guix.texi:6577 doc/guix.texi:7288 #: doc/guix.texi:7972 #, no-wrap msgid "--manifest=@var{file}" -msgstr "" +msgstr "--manifest=@var{fichier}" #. type: itemx #: doc/guix.texi:1923 doc/guix.texi:2878 doc/guix.texi:6578 doc/guix.texi:7289 #, no-wrap msgid "-m @var{file}" -msgstr "" +msgstr "-m @var{fichier}" #. type: cindex #: doc/guix.texi:1924 #, no-wrap msgid "profile declaration" -msgstr "" +msgstr "déclaration de profil" #. type: cindex #: doc/guix.texi:1925 #, no-wrap msgid "profile manifest" -msgstr "" +msgstr "manifest de profil" #. type: table #: doc/guix.texi:1928 @@ -6249,16 +7141,21 @@ msgid "" "Create a new generation of the profile from the manifest object returned by " "the Scheme code in @var{file}." msgstr "" +"Créer une nouvelle génération du profil depuis l'objet manifeste renvoyé par" +" le code Scheme dans @var{fichier}." #. type: table #: doc/guix.texi:1934 msgid "" "This allows you to @emph{declare} the profile's contents rather than " -"constructing it through a sequence of @code{--install} and similar " -"commands. The advantage is that @var{file} can be put under version " -"control, copied to different machines to reproduce the same profile, and so " -"on." +"constructing it through a sequence of @code{--install} and similar commands." +" The advantage is that @var{file} can be put under version control, copied " +"to different machines to reproduce the same profile, and so on." msgstr "" +"Cela vous permet de @emph{déclarer} le contenu du profil plutôt que de le " +"construire avec une série de @code{--install} et de commandes similaires. " +"L'avantage étant que le @var{fichier} peut être placé sous contrôle de " +"version, copié vers d'autres machines pour reproduire le même profil, etc." #. type: table #: doc/guix.texi:1938 @@ -6266,12 +7163,14 @@ msgid "" "@var{file} must return a @dfn{manifest} object, which is roughly a list of " "packages:" msgstr "" +"@var{fichier} doit retourner un objet @dfn{manifest} qui est en gros une " +"liste de paquets :" #. type: findex #: doc/guix.texi:1939 #, no-wrap msgid "packages->manifest" -msgstr "" +msgstr "packages->manifest" #. type: example #: doc/guix.texi:1942 @@ -6280,6 +7179,8 @@ msgid "" "(use-package-modules guile emacs)\n" "\n" msgstr "" +"(use-package-modules guile emacs)\n" +"\n" #. type: example #: doc/guix.texi:1948 @@ -6291,12 +7192,17 @@ msgid "" " ;; Use a specific package output.\n" " (list guile-2.0 \"debug\")))\n" msgstr "" +"(packages->manifest\n" +" (list emacs\n" +" guile-2.0\n" +" ;; Utiliser une sortie spécifique d'un paquet.\n" +" (list guile-2.0 \"debug\")))\n" #. type: findex #: doc/guix.texi:1950 #, no-wrap msgid "specifications->manifest" -msgstr "" +msgstr "specifications->manifest" #. type: table #: doc/guix.texi:1957 @@ -6307,6 +7213,12 @@ msgid "" "specifications and let @code{specifications->manifest} look up the " "corresponding package objects, like this:" msgstr "" +"Dans cet exemple on doit savoir quels modules définissent les variables " +"@code{emacs} et @code{guile-2.0} pour fournir la bonne ligne @code{use-" +"package-modules} ce qui peut être embêtant. On peut à la place fournir des " +"spécifications de paquets normales et laisser " +"@code{specifications->manifest} rechercher les objets de paquets " +"correspondants, comme ceci :" #. type: example #: doc/guix.texi:1961 @@ -6315,30 +7227,32 @@ msgid "" "(specifications->manifest\n" " '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n" msgstr "" +"(specifications->manifest\n" +" '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n" #. type: item #: doc/guix.texi:1963 #, no-wrap msgid "--roll-back" -msgstr "" +msgstr "--roll-back" #. type: cindex #: doc/guix.texi:1964 doc/guix.texi:20427 #, no-wrap msgid "rolling back" -msgstr "" +msgstr "revenir en arrière" #. type: cindex #: doc/guix.texi:1965 #, no-wrap msgid "undoing transactions" -msgstr "" +msgstr "défaire des transactions" #. type: cindex #: doc/guix.texi:1966 #, no-wrap msgid "transactions, undoing" -msgstr "" +msgstr "transactions, défaire" #. type: table #: doc/guix.texi:1969 @@ -6346,21 +7260,28 @@ msgid "" "Roll back to the previous @dfn{generation} of the profile---i.e., undo the " "last transaction." msgstr "" +"Revenir à la @dfn{génération} précédente du profil c.-à-d.@: défaire la " +"dernière transaction." #. type: table #: doc/guix.texi:1972 msgid "" -"When combined with options such as @code{--install}, roll back occurs before " -"any other actions." +"When combined with options such as @code{--install}, roll back occurs before" +" any other actions." msgstr "" +"Lorsqu'elle est combinée avec des options comme @code{--install}, cette " +"option revient en arrière avant toute autre action." #. type: table #: doc/guix.texi:1976 msgid "" -"When rolling back from the first generation that actually contains installed " -"packages, the profile is made to point to the @dfn{zeroth generation}, which " -"contains no files apart from its own metadata." +"When rolling back from the first generation that actually contains installed" +" packages, the profile is made to point to the @dfn{zeroth generation}, " +"which contains no files apart from its own metadata." msgstr "" +"Lorsque vous revenez de la première génération qui contient des fichiers, le" +" profil pointera vers la @dfn{zéroième génération} qui ne contient aucun " +"fichier en dehors de ses propres métadonnées." #. type: table #: doc/guix.texi:1980 @@ -6369,38 +7290,46 @@ msgid "" "overwrites previous future generations. Thus, the history of the " "generations in a profile is always linear." msgstr "" +"Après être revenu en arrière, l'installation, la suppression et la mise à " +"jour de paquets réécrit les futures générations précédentes. Ainsi, " +"l'historique des générations dans un profil est toujours linéaire." #. type: item #: doc/guix.texi:1981 #, no-wrap msgid "--switch-generation=@var{pattern}" -msgstr "" +msgstr "--switch-generation=@var{motif}" #. type: itemx #: doc/guix.texi:1982 #, no-wrap msgid "-S @var{pattern}" -msgstr "" +msgstr "-S @var{motif}" #. type: cindex #: doc/guix.texi:1983 doc/guix.texi:2181 doc/guix.texi:20385 #, no-wrap msgid "generations" -msgstr "" +msgstr "générations" #. type: table #: doc/guix.texi:1985 msgid "Switch to a particular generation defined by @var{pattern}." -msgstr "" +msgstr "Basculer vers une génération particulière définie par le @var{motif}." #. type: table #: doc/guix.texi:1991 msgid "" -"@var{pattern} may be either a generation number or a number prefixed with ``" -"+'' or ``-''. The latter means: move forward/backward by a specified number " -"of generations. For example, if you want to return to the latest generation " -"after @code{--roll-back}, use @code{--switch-generation=+1}." +"@var{pattern} may be either a generation number or a number prefixed with " +"``+'' or ``-''. The latter means: move forward/backward by a specified " +"number of generations. For example, if you want to return to the latest " +"generation after @code{--roll-back}, use @code{--switch-generation=+1}." msgstr "" +"Le @var{motif} peut être soit un numéro de génération soit un nombre précédé" +" de « + » ou « - ». Ce dernier signifie : se déplacer en avant ou en " +"arrière d'un nombre donné de générations. Par exemple, si vous voulez " +"retourner à la dernière génération après @code{--roll-back}, utilisez " +"@code{--switch-generation=+1}." #. type: table #: doc/guix.texi:1996 @@ -6410,12 +7339,16 @@ msgid "" "a specified generation does not exist, the current generation will not be " "changed." msgstr "" +"La différence entre @code{--roll-back} et @code{--switch-generation=-1} est " +"que @code{--switch-generation} ne vous amènera pas à la zéroième génération," +" donc si la génération demandée n'existe pas la génération actuelle ne " +"changera pas." #. type: item #: doc/guix.texi:1997 #, no-wrap msgid "--search-paths[=@var{kind}]" -msgstr "" +msgstr "--search-paths[=@var{genre}]" #. type: table #: doc/guix.texi:2003 @@ -6425,6 +7358,10 @@ msgid "" "are used to specify @dfn{search paths} for files used by some of the " "installed packages." msgstr "" +"Rapporter les définitions des variables d'environnement dans la syntaxe Bash" +" qui peuvent être requises pour utiliser l'ensemble des paquets installés. " +"Ces variables d'environnement sont utilisées pour spécifier les @dfn{chemins" +" de recherche} de fichiers utilisés par les paquets installés." #. type: table #: doc/guix.texi:2011 @@ -6436,18 +7373,27 @@ msgid "" "profile, then @code{--search-paths} will suggest setting these variables to " "@code{@var{profile}/include} and @code{@var{profile}/lib}, respectively." msgstr "" +"Par exemple, GCC a besoin des variables d'environnement @code{CPATH} et " +"@code{LIBRARY_PATH} pour trouver les en-têtes et les bibliothèques dans le " +"profil de l'utilisateur (@pxref{Environment Variables,,, gcc, Using the GNU " +"Compiler Collection (GCC)}). Si GCC et, disons, la bibliothèque C sont " +"installés dans le profil, alors @code{--search-paths} suggérera " +"d'initialiser ces variables à @code{@var{profil}/include} et " +"@code{@var{profil}/lib}, respectivement." #. type: table #: doc/guix.texi:2014 msgid "" "The typical use case is to define these environment variables in the shell:" msgstr "" +"Le cas d'utilisation typique est de définir ces variables d'environnement " +"dans le shell :" #. type: example #: doc/guix.texi:2017 #, no-wrap msgid "$ eval `guix package --search-paths`\n" -msgstr "" +msgstr "$ eval `guix package --search-paths`\n" #. type: table #: doc/guix.texi:2023 @@ -6457,6 +7403,11 @@ msgid "" "exact settings, or prefixes or suffixes of the current value of these " "variables. When omitted, @var{kind} defaults to @code{exact}." msgstr "" +"@var{genre} peut être l'une des valeurs @code{exact}, @code{prefix} ou " +"@code{suffix}, ce qui signifie que les définitions des variables " +"d'environnement retournées seront soit les paramètres exactes, ou placés " +"avant ou après la valeur actuelle de ces paramètres. Lorsqu'il est omis, " +"@var{genre} a pour valeur par défaut @code{exact}." #. type: table #: doc/guix.texi:2026 @@ -6464,6 +7415,8 @@ msgid "" "This option can also be used to compute the @emph{combined} search paths of " "several profiles. Consider this example:" msgstr "" +"Cette option peut aussi être utilisé pour calculer les chemins de recherche " +"@emph{combinés} de plusieurs profils. Regardez cet exemple :" #. type: example #: doc/guix.texi:2031 @@ -6473,6 +7426,9 @@ msgid "" "$ guix package -p bar -i guile-json\n" "$ guix package -p foo -p bar --search-paths\n" msgstr "" +"$ guix package -p foo -i guile\n" +"$ guix package -p bar -i guile-json\n" +"$ guix package -p foo -p bar --search-paths\n" #. type: table #: doc/guix.texi:2036 @@ -6481,52 +7437,58 @@ msgid "" "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." #. type: item #: doc/guix.texi:2038 #, no-wrap msgid "--profile=@var{profile}" -msgstr "" +msgstr "--profile=@var{profil}" #. type: itemx #: doc/guix.texi:2039 #, no-wrap msgid "-p @var{profile}" -msgstr "" +msgstr "-p @var{profil}" #. type: table #: doc/guix.texi:2041 msgid "Use @var{profile} instead of the user's default profile." msgstr "" +"Utiliser le @var{profil} à la place du profil par défaut de l'utilisateur." #. type: cindex #: doc/guix.texi:2042 #, no-wrap msgid "collisions, in a profile" -msgstr "" +msgstr "collisions, dans un profil" #. type: cindex #: doc/guix.texi:2043 #, no-wrap msgid "colliding packages in profiles" -msgstr "" +msgstr "faire des collisions de paquets dans des profils" #. type: cindex #: doc/guix.texi:2044 #, no-wrap msgid "profile collisions" -msgstr "" +msgstr "profil, collisions" #. type: item #: doc/guix.texi:2045 #, no-wrap msgid "--allow-collisions" -msgstr "" +msgstr "--allow-collisions" #. type: table #: doc/guix.texi:2047 msgid "Allow colliding packages in the new profile. Use at your own risk!" msgstr "" +"Permettre des collisions de paquets dans le nouveau profil. À utiliser à " +"vos risques et périls !" #. type: table #: doc/guix.texi:2051 @@ -6535,12 +7497,15 @@ msgid "" "the profile. Collisions happen when two or more different versions or " "variants of a given package end up in the profile." msgstr "" +"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." #. type: item #: doc/guix.texi:2052 doc/guix.texi:2754 doc/guix.texi:7777 #, no-wrap msgid "--verbose" -msgstr "" +msgstr "--verbose" #. type: table #: doc/guix.texi:2055 @@ -6548,19 +7513,23 @@ msgid "" "Produce verbose output. In particular, emit the build log of the " "environment on the standard error port." msgstr "" +"Produire une sortie verbeuse. En particulier, fournir les journaux de " +"construction de l'environnement sur le port d'erreur standard." #. type: item #: doc/guix.texi:2056 doc/guix.texi:2773 doc/guix.texi:2931 #, no-wrap msgid "--bootstrap" -msgstr "" +msgstr "--bootstrap" #. type: table #: doc/guix.texi:2059 msgid "" -"Use the bootstrap Guile to build the profile. This option is only useful to " -"distribution developers." +"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." #. type: Plain text #: doc/guix.texi:2065 @@ -6569,24 +7538,27 @@ msgid "" "options to query the current state of a profile, or the availability of " "packages:" msgstr "" +"En plus de ces actions, @command{guix package} supporte les options " +"suivantes pour demander l'état actuel d'un profil ou la disponibilité des " +"paquets :" #. type: item #: doc/guix.texi:2068 #, no-wrap msgid "--search=@var{regexp}" -msgstr "" +msgstr "--search=@var{regexp}" #. type: itemx #: doc/guix.texi:2069 #, no-wrap msgid "-s @var{regexp}" -msgstr "" +msgstr "-s @var{regexp}" #. type: cindex #: doc/guix.texi:2070 #, no-wrap msgid "searching for packages" -msgstr "" +msgstr "chercher des paquets" #. type: table #: doc/guix.texi:2075 @@ -6596,6 +7568,10 @@ msgid "" "packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, " "recutils, GNU recutils manual})." msgstr "" +"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})." #. type: table #: doc/guix.texi:2078 @@ -6603,6 +7579,8 @@ msgid "" "This allows specific fields to be extracted using the @command{recsel} " "command, for instance:" msgstr "" +"Cela permet à des champs spécifiques d'être extraits avec la commande " +"@command{recsel}, par exemple :" #. type: example #: doc/guix.texi:2084 @@ -6614,6 +7592,11 @@ msgid "" "relevance: 6\n" "\n" msgstr "" +"$ guix package -s malloc | recsel -p name,version,relevance\n" +"name: jemalloc\n" +"version: 4.5.0\n" +"relevance: 6\n" +"\n" #. type: example #: doc/guix.texi:2088 @@ -6624,6 +7607,10 @@ msgid "" "relevance: 1\n" "\n" msgstr "" +"name: glibc\n" +"version: 2.25\n" +"relevance: 1\n" +"\n" #. type: example #: doc/guix.texi:2092 @@ -6633,13 +7620,18 @@ msgid "" "version: 7.6.0\n" "relevance: 1\n" msgstr "" +"name: libgc\n" +"version: 7.6.0\n" +"relevance: 1\n" #. type: table #: doc/guix.texi:2096 msgid "" -"Similarly, to show the name of all the packages available under the terms of " -"the GNU@tie{}LGPL version 3:" +"Similarly, to show the name of all the packages available under the terms of" +" the GNU@tie{}LGPL version 3:" msgstr "" +"De manière similaire, pour montrer le nom de tous les paquets disponibles " +"sous license GNU@tie{}LGPL version 3 :" #. type: example #: doc/guix.texi:2100 @@ -6649,6 +7641,9 @@ msgid "" "name: elfutils\n" "\n" msgstr "" +"$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n" +"name: elfutils\n" +"\n" #. type: example #: doc/guix.texi:2103 @@ -6657,13 +7652,18 @@ msgid "" "name: gmp\n" "@dots{}\n" msgstr "" +"name: gmp\n" +"@dots{}\n" #. type: table #: doc/guix.texi:2108 msgid "" -"It is also possible to refine search results using several @code{-s} flags. " -"For example, the following command returns a list of board games:" +"It is also possible to refine search results using several @code{-s} flags." +" For example, the following command returns a list of board games:" msgstr "" +"Il est aussi possible de raffiner les résultats de la recherche avec " +"plusieurs options @code{-s}. Par exemple, la commande suivante renvoie la " +"liste des jeux de plateau :" #. type: example #: doc/guix.texi:2113 @@ -6673,6 +7673,9 @@ msgid "" "name: gnubg\n" "@dots{}\n" msgstr "" +"$ guix package -s '\\' -s game | recsel -p name\n" +"name: gnubg\n" +"@dots{}\n" #. type: table #: doc/guix.texi:2119 @@ -6681,6 +7684,10 @@ msgid "" "deal with printed circuit boards; removing the angle brackets around " "@code{board} would further add packages that have to do with keyboards." msgstr "" +"Si on avait oublié @code{-s game}, on aurait aussi eu les paquets logiciels " +"qui s'occupent de circuits imprimés (en anglais : circuit board) ; supprimer" +" les chevrons autour de @code{board} aurait aussi ajouté les paquets qui " +"parlent de clavier (en anglais : key@emph{board})." #. type: table #: doc/guix.texi:2123 @@ -6689,6 +7696,9 @@ msgid "" "cryptographic libraries, filters out Haskell, Perl, Python, and Ruby " "libraries, and prints the name and synopsis of the matching packages:" msgstr "" +"Et maintenant un exemple plus élaboré. La commande suivante recherche les " +"bibliothèques cryptographiques, retire les bibliothèques Haskell, Perl, " +"Python et Ruby et affiche le nom et le synopsis des paquets correspondants :" #. type: example #: doc/guix.texi:2127 @@ -6697,6 +7707,8 @@ msgid "" "$ guix package -s crypto -s library | \\\n" " recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n" msgstr "" +"$ guix package -s crypto -s library | \\\n" +" recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n" #. type: table #: doc/guix.texi:2132 @@ -6704,20 +7716,25 @@ msgid "" "@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more " "information on @dfn{selection expressions} for @code{recsel -e}." msgstr "" +"@xref{Selection Expressions,,, recutils, GNU recutils manual} pour plus " +"d'information sur les @dfn{expressions de sélection} pour @code{recsel -e}." #. type: item #: doc/guix.texi:2133 #, no-wrap msgid "--show=@var{package}" -msgstr "" +msgstr "--show=@var{paquet}" #. type: table #: doc/guix.texi:2137 msgid "" -"Show details about @var{package}, taken from the list of available packages, " -"in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, " +"Show details about @var{package}, taken from the list of available packages," +" in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, " "GNU recutils manual})." msgstr "" +"Afficher les détails du @var{paquet} dans la liste des paquets disponibles, " +"au format @code{recutils} (@pxref{Top, GNU recutils databases,, recutils, " +"GNU recutils manual})." #. type: example #: doc/guix.texi:2142 @@ -6728,6 +7745,10 @@ msgid "" "version: 2.7.6\n" "\n" msgstr "" +"$ guix package --show=python | recsel -p name,version\n" +"name: python\n" +"version: 2.7.6\n" +"\n" #. type: example #: doc/guix.texi:2145 @@ -6736,6 +7757,8 @@ msgid "" "name: python\n" "version: 3.3.5\n" msgstr "" +"name: python\n" +"version: 3.3.5\n" #. type: table #: doc/guix.texi:2149 @@ -6743,6 +7766,8 @@ msgid "" "You may also specify the full name of a package to only get details about a " "specific version of it:" msgstr "" +"Vous pouvez aussi spécifier le nom complet d'un paquet pour n'avoir que les " +"détails concernant une version spécifique :" #. type: example #: doc/guix.texi:2153 @@ -6752,18 +7777,21 @@ msgid "" "name: python\n" "version: 3.4.3\n" msgstr "" +"$ guix package --show=python@@3.4 | recsel -p name,version\n" +"name: python\n" +"version: 3.4.3\n" #. type: item #: doc/guix.texi:2157 #, no-wrap msgid "--list-installed[=@var{regexp}]" -msgstr "" +msgstr "--list-installed[=@var{regexp}]" #. type: itemx #: doc/guix.texi:2158 #, no-wrap msgid "-I [@var{regexp}]" -msgstr "" +msgstr "-I [@var{regexp}]" #. type: table #: doc/guix.texi:2162 @@ -6786,13 +7814,13 @@ msgstr "" #: doc/guix.texi:2169 #, no-wrap msgid "--list-available[=@var{regexp}]" -msgstr "" +msgstr "--list-available[=@var{regexp}]" #. type: itemx #: doc/guix.texi:2170 #, no-wrap msgid "-A [@var{regexp}]" -msgstr "" +msgstr "-A [@var{regexp}]" #. type: table #: doc/guix.texi:2174 @@ -6801,15 +7829,15 @@ msgid "" "(@pxref{GNU Distribution}). When @var{regexp} is specified, list only " "installed packages whose name matches @var{regexp}." msgstr "" -"Liste les paquets actuellement disponibles dans la distribution pour ce " -"système (@pxref{Distribution GNU}). Lorsque @var{regexp} est spécifié, liste " -"uniquement les paquets dont le nom correspond à @var{regexp}." +"Lister les paquets actuellement disponibles dans la distribution pour ce " +"système (@pxref{Distribution GNU}). Lorsque @var{regexp} est spécifié, " +"liste uniquement les paquets dont le nom correspond à @var{regexp}." #. type: table #: doc/guix.texi:2178 msgid "" -"For each package, print the following items separated by tabs: its name, its " -"version string, the parts of the package (@pxref{Packages with Multiple " +"For each package, print the following items separated by tabs: its name, its" +" version string, the parts of the package (@pxref{Packages with Multiple " "Outputs}), and the source location of its definition." msgstr "" @@ -6817,13 +7845,13 @@ msgstr "" #: doc/guix.texi:2179 #, no-wrap msgid "--list-generations[=@var{pattern}]" -msgstr "" +msgstr "--list-generations[=@var{motif}]" #. type: itemx #: doc/guix.texi:2180 #, no-wrap msgid "-l [@var{pattern}]" -msgstr "" +msgstr "-l [@var{motif}]" #. type: table #: doc/guix.texi:2186 @@ -6832,15 +7860,23 @@ msgid "" "generation, show the installed packages, with the most recently installed " "packages shown last. Note that the zeroth generation is never shown." msgstr "" +"Renvoyer la liste des générations avec leur date de création ; pour chaque " +"génération, montre les paquets installés avec les paquets installés les plus" +" récemment en dernier. Remarquez que la zéroième génération n'est jamais " +"montrée." #. type: table #: doc/guix.texi:2191 msgid "" "For each installed package, print the following items, separated by tabs: " "the name of a package, its version string, the part of the package that is " -"installed (@pxref{Packages with Multiple Outputs}), and the location of this " -"package in the store." +"installed (@pxref{Packages with Multiple Outputs}), and the location of this" +" package in the store." msgstr "" +"Pour chaque paquet installé, afficher les éléments suivants, séparés par des" +" tabulations : le nom du paquet, sa version, la partie du paquet qui a été " +"installée (@pxref{Packages with Multiple Outputs}), et l'emplacement du " +"paquet dans le dépôt." #. type: table #: doc/guix.texi:2194 @@ -6848,12 +7884,16 @@ msgid "" "When @var{pattern} is used, the command returns only matching generations. " "Valid patterns include:" msgstr "" +"Lorsque @var{motif} est utilisé, la commande ne renvoie que les générations " +"correspondantes. Les motifs valides sont :" #. type: item #: doc/guix.texi:2196 #, no-wrap msgid "@emph{Integers and comma-separated integers}. Both patterns denote" msgstr "" +"@emph{Des entiers et des entiers séparés par des virgules}. Les deux motifs" +" correspondent" #. type: itemize #: doc/guix.texi:2199 @@ -6861,6 +7901,8 @@ msgid "" "generation numbers. For instance, @code{--list-generations=1} returns the " "first one." msgstr "" +"à des numéros de version. Par exemple, @code{--list-generations=1} renvoie " +"la première." #. type: itemize #: doc/guix.texi:2202 @@ -6868,12 +7910,14 @@ msgid "" "And @code{--list-generations=1,8,2} outputs three generations in the " "specified order. Neither spaces nor trailing commas are allowed." msgstr "" +"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." #. type: item #: doc/guix.texi:2203 #, no-wrap msgid "@emph{Ranges}. @code{--list-generations=2..9} prints the" -msgstr "" +msgstr "@emph{Des interval}. @code{--list-generations=2..9} affiche les" #. type: itemize #: doc/guix.texi:2206 @@ -6881,6 +7925,8 @@ 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." #. type: itemize #: doc/guix.texi:2210 @@ -6888,48 +7934,65 @@ msgid "" "It is also possible to omit the endpoint. For example, @code{--list-" "generations=2..}, returns all generations starting from the second one." msgstr "" +"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 " +"deuxième." #. type: item #: doc/guix.texi:2211 #, no-wrap -msgid "@emph{Durations}. You can also get the last @emph{N}@tie{}days, weeks," +msgid "" +"@emph{Durations}. You can also get the last @emph{N}@tie{}days, weeks," msgstr "" +"@emph{Des durées}. Vous pouvez aussi récupérer les derniers " +"@emph{N}@tie{}jours, semaines," #. type: itemize #: doc/guix.texi:2215 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." +"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." #. type: item #: doc/guix.texi:2217 #, no-wrap msgid "--delete-generations[=@var{pattern}]" -msgstr "" +msgstr "--delete-generations[=@var{motif}]" #. type: itemx #: doc/guix.texi:2218 #, no-wrap msgid "-d [@var{pattern}]" -msgstr "" +msgstr "-d [@var{motif}]" #. type: table #: doc/guix.texi:2221 msgid "" -"When @var{pattern} is omitted, delete all generations except the current one." +"When @var{pattern} is omitted, delete all generations except the current " +"one." msgstr "" +"Lorsque @var{motif} est omis, supprimer toutes les générations en dehors de " +"l'actuelle." #. type: table #: doc/guix.texi:2227 msgid "" -"This command accepts the same patterns as @option{--list-generations}. When " -"@var{pattern} is specified, delete the matching generations. When " +"This command accepts the same patterns as @option{--list-generations}. When" +" @var{pattern} is specified, delete the matching generations. When " "@var{pattern} specifies a duration, generations @emph{older} than the " "specified duration match. For instance, @code{--delete-generations=1m} " "deletes generations that are more than one month old." msgstr "" +"Cette commande accepte les même motifs que @option{--list-generations}. " +"Lorsque @var{motif} est spécifié, supprimer les générations correspondante." +" Lorsque @var{motif} spécifie une durée, les générations @emph{plus " +"vieilles} que la durée spécifiée correspondent. Par exemple @code{--delete-" +"generations=1m} supprime les générations vieilles de plus d'un mois." #. type: table #: doc/guix.texi:2230 @@ -6937,31 +8000,44 @@ msgid "" "If the current generation matches, it is @emph{not} deleted. Also, the " "zeroth generation is never deleted." msgstr "" +"Si la génération actuelle correspond, elle n'est @emph{pas} supprimée. La " +"zéroième génération n'est elle non plus jamais supprimée." #. type: table #: doc/guix.texi:2233 msgid "" -"Note that deleting generations prevents rolling back to them. Consequently, " -"this command must be used with care." +"Note that deleting generations prevents rolling back to them. Consequently," +" this command must be used with care." msgstr "" +"Remarquez que supprimer des générations empêche de revenir en arrière vers " +"elles. Ainsi, cette commande doit être utilisée avec précaution." #. type: Plain text #: doc/guix.texi:2244 msgid "" -"Finally, since @command{guix package} may actually start build processes, it " -"supports all the common build options (@pxref{Common Build Options}). It " -"also supports package transformation options, such as @option{--with-source} " -"(@pxref{Package Transformation Options}). However, note that package " +"Finally, since @command{guix package} may actually start build processes, it" +" supports all the common build options (@pxref{Common Build Options}). It " +"also supports package transformation options, such as @option{--with-source}" +" (@pxref{Package Transformation Options}). However, note that package " "transformations are lost when upgrading; to preserve transformations across " "upgrades, you should define your own package variant in a Guile module and " "add it to @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})." msgstr "" +"Enfin, comme @command{guix package} peut démarrer des processus de " +"construction, elle supporte les options de construction communes " +"(@pxref{Common Build Options}). Elle supporte aussi les options de " +"transformation de paquets comme @option{--with-source} (@pxref{Package " +"Transformation Options}). Cependant, remarquez que les transformations de " +"paquets sont perdues à la mise à jour ; pour les préserver à travers les " +"mises à jours, vous devriez définir vos propres variantes des paquets dans " +"une module Guile et l'ajouter à @code{GUIX_PACKAGE_PATH} (@pxref{Defining " +"Packages})." #. type: cindex #: doc/guix.texi:2249 #, no-wrap msgid "pre-built binaries" -msgstr "" +msgstr "binaires pré-construits" #. type: Plain text #: doc/guix.texi:2255 @@ -6972,6 +8048,13 @@ msgid "" "substitutes for local build results. In many cases, downloading a " "substitute is much faster than building things locally." msgstr "" +"Guix gère le déploiement depuis des binaires ou des sources de manière " +"transparente ce qui signifie qu'il peut aussi bien construire localement que" +" télécharger des éléments pré-construits depuis un serveur ou les deux. " +"Nous appelons ces éléments pré-construits des @dfn{substituts} — ils se " +"substituent aux résultats des constructions locales. Dans la plupart des " +"cas, télécharger un substitut est bien plus rapide que de construire les " +"choses localement." #. type: Plain text #: doc/guix.texi:2260 @@ -6981,31 +8064,44 @@ msgid "" "package binaries, but source tarballs, for instance, which also result from " "derivation builds, can be available as substitutes." msgstr "" +"Les substituts peuvent être tout ce qui résulte d'une construction de " +"dérivation (@pxref{Derivations}). Bien sûr dans le cas général, il s'agit " +"de paquets binaires pré-construits, mais les archives des sources par " +"exemple résultent aussi de la construction d'une dérivation qui peut aussi " +"être disponible en tant que substitut." #. type: cindex #: doc/guix.texi:2273 #, no-wrap msgid "hydra" -msgstr "" +msgstr "hydra" #. type: cindex #: doc/guix.texi:2274 #, no-wrap msgid "build farm" -msgstr "" +msgstr "ferme de construction" #. type: Plain text #: doc/guix.texi:2284 msgid "" "The @code{mirror.hydra.gnu.org} 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 " +"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})." +"@command{guix package} (@pxref{client-substitute-urls,, client " +"@option{--substitute-urls} option})." msgstr "" +"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} (@pxref{client-substitute-" +"urls,, client @option{--substitute-urls} option})." #. type: Plain text #: doc/guix.texi:2290 @@ -7016,6 +8112,11 @@ msgid "" "gathered to determine, for instance, whether your system has unpatched " "security vulnerabilities." msgstr "" +"Les URL des substituts peuvent être soit en HTTP soit en HTTPS. Le HTTPS " +"est recommandé parce que les communications sont chiffrées ; à l'inverse " +"HTTP rend les communications visibles pour un espion qui peut utiliser les " +"informations accumulées sur vous pour déterminer par exemple si votre " +"système a des vulnérabilités de sécurités non corrigées." #. type: Plain text #: doc/guix.texi:2299 @@ -7025,27 +8126,36 @@ msgid "" "disabled by default when using Guix on a foreign distribution, unless you " "have explicitly enabled them via one of the recommended installation steps " "(@pxref{Installation}). The following paragraphs describe how to enable or " -"disable substitutes for the official build farm; the same procedure can also " -"be used to enable substitutes for any other substitute server." +"disable substitutes for the official build farm; the same procedure can also" +" be used to enable substitutes for any other substitute server." msgstr "" +"Les substituts de la ferme de construction officielle sont activés par " +"défaut dans la distribution système Guix (@pxref{GNU Distribution}). " +"Cependant, ils sont désactivés par défaut lorsque vous utilisez Guix sur une" +" distribution externe, à moins que vous ne les ayez explicitement activés " +"via l'une des étapes d'installation recommandées (@pxref{Installation}). " +"Les paragraphes suivants décrivent comment activer ou désactiver les " +"substituts de la ferme de construction ; la même procédure peut être " +"utilisée pour activer les substituts de n'importe quel autre serveur de " +"substituts." #. type: cindex #: doc/guix.texi:2303 #, no-wrap msgid "security" -msgstr "" +msgstr "sécurité" #. type: cindex #: doc/guix.texi:2305 #, no-wrap msgid "access control list (ACL), for substitutes" -msgstr "" +msgstr "liste de contrôle d'accès (ACL), pour les substituts" #. type: cindex #: doc/guix.texi:2306 #, no-wrap msgid "ACL (access control list), for substitutes" -msgstr "" +msgstr "ACL (liste de contrôle d'accès), pour les substituts" #. type: Plain text #: doc/guix.texi:2313 @@ -7053,9 +8163,15 @@ 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." +"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." #. type: Plain text #: doc/guix.texi:2320 @@ -7066,20 +8182,30 @@ msgid "" "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:" msgstr "" +"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 :" #. type: example #: doc/guix.texi:2323 #, no-wrap msgid "# guix archive --authorize < @var{prefix}/share/guix/hydra.gnu.org.pub\n" msgstr "" +"# guix archive --authorize < @var{préfixe}/share/guix/hydra.gnu.org.pub\n" #. type: quotation #: doc/guix.texi:2329 msgid "" -"Similarly, the @file{berlin.guixsd.org.pub} file contains the public key for " -"the project's new build farm, reachable at @indicateurl{https://berlin." -"guixsd.org}." +"Similarly, the @file{berlin.guixsd.org.pub} file contains the public key for" +" the project's new build farm, reachable at " +"@indicateurl{https://berlin.guixsd.org}." msgstr "" +"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}." #. type: quotation #: doc/guix.texi:2334 @@ -7089,13 +8215,19 @@ msgid "" "x86_64/i686 build nodes and may be able to provide substitutes more quickly " "than @code{mirror.hydra.gnu.org}." msgstr "" +"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}" #. type: Plain text #: doc/guix.texi:2338 msgid "" -"Once this is in place, the output of a command like @code{guix build} should " -"change from something like:" +"Once this is in place, the output of a command like @code{guix build} should" +" change from something like:" msgstr "" +"Une fois que cela est en place, la sortie d'une commande comme @code{guix " +"build} devrait changer de quelque chose comme :" #. type: example #: doc/guix.texi:2347 @@ -7109,11 +8241,18 @@ msgid "" " /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n" "@dots{}\n" msgstr "" +"$ guix build emacs --dry-run\n" +"Les dérivations suivantes seraient construites :\n" +" /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n" +" /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n" +" /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n" +" /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n" +"@dots{}\n" #. type: Plain text #: doc/guix.texi:2351 msgid "to something like:" -msgstr "" +msgstr "à quelque chose comme :" #. type: example #: doc/guix.texi:2360 @@ -7127,6 +8266,13 @@ msgid "" " /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n" "@dots{}\n" msgstr "" +"$ guix build emacs --dry-run\n" +"112.3 Mo seraient téléchargés :\n" +" /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n" +" /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n" +" /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n" +" /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n" +"@dots{}\n" #. type: Plain text #: doc/guix.texi:2365 @@ -7134,28 +8280,35 @@ msgid "" "This indicates that substitutes from @code{hydra.gnu.org} are usable and " "will be downloaded, when possible, for future builds." msgstr "" +"Cela indique que les substituts de @code{hydra.gnu.org} sont utilisables et " +"seront téléchargés, si possible, pour les futures constructions." #. type: cindex #: doc/guix.texi:2366 #, no-wrap msgid "substitutes, how to disable" -msgstr "" +msgstr "substituts, comment les désactiver" #. type: Plain text #: doc/guix.texi:2372 msgid "" "The substitute mechanism can be disabled globally by running @code{guix-" -"daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}). It can " -"also be disabled temporarily by passing the @code{--no-substitutes} option " +"daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}). It can" +" also be disabled temporarily by passing the @code{--no-substitutes} option " "to @command{guix package}, @command{guix build}, and other command-line " "tools." msgstr "" +"Le mécanisme de substitution peut être désactivé globalement en lançant " +"@code{guix-daemon} avec @code{--no-substitutes} (@pxref{Invoking guix-" +"daemon}). Il peut aussi être désactivé temporairement en passant l'option " +"@code{--no-substitutes} à @command{guix package}, @command{guix build} et " +"aux autres outils en ligne de commande." #. type: cindex #: doc/guix.texi:2376 #, no-wrap msgid "digital signatures" -msgstr "" +msgstr "signatures numériques" #. type: Plain text #: doc/guix.texi:2380 @@ -7164,6 +8317,9 @@ msgid "" "has been tampered with. Likewise, it ignores substitutes that are not " "signed, or that are not signed by one of the keys listed in the ACL." msgstr "" +"Guix détecte et lève une erreur lorsqu'il essaye d'utiliser un substituts " +"qui a été modifié. De même, il ignore les substituts qui ne sont pas signés" +" ou qui ne sont pas signés par l'une des clefs listés dans l'ACL." #. type: Plain text #: doc/guix.texi:2386 @@ -7174,34 +8330,53 @@ msgid "" "downloads. For example, assume we have chosen two substitute servers with " "this option:" msgstr "" +"Il y a une exception cependant : si un serveur non autorisé fournit des " +"substituts qui sont @emph{identiques bit-à-bit} à ceux fournis par un " +"serveur autorisé, alors le serveur non autorisé devient disponible pour les " +"téléchargements. Par exemple en supposant qu'on a choisi deux serveurs de " +"substituts avec cette option :" #. type: example #: doc/guix.texi:2389 #, no-wrap msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n" -msgstr "" +msgstr "--substitute-urls=\"https://a.example.org https://b.example.org\"\n" #. type: Plain text #: doc/guix.texi:2400 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)." +"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)." #. type: Plain text #: doc/guix.texi:2407 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 " +"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)." #. type: Plain text #: doc/guix.texi:2419 @@ -7213,6 +8388,12 @@ msgid "" "@command{guix package}, and other client commands are run has " "@emph{absolutely no effect}." msgstr "" +"Les substituts sont téléchargés par HTTP ou HTTPS. La variable " +"d'environnement @code{http_proxy} peut être initialisée dans l'environnement" +" de @command{guix-daemon} et est respectée pour le téléchargement des " +"substituts. Remarquez que la valeur de @code{http_proxy} dans " +"l'environnement où tournent @command{guix build}, @command{guix package} et " +"les autres clients n'a @emph{absolument aucun effet}." #. type: Plain text #: doc/guix.texi:2428 @@ -7222,59 +8403,91 @@ msgid "" "the substitute server might be offline, the substitute may recently have " "been deleted, the connection might have been interrupted, etc." msgstr "" +"Même lorsqu'un substitut pour une dérivation est disponible, la substitution" +" échoue parfois. Cela peut arriver pour plusieurs raisons : le serveur de " +"substitut peut être hors ligne, le substitut a récemment été supprimé du " +"serveur, la connexion peut avoir été interrompue, etc." #. type: Plain text #: doc/guix.texi:2442 msgid "" -"When substitutes are enabled and a substitute for a derivation is available, " -"but the substitution attempt fails, Guix will attempt to build the " +"When substitutes are enabled and a substitute for a derivation is available," +" but the substitution attempt fails, Guix will attempt to build the " "derivation locally depending on whether or not @code{--fallback} was given " "(@pxref{fallback-option,, common build option @code{--fallback}}). " "Specifically, if @code{--fallback} was omitted, then no local build will be " "performed, and the derivation is considered to have failed. However, if " "@code{--fallback} was given, then Guix will attempt to build the derivation " -"locally, and the success or failure of the derivation depends on the success " -"or failure of the local build. Note that when substitutes are disabled or " +"locally, and the success or failure of the derivation depends on the success" +" or failure of the local build. Note that when substitutes are disabled or " "no substitute is available for the derivation in question, a local build " -"will @emph{always} be performed, regardless of whether or not @code{--" -"fallback} was given." +"will @emph{always} be performed, regardless of whether or not " +"@code{--fallback} was given." msgstr "" +"Lorsque les substituts sont activés et qu'un substitut pour une dérivation " +"est disponible, mais que la tentative de substitution échoue, Guix essaiera " +"de construire la dérivation localement si @code{--fallback} a été passé en " +"argument (@pxref{fallback-option,, common build option @code{--fallback}})." +" Plus spécifiquement, si cet option n'a pas été passée en argument, alors " +"aucune construction locale n'est effectuée et la dérivation est considérée " +"comme étant en échec. Cependant, si @code{--fallback} est passé en argument," +" alors Guix essaiera de construire la dérivation localement et l'échec ou le" +" succès de la dérivation dépend de l'échec ou du succès de la construction " +"locale. Remarquez que lorsque les substituts sont désactivés ou qu'aucun " +"substitut n'est disponible pour la dérivation en question, une construction " +"locale sera @emph{toujours} effectuée, indépendamment du fait que l'argument" +" @code{--fallback} ait été ou non passé." #. type: Plain text #: doc/guix.texi:2447 msgid "" "To get an idea of how many substitutes are available right now, you can try " -"running the @command{guix weather} command (@pxref{Invoking guix weather}). " -"This command provides statistics on the substitutes provided by a server." +"running the @command{guix weather} command (@pxref{Invoking guix weather})." +" This command provides statistics on the substitutes provided by a server." msgstr "" +"Pour se donner une idée du nombre de substituts disponibles maintenant, vous" +" pouvez essayer de lancer la commande @command{guix weather} " +"(@pxref{Invoking guix weather}). Cette command fournit des statistiques sur" +" les substituts fournis par un serveur." #. type: cindex #: doc/guix.texi:2451 #, no-wrap msgid "trust, of pre-built binaries" -msgstr "" +msgstr "confiance, en des binaires pré-construits" #. type: Plain text #: doc/guix.texi:2461 msgid "" -"Today, each individual's control over their own computing is at the mercy of " -"institutions, corporations, and groups with enough power and determination " +"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 " +"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})." #. type: Plain text #: doc/guix.texi:2473 msgid "" "Guix has the foundations to maximize build reproducibility " -"(@pxref{Features}). In most cases, independent builds of a given package or " -"derivation should yield bit-identical results. Thus, through a diverse set " -"of independent package builds, we can strengthen the integrity of our " +"(@pxref{Features}). In most cases, independent builds of a given package or" +" derivation should yield bit-identical results. Thus, through a diverse set" +" of independent package builds, we can strengthen the integrity of our " "systems. The @command{guix challenge} command aims to help users assess " "substitute servers, and to assist developers in finding out about non-" "deterministic package builds (@pxref{Invoking guix challenge}). Similarly, " @@ -7282,32 +8495,47 @@ msgid "" "whether previously-installed substitutes are genuine by rebuilding them " "locally (@pxref{build-check, @command{guix build --check}})." msgstr "" +"Guix possède les fondations pour maximiser la reproductibilité logicielle " +"(@pxref{Features}). Dans la plupart des cas, des constructions " +"indépendantes d'un paquet donnée ou d'une dérivation devrait donner des " +"résultats identiques au bit près. Ainsi, à travers un ensemble de " +"constructions de paquets indépendantes il est possible de renforcer " +"l'intégrité du système. La commande @command{guix challenge} a pour but " +"d'aider les utilisateurs à tester les serveurs de substituts et à aider les " +"développeurs à trouver les constructions de paquets non-déterministes " +"(@pxref{Invoking guix challenge}). De même, l'option @option{--check} de " +"@command{guix build} permet aux utilisateurs de vérifier si les substituts " +"précédemment installés sont authentiques en les reconstruisant localement " +"(@pxref{build-check, @command{guix build --check}})." #. type: Plain text #: doc/guix.texi:2477 msgid "" -"In the future, we want Guix to have support to publish and retrieve binaries " -"to/from other users, in a peer-to-peer fashion. If you would like to " +"In the future, we want Guix to have support to publish and retrieve binaries" +" to/from other users, in a peer-to-peer fashion. If you would like to " "discuss this project, join us on @email{guix-devel@@gnu.org}." msgstr "" +"Dans le futur, nous aimerions que Guix puisse publier et recevoir des " +"binaires d'autres utilisateurs, d'une manière pair-à-pair. Si vous voulez " +"discuter de ce projet, rejoignez-nous sur @email{guix-devel@@gnu.org}." #. type: cindex #: doc/guix.texi:2481 #, no-wrap msgid "multiple-output packages" -msgstr "" +msgstr "paquets avec plusieurs résultats" #. type: cindex #: doc/guix.texi:2482 #, no-wrap msgid "package outputs" -msgstr "" +msgstr "sorties de paquets" #. type: cindex #: doc/guix.texi:2483 #, no-wrap msgid "outputs" -msgstr "" +msgstr "sorties" #. type: Plain text #: doc/guix.texi:2493 @@ -7320,6 +8548,14 @@ msgid "" "output of @code{glibc} contains all the C header files, shared libraries, " "static libraries, Info documentation, and other supporting files." msgstr "" +"Souvent, les paquets définis dans Guix ont une seule @dfn{sortie} — " +"c.-à-d.@: que le paquet source conduit à exactement un répertoire dans le " +"dépôt. Lorsque vous lancez @command{guix package -i glibc}, vous installez " +"la sortie par défaut du paquet GNU libc ; la sortie par défaut est appelée " +"@code{out} mais son nom peut être omis comme le montre cette commande. Dans" +" ce cas particuliers, la sortie par défaut de @code{glibc} contient tous les" +" fichiers d'en-tête C, les bibliothèques partagées, les bibliothèques " +"statiques, la documentation Info et les autres fichiers de support." #. type: Plain text #: doc/guix.texi:2501 @@ -7332,29 +8568,37 @@ msgid "" "@code{doc}. To install the main GLib output, which contains everything but " "the documentation, one would run:" msgstr "" +"Parfois il est plus approprié de séparer les divers types de fichiers " +"produits par un même paquet source en plusieurs sorties. Par exemple, la " +"bibliothèque C GLib (utilisée par GTK+ et des paquets associés) installe " +"plus de 20 Mo de documentation de référence dans des pages HTML. Pour " +"préserver l'espace disque des utilisateurs qui n'en ont pas besoin, la " +"documentation va dans une sortie séparée nommée @code{doc}. Pour installer " +"la sortie principale de GLib, qui contient tout sauf la documentation, on " +"devrait lancer :" #. type: example #: doc/guix.texi:2504 #, no-wrap msgid "guix package -i glib\n" -msgstr "" +msgstr "guix package -i glib\n" #. type: code{#1} #: doc/guix.texi:2506 doc/guix.texi:21321 #, no-wrap msgid "documentation" -msgstr "" +msgstr "documentation" #. type: Plain text #: doc/guix.texi:2508 msgid "The command to install its documentation is:" -msgstr "" +msgstr "La commande pour installer la documentation est :" #. type: example #: doc/guix.texi:2511 #, no-wrap msgid "guix package -i glib:doc\n" -msgstr "" +msgstr "guix package -i glib:doc\n" #. type: Plain text #: doc/guix.texi:2522 @@ -7362,42 +8606,59 @@ msgid "" "Some packages install programs with different ``dependency footprints''. " "For instance, the WordNet package installs both command-line tools and " "graphical user interfaces (GUIs). The former depend solely on the C " -"library, whereas the latter depend on Tcl/Tk and the underlying X " -"libraries. In this case, we leave the command-line tools in the default " -"output, whereas the GUIs are in a separate output. This allows users who do " -"not need the GUIs to save space. The @command{guix size} command can help " -"find out about such situations (@pxref{Invoking guix size}). @command{guix " +"library, whereas the latter depend on Tcl/Tk and the underlying X libraries." +" In this case, we leave the command-line tools in the default output, " +"whereas the GUIs are in a separate output. This allows users who do not " +"need the GUIs to save space. The @command{guix size} command can help find " +"out about such situations (@pxref{Invoking guix size}). @command{guix " "graph} can also be helpful (@pxref{Invoking guix graph})." msgstr "" +"Certains paquets installent des programmes avec des « empreintes dépendances" +" » différentes. Par exemple le paquet WordNet installe à la fois les outils" +" en ligne de commande et les interfaces graphiques (GUI). La première ne " +"dépend que de la bibliothèque C, alors que cette dernière dépend de Tcl/Tk " +"et des bibliothèques X sous-jacentes. Dans ce cas, nous laissons les outils" +" en ligne de commande dans la sortie par défaut et l'interface graphique " +"dans une sortie séparée. Cela permet aux utilisateurs qui n'ont pas besoin " +"d'interface graphique de gagner de la place. La commande @command{guix " +"size} peut aider à trouver ces situations (@pxref{Invoking guix size}). " +"@command{guix graph} peut aussi être utile (@pxref{Invoking guix graph})." #. type: Plain text #: doc/guix.texi:2530 msgid "" "There are several such multiple-output packages in the GNU distribution. " "Other conventional output names include @code{lib} for libraries and " -"possibly header files, @code{bin} for stand-alone programs, and @code{debug} " -"for debugging information (@pxref{Installing Debugging Files}). The outputs " -"of a packages are listed in the third column of the output of @command{guix " -"package --list-available} (@pxref{Invoking guix package})." +"possibly header files, @code{bin} for stand-alone programs, and @code{debug}" +" for debugging information (@pxref{Installing Debugging Files}). The " +"outputs of a packages are listed in the third column of the output of " +"@command{guix package --list-available} (@pxref{Invoking guix package})." msgstr "" +"Il y a plusieurs paquets à sorties multiples dans la distribution GNU. " +"D'autres noms de sorties conventionnels sont @code{lib} pour les " +"bibliothèques et éventuellement les fichiers d'en-tête, @code{bin} pour les " +"programmes indépendants et @code{debug} pour les informations de débogage " +"(@pxref{Installing Debugging Files}). Les sorties d'un paquet sont listés " +"dans la troisième colonne de la sortie de @command{guix package --list-" +"available} (@pxref{Invoking guix package})." #. type: section #: doc/guix.texi:2533 #, no-wrap msgid "Invoking @command{guix gc}" -msgstr "" +msgstr "Invoquer @command{guix gc}" #. type: cindex #: doc/guix.texi:2535 #, no-wrap msgid "garbage collector" -msgstr "" +msgstr "ramasse-miettes" #. type: cindex #: doc/guix.texi:2536 #, no-wrap msgid "disk space" -msgstr "" +msgstr "espace disque" #. type: Plain text #: doc/guix.texi:2542 @@ -7408,42 +8669,66 @@ msgid "" "@emph{only} way to remove files from @file{/gnu/store}---removing files or " "directories manually may break it beyond repair!" msgstr "" +"Les paquets qui sont installés mais pas utilisés peuvent être @dfn{glanés}." +" La commande @command{guix gc} permet aux utilisateurs de lancer " +"explicitement le ramasse-miettes pour récupérer de l'espace dans le " +"répertoire @file{/gnu/store}. C'est la @emph{seule} manière de supprimer " +"des fichiers de @file{/gnu/store} — supprimer des fichiers ou des " +"répertoires à la main peut le casser de manière impossible à réparer !" #. type: Plain text #: doc/guix.texi:2553 msgid "" -"The garbage collector has a set of known @dfn{roots}: any file under @file{/" -"gnu/store} reachable from a root is considered @dfn{live} and cannot be " -"deleted; any other file is considered @dfn{dead} and may be deleted. The " -"set of garbage collector roots (``GC roots'' for short) includes default " +"The garbage collector has a set of known @dfn{roots}: any file under " +"@file{/gnu/store} reachable from a root is considered @dfn{live} and cannot " +"be deleted; any other file is considered @dfn{dead} and may be deleted. The" +" set of garbage collector roots (``GC roots'' for short) includes default " "user profiles; by default, the symlinks under @file{/var/guix/gcroots} " "represent these GC roots. New GC roots can be added with @command{guix " "build --root}, for example (@pxref{Invoking guix build})." msgstr "" +"Le ramasse-miettes a un ensemble de @dfn{racines} connues : tout fichier " +"dans @file{/gnu/store} atteignable depuis une racine est considéré comme " +"@dfn{utilisé} et ne peut pas être supprimé ; tous les autres fichiers sont " +"considérés comme @dfn{inutilisés} et peuvent être supprimés. L'ensemble des" +" racines du ramasse-miettes (ou « racines du GC » pour faire court) inclue " +"les profils par défaut des utilisateurs ; par défaut les liens symboliques " +"sous @file{/var/guix/gcroots} représentent ces racines du GC. De nouvelles " +"racines du GC peuvent être ajoutées avec la @command{guix build -- root} par" +" exemple (@pxref{Invoking guix build})." #. type: Plain text #: doc/guix.texi:2559 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 " +"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})." #. type: Plain text #: doc/guix.texi:2563 msgid "" "Our recommendation is to run a garbage collection periodically, or when you " -"are short on disk space. For instance, to guarantee that at least 5@tie{}GB " -"are available on your disk, simply run:" +"are short on disk space. For instance, to guarantee that at least 5@tie{}GB" +" are available on your disk, simply run:" msgstr "" +"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 " +"5@tie{}Go d'espace reste libre sur votre disque, lancez simplement :" #. type: example #: doc/guix.texi:2566 #, no-wrap msgid "guix gc -F 5G\n" -msgstr "" +msgstr "guix gc -F 5G\n" #. type: Plain text #: doc/guix.texi:2575 @@ -7456,27 +8741,39 @@ msgid "" "that is necessary to build other pieces of software---e.g., the compiler " "tool chain." msgstr "" +"Il est parfaitement possible de le lancer comme une tâche périodique non-" +"interactive (@pxref{Scheduled Job Execution} 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." #. type: Plain text #: doc/guix.texi:2581 msgid "" "The @command{guix gc} command has three modes of operation: it can be used " "to garbage-collect any dead files (the default), to delete specific files " -"(the @code{--delete} option), to print garbage-collector information, or for " -"more advanced queries. The garbage collection options are as follows:" +"(the @code{--delete} option), to print garbage-collector information, or for" +" more advanced queries. The garbage collection options are as follows:" msgstr "" +"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" +" fichiers spécifiques (l'option @code{--delete}), pour afficher des " +"informations sur le ramasse-miettes ou pour des requêtes plus avancées. Les" +" options du ramasse-miettes sont :" #. type: item #: doc/guix.texi:2583 #, no-wrap msgid "--collect-garbage[=@var{min}]" -msgstr "" +msgstr "--collect-garbage[=@var{min}]" #. type: itemx #: doc/guix.texi:2584 #, no-wrap msgid "-C [@var{min}]" -msgstr "" +msgstr "-C [@var{min}]" #. type: table #: doc/guix.texi:2588 @@ -7484,6 +8781,9 @@ msgid "" "Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-" "directories. This is the default operation when no option is specified." msgstr "" +"Ramasse les miettes — c.-à-d.@: les fichiers inaccessibles de " +"@file{/gnu/store} et ses sous-répertoires. C'est l'opération par défaut " +"lorsqu'aucune option n'est spécifiée." #. type: table #: doc/guix.texi:2593 @@ -7493,31 +8793,38 @@ msgid "" "such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block " "size, size specifications,, coreutils, GNU Coreutils})." msgstr "" +"Lorsque @var{min} est donné, s'arrêter une fois que @var{min} octets ont été" +" collectés. @var{min} pour être un nombre d'octets ou inclure un suffixe " +"d'unité, comme @code{MiB} pour mébioctet et @code{GB} pour gigaoctet " +"(@pxref{Block size, size specifications,, coreutils, GNU Coreutils})." #. type: table #: doc/guix.texi:2595 msgid "When @var{min} is omitted, collect all the garbage." -msgstr "" +msgstr "Lorsque @var{min} est omis, tout glaner." #. type: item #: doc/guix.texi:2596 #, no-wrap msgid "--free-space=@var{free}" -msgstr "" +msgstr "--free-space=@var{libre}" #. type: itemx #: doc/guix.texi:2597 #, no-wrap msgid "-F @var{free}" -msgstr "" +msgstr "-F @var{libre}" #. type: table #: doc/guix.texi:2601 msgid "" -"Collect garbage until @var{free} space is available under @file{/gnu/store}, " -"if possible; @var{free} denotes storage space, such as @code{500MiB}, as " +"Collect garbage until @var{free} space is available under @file{/gnu/store}," +" if possible; @var{free} denotes storage space, such as @code{500MiB}, as " "described above." msgstr "" +"Glaner jusqu'à ce que @var{libre} espace soit disponible dans " +"@file{/gnu/store} si possible ; @var{libre} est une quantité de stockage " +"comme @code{500MiB} comme décrit ci-dessus." #. type: table #: doc/guix.texi:2604 @@ -7525,37 +8832,43 @@ msgid "" "When @var{free} or more is already available in @file{/gnu/store}, do " "nothing and exit immediately." msgstr "" +"Lorsque @var{libre} ou plus est disponible dans @file{/gnu/store} ne rien " +"faire et s'arrêter immédiatement." #. type: item #: doc/guix.texi:2605 #, no-wrap msgid "--delete" -msgstr "" +msgstr "--delete" #. type: itemx #: doc/guix.texi:2606 doc/guix.texi:5840 doc/guix.texi:20598 #, no-wrap msgid "-d" -msgstr "" +msgstr "-d" #. type: table #: doc/guix.texi:2610 msgid "" "Attempt to delete all the store files and directories specified as " -"arguments. This fails if some of the files are not in the store, or if they " -"are still live." +"arguments. This fails if some of the files are not in the store, or if they" +" are still live." msgstr "" +"Essayer de supprimer tous les fichiers et les répertoires du dépôt spécifiés" +" en argument. Cela échoue si certains des fichiers ne sont pas dans le " +"dépôt ou s'ils sont toujours utilisés." #. type: item #: doc/guix.texi:2611 #, no-wrap msgid "--list-failures" -msgstr "" +msgstr "--list-failures" #. type: table #: doc/guix.texi:2613 msgid "List store items corresponding to cached build failures." msgstr "" +"Lister les éléments du dépôt qui correspondent à des échecs de construction" #. type: table #: doc/guix.texi:2617 @@ -7563,17 +8876,22 @@ msgid "" "This prints nothing unless the daemon was started with @option{--cache-" "failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})." msgstr "" +"Cela n'affiche rien à moins que le démon n'ait été démarré avec " +"@option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-" +"failures}})." #. type: item #: doc/guix.texi:2618 #, no-wrap msgid "--clear-failures" -msgstr "" +msgstr "--clear-failures" #. type: table #: doc/guix.texi:2620 msgid "Remove the specified store items from the failed-build cache." msgstr "" +"Supprimer les éléments du dépôt spécifiés du cache des constructions " +"échouées." #. type: table #: doc/guix.texi:2623 @@ -7581,53 +8899,60 @@ msgid "" "Again, this option only makes sense when the daemon is started with " "@option{--cache-failures}. Otherwise, it does nothing." msgstr "" +"De nouveau, cette option ne fait de sens que lorsque le démon est démarré " +"avec @option{--cache-failures}. Autrement elle ne fait rien." #. type: item #: doc/guix.texi:2624 #, no-wrap msgid "--list-dead" -msgstr "" +msgstr "--list-dead" #. type: table #: doc/guix.texi:2627 msgid "" -"Show the list of dead files and directories still present in the store---i." -"e., files and directories no longer reachable from any root." +"Show the list of dead files and directories still present in the store---" +"i.e., files and directories no longer reachable from any root." msgstr "" +"Montrer la liste des fichiers et des répertoires inutilisés encore présents " +"dans le dépôt — c.-à-d.@: les fichiers et les répertoires qui ne sont plus " +"atteignables par aucune racine." #. type: item #: doc/guix.texi:2628 #, no-wrap msgid "--list-live" -msgstr "" +msgstr "--list-live" #. type: table #: doc/guix.texi:2630 msgid "Show the list of live store files and directories." -msgstr "" +msgstr "Montrer la liste des fichiers et des répertoires du dépôt utilisés." #. type: Plain text #: doc/guix.texi:2634 msgid "In addition, the references among existing store files can be queried:" msgstr "" +"En plus, les références entre les fichiers existants du dépôt peuvent être " +"demandés :" #. type: item #: doc/guix.texi:2637 #, no-wrap msgid "--references" -msgstr "" +msgstr "--references" #. type: itemx #: doc/guix.texi:2638 #, no-wrap msgid "--referrers" -msgstr "" +msgstr "--referrers" #. type: cindex #: doc/guix.texi:2639 doc/guix.texi:6935 #, no-wrap msgid "package dependencies" -msgstr "" +msgstr "dépendances des paquets" #. type: table #: doc/guix.texi:2642 @@ -7635,24 +8960,26 @@ msgid "" "List the references (respectively, the referrers) of store files given as " "arguments." msgstr "" +"Lister les références (respectivement les référents) des fichiers du dépôt " +"en argument." #. type: item #: doc/guix.texi:2643 #, no-wrap msgid "--requisites" -msgstr "" +msgstr "--requisites" #. type: itemx #: doc/guix.texi:2644 #, no-wrap msgid "-R" -msgstr "" +msgstr "-R" #. type: item #: doc/guix.texi:2645 doc/guix.texi:6819 doc/guix.texi:6843 doc/guix.texi:6907 #, no-wrap msgid "closure" -msgstr "" +msgstr "closure" #. type: table #: doc/guix.texi:2650 @@ -7662,6 +8989,10 @@ msgid "" "these, recursively. In other words, the returned list is the " "@dfn{transitive closure} of the store files." msgstr "" +"Lister les prérequis des fichiers du dépôt passés en argument. Les " +"prérequis sont le fichier du dépôt lui-même, leur références et les " +"références de ces références, récursivement. En d'autre termes, la liste " +"retournée est la @dfn{closure transitive} des fichiers du dépôt." #. type: table #: doc/guix.texi:2654 @@ -7670,18 +9001,21 @@ msgid "" "an element. @xref{Invoking guix graph}, for a tool to visualize the graph " "of references." msgstr "" +"@xref{Invoking guix size} pour un outil pour surveiller la taille de la " +"closure d'un élément. @xref{Invoking guix graph} pour un outil pour " +"visualiser le graphe des références." #. type: item #: doc/guix.texi:2655 #, no-wrap msgid "--derivers" -msgstr "" +msgstr "--derivers" #. type: item #: doc/guix.texi:2656 doc/guix.texi:3122 doc/guix.texi:7020 #, no-wrap msgid "derivation" -msgstr "" +msgstr "dérivation" #. type: table #: doc/guix.texi:2659 @@ -7689,17 +9023,19 @@ msgid "" "Return the derivation(s) leading to the given store items " "(@pxref{Derivations})." msgstr "" +"Renvoie les dérivations menant aux éléments du dépôt donnés " +"(@pxref{Derivations})." #. type: table #: doc/guix.texi:2661 msgid "For example, this command:" -msgstr "" +msgstr "Par exemple cette commande :" #. type: example #: doc/guix.texi:2664 #, no-wrap msgid "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n" -msgstr "" +msgstr "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n" #. type: table #: doc/guix.texi:2669 @@ -7707,14 +9043,19 @@ msgid "" "returns the @file{.drv} file(s) leading to the @code{emacs} package " "installed in your profile." msgstr "" +"renvoie les fichiers @file{.drv} menant au paquet @code{emacs} installé dans" +" votre profil." #. type: table #: doc/guix.texi:2673 msgid "" -"Note that there may be zero matching @file{.drv} files, for instance because " -"these files have been garbage-collected. There can also be more than one " +"Note that there may be zero matching @file{.drv} files, for instance because" +" these files have been garbage-collected. There can also be more than one " "matching @file{.drv} due to fixed-output derivations." msgstr "" +"Remarquez qu'il peut n'y avoir aucun fichier @file{.drv} par exemple quand " +"ces fichiers ont été glanés. Il peut aussi y avoir plus d'un fichier " +"@file{.drv} correspondant à cause de dérivations à sortie fixées." #. type: Plain text #: doc/guix.texi:2677 @@ -7722,29 +9063,31 @@ msgid "" "Lastly, the following options allow you to check the integrity of the store " "and to control disk usage." msgstr "" +"Enfin, les options suivantes vous permettent de vérifier l'intégrité du " +"dépôt et de contrôler l'utilisation du disque." #. type: item #: doc/guix.texi:2680 #, no-wrap msgid "--verify[=@var{options}]" -msgstr "" +msgstr "--verify[=@var{options}]" #. type: cindex #: doc/guix.texi:2681 #, no-wrap msgid "integrity, of the store" -msgstr "" +msgstr "intégrité, du dépôt" #. type: cindex #: doc/guix.texi:2682 #, no-wrap msgid "integrity checking" -msgstr "" +msgstr "vérification d'intégrité" #. type: table #: doc/guix.texi:2684 msgid "Verify the integrity of the store." -msgstr "" +msgstr "Vérifier l'intégrité du dépôt." #. type: table #: doc/guix.texi:2687 @@ -7752,6 +9095,8 @@ msgid "" "By default, make sure that all the store items marked as valid in the " "database of the daemon actually exist in @file{/gnu/store}." msgstr "" +"Par défaut, s'assurer que tous les éléments du dépôt marqués comme valides " +"dans la base de données du démon existent bien dans @file{/gnu/store}." #. type: table #: doc/guix.texi:2690 @@ -7759,6 +9104,8 @@ msgid "" "When provided, @var{options} must be a comma-separated list containing one " "or more of @code{contents} and @code{repair}." msgstr "" +"Lorsqu'elle est fournie, l'@var{option} doit être une liste séparée par des " +"virgule de l'un ou plus parmi @code{contents} et @code{repair}." #. type: table #: doc/guix.texi:2696 @@ -7769,18 +9116,24 @@ msgid "" "@emph{all the files in the store}, this command can take a long time, " "especially on systems with a slow disk drive." msgstr "" +"Lorsque vous passez @option{--verify=contents}, le démon calcul le hash du " +"contenu de chaque élément du dépôt et le compare au hash de sa base de " +"données. Les différences de hash sont rapportées comme des corruptions de " +"données. Comme elle traverse @emph{tous les fichiers du dépôt}, cette " +"commande peut prendre très longtemps pour terminer, surtout sur un système " +"avec un disque lent." #. type: cindex #: doc/guix.texi:2697 #, no-wrap msgid "repairing the store" -msgstr "" +msgstr "réparer le dépôt" #. type: cindex #: doc/guix.texi:2698 doc/guix.texi:5833 #, no-wrap msgid "corruption, recovering from" -msgstr "" +msgstr "corruption, récupérer de" #. type: table #: doc/guix.texi:2706 @@ -7794,9 +9147,9 @@ msgid "" msgstr "" "Utiliser @option{--verify=repair} ou @option{--verify=contents,repair} fait " "que le démon essaie de réparer les objets du dépôt corrompus en récupérant " -"leurs substituts (@pxref{Substituts}). Comme la réparation n'est pas " +"leurs substituts (@pxref{Substituts}). Comme la réparation n'est pas " "atomique et donc potentiellement dangereuse, elle n'est disponible que pour " -"l'administrateur système. Une alternative plus légère lorsque vous " +"l'administrateur système. Une alternative plus légère lorsque vous " "connaissez exactement quelle entrée est corrompue consiste à lancer " "@command{guix build --repair} (@pxref{Invoking guix build})." @@ -7804,7 +9157,7 @@ msgstr "" #: doc/guix.texi:2707 #, no-wrap msgid "--optimize" -msgstr "" +msgstr "--optimize" #. type: table #: doc/guix.texi:2711 @@ -7812,6 +9165,8 @@ msgid "" "Optimize the store by hard-linking identical files---this is " "@dfn{deduplication}." msgstr "" +"Optimiser le dépôt en liant en dur les fichiers identiques — c'est la " +"@dfn{déduplication}." #. type: table #: doc/guix.texi:2717 @@ -7822,36 +9177,41 @@ msgid "" "option is primarily useful when the daemon was running with @code{--disable-" "deduplication}." msgstr "" +"Le démon effectue une déduplication à chaque construction réussie ou import " +"d'archive à moins qu'il n'ait été démarré avec @code{--disable-" +"deduplication} (@pxref{Invoking guix-daemon, @code{--disable-" +"deduplication}}). Ainsi, cette option est surtout utile lorsque le démon " +"tourne avec @code{--disable-deduplication}." #. type: section #: doc/guix.texi:2721 #, no-wrap msgid "Invoking @command{guix pull}" -msgstr "" +msgstr "Invoquer @command{guix pull}" #. type: cindex #: doc/guix.texi:2723 #, no-wrap msgid "upgrading Guix" -msgstr "" +msgstr "mettre à niveau Guix" #. type: cindex #: doc/guix.texi:2724 #, no-wrap msgid "updating Guix" -msgstr "" +msgstr "mettre à jour Guix" #. type: command{#1} #: doc/guix.texi:2725 #, no-wrap msgid "guix pull" -msgstr "" +msgstr "guix pull" #. type: cindex #: doc/guix.texi:2726 #, no-wrap msgid "pull" -msgstr "" +msgstr "pull" #. type: Plain text #: doc/guix.texi:2733 @@ -7860,18 +9220,29 @@ msgid "" "distribution currently available on your local machine. To update that " "distribution, along with the Guix tools, you must run @command{guix pull}: " "the command downloads the latest Guix source code and package descriptions, " -"and deploys it. Source code is downloaded from a @uref{https://git-scm.com, " -"Git} repository." +"and deploys it. Source code is downloaded from a @uref{https://git-scm.com," +" Git} repository." msgstr "" +"Les paquets sont installés ou mis à jour vers la dernière version disponible" +" dans la distribution actuellement disponible sur votre machine locale. " +"Pour mettre à jour cette distribution, en même temps que les outils Guix, " +"vous devez lancer @command{guix pull} ; la commande télécharge le dernier " +"code source de Guix et des descriptions de paquets et le déploie. Le code " +"source est téléchargé depuis un dépôt @uref{https://git-scm.com, Git}." #. type: Plain text #: doc/guix.texi:2739 msgid "" -"On completion, @command{guix package} will use packages and package versions " -"from this just-retrieved copy of Guix. Not only that, but all the Guix " +"On completion, @command{guix package} will use packages and package versions" +" from this just-retrieved copy of Guix. Not only that, but all the Guix " "commands and Scheme modules will also be taken from that latest version. " "New @command{guix} sub-commands added by the update also become available." msgstr "" +"À la fin, @command{guix package} utilisera les paquets et les versions des " +"paquets de la copie de Guix tout juste récupérée. Non seulement ça, mais " +"toutes les commandes Guix et les modules Scheme seront aussi récupérés " +"depuis la dernière version. Les nouvelles sous-commandes de @command{guix} " +"ajoutés par la mise à jour sont aussi maintenant disponibles." #. type: Plain text #: doc/guix.texi:2749 @@ -7886,36 +9257,50 @@ msgid "" "of @command{guix pull} is to manually update this symlink to point to the " "previous Guix.}." msgstr "" +"Chaque utilisateur peut mettre à jour sa copie de Guix avec @command{guix " +"pull} et l'effet est limité à l'utilisateur qui a lancé @command{guix pull}." +" Par exemple, lorsque l'utilisateur @code{root} lance @command{guix pull}, " +"cela n'a pas d'effet sur la version de Guix que vois @code{alice} et vice-" +"versa@footnote{Sous le capot, @command{guix pull} met à jour le lien " +"symbolique @file{~/.config/guix/latest} pour qu'il pointe vers la dernière " +"version de Guix et la commande @command{guix} charge son code depuis cet " +"endroit. Actuellement la seule manière de revenir en arrière sur une " +"invocation de @command{guix pull} est de mettre à jour manuellement le lien " +"symbolique pour qu'il pointe vers une version précédente de Guix.}." #. type: Plain text #: doc/guix.texi:2752 msgid "" -"The @command{guix pull} command is usually invoked with no arguments, but it " -"supports the following options:" +"The @command{guix pull} command is usually invoked with no arguments, but it" +" supports the following options:" msgstr "" +"La commande @command{guix pull} est typiquement invoquée sans arguments mais" +" il supporte les options suivantes :" #. type: table #: doc/guix.texi:2756 msgid "" "Produce verbose output, writing build logs to the standard error output." msgstr "" +"Produire une sortie verbeuse, en écrivant les journaux de construction sur " +"la sortie d'erreur standard." #. type: item #: doc/guix.texi:2757 #, no-wrap msgid "--url=@var{url}" -msgstr "" +msgstr "--url=@var{url}" #. type: table #: doc/guix.texi:2759 msgid "Download Guix from the Git repository at @var{url}." -msgstr "" +msgstr "Télécharger Guix depuis le dépôt Git à @var{url}." #. type: vindex #: doc/guix.texi:2760 #, no-wrap msgid "GUIX_PULL_URL" -msgstr "" +msgstr "GUIX_PULL_URL" #. type: table #: doc/guix.texi:2764 @@ -7924,12 +9309,15 @@ msgid "" "@code{gnu.org}, for the stable branch of Guix. To use a different source, " "set the @code{GUIX_PULL_URL} environment variable." msgstr "" +"Par défaut, la source est récupérée depuis le dépôt Git canonique sur " +"@code{gnu.org}, pour la branche stable de Guix. Pour utiliser une autre " +"source, paramétrez la variable d'environnement @code{GUIX_PULL_URL}." #. type: item #: doc/guix.texi:2765 #, no-wrap msgid "--commit=@var{commit}" -msgstr "" +msgstr "--commit=@var{commit}" #. type: table #: doc/guix.texi:2768 @@ -7937,12 +9325,14 @@ msgid "" "Deploy @var{commit}, a valid Git commit ID represented as a hexadecimal " "string." msgstr "" +"Déployer de @var{commit}, un ID de commit Git valide représenté par une " +"chaîne hexadécimale." #. type: item #: doc/guix.texi:2769 #, no-wrap msgid "--branch=@var{branch}" -msgstr "" +msgstr "--branch=@var{branche}" #. type: table #: doc/guix.texi:2772 @@ -7950,6 +9340,8 @@ msgid "" "Deploy the tip of @var{branch}, the name of a Git branch available on the " "repository at @var{url}." msgstr "" +"Déployer le haut de la @var{branche}, le nom d'une branche Git disponible " +"sur le répertoire à @var{url}." #. type: table #: doc/guix.texi:2776 @@ -7957,6 +9349,8 @@ msgid "" "Use the bootstrap Guile to build the latest Guix. This option is only " "useful to Guix developers." msgstr "" +"Utiliser le programme d'amorçage Guile pour construire la dernière version " +"de Guix. Cette option n'est utile que pour les développeurs de Guix." #. type: Plain text #: doc/guix.texi:2780 @@ -7964,12 +9358,14 @@ msgid "" "In addition, @command{guix pull} supports all the common build options " "(@pxref{Common Build Options})." msgstr "" +"En plus, @command{guix pull} supporte toutes les options de construction " +"communes (@pxref{Common Build Options})." #. type: section #: doc/guix.texi:2782 #, no-wrap msgid "Invoking @command{guix pack}" -msgstr "" +msgstr "Invoquer @command{guix pack}" #. type: Plain text #: doc/guix.texi:2788 @@ -7979,51 +9375,66 @@ msgid "" "@var{something}}, but that's not possible in this case. This is where " "@command{guix pack} comes in." msgstr "" +"Parfois vous voulez passer un logiciel à des gens qui n'ont pas (encore !) " +"la chance d'utiliser Guix. Vous leur diriez bien de lancer @command{guix " +"package -i @var{quelque chose}} mais ce n'est pas possible dans ce cas. " +"C'est là que @command{guix pack} entre en jeu." #. type: quotation #: doc/guix.texi:2793 msgid "" -"If you are looking for ways to exchange binaries among machines that already " -"run Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, and " +"If you are looking for ways to exchange binaries among machines that already" +" run Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, and " "@ref{Invoking guix archive}." msgstr "" +"Si vous cherchez comment échanger des binaires entre des machines où Guix " +"est déjà installé, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, " +"et @ref{Invoking guix archive}." #. type: cindex #: doc/guix.texi:2795 #, no-wrap msgid "pack" -msgstr "" +msgstr "pack" #. type: cindex #: doc/guix.texi:2796 #, no-wrap msgid "bundle" -msgstr "" +msgstr "lot" #. type: cindex #: doc/guix.texi:2797 #, no-wrap msgid "application bundle" -msgstr "" +msgstr "lot d'applications" #. type: cindex #: doc/guix.texi:2798 #, no-wrap msgid "software bundle" -msgstr "" +msgstr "lot de logiciels" #. type: Plain text #: doc/guix.texi:2807 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 " +"@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." +"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." #. type: Plain text #: doc/guix.texi:2810 @@ -8031,6 +9442,8 @@ msgid "" "For example, to create a bundle containing Guile, Emacs, Geiser, and all " "their dependencies, you can run:" msgstr "" +"Par exemple, pour créer un lot contenant Guile, Emacs, Geiser et toutes " +"leurs dépendances, vous pouvez lancer :" #. type: example #: doc/guix.texi:2815 @@ -8040,6 +9453,9 @@ msgid "" "@dots{}\n" "/gnu/store/@dots{}-pack.tar.gz\n" msgstr "" +"$ guix pack guile emacs geiser\n" +"@dots{}\n" +"/gnu/store/@dots{}-pack.tar.gz\n" #. type: Plain text #: doc/guix.texi:2823 @@ -8050,25 +9466,38 @@ msgid "" "created by @command{guix package -i}. It is this mechanism that is used to " "create Guix's own standalone binary tarball (@pxref{Binary Installation})." msgstr "" +"Le résultat ici est une archive tar contenant un répertoire " +"@file{/gnu/store} avec tous les paquets nécessaires. L'archive qui en " +"résulte contient un @dfn{profil} avec les trois paquets qui vous intéressent" +" ; le profil est le même qui celui qui aurait été créé avec @command{guix " +"package -i}. C'est ce mécanisme qui est utilisé pour créer les archives tar" +" binaires indépendantes de Guix (@pxref{Binary Installation})." #. type: Plain text #: doc/guix.texi:2828 msgid "" -"Users of this pack would have to run @file{/gnu/store/@dots{}-profile/bin/" -"guile} to run Guile, which you may find inconvenient. To work around it, " -"you can create, say, a @file{/opt/gnu/bin} symlink to the profile:" +"Users of this pack would have to run " +"@file{/gnu/store/@dots{}-profile/bin/guile} to run Guile, which you may find" +" inconvenient. To work around it, you can create, say, a " +"@file{/opt/gnu/bin} symlink to the profile:" msgstr "" +"Les utilisateurs de ce pack devraient lancer " +"@file{/gnu/store/@dots{}-profile/bin/guile} pour lancer Guile, ce qui n'est " +"pas très pratique. Pour éviter cela, vous pouvez créer, disons, un lien " +"symbolique @file{/opt/gnu/bin} vers le profil :" #. type: example #: doc/guix.texi:2831 #, no-wrap msgid "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n" -msgstr "" +msgstr "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n" #. type: Plain text #: doc/guix.texi:2835 msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy." msgstr "" +"De cette façon, les utilisateurs peuvent joyeusement taper " +"@file{/opt/gnu/bin/guile} et profiter." #. type: Plain text #: doc/guix.texi:2838 @@ -8076,53 +9505,62 @@ msgid "" "Alternatively, you can produce a pack in the Docker image format using the " "following command:" msgstr "" +"Autrement, vous pouvez produire un pack au format d'image Docker avec la " +"commande suivante :" #. type: example #: doc/guix.texi:2841 #, no-wrap msgid "guix pack -f docker guile emacs geiser\n" -msgstr "" +msgstr "guix pack -f docker guile emacs geiser\n" #. type: Plain text #: doc/guix.texi:2848 msgid "" "The result is a tarball that can be passed to the @command{docker load} " -"command. See the @uref{https://docs.docker.com/engine/reference/commandline/" -"load/, Docker documentation} for more information." +"command. See the " +"@uref{https://docs.docker.com/engine/reference/commandline/load/, Docker " +"documentation} for more information." msgstr "" +"Le résultat est une archive tar qui peut être passée à la commande " +"@command{docker load}. Voir la " +"@uref{https://docs.docker.com/engine/reference/commandline/load/, " +"documentation de Docker} pour plus d'informations." #. type: Plain text #: doc/guix.texi:2850 msgid "Several command-line options allow you to customize your pack:" msgstr "" +"Diverses options en ligne de commande vous permettent de personnaliser votre" +" pack :" #. type: item #: doc/guix.texi:2852 #, no-wrap msgid "--format=@var{format}" -msgstr "" +msgstr "--format=@var{format}" #. type: itemx #: doc/guix.texi:2853 #, no-wrap msgid "-f @var{format}" -msgstr "" +msgstr "-f @var{format}" #. type: table #: doc/guix.texi:2855 msgid "Produce a pack in the given @var{format}." -msgstr "" +msgstr "Produire un pack dans le @var{format} donné." #. type: table #: doc/guix.texi:2857 msgid "The available formats are:" -msgstr "" +msgstr "Les formats disponibles sont :" #. type: item #: doc/guix.texi:2859 #, no-wrap msgid "tarball" -msgstr "" +msgstr "tarball" #. type: table #: doc/guix.texi:2862 @@ -8130,38 +9568,44 @@ msgid "" "This is the default format. It produces a tarball containing all the " "specified binaries and symlinks." msgstr "" +"C'est le format par défaut. Il produit une archive tar contenant tous les " +"binaires et les liens symboliques spécifiés." #. type: item #: doc/guix.texi:2863 #, no-wrap msgid "docker" -msgstr "" +msgstr "docker" #. type: table #: doc/guix.texi:2867 msgid "" -"This produces a tarball that follows the @uref{https://github.com/docker/" -"docker/blob/master/image/spec/v1.2.md, Docker Image Specification}." +"This produces a tarball that follows the " +"@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, " +"Docker Image Specification}." msgstr "" +"Cela produit une archive tar qui suit la " +"@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, " +"spécification des images Docker}." #. type: item #: doc/guix.texi:2869 doc/guix.texi:5711 doc/guix.texi:6536 doc/guix.texi:7097 #: doc/guix.texi:7247 doc/guix.texi:20584 #, no-wrap msgid "--expression=@var{expr}" -msgstr "" +msgstr "--expression=@var{expr}" #. type: itemx #: doc/guix.texi:2870 doc/guix.texi:5712 doc/guix.texi:6537 doc/guix.texi:7098 #: doc/guix.texi:7248 doc/guix.texi:20585 #, no-wrap msgid "-e @var{expr}" -msgstr "" +msgstr "-e @var{expr}" #. type: table #: doc/guix.texi:2872 doc/guix.texi:6539 doc/guix.texi:7100 msgid "Consider the package @var{expr} evaluates to." -msgstr "" +msgstr "Considérer le paquet évalué par @var{expr}." #. type: table #: doc/guix.texi:2876 @@ -8170,6 +9614,9 @@ msgid "" "(@pxref{Additional Build Options, @code{--expression} in @command{guix " "build}})." msgstr "" +"Cela a le même but que l'option de même nom de @command{guix build} " +"(@pxref{Additional Build Options, @code{--expression} dans @command{guix " +"build}})." #. type: table #: doc/guix.texi:2881 @@ -8177,6 +9624,8 @@ msgid "" "Use the packages contained in the manifest object returned by the Scheme " "code in @var{file}." msgstr "" +"Utiliser les paquets contenus dans l'objet manifeste renvoyé par le code " +"Scheme dans @var{fichier}" #. type: table #: doc/guix.texi:2889 @@ -8188,32 +9637,41 @@ msgid "" "machines that do not have Guix installed. Note that you can specify " "@emph{either} a manifest file @emph{or} a list of packages, but not both." msgstr "" +"Elle a un but similaire à l'option de même nom dans @command{guix package} " +"(@pxref{profile-manifest, @option{--manifest}}) et utilise les mêmes " +"fichiers manifeste. Ils vous permettent de définir une collection de " +"paquets une fois et de l'utiliser aussi bien pour créer des profils que pour" +" créer des archives pour des machines qui n'ont pas Guix d'installé. " +"Remarquez que vous pouvez spécifier @emph{soit} un fichier manifeste, " +"@emph{soit} une liste de paquet, mais pas les deux." #. type: itemx #: doc/guix.texi:2891 doc/guix.texi:5784 doc/guix.texi:6925 doc/guix.texi:7333 #: doc/guix.texi:7967 doc/guix.texi:20593 #, no-wrap msgid "-s @var{system}" -msgstr "" +msgstr "-s @var{système}" #. type: table #: doc/guix.texi:2894 doc/guix.texi:5787 msgid "" -"Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the " -"system type of the build host." +"Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the" +" system type of the build host." msgstr "" +"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." #. type: item #: doc/guix.texi:2895 doc/guix.texi:5808 #, no-wrap msgid "--target=@var{triplet}" -msgstr "" +msgstr "--target=@var{triplet}" #. type: cindex #: doc/guix.texi:2896 doc/guix.texi:3322 doc/guix.texi:5809 #, no-wrap msgid "cross-compilation" -msgstr "" +msgstr "compilation croisée" #. type: table #: doc/guix.texi:2900 doc/guix.texi:5813 @@ -8222,18 +9680,21 @@ msgid "" "@code{\"mips64el-linux-gnu\"} (@pxref{Specifying target triplets, GNU " "configuration triplets,, autoconf, Autoconf})." msgstr "" +"Effectuer une compilation croisée pour @var{triplet} qui doit être un " +"triplet GNU valide, comme @code{\"mips64el-linux-gnu\"} (@pxref{Specifying " +"target triplets, GNU configuration triplets,, autoconf, Autoconf})." #. type: item #: doc/guix.texi:2901 #, no-wrap msgid "--compression=@var{tool}" -msgstr "" +msgstr "--compression=@var{outil}" #. type: itemx #: doc/guix.texi:2902 #, no-wrap msgid "-C @var{tool}" -msgstr "" +msgstr "-C @var{outil}" #. type: table #: doc/guix.texi:2905 @@ -8241,18 +9702,20 @@ msgid "" "Compress the resulting tarball using @var{tool}---one of @code{gzip}, " "@code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression." msgstr "" +"Compresser l'archive résultante avec @var{outil} — l'un des outils parmi " +"@code{bzip2}, @code{xz}, @code{lzip} ou @code{none} pour aucune compression." #. type: item #: doc/guix.texi:2906 #, no-wrap msgid "--symlink=@var{spec}" -msgstr "" +msgstr "--symlink=@var{spec}" #. type: itemx #: doc/guix.texi:2907 #, no-wrap msgid "-S @var{spec}" -msgstr "" +msgstr "-S @var{spec}" #. type: table #: doc/guix.texi:2910 @@ -8260,13 +9723,17 @@ msgid "" "Add the symlinks specified by @var{spec} to the pack. This option can " "appear several times." msgstr "" +"Ajouter les liens symboliques spécifiés par @var{spec} dans le pack. Cette " +"option peut apparaître plusieurs fois." #. type: table #: doc/guix.texi:2914 msgid "" -"@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source} " -"is the symlink that will be created and @var{target} is the symlink target." +"@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source}" +" is the symlink that will be created and @var{target} is the symlink target." msgstr "" +"@var{spec} a la forme @code{@var{source}=@var{cible}}, où @var{source} est " +"le lien symbolique qui sera créé et @var{cible} est la cible du lien." #. type: table #: doc/guix.texi:2917 @@ -8274,12 +9741,14 @@ msgid "" "For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} " "symlink pointing to the @file{bin} sub-directory of the profile." msgstr "" +"Par exemple, @code{-S /opt/gnu/bin=bin} crée un lien symbolique " +"@file{/opt/gnu/bin} qui pointe vers le sous-répertoire @file{bin} du profil." #. type: item #: doc/guix.texi:2918 #, no-wrap msgid "--localstatedir" -msgstr "" +msgstr "--localstatedir" #. type: table #: doc/guix.texi:2921 @@ -8287,6 +9756,8 @@ msgid "" "Include the ``local state directory'', @file{/var/guix}, in the resulting " "pack." msgstr "" +"Inclure le « répertoire d'état local », @file{/var/guix} dans le paquet " +"résultant." #. type: table #: doc/guix.texi:2927 @@ -8294,9 +9765,14 @@ msgid "" "@file{/var/guix} contains the store database (@pxref{The Store}) as well as " "garbage-collector roots (@pxref{Invoking guix gc}). Providing it in the " "pack means that the store is ``complete'' and manageable by Guix; not " -"providing it pack means that the store is ``dead'': items cannot be added to " -"it or removed from it after extraction of the pack." +"providing it pack means that the store is ``dead'': items cannot be added to" +" it or removed from it after extraction of the pack." msgstr "" +"@file{/var/guix} contient la base de données du dépôt (@pxref{The Store}) " +"ainsi que les racines du ramasse-miettes (@pxref{Invoking guix gc}). Le " +"fournir dans le pack signifie que le dépôt et « complet » et gérable par " +"Guix ; ne pas le fournir dans le pack signifie que le dépôt est « mort » : " +"aucun élément ne peut être ajouté ni enlevé après l'extraction du pack." #. type: table #: doc/guix.texi:2930 @@ -8304,13 +9780,17 @@ msgid "" "One use case for this is the Guix self-contained binary tarball " "(@pxref{Binary Installation})." msgstr "" +"Un cas d'utilisation est l'archive binaire indépendante de Guix " +"(@pxref{Binary Installation})." #. type: table #: doc/guix.texi:2934 msgid "" -"Use the bootstrap binaries to build the pack. This option is only useful to " -"Guix developers." +"Use the bootstrap binaries to build the pack. This option is only useful to" +" Guix developers." msgstr "" +"Utiliser les programmes d'amorçage pour construire le pack. Cette option " +"n'est utile que pour les développeurs de Guix." #. type: Plain text #: doc/guix.texi:2939 @@ -8319,33 +9799,41 @@ msgid "" "(@pxref{Common Build Options}) and all the package transformation options " "(@pxref{Package Transformation Options})." msgstr "" +"En plus, @command{guix pack} supporte toutes les options de construction " +"communes (@pxref{Common Build Options}) et toutes les options de " +"transformation de paquets (@pxref{Package Transformation Options})." #. type: section #: doc/guix.texi:2942 #, no-wrap msgid "Invoking @command{guix archive}" -msgstr "" +msgstr "Invoquer @command{guix archive}" #. type: command{#1} #: doc/guix.texi:2944 #, no-wrap msgid "guix archive" -msgstr "" +msgstr "guix archive" #. type: cindex #: doc/guix.texi:2945 #, no-wrap msgid "archive" -msgstr "" +msgstr "archive" #. type: Plain text #: doc/guix.texi:2951 msgid "" "The @command{guix archive} command allows users to @dfn{export} files from " -"the store into a single archive, and to later @dfn{import} them on a machine " -"that runs Guix. In particular, it allows store files to be transferred from " -"one machine to the store on another machine." +"the store into a single archive, and to later @dfn{import} them on a machine" +" that runs Guix. In particular, it allows store files to be transferred " +"from one machine to the store on another machine." msgstr "" +"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." #. type: quotation #: doc/guix.texi:2955 @@ -8353,23 +9841,27 @@ msgid "" "If you're looking for a way to produce archives in a format suitable for " "tools other than Guix, @pxref{Invoking guix pack}." msgstr "" +"Si vous chercher une manière de produire des archives dans un format adapté " +"pour des outils autres que Guix, @pxref{Invoking guix pack}." #. type: cindex #: doc/guix.texi:2957 #, no-wrap msgid "exporting store items" -msgstr "" +msgstr "exporter des éléments du dépôt" #. type: Plain text #: doc/guix.texi:2959 msgid "To export store files as an archive to standard output, run:" msgstr "" +"Pour exporter des fichiers du dépôt comme une archive sur la sortie " +"standard, lancez :" #. type: example #: doc/guix.texi:2962 #, no-wrap msgid "guix archive --export @var{options} @var{specifications}...\n" -msgstr "" +msgstr "guix archive --export @var{options} @var{spécifications}...\n" #. type: Plain text #: doc/guix.texi:2969 @@ -8380,12 +9872,17 @@ msgid "" "containing the @code{gui} output of the @code{git} package and the main " "output of @code{emacs}:" msgstr "" +"@var{spécifications} peut être soit des noms de fichiers soit des " +"spécifications de paquets, comme pour @command{guix package} " +"(@pxref{Invoking 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} :" #. type: example #: doc/guix.texi:2972 #, no-wrap msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n" -msgstr "" +msgstr "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n" #. type: Plain text #: doc/guix.texi:2977 @@ -8394,6 +9891,10 @@ msgid "" "automatically builds them. The build process may be controlled with the " "common build options (@pxref{Common Build Options})." msgstr "" +"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{Common Build " +"Options})." #. type: Plain text #: doc/guix.texi:2980 @@ -8401,12 +9902,14 @@ msgid "" "To transfer the @code{emacs} package to a machine connected over SSH, one " "would run:" msgstr "" +"Pour transférer le paquet @code{emacs} vers une machine connectée en SSH, on" +" pourrait lancer :" #. type: example #: doc/guix.texi:2983 #, no-wrap msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n" -msgstr "" +msgstr "guix archive --export -r emacs | ssh la-machine guix archive --import\n" #. type: Plain text #: doc/guix.texi:2988 @@ -8414,6 +9917,8 @@ msgid "" "Similarly, a complete user profile may be transferred from one machine to " "another like this:" msgstr "" +"De même, on peut transférer un profil utilisateur complet d'une machine à " +"une autre comme cela :" #. type: example #: doc/guix.texi:2992 @@ -8422,30 +9927,39 @@ msgid "" "guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n" " ssh the-machine guix-archive --import\n" msgstr "" +"guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n" +" ssh la-machine guix-archive --import\n" #. type: Plain text #: doc/guix.texi:3002 msgid "" -"However, note that, in both examples, all of @code{emacs} and the profile as " -"well as all of their dependencies are transferred (due to @code{-r}), " -"regardless of what is already available in the store on the target machine. " -"The @code{--missing} option can help figure out which items are missing from " -"the target store. The @command{guix copy} command simplifies and optimizes " -"this whole process, so this is probably what you should use in this case " -"(@pxref{Invoking guix copy})." +"However, note that, in both examples, all of @code{emacs} and the profile as" +" well as all of their dependencies are transferred (due to @code{-r}), " +"regardless of what is already available in the store on the target machine." +" The @code{--missing} option can help figure out which items are missing " +"from the target store. The @command{guix copy} command simplifies and " +"optimizes this whole process, so this is probably what you should use in " +"this case (@pxref{Invoking guix copy})." msgstr "" +"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{Invoking guix copy})." #. type: cindex #: doc/guix.texi:3003 #, no-wrap msgid "nar, archive format" -msgstr "" +msgstr "nar, format d'archive" #. type: cindex #: doc/guix.texi:3004 #, no-wrap msgid "normalized archive (nar)" -msgstr "" +msgstr "archive normalisée (nar)" #. type: Plain text #: doc/guix.texi:3014 @@ -8453,32 +9967,45 @@ msgid "" "Archives are stored in the ``normalized archive'' or ``nar'' format, which " "is comparable in spirit to `tar', but with differences that make it more " "appropriate for our purposes. First, rather than recording all Unix " -"metadata for each file, the nar format only mentions the file type (regular, " -"directory, or symbolic link); Unix permissions and owner/group are " +"metadata for each file, the nar format only mentions the file type (regular," +" directory, or symbolic link); Unix permissions and owner/group are " "dismissed. Second, the order in which directory entries are stored always " "follows the order of file names according to the C locale collation order. " "This makes archive production fully deterministic." msgstr "" +"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." #. type: Plain text #: doc/guix.texi:3020 msgid "" "When exporting, the daemon digitally signs the contents of the archive, and " -"that digital signature is appended. When importing, the daemon verifies the " -"signature and rejects the import in case of an invalid signature or if the " +"that digital signature is appended. When importing, the daemon verifies the" +" signature and rejects the import in case of an invalid signature or if the " "signing key is not authorized." msgstr "" +"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." #. type: Plain text #: doc/guix.texi:3022 msgid "The main options are:" -msgstr "" +msgstr "Les principales options sont :" #. type: item #: doc/guix.texi:3024 #, no-wrap msgid "--export" -msgstr "" +msgstr "--export" #. type: table #: doc/guix.texi:3027 @@ -8486,55 +10013,67 @@ msgid "" "Export the specified store files or packages (see below.) Write the " "resulting archive to the standard output." msgstr "" +"Exporter les fichiers ou les paquets du dépôt (voir plus bas). Écrire " +"l'archive résultante sur la sortie standard." #. type: table #: doc/guix.texi:3030 msgid "" -"Dependencies are @emph{not} included in the output, unless @code{--" -"recursive} is passed." +"Dependencies are @emph{not} included in the output, unless " +"@code{--recursive} is passed." msgstr "" +"Les dépendances ne sont @emph{pas} incluses dans la sortie à moins que " +"@code{--recursive} ne soit passé." #. type: itemx #: doc/guix.texi:3031 doc/guix.texi:6080 #, no-wrap msgid "-r" -msgstr "" +msgstr "-r" #. type: item #: doc/guix.texi:3032 doc/guix.texi:6079 #, no-wrap msgid "--recursive" -msgstr "" +msgstr "--recursive" #. type: table #: doc/guix.texi:3037 msgid "" -"When combined with @code{--export}, this instructs @command{guix archive} to " -"include dependencies of the given items in the archive. Thus, the resulting " -"archive is self-contained: it contains the closure of the exported store " -"items." +"When combined with @code{--export}, this instructs @command{guix archive} to" +" include dependencies of the given items in the archive. Thus, the " +"resulting archive is self-contained: it contains the closure of the exported" +" store items." msgstr "" +"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." #. type: item #: doc/guix.texi:3038 #, no-wrap msgid "--import" -msgstr "" +msgstr "--import" #. type: table #: doc/guix.texi:3043 msgid "" -"Read an archive from the standard input, and import the files listed therein " -"into the store. Abort if the archive has an invalid digital signature, or " -"if it is signed by a public key not among the authorized keys (see @code{--" -"authorize} below.)" +"Read an archive from the standard input, and import the files listed therein" +" into the store. Abort if the archive has an invalid digital signature, or " +"if it is signed by a public key not among the authorized keys (see " +"@code{--authorize} below.)" msgstr "" +"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.)" #. type: item #: doc/guix.texi:3044 #, no-wrap msgid "--missing" -msgstr "" +msgstr "--missing" #. type: table #: doc/guix.texi:3048 @@ -8543,18 +10082,21 @@ msgid "" "write on the standard output the subset of these files missing from the " "store." msgstr "" +"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." #. type: item #: doc/guix.texi:3049 #, no-wrap msgid "--generate-key[=@var{parameters}]" -msgstr "" +msgstr "--generate-key[=@var{paramètres}]" #. type: cindex #: doc/guix.texi:3050 #, no-wrap msgid "signing, archives" -msgstr "" +msgstr "signature, archives" #. type: table #: doc/guix.texi:3055 @@ -8564,31 +10106,43 @@ msgid "" "usually takes time, because it needs to gather enough entropy to generate " "the key pair." msgstr "" +"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." #. type: table #: doc/guix.texi:3065 msgid "" "The generated key pair is typically stored under @file{/etc/guix}, in " -"@file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, " -"which must be kept secret.) When @var{parameters} is omitted, an ECDSA key " -"using the Ed25519 curve is generated, or, for Libgcrypt versions before " +"@file{signing-key.pub} (public key) and @file{signing-key.sec} (private key," +" which must be kept secret.) When @var{parameters} is omitted, an ECDSA key" +" using the Ed25519 curve is generated, or, for Libgcrypt versions before " "1.6.0, it is a 4096-bit RSA key. Alternatively, @var{parameters} can " "specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General " "public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt " "Reference Manual})." msgstr "" +"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})." #. type: item #: doc/guix.texi:3066 #, no-wrap msgid "--authorize" -msgstr "" +msgstr "--authorize" #. type: cindex #: doc/guix.texi:3067 #, no-wrap msgid "authorizing, archives" -msgstr "" +msgstr "autorisation, archives" #. type: table #: doc/guix.texi:3071 @@ -8597,28 +10151,38 @@ msgid "" "public key must be in ``s-expression advanced format''---i.e., the same " "format as the @file{signing-key.pub} file." msgstr "" +"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}." #. type: table #: doc/guix.texi:3078 msgid "" -"The list of authorized keys is kept in the human-editable file @file{/etc/" -"guix/acl}. The file contains @url{http://people.csail.mit.edu/rivest/Sexp." -"txt, ``advanced-format s-expressions''} and is structured as an access-" -"control list in the @url{http://theworld.com/~cme/spki.txt, Simple Public-" -"Key Infrastructure (SPKI)}." +"The list of authorized keys is kept in the human-editable file " +"@file{/etc/guix/acl}. The file contains " +"@url{http://people.csail.mit.edu/rivest/Sexp.txt, ``advanced-format " +"s-expressions''} and is structured as an access-control list in the " +"@url{http://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure " +"(SPKI)}." msgstr "" +"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)}." #. type: item #: doc/guix.texi:3079 #, no-wrap msgid "--extract=@var{directory}" -msgstr "" +msgstr "--extract=@var{répertoire}" #. type: itemx #: doc/guix.texi:3080 #, no-wrap msgid "-x @var{directory}" -msgstr "" +msgstr "-x @var{répertoire}" #. type: table #: doc/guix.texi:3084 @@ -8628,9 +10192,9 @@ msgid "" "level operation needed in only very narrow use cases; see below." msgstr "" "Lit une archive à un seul élément telle que servie par un serveur de " -"substituts (@pxref{Substituts}) et l'extrait dans @var{directory}. C'est une " -"opération de bas niveau requise seulement dans de rares cas d'usage ; voir " -"plus loin." +"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." #. type: table #: doc/guix.texi:3087 @@ -8638,6 +10202,8 @@ msgid "" "For example, the following command extracts the substitute for Emacs served " "by @code{hydra.gnu.org} to @file{/tmp/emacs}:" msgstr "" +"Par exemple, la commande suivante extrait le substitut pour Emacs servi par " +"@code{hydra.gnu.org} dans @file{/tmp/emacs} :" #. type: example #: doc/guix.texi:3092 @@ -8647,6 +10213,9 @@ msgid "" " https://hydra.gnu.org/nar/@dots{}-emacs-24.5 \\\n" " | bunzip2 | guix archive -x /tmp/emacs\n" msgstr "" +"$ wget -O - \\\n" +" https://hydra.gnu.org/nar/@dots{}-emacs-24.5 \\\n" +" | bunzip2 | guix archive -x /tmp/emacs\n" #. type: table #: doc/guix.texi:3099 @@ -8656,13 +10225,21 @@ msgid "" "do @emph{not} embed a signature. Thus this operation does @emph{no} " "signature verification and its output should be considered unsafe." msgstr "" +"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." #. type: table #: doc/guix.texi:3102 msgid "" -"The primary purpose of this operation is to facilitate inspection of archive " -"contents coming from possibly untrusted substitute servers." +"The primary purpose of this operation is to facilitate inspection of archive" +" contents coming from possibly untrusted substitute servers." msgstr "" +"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." #. type: Plain text #: doc/guix.texi:3115 @@ -8674,16 +10251,30 @@ msgid "" "its dependencies. These definitions can then be turned into concrete build " "actions." msgstr "" +"GNU Guix fournit diverses interface de programmation Scheme (API) qui pour " +"définir, construire et faire des requêtes sur des paquets. La première " +"interface permet aux utilisateurs d'écrire des définitions de paquets de " +"haut-niveau. Ces définitions se réfèrent à des concepts de création de " +"paquets familiers, comme le nom et la version du paquet, son système de " +"construction et ses dépendances. Ces définitions peuvent ensuite être " +"transformées en actions concrètes lors de la construction." #. type: Plain text #: doc/guix.texi:3121 msgid "" "Build actions are performed by the Guix daemon, on behalf of users. In a " -"standard setup, the daemon has write access to the store---the @file{/gnu/" -"store} directory---whereas users do not. The recommended setup also has the " -"daemon perform builds in chroots, under a specific build users, to minimize " -"interference with the rest of the system." +"standard setup, the daemon has write access to the store---the " +"@file{/gnu/store} directory---whereas users do not. The recommended setup " +"also has the daemon perform builds in chroots, under a specific build users," +" to minimize interference with the rest of the system." msgstr "" +"Les actions de construction sont effectuées par le démon Guix, pour le " +"compte des utilisateurs. Dans un environnement standard, le démon possède " +"les droits en écriture sur le dépôt — le répertoire @file{/gnu/store} — mais" +" pas les utilisateurs. La configuration recommandée permet aussi au démon " +"d'effectuer la construction dans des chroots, avec un utilisateur de " +"construction spécifique pour minimiser les interférences avec le reste du " +"système." #. type: Plain text #: doc/guix.texi:3130 @@ -8696,6 +10287,14 @@ msgid "" "term ``derivation'' comes from the fact that build results @emph{derive} " "from them." msgstr "" +"Il y a des API de plus bas niveau pour interagir avec le démon et le dépôt." +" Pour demander au démon d'effectuer une action de construction, les " +"utilisateurs lui donnent en fait une @dfn{dérivation}. Une dérivation est " +"une représentation à bas-niveau des actions de construction à entreprendre " +"et l'environnement dans lequel elles devraient avoir lieu — les dérivations " +"sont aux définitions de paquets ce que l'assembleur est aux programmes C. " +"Le terme de « dérivation » vient du fait que les résultats de la " +"construction en @emph{dérivent}." #. type: Plain text #: doc/guix.texi:3133 @@ -8703,6 +10302,8 @@ msgid "" "This chapter describes all these APIs in turn, starting from high-level " "package definitions." msgstr "" +"Ce chapitre décrit toutes ces API tour à tour, à partir des définitions de " +"paquets à haut-niveau." #. type: Plain text #: doc/guix.texi:3150 @@ -8712,6 +10313,10 @@ msgid "" "example, the package definition, or @dfn{recipe}, for the GNU Hello package " "looks like this:" msgstr "" +"L'interface de haut-niveau pour les définitions de paquets est implémentée " +"dans les modules @code{(guix packages)} et @code{(guix build-system)}. Par " +"exemple, la définition du paquet, ou la @dfn{recette}, du paquet GNU Hello " +"ressemble à cela :" #. type: example #: doc/guix.texi:3158 @@ -8725,6 +10330,13 @@ msgid "" " #:use-module (gnu packages gawk))\n" "\n" msgstr "" +"(define-module (gnu packages hello)\n" +" #:use-module (guix packages)\n" +" #:use-module (guix download)\n" +" #:use-module (guix build-system gnu)\n" +" #:use-module (guix licenses)\n" +" #:use-module (gnu packages gawk))\n" +"\n" #. type: example #: doc/guix.texi:3177 @@ -8749,18 +10361,43 @@ msgid "" " (home-page \"http://www.gnu.org/software/hello/\")\n" " (license gpl3+)))\n" msgstr "" +"(define-public hello\n" +" (package\n" +" (name \"hello\")\n" +" (version \"2.10\")\n" +" (source (origin\n" +" (method url-fetch)\n" +" (uri (string-append \"mirror://gnu/hello/hello-\" version\n" +" \".tar.gz\"))\n" +" (sha256\n" +" (base32\n" +" \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"))))\n" +" (build-system gnu-build-system)\n" +" (arguments '(#:configure-flags '(\"--enable-silent-rules\")))\n" +" (inputs `((\"gawk\" ,gawk)))\n" +" (synopsis \"Hello, GNU world: An example GNU package\")\n" +" (description \"Guess what GNU Hello prints!\")\n" +" (home-page \"http://www.gnu.org/software/hello/\")\n" +" (license gpl3+)))\n" #. type: Plain text #: doc/guix.texi:3187 msgid "" "Without being a Scheme expert, the reader may have guessed the meaning of " -"the various fields here. This expression binds the variable @code{hello} to " -"a @code{} object, which is essentially a record (@pxref{SRFI-9, " +"the various fields here. This expression binds the variable @code{hello} to" +" a @code{} object, which is essentially a record (@pxref{SRFI-9, " "Scheme records,, guile, GNU Guile Reference Manual}). This package object " "can be inspected using procedures found in the @code{(guix packages)} " -"module; for instance, @code{(package-name hello)} returns---surprise!---" -"@code{\"hello\"}." +"module; for instance, @code{(package-name hello)} returns---" +"surprise!---@code{\"hello\"}." msgstr "" +"Sans être un expert Scheme, le lecteur peut comprendre la signification des " +"différents champs présents. Cette expression lie la variable @code{hello} à" +" un objet @code{}, qui est essentiellement un enregistrement " +"(@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}). On " +"peut inspecter cet objet de paquet avec les procédures qui se trouvent dans " +"le module @code{(guix packages)} ; par exemple, @code{(package-name hello)} " +"renvoie — oh surprise ! — @code{\"hello\"}." #. type: Plain text #: doc/guix.texi:3191 @@ -8769,6 +10406,9 @@ msgid "" "package you are interested in from another repository, using the @code{guix " "import} command (@pxref{Invoking guix import})." msgstr "" +"Avec un peu de chance, vous pourrez importer tout ou partie de la définition" +" du paquet qui vous intéresse depuis un autre répertoire avec la commande " +"@code{guix import} (@pxref{Invoking guix import})." #. type: Plain text #: doc/guix.texi:3197 @@ -8779,20 +10419,30 @@ msgid "" "@code{(gnu packages @dots{})} are automatically known to the command-line " "tools (@pxref{Package Modules})." msgstr "" +"Dans l'exemple précédent, @var{hello} est défini dans un module à part, " +"@code{(gnu packages hello)}. Techniquement, cela n'est pas strictement " +"nécessaire, mais c'est pratique : tous les paquets définis dans des modules " +"sous @code{(gnu packages @dots{})} sont automatiquement connus des outils en" +" ligne de commande (@pxref{Package Modules})." #. type: Plain text #: doc/guix.texi:3199 msgid "There are a few points worth noting in the above package definition:" msgstr "" +"Il y a quelques points à remarquer dans la définition de paquet précédente :" #. type: itemize #: doc/guix.texi:3206 msgid "" "The @code{source} field of the package is an @code{} object " -"(@pxref{origin Reference}, for the complete reference). Here, the @code{url-" -"fetch} method from @code{(guix download)} is used, meaning that the source " -"is a file to be downloaded over FTP or HTTP." +"(@pxref{origin Reference}, for the complete reference). Here, the " +"@code{url-fetch} method from @code{(guix download)} is used, meaning that " +"the source is a file to be downloaded over FTP or HTTP." msgstr "" +"Le champ @code{source} du paquet est un objet @code{} (@pxref{origin" +" Reference}, pour la référence complète). Ici, on utilise la méthode " +"@code{url-fetch} de @code{(guix download)}, ce qui signifie que la source " +"est un fichier à télécharger par FTP ou HTTP." #. type: itemize #: doc/guix.texi:3209 @@ -8800,23 +10450,31 @@ msgid "" "The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the " "GNU mirrors defined in @code{(guix download)}." msgstr "" +"Le préfixe @code{mirror://gnu} demande à @code{url-fetch} d'utiliser l'un " +"des miroirs GNU définis dans @code{(guix download)}." #. type: itemize #: doc/guix.texi:3216 msgid "" -"The @code{sha256} field specifies the expected SHA256 hash of the file being " -"downloaded. It is mandatory, and allows Guix to check the integrity of the " -"file. The @code{(base32 @dots{})} form introduces the base32 representation " -"of the hash. You can obtain this information with @code{guix download} " -"(@pxref{Invoking guix download}) and @code{guix hash} (@pxref{Invoking guix " -"hash})." +"The @code{sha256} field specifies the expected SHA256 hash of the file being" +" downloaded. It is mandatory, and allows Guix to check the integrity of the" +" file. The @code{(base32 @dots{})} form introduces the base32 " +"representation of the hash. You can obtain this information with @code{guix" +" download} (@pxref{Invoking guix download}) and @code{guix hash} " +"(@pxref{Invoking guix hash})." msgstr "" +"Le champ @code{sha256} spécifie le hash SHA256 attendu pour le fichier " +"téléchargé. Il est requis et permet à Guix de vérifier l'intégrité du " +"fichier. La forme @code{(base32 @dots{})} introduit a représentation en " +"base32 du hash. Vous pouvez obtenir cette information avec @code{guix " +"download} (@pxref{Invoking guix download}) et @code{guix hash} " +"(@pxref{Invoking guix hash})." #. type: cindex #: doc/guix.texi:3217 #, no-wrap msgid "patches" -msgstr "" +msgstr "correctifs" #. type: itemize #: doc/guix.texi:3221 @@ -8825,12 +10483,15 @@ msgid "" "listing patches to be applied, and a @code{snippet} field giving a Scheme " "expression to modify the source code." msgstr "" +"Lorsque cela est requis, la forme @code{origin} peut aussi avec un champ " +"@code{patches} qui liste les correctifs à appliquer et un champ " +"@code{snippet} qui donne une expression Scheme pour modifier le code source." #. type: cindex #: doc/guix.texi:3223 #, no-wrap msgid "GNU Build System" -msgstr "" +msgstr "Système de construction GNU" #. type: itemize #: doc/guix.texi:3229 @@ -8841,32 +10502,42 @@ msgid "" "installed with the usual @code{./configure && make && make check && make " "install} command sequence." msgstr "" +"Le champ @code{build-system} spécifie la procédure pour construire le paquet" +" (@pxref{Build Systems}). Ici, @var{gnu-build-system} représente le système" +" de construction GNU familier, où les paquets peuvent être configurés, " +"construits et installés avec la séquence @code{./configure && make && make " +"check && make install} habituelle." #. type: itemize #: doc/guix.texi:3235 msgid "" "The @code{arguments} field specifies options for the build system " "(@pxref{Build Systems}). Here it is interpreted by @var{gnu-build-system} " -"as a request run @file{configure} with the @code{--enable-silent-rules} flag." +"as a request run @file{configure} with the @code{--enable-silent-rules} " +"flag." msgstr "" +"Le champ @code{arguments} spécifie des options pour le système de " +"construction (@pxref{Build Systems}). Ici il est interprété par @var{gnu-" +"build-system} comme une demande de lancer @file{configure} avec le drapeau " +"@code{--enable-silent-rules}." #. type: findex #: doc/guix.texi:3236 doc/guix.texi:3239 #, no-wrap msgid "quote" -msgstr "" +msgstr "quote" #. type: cindex #: doc/guix.texi:3237 #, no-wrap msgid "quoting" -msgstr "" +msgstr "quoting" #. type: findex #: doc/guix.texi:3238 #, no-wrap msgid "'" -msgstr "" +msgstr "'" #. type: itemize #: doc/guix.texi:3247 @@ -8878,15 +10549,28 @@ msgid "" "arguments passed to the build system down the road, as with @code{apply} " "(@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})." msgstr "" +"Que sont ces apostrophes (@code{'}) ? C'est de la syntaxe Scheme pour " +"introduire une liste ; @code{'} est synonyme de la fonction @code{quote}. " +"@xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, pour " +"des détails. Ice la valeur du champ @code{arguments} est une liste " +"d'arguments passés au système de construction plus tard, comme avec " +"@code{apply} (@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile " +"Reference Manual})." #. type: itemize #: doc/guix.texi:3253 msgid "" "The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} " -"(@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and @code{#:" -"configure-flags} is a keyword used to pass a keyword argument to the build " -"system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})." +"(@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and " +"@code{#:configure-flags} is a keyword used to pass a keyword argument to the" +" build system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference " +"Manual})." msgstr "" +"La séquence dièse-deux-points (@code{#:}) définie un @dfn{mot-clef} Scheme " +"(@pxref{Keywords,,, guile, GNU Guile Reference Manual}), et " +"@code{#:configure-flags} est un mot-clef utilisé pour passer un argument au " +"système de construction (@pxref{Coding With Keywords,,, guile, GNU Guile " +"Reference Manual})." #. type: itemize #: doc/guix.texi:3259 @@ -8896,54 +10580,58 @@ msgid "" "called @code{\"gawk\"} whose value is that of the @var{gawk} variable; " "@var{gawk} is itself bound to a @code{} object." msgstr "" +"Le champ @code{inputs} spécifie les entrées du processus de construction — " +"c.-à-d.@: les dépendances à la construction ou à l'exécution du paquet. Ici" +" on définie une entrée nommée @code{\"gawk\"} dont la valeur est la variable" +" @var{gawk} ; @var{gawk} est elle-même liée à un objet @code{}." #. type: cindex #: doc/guix.texi:3260 #, no-wrap msgid "backquote (quasiquote)" -msgstr "" +msgstr "accent grave (quasiquote)" #. type: findex #: doc/guix.texi:3261 #, no-wrap msgid "`" -msgstr "" +msgstr "`" #. type: findex #: doc/guix.texi:3262 #, no-wrap msgid "quasiquote" -msgstr "" +msgstr "quasiquote" #. type: cindex #: doc/guix.texi:3263 #, no-wrap msgid "comma (unquote)" -msgstr "" +msgstr "virgule (unquote)" #. type: findex #: doc/guix.texi:3264 #, no-wrap msgid "," -msgstr "" +msgstr "," #. type: findex #: doc/guix.texi:3265 #, no-wrap msgid "unquote" -msgstr "" +msgstr "unquote" #. type: findex #: doc/guix.texi:3266 #, no-wrap msgid ",@@" -msgstr "" +msgstr ",@@" #. type: findex #: doc/guix.texi:3267 #, no-wrap msgid "unquote-splicing" -msgstr "" +msgstr "unquote-splicing" #. type: itemize #: doc/guix.texi:3273 @@ -8954,6 +10642,11 @@ msgid "" "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})." #. type: itemize #: doc/guix.texi:3277 @@ -8962,6 +10655,10 @@ msgid "" "specified as inputs here. Instead, @var{gnu-build-system} takes care of " "ensuring that they are present (@pxref{Build Systems})." msgstr "" +"Remarquez que GCC, Coreutils, Bash et les autres outils essentiels n'ont pas" +" besoin d'être spécifiés en tant qu'entrées ici. À la place, le @var{gnu-" +"build-system} est en charge de s'assurer qu'ils sont présents (@pxref{Build " +"Systems})." #. type: itemize #: doc/guix.texi:3281 @@ -8970,30 +10667,45 @@ msgid "" "field. Any dependency not specified here will simply be unavailable to the " "build process, possibly leading to a build failure." msgstr "" +"Cependant, toutes les autres dépendances doivent être spécifiées dans le " +"champ @code{inputs}. Toute dépendance qui ne serait pas spécifiée ici sera " +"simplement indisponible pour le processus de construction, ce qui peut mener" +" à un échec de la construction." #. type: Plain text #: doc/guix.texi:3284 msgid "@xref{package Reference}, for a full description of possible fields." msgstr "" +"@xref{package Reference}, pour une description complète des champs " +"possibles." #. type: Plain text #: doc/guix.texi:3295 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 " +"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." #. type: vindex #: doc/guix.texi:3295 #, no-wrap msgid "GUIX_PACKAGE_PATH" -msgstr "" +msgstr "GUIX_PACKAGE_PATH" #. type: Plain text #: doc/guix.texi:3299 @@ -9002,30 +10714,45 @@ msgid "" "distribution by adding your own package definitions to " "@code{GUIX_PACKAGE_PATH}." msgstr "" +"Enfin, @pxref{Package Modules} pour des informations sur la manière " +"d'étendre la distribution en ajoutant vos propres définitions de paquets " +"dans @code{GUIX_PACKAGE_PATH}." #. type: Plain text #: doc/guix.texi:3303 msgid "" "Finally, updating the package definition to a new upstream version can be " -"partly automated by the @command{guix refresh} command (@pxref{Invoking guix " -"refresh})." +"partly automated by the @command{guix refresh} command (@pxref{Invoking guix" +" refresh})." msgstr "" +"Finalement, la mise à jour de la définition du paquet à une nouvelle version" +" amont peut en partie s'automatiser avec la commande @command{guix refresh} " +"(@pxref{Invoking guix refresh})." #. type: Plain text #: doc/guix.texi:3309 msgid "" -"Behind the scenes, a derivation corresponding to the @code{} object " -"is first computed by the @code{package-derivation} procedure. That " +"Behind the scenes, a derivation corresponding to the @code{} object" +" is first computed by the @code{package-derivation} procedure. That " "derivation is stored in a @code{.drv} file under @file{/gnu/store}. The " "build actions it prescribes may then be realized by using the @code{build-" "derivations} procedure (@pxref{The Store})." msgstr "" +"Sous le capot, une dérivation qui correspond à un objet @code{} est" +" d'abord calculé par la procédure @code{package-derivation}. Cette " +"dérivation est stockée dans un fichier @code{.drv} dans @file{/gnu/store}. " +"Les actions de construction qu'il prescrit peuvent ensuite être réalisées " +"par la procédure @code{build-derivation} (@pxref{The Store})." #. type: deffn #: doc/guix.texi:3310 #, no-wrap -msgid "{Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]" +msgid "" +"{Scheme Procedure} package-derivation @var{store} @var{package} " +"[@var{system}]" msgstr "" +"{Procédure Scheme} package-derivation @var{dépôt} @var{paquet} " +"[@var{système}]" #. type: deffn #: doc/guix.texi:3313 @@ -9033,15 +10760,21 @@ msgid "" "Return the @code{} object of @var{package} for @var{system} " "(@pxref{Derivations})." msgstr "" +"Renvoie l'objet @code{} du @var{paquet} pour le @var{système} " +"(@pxref{Derivations})." #. type: deffn #: doc/guix.texi:3319 msgid "" -"@var{package} must be a valid @code{} object, and @var{system} must " -"be a string denoting the target system type---e.g., @code{\"x86_64-linux\"} " -"for an x86_64 Linux-based GNU system. @var{store} must be a connection to " +"@var{package} must be a valid @code{} object, and @var{system} must" +" be a string denoting the target system type---e.g., @code{\"x86_64-linux\"}" +" for an x86_64 Linux-based GNU system. @var{store} must be a connection to " "the daemon, which operates on the store (@pxref{The Store})." msgstr "" +"@var{paquet} doit être un objet @code{} valide et @var{système} une" +" chaîne indiquant le type de système cible — p.ex.@: @code{\"x86_64-linux\"}" +" pour un système GNU x86_64 basé sur Linux. @var{dépôt} doit être une " +"connexion au démon, qui opère sur les dépôt (@pxref{The Store})." #. type: Plain text #: doc/guix.texi:3325 @@ -9049,12 +10782,14 @@ msgid "" "Similarly, it is possible to compute a derivation that cross-builds a " "package for some other system:" msgstr "" +"De manière identique, il est possible de calculer une dérivation qui " +"effectue une compilation croisée d'un paquet pour un autre système :" #. type: deffn #: doc/guix.texi:3326 #, no-wrap msgid "{Scheme Procedure} package-cross-derivation @var{store} @" -msgstr "" +msgstr "{Procédure Scheme} package-cross-derivation @var{dépôt} @" #. type: deffn #: doc/guix.texi:3330 @@ -9062,6 +10797,8 @@ 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}." #. type: deffn #: doc/guix.texi:3335 @@ -9071,24 +10808,28 @@ msgid "" "(@pxref{Configuration Names, GNU configuration triplets,, configure, GNU " "Configure and Build System})." msgstr "" +"@var{cible} doit être un triplet GNU valide indiquant le matériel cible et " +"le système d'exploitation, comme @code{\"mips64el-linux-gnu\"} " +"(@pxref{Configuration Names, GNU configuration triplets,, configure, GNU " +"Configure and Build System})." #. type: cindex #: doc/guix.texi:3337 #, no-wrap msgid "package transformations" -msgstr "" +msgstr "transformations de paquets" #. type: cindex #: doc/guix.texi:3338 #, no-wrap msgid "input rewriting" -msgstr "" +msgstr "réécriture d'entrées" #. type: cindex #: doc/guix.texi:3339 #, no-wrap msgid "dependency tree rewriting" -msgstr "" +msgstr "réécriture de l'arbre des dépendances" #. type: Plain text #: doc/guix.texi:3343 @@ -9097,12 +10838,16 @@ msgid "" "transformation is @dfn{input rewriting}, whereby the dependency tree of a " "package is rewritten by replacing specific inputs by others:" msgstr "" +"On peut manipuler les paquets de manière arbitraire. Une transformation " +"utile est par exemple la @dfn{réécriture d'entrées} où l'arbre des " +"dépendances d'un paquet est réécrit en replaçant des entrées spécifiques par" +" d'autres :" #. type: deffn #: doc/guix.texi:3344 #, no-wrap msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @" -msgstr "" +msgstr "{Procédure Scheme} package-input-rewriting @var{remplacements} @" #. type: deffn #: doc/guix.texi:3351 @@ -9113,6 +10858,11 @@ msgid "" "pairs; the first element of each pair is the package to replace, and the " "second one is the replacement." msgstr "" +"[@var{nom-réécrit}] Renvoie une procédure qui, lorsqu'on lui donne un " +"paquet, remplace des dépendances directes et indirectes (mais pas ses " +"entrées implicites) en fonction de @var{remplacements}. @var{remplacements}" +" est une liste de paires de paquets ; le premier élément de chaque pair est " +"le paquet à remplacer, le second son remplaçant." #. type: deffn #: doc/guix.texi:3354 @@ -9120,11 +10870,14 @@ msgid "" "Optionally, @var{rewrite-name} is a one-argument procedure that takes the " "name of a package and returns its new name after rewrite." msgstr "" +"De manière facultative, @var{nom-réécrit} est une procédure à un argument " +"qui prend le nom d'un paquet et renvoie son nouveau nom après l'avoir " +"réécrit." #. type: Plain text #: doc/guix.texi:3358 msgid "Consider this example:" -msgstr "" +msgstr "Regardez cet exemple :" #. type: example #: doc/guix.texi:3364 @@ -9136,6 +10889,11 @@ msgid "" " (package-input-rewriting `((,openssl . ,libressl))))\n" "\n" msgstr "" +"(define libressl-instead-of-openssl\n" +" ;; Cette procédure remplace OPENSSL par LIBRESSL,\n" +" ;; récursivement.\n" +" (package-input-rewriting `((,openssl . ,libressl))))\n" +"\n" #. type: example #: doc/guix.texi:3367 @@ -9144,6 +10902,8 @@ msgid "" "(define git-with-libressl\n" " (libressl-instead-of-openssl git))\n" msgstr "" +"(define git-with-libressl\n" +" (libressl-instead-of-openssl git))\n" #. type: Plain text #: doc/guix.texi:3375 @@ -9154,6 +10914,12 @@ msgid "" "what the @option{--with-input} command-line option does (@pxref{Package " "Transformation Options, @option{--with-input}})." msgstr "" +"Ici nous définissons d'abord une procédure de réécriture qui remplace " +"@var{openssl} par @var{libressl}. Ensuite nous l'utilisons pour définir une" +" @dfn{variante} du paquet @var{git} qui utilise @var{libressl} plutôt que " +"@var{openssl}. cela est exactement ce que l'option en ligne de commande " +"@option{--with-input} fait (@pxref{Package Transformation Options, " +"@option{--with-input}})." #. type: Plain text #: doc/guix.texi:3379 @@ -9161,26 +10927,32 @@ msgid "" "A more generic procedure to rewrite a package dependency graph is " "@code{package-mapping}: it supports arbitrary changes to nodes in the graph." msgstr "" +"Une procédure plus générique pour réécrire un graphe de dépendance d'un " +"paquet est @code{package-mapping} : elle supporte n'importe quel changement " +"dans les nœuds du graphe." #. type: deffn #: doc/guix.texi:3380 #, no-wrap msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}]" -msgstr "" +msgstr "{Procédure Scheme} package-mapping @var{proc} [@var{cut?}]" #. type: deffn #: doc/guix.texi:3384 msgid "" "Return a procedure that, given a package, applies @var{proc} to all the " -"packages depended on and returns the resulting package. The procedure stops " -"recursion when @var{cut?} returns true for a given package." +"packages depended on and returns the resulting package. The procedure stops" +" recursion when @var{cut?} returns true for a given package." msgstr "" +"Renvoie une procédure qui, avec un paquet, applique @var{proc} sur tous les " +"paquets dont il dépend et renvoie le paquet qui en résulte. La procédure " +"arrête la récursion là où @var{cut?} renvoie vrai pour un paquet donné." #. type: subsection #: doc/guix.texi:3393 #, no-wrap msgid "@code{package} Reference" -msgstr "" +msgstr "Référence de @code{package}" #. type: Plain text #: doc/guix.texi:3397 @@ -9188,39 +10960,41 @@ msgid "" "This section summarizes all the options available in @code{package} " "declarations (@pxref{Defining Packages})." msgstr "" +"Cette section résume toutes les options disponibles dans les déclarations " +"@code{package} (@pxref{Defining Packages})." #. type: deftp #: doc/guix.texi:3398 #, no-wrap msgid "{Data Type} package" -msgstr "" +msgstr "{Type de donnée} package" #. type: deftp #: doc/guix.texi:3400 msgid "This is the data type representing a package recipe." -msgstr "" +msgstr "C'est le type de donnée représentant une recette de paquets" #. type: table #: doc/guix.texi:3404 msgid "The name of the package, as a string." -msgstr "" +msgstr "Le nom du paquet, comme une chaîne de caractères." #. type: code{#1} #: doc/guix.texi:3405 #, no-wrap msgid "version" -msgstr "" +msgstr "version" #. type: table #: doc/guix.texi:3407 msgid "The version of the package, as a string." -msgstr "" +msgstr "La version du paquet, comme une chaîne de caractères." #. type: code{#1} #: doc/guix.texi:3408 doc/guix.texi:6743 doc/guix.texi:9281 doc/guix.texi:9569 #, no-wrap msgid "source" -msgstr "" +msgstr "source" #. type: table #: doc/guix.texi:3415 @@ -9228,15 +11002,21 @@ msgid "" "An object telling how the source code for the package should be acquired. " "Most of the time, this is an @code{origin} object, which denotes a file " "fetched from the Internet (@pxref{origin Reference}). It can also be any " -"other ``file-like'' object such as a @code{local-file}, which denotes a file " -"from the local file system (@pxref{G-Expressions, @code{local-file}})." +"other ``file-like'' object such as a @code{local-file}, which denotes a file" +" from the local file system (@pxref{G-Expressions, @code{local-file}})." msgstr "" +"Un objet qui indique comment le code source du paquet devrait être récupéré." +" La plupart du temps, c'est un objet @code{origin} qui indique un fichier " +"récupéré depuis internet (@pxref{origin Reference}). Il peut aussi s'agir " +"de tout autre objet ``simili-fichier'' comme un @code{local-file} qui " +"indique un fichier du système de fichier local (@pxref{G-Expressions, " +"@code{local-file}})." #. type: code{#1} #: doc/guix.texi:3416 #, no-wrap msgid "build-system" -msgstr "" +msgstr "build-system" #. type: table #: doc/guix.texi:3419 @@ -9244,12 +11024,14 @@ msgid "" "The build system that should be used to build the package (@pxref{Build " "Systems})." msgstr "" +"Le système de construction qui devrait être utilisé pour construire le " +"paquet (@pxref{Build Systems})." #. type: item #: doc/guix.texi:3420 doc/guix.texi:11018 #, no-wrap msgid "@code{arguments} (default: @code{'()})" -msgstr "" +msgstr "@code{arguments} (par défaut : @code{'()})" #. type: table #: doc/guix.texi:3423 @@ -9257,30 +11039,32 @@ msgid "" "The arguments that should be passed to the build system. This is a list, " "typically containing sequential keyword-value pairs." msgstr "" +"Les arguments à passer au système de construction. C'est une liste qui " +"contient typiquement une séquence de paires de clefs-valeurs." #. type: item #: doc/guix.texi:3424 #, no-wrap msgid "@code{inputs} (default: @code{'()})" -msgstr "" +msgstr "@code{inputs} (par défaut : @code{'()})" #. type: itemx #: doc/guix.texi:3425 #, no-wrap msgid "@code{native-inputs} (default: @code{'()})" -msgstr "" +msgstr "@code{native-inputs} (par défaut : @code{'()})" #. type: itemx #: doc/guix.texi:3426 #, no-wrap msgid "@code{propagated-inputs} (default: @code{'()})" -msgstr "" +msgstr "@code{propagated-inputs} (par défaut : @code{'()})" #. type: cindex #: doc/guix.texi:3427 #, no-wrap msgid "inputs, of packages" -msgstr "" +msgstr "entrées, des paquets" #. type: table #: doc/guix.texi:3435 @@ -9289,9 +11073,16 @@ msgid "" "tuples, where each tuple has a label for the input (a string) as its first " "element, a package, origin, or derivation as its second element, and " "optionally the name of the output thereof that should be used, which " -"defaults to @code{\"out\"} (@pxref{Packages with Multiple Outputs}, for more " -"on package outputs). For example, the list below specifies three inputs:" +"defaults to @code{\"out\"} (@pxref{Packages with Multiple Outputs}, for more" +" on package outputs). For example, the list below specifies three inputs:" msgstr "" +"Ces champs listent les dépendances du paquet. Chacune est une liste de " +"tuples, où chaque tuple a une étiquette pour une entrée (une chaîne de " +"caractères) comme premier élément, un paquet, une origine ou une dérivation " +"comme deuxième élément et éventuellement le nom d'une sortie à utiliser qui " +"est @code{\"out\"} par défaut (@pxref{Packages with Multiple Outputs}, pour " +"plus d'informations sur les sorties des paquets). Par exemple, la liste " +"suivante spécifie trois entrées :" #. type: example #: doc/guix.texi:3440 @@ -9301,12 +11092,15 @@ msgid "" " (\"libunistring\" ,libunistring)\n" " (\"glib:bin\" ,glib \"bin\")) ;the \"bin\" output of Glib\n" msgstr "" +"`((\"libffi\" ,libffi)\n" +" (\"libunistring\" ,libunistring)\n" +" (\"glib:bin\" ,glib \"bin\")) ;la sortie \"bin\" de Glib\n" #. type: cindex #: doc/guix.texi:3442 #, no-wrap msgid "cross compilation, package dependencies" -msgstr "" +msgstr "compilation croisée, dépendances des paquets" #. type: table #: doc/guix.texi:3448 @@ -9317,6 +11111,12 @@ msgid "" "conversely, dependencies listed in @code{native-inputs} are built for the " "architecture of the @emph{build} machine." msgstr "" +"La distinction entre @code{native-inputs} et @code{inputs} est nécessaire " +"lorsqu'on considère la compilation croisée. Lors d'une compilation croisée," +" les dépendances listées dans @code{inputs} sont construites pour " +"l'architecture @emph{cible} ; inversement, les dépendances listées dans " +"@code{native-inputs} sont construites pour l'architecture de la machine de " +"@emph{construction}." #. type: table #: doc/guix.texi:3453 @@ -9326,11 +11126,15 @@ msgid "" "Bison. @command{guix lint} can report likely mistakes in this area " "(@pxref{Invoking guix lint})." msgstr "" +"@code{native-inputs} est typiquement utilisé pour lister les outils requis à" +" la construction mais pas à l'exécution, comme Autoconf, Automake, pkg-" +"config, Gettext ou Bison. @command{guix lint} peut rapporter des erreurs de" +" ce type (@pxref{Invoking guix lint})." #. type: anchor{#1} #: doc/guix.texi:3460 msgid "package-propagated-inputs" -msgstr "" +msgstr "package-propagated-inputs" #. type: table #: doc/guix.texi:3460 @@ -9341,6 +11145,11 @@ msgid "" "package}}, for information on how @command{guix package} deals with " "propagated inputs.)" msgstr "" +"Enfin, @code{propagated-inputs} est similaire à @code{inputs}, mais les " +"paquets spécifiés seront automatiquement installés avec le paquet auquel ils" +" appartiennent (@pxref{package-cmd-propagated-inputs, @command{guix " +"package}}, pour des informations sur la manière dont @command{guix package} " +"traite les entrées propagées)." #. type: table #: doc/guix.texi:3464 @@ -9349,6 +11158,9 @@ msgid "" "library to compile, or when a pkg-config file refers to another one @i{via} " "its @code{Requires} field." msgstr "" +"Par exemple cela est nécessaire lorsque des bibliothèques C/C++ ont besoin " +"d'en-têtes d'une autre bibliothèque pour être compilé ou lorsqu'un fichier " +"pkg-config se rapporte à un autre @i{via} son champ @code{Requires}." #. type: table #: doc/guix.texi:3471 @@ -9360,12 +11172,19 @@ msgid "" "they depend on at run time, run-time dependencies must be listed in " "@code{propagated-inputs} rather than @code{inputs}." msgstr "" +"Un autre exemple où @code{propagated-inputs} est utile est pour les langages" +" auxquels il manque un moyen de retenir le chemin de recherche comme c'est " +"le cas du @code{RUNPATH} des fichiers ELF ; cela comprend Guile, Python, " +"Perl et plus. Pour s'assurer que les bibliothèques écrites dans ces " +"langages peuvent trouver le code des bibliothèques dont elles dépendent à " +"l'exécution, les dépendances à l'exécution doivent être listées dans " +"@code{propagated-inputs} plutôt que @code{inputs}." #. type: item #: doc/guix.texi:3472 #, no-wrap msgid "@code{self-native-input?} (default: @code{#f})" -msgstr "" +msgstr "@code{self-native-input?} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:3475 @@ -9373,12 +11192,14 @@ msgid "" "This is a Boolean field telling whether the package should use itself as a " "native input when cross-compiling." msgstr "" +"C'est un champ booléen qui indique si le paquet devrait s'utiliser lui-même " +"comme entrée native lors de la compilation croisée." #. type: item #: doc/guix.texi:3476 #, no-wrap msgid "@code{outputs} (default: @code{'(\"out\")})" -msgstr "" +msgstr "@code{outputs} (par défaut : @code{'(\"out\")})" #. type: table #: doc/guix.texi:3479 @@ -9386,18 +11207,21 @@ msgid "" "The list of output names of the package. @xref{Packages with Multiple " "Outputs}, for typical uses of additional outputs." msgstr "" +"La liste des noms de sorties du paquet. @xref{Packages with Multiple " +"Outputs}, pour des exemples typiques d'utilisation de sorties " +"supplémentaires." #. type: item #: doc/guix.texi:3480 #, no-wrap msgid "@code{native-search-paths} (default: @code{'()})" -msgstr "" +msgstr "@code{native-search-paths} (par défaut : @code{'()})" #. type: itemx #: doc/guix.texi:3481 #, no-wrap msgid "@code{search-paths} (default: @code{'()})" -msgstr "" +msgstr "@code{search-paths} (par défaut : @code{'()})" #. type: table #: doc/guix.texi:3484 @@ -9405,12 +11229,14 @@ msgid "" "A list of @code{search-path-specification} objects describing search-path " "environment variables honored by the package." msgstr "" +"Une liste d'objets @code{search-path-specification} décrivant les variables " +"d'environnement de recherche de chemins que ce paquet utilise." #. type: item #: doc/guix.texi:3485 #, no-wrap msgid "@code{replacement} (default: @code{#f})" -msgstr "" +msgstr "@code{replacement} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:3489 @@ -9419,40 +11245,43 @@ msgid "" "@dfn{replacement} for this package. @xref{Security Updates, grafts}, for " "details." msgstr "" +"Ce champ doit être soit @code{#f} soit un objet de paquet qui sera utilisé " +"comme @dfn{remplaçant} de ce paquet. @xref{Security Updates, grafts}, pour " +"plus de détails." #. type: item #: doc/guix.texi:3490 doc/guix.texi:6735 #, no-wrap msgid "synopsis" -msgstr "" +msgstr "synopsis" #. type: table #: doc/guix.texi:3492 msgid "A one-line description of the package." -msgstr "" +msgstr "Une description sur une ligne du paquet." #. type: item #: doc/guix.texi:3493 doc/guix.texi:6736 doc/guix.texi:21027 #, no-wrap msgid "description" -msgstr "" +msgstr "description" #. type: table #: doc/guix.texi:3495 msgid "A more elaborate description of the package." -msgstr "" +msgstr "Une description plus détaillée du paquet." #. type: code{#1} #: doc/guix.texi:3496 #, no-wrap msgid "license" -msgstr "" +msgstr "license" #. type: cindex #: doc/guix.texi:3497 #, no-wrap msgid "license, of packages" -msgstr "" +msgstr "licence, des paquets" #. type: table #: doc/guix.texi:3500 @@ -9460,23 +11289,26 @@ msgid "" "The license of the package; a value from @code{(guix licenses)}, or a list " "of such values." msgstr "" +"La licence du paquet ; une valeur tirée de @code{(guix licenses)} ou une " +"liste de ces valeurs." #. type: itemx #: doc/guix.texi:3501 doc/guix.texi:6744 #, no-wrap msgid "home-page" -msgstr "" +msgstr "home-page" #. type: table #: doc/guix.texi:3503 msgid "The URL to the home-page of the package, as a string." msgstr "" +"L'URL de la page d'accueil du paquet, en tant que chaîne de caractères." #. type: item #: doc/guix.texi:3504 #, no-wrap msgid "@code{supported-systems} (default: @var{%supported-systems})" -msgstr "" +msgstr "@code{supported-systems} (par défaut : @var{%supported-systems})" #. type: table #: doc/guix.texi:3507 @@ -9484,23 +11316,29 @@ msgid "" "The list of systems supported by the package, as strings of the form " "@code{architecture-kernel}, for example @code{\"x86_64-linux\"}." msgstr "" +"La liste des systèmes supportés par le paquet, comme des chaînes de " +"caractères de la forme @code{architecture-noyau}, par exemple " +"@code{\"x86_64-linux\"}." #. type: item #: doc/guix.texi:3508 #, no-wrap msgid "@code{maintainers} (default: @code{'()})" -msgstr "" +msgstr "@code{maintainers} (par défaut : @code{'()})" #. type: table #: doc/guix.texi:3510 msgid "The list of maintainers of the package, as @code{maintainer} objects." msgstr "" +"La liste des mainteneurs du paquet, comme des objets @code{maintainer}." #. type: item #: doc/guix.texi:3511 #, no-wrap msgid "@code{location} (default: source location of the @code{package} form)" msgstr "" +"@code{location} (par défaut : emplacement de la source de la forme " +"@code{package})" #. type: table #: doc/guix.texi:3515 @@ -9509,12 +11347,15 @@ msgid "" "inheriting from another package, in which case this field is not " "automatically corrected." msgstr "" +"L'emplacement de la source du paquet. C'est utile de le remplacer lorsqu'on" +" hérite d'un autre paquet, auquel cas ce champ n'est pas automatiquement " +"corrigé." #. type: subsection #: doc/guix.texi:3520 #, no-wrap msgid "@code{origin} Reference" -msgstr "" +msgstr "Référence de @code{origin}" #. type: Plain text #: doc/guix.texi:3524 @@ -9522,23 +11363,25 @@ msgid "" "This section summarizes all the options available in @code{origin} " "declarations (@pxref{Defining Packages})." msgstr "" +"Cette section résume toutes les options disponibles dans le déclarations " +"@code{origin} (@pxref{Defining Packages})." #. type: deftp #: doc/guix.texi:3525 #, no-wrap msgid "{Data Type} origin" -msgstr "" +msgstr "{Type de donnée} origin" #. type: deftp #: doc/guix.texi:3527 msgid "This is the data type representing a source code origin." -msgstr "" +msgstr "C'est le type de donnée qui représente l'origine d'un code source." #. type: code{#1} #: doc/guix.texi:3529 doc/guix.texi:15696 #, no-wrap msgid "uri" -msgstr "" +msgstr "uri" #. type: table #: doc/guix.texi:3534 @@ -9548,47 +11391,54 @@ msgid "" "method of @code{(guix download)}, the valid @code{uri} values are: a URL " "represented as a string, or a list thereof." msgstr "" +"Un objet contenant l'URI de la source. Le type d'objet dépend de la " +"@code{method} (voir plus bas). Par exemple, avec la méthode @var{url-fetch}" +" de @code{(guix download)}, les valeurs valide d'@code{uri} sont : une URL " +"représentée par une chaîne de caractères, ou une liste de chaînes de " +"caractères." #. type: code{#1} #: doc/guix.texi:3535 #, no-wrap msgid "method" -msgstr "" +msgstr "method" #. type: table #: doc/guix.texi:3537 msgid "A procedure that handles the URI." -msgstr "" +msgstr "Un procédure qui gère l'URI." #. type: table #: doc/guix.texi:3539 msgid "Examples include:" -msgstr "" +msgstr "Quelques exemples :" #. type: item #: doc/guix.texi:3541 #, no-wrap msgid "@var{url-fetch} from @code{(guix download)}" -msgstr "" +msgstr "@var{url-fetch} de @code{(guix download)}" #. type: table #: doc/guix.texi:3544 msgid "" -"download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} " -"field;" +"download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri}" +" field;" msgstr "" +"télécharge un fichier depuis l'URL HTTP, HTTPS ou FTP spécifiée dans le " +"champ @code{uri} ;" #. type: vindex #: doc/guix.texi:3545 doc/guix.texi:6097 #, no-wrap msgid "git-fetch" -msgstr "" +msgstr "git-fetch" #. type: item #: doc/guix.texi:3546 #, no-wrap msgid "@var{git-fetch} from @code{(guix git-download)}" -msgstr "" +msgstr "@var{git-fetch} de @code{(guix git-download)}" #. type: table #: doc/guix.texi:3550 @@ -9597,6 +11447,9 @@ msgid "" "specified in the @code{uri} field as a @code{git-reference} object; a " "@code{git-reference} looks like this:" msgstr "" +"clone le dépôt sous contrôle de version Git et récupère la révision " +"spécifiée dans le champ @code{uri} en tant qu'objet @code{git-reference} ; " +"un objet @code{git-reference} ressemble à cela :" #. type: example #: doc/guix.texi:3555 @@ -9606,12 +11459,15 @@ msgid "" " (url \"git://git.debian.org/git/pkg-shadow/shadow\")\n" " (commit \"v4.1.5.1\"))\n" msgstr "" +"(git-reference\n" +" (url \"git://git.debian.org/git/pkg-shadow/shadow\")\n" +" (commit \"v4.1.5.1\"))\n" #. type: code{#1} #: doc/guix.texi:3558 #, no-wrap msgid "sha256" -msgstr "" +msgstr "sha256" #. type: table #: doc/guix.texi:3562 @@ -9620,6 +11476,9 @@ msgid "" "@code{base32} form is used here to generate the bytevector from a base-32 " "string." msgstr "" +"Un bytevector contenant le hash SHA-256 de la source. Typiquement la forme " +"@code{base32} est utilisée ici pour générer le bytevector depuis une chaîne " +"de caractères en base-32." #. type: table #: doc/guix.texi:3566 @@ -9627,28 +11486,37 @@ msgid "" "You can obtain this information using @code{guix download} (@pxref{Invoking " "guix download}) or @code{guix hash} (@pxref{Invoking guix hash})." msgstr "" +"Vous pouvez obtenir cette information avec @code{guix download} " +"(@pxref{Invoking guix download}) ou @code{guix hash} (@pxref{Invoking guix " +"hash})." #. type: item #: doc/guix.texi:3567 #, no-wrap msgid "@code{file-name} (default: @code{#f})" -msgstr "" +msgstr "@code{file-name} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:3573 msgid "" "The file name under which the source code should be saved. When this is " -"@code{#f}, a sensible default value will be used in most cases. In case the " -"source is fetched from a URL, the file name from the URL will be used. For " -"version control checkouts, it is recommended to provide the file name " +"@code{#f}, a sensible default value will be used in most cases. In case the" +" source is fetched from a URL, the file name from the URL will be used. For" +" version control checkouts, it is recommended to provide the file name " "explicitly because the default is not very descriptive." msgstr "" +"Le nom de fichier à utiliser pour sauvegarder le fichier. Lorsqu'elle est à" +" @code{#f}, une valeur par défaut raisonnable est utilisée dans la plupart " +"des cas. Dans le cas où la source est récupérée depuis une URL, le nom de " +"fichier est celui de l'URL. Pour les sources récupérées depuis un outil de " +"contrôle de version, il est recommandé de fournir un nom de fichier " +"explicitement parce que le nom par défaut n'est pas très descriptif." #. type: item #: doc/guix.texi:3574 #, no-wrap msgid "@code{patches} (default: @code{'()})" -msgstr "" +msgstr "@code{patches} (par défaut : @code{'()})" #. type: table #: doc/guix.texi:3577 @@ -9656,19 +11524,25 @@ msgid "" "A list of file names, origins, or file-like objects (@pxref{G-Expressions, " "file-like objects}) pointing to patches to be applied to the source." msgstr "" +"Une liste de noms de fichiers, d'origines ou d'objets simili-fichiers " +"(@pxref{G-Expressions, file-like objects}) qui pointent vers des correctifs " +"à appliquer sur la source." #. type: table #: doc/guix.texi:3581 msgid "" -"This list of patches must be unconditional. In particular, it cannot depend " -"on the value of @code{%current-system} or @code{%current-target-system}." +"This list of patches must be unconditional. In particular, it cannot depend" +" on the value of @code{%current-system} or @code{%current-target-system}." msgstr "" +"Cette liste de correctifs doit être inconditionnelle. En particulier, elle " +"ne peut pas dépendre des valeurs de @code{%current-system} ou " +"@code{%current-target-system}." #. type: item #: doc/guix.texi:3582 #, no-wrap msgid "@code{snippet} (default: @code{#f})" -msgstr "" +msgstr "@code{snippet} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:3586 @@ -9677,39 +11551,45 @@ msgid "" "the source directory. This is a convenient way to modify the source, " "sometimes more convenient than a patch." msgstr "" +"Une G-expression (@pxref{G-Expressions}) ou une S-expression qui sera lancée" +" dans le répertoire des sources. C'est une manière pratique de modifier la " +"source, parfois plus qu'un correctif." #. type: item #: doc/guix.texi:3587 #, no-wrap msgid "@code{patch-flags} (default: @code{'(\"-p1\")})" -msgstr "" +msgstr "@code{patch-flags} (par défaut : @code{'(\"-p1\")})" #. type: table #: doc/guix.texi:3590 msgid "" "A list of command-line flags that should be passed to the @code{patch} " "command." -msgstr "" +msgstr "Une liste de drapeaux à passer à la commande @code{patch}." #. type: item #: doc/guix.texi:3591 #, no-wrap msgid "@code{patch-inputs} (default: @code{#f})" -msgstr "" +msgstr "@code{patch-inputs} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:3595 msgid "" "Input packages or derivations to the patching process. When this is " -"@code{#f}, the usual set of inputs necessary for patching are provided, such " -"as GNU@tie{}Patch." +"@code{#f}, the usual set of inputs necessary for patching are provided, such" +" as GNU@tie{}Patch." msgstr "" +"Paquets d'entrées ou dérivations pour le processus de correction. " +"Lorsqu'elle est à @code{#f}, l'ensemble d'entrées habituellement nécessaire " +"pour appliquer des correctifs est fournit, comme GNU@tie{}Patch." #. type: item #: doc/guix.texi:3596 #, no-wrap msgid "@code{modules} (default: @code{'()})" -msgstr "" +msgstr "@code{modules} (par défaut : @code{'()})" #. type: table #: doc/guix.texi:3599 @@ -9717,25 +11597,29 @@ msgid "" "A list of Guile modules that should be loaded during the patching process " "and while running the code in the @code{snippet} field." msgstr "" +"Une liste de modules Guile qui devraient être chargés pendant le processus " +"de correction et pendant que le lancement du code du champ @code{snippet}." #. type: item #: doc/guix.texi:3600 #, no-wrap msgid "@code{patch-guile} (default: @code{#f})" -msgstr "" +msgstr "@code{patch-guile} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:3603 msgid "" -"The Guile package that should be used in the patching process. When this is " -"@code{#f}, a sensible default is used." +"The Guile package that should be used in the patching process. When this is" +" @code{#f}, a sensible default is used." msgstr "" +"Le paquet Guile à utiliser dans le processus de correction. Lorsqu'elle est" +" à @code{#f}, une valeur par défaut raisonnable est utilisée." #. type: cindex #: doc/guix.texi:3610 #, no-wrap msgid "build system" -msgstr "" +msgstr "système de construction" #. type: Plain text #: doc/guix.texi:3615 @@ -9764,8 +11648,8 @@ msgstr "" #: doc/guix.texi:3627 msgid "" "Under the hood, build systems first compile package objects to @dfn{bags}. " -"A @dfn{bag} is like a package, but with less ornamentation---in other words, " -"a bag is a lower-level representation of a package, which includes all the " +"A @dfn{bag} is like a package, but with less ornamentation---in other words," +" a bag is a lower-level representation of a package, which includes all the " "inputs of that package, including some that were implicitly added by the " "build system. This intermediate representation is then compiled to a " "derivation (@pxref{Derivations})." @@ -9787,8 +11671,8 @@ msgstr "" #: doc/guix.texi:3639 msgid "" "The main build system is @var{gnu-build-system}, which implements the " -"standard build procedure for GNU and many other packages. It is provided by " -"the @code{(guix build-system gnu)} module." +"standard build procedure for GNU and many other packages. It is provided by" +" the @code{(guix build-system gnu)} module." msgstr "" #. type: defvr @@ -9800,8 +11684,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:3644 msgid "" -"@var{gnu-build-system} represents the GNU Build System, and variants thereof " -"(@pxref{Configuration, configuration and makefile conventions,, standards, " +"@var{gnu-build-system} represents the GNU Build System, and variants thereof" +" (@pxref{Configuration, configuration and makefile conventions,, standards, " "GNU Coding Standards})." msgstr "" @@ -9817,8 +11701,8 @@ msgid "" "In a nutshell, packages using it are configured, built, and installed with " "the usual @code{./configure && make && make check && make install} command " "sequence. In practice, a few additional steps are often needed. All these " -"steps are split up in separate @dfn{phases}, notably@footnote{Please see the " -"@code{(guix build gnu-build-system)} modules for more details about the " +"steps are split up in separate @dfn{phases}, notably@footnote{Please see the" +" @code{(guix build gnu-build-system)} modules for more details about the " "build phases.}:" msgstr "" @@ -9831,8 +11715,8 @@ msgstr "" #. type: table #: doc/guix.texi:3658 msgid "" -"Unpack the source tarball, and change the current directory to the extracted " -"source tree. If the source is actually a directory, copy it to the build " +"Unpack the source tarball, and change the current directory to the extracted" +" source tree. If the source is actually a directory, copy it to the build " "tree, and enter that directory." msgstr "" @@ -9846,8 +11730,8 @@ msgstr "" #: doc/guix.texi:3663 msgid "" "Patch shebangs encountered in source files so they refer to the right store " -"file names. For instance, this changes @code{#!/bin/sh} to @code{#!/gnu/" -"store/@dots{}-bash-4.3/bin/sh}." +"file names. For instance, this changes @code{#!/bin/sh} to " +"@code{#!/gnu/store/@dots{}-bash-4.3/bin/sh}." msgstr "" #. type: item @@ -9966,8 +11850,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:3714 msgid "" -"In addition, this build system ensures that the ``standard'' environment for " -"GNU packages is available. This includes tools such as GCC, libc, " +"In addition, this build system ensures that the ``standard'' environment for" +" GNU packages is available. This includes tools such as GCC, libc, " "Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-" "system gnu)} module for a complete list). We call these the @dfn{implicit " "inputs} of a package, because package definitions do not have to mention " @@ -9977,8 +11861,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:3721 msgid "" -"Other @code{} objects are defined to support other conventions " -"and tools used by free software packages. They inherit most of @var{gnu-" +"Other @code{} objects are defined to support other conventions" +" and tools used by free software packages. They inherit most of @var{gnu-" "build-system}, and differ mainly in the set of inputs implicitly added to " "the build process, and in the list of phases executed. Some of these build " "systems are listed below." @@ -9994,45 +11878,46 @@ msgstr "" #: doc/guix.texi:3726 msgid "" "This variable is exported by @code{(guix build-system ant)}. It implements " -"the build procedure for Java packages that can be built with @url{http://ant." -"apache.org/, Ant build tool}." +"the build procedure for Java packages that can be built with " +"@url{http://ant.apache.org/, Ant build tool}." msgstr "" #. type: defvr #: doc/guix.texi:3731 msgid "" -"It adds both @code{ant} and the @dfn{Java Development Kit} (JDK) as provided " -"by the @code{icedtea} package to the set of inputs. Different packages can " -"be specified with the @code{#:ant} and @code{#:jdk} parameters, respectively." +"It adds both @code{ant} and the @dfn{Java Development Kit} (JDK) as provided" +" by the @code{icedtea} package to the set of inputs. Different packages can" +" be specified with the @code{#:ant} and @code{#:jdk} parameters, " +"respectively." msgstr "" #. type: defvr #: doc/guix.texi:3737 msgid "" "When the original package does not provide a suitable Ant build file, the " -"parameter @code{#:jar-name} can be used to generate a minimal Ant build file " -"@file{build.xml} with tasks to build the specified jar archive. In this " -"case the parameter @code{#:source-dir} can be used to specify the source sub-" -"directory, defaulting to ``src''." +"parameter @code{#:jar-name} can be used to generate a minimal Ant build file" +" @file{build.xml} with tasks to build the specified jar archive. In this " +"case the parameter @code{#:source-dir} can be used to specify the source " +"sub-directory, defaulting to ``src''." msgstr "" #. type: defvr #: doc/guix.texi:3745 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 " +"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." +"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 "" #. type: defvr #: doc/guix.texi:3749 msgid "" -"The parameter @code{#:build-target} can be used to specify the Ant task that " -"should be run during the @code{build} phase. By default the ``jar'' task " +"The parameter @code{#:build-target} can be used to specify the Ant task that" +" should be run during the @code{build} phase. By default the ``jar'' task " "will be run." msgstr "" @@ -10058,20 +11943,20 @@ msgstr "" #: doc/guix.texi:3760 msgid "" "These variables, exported by @code{(guix build-system asdf)}, implement " -"build procedures for Common Lisp packages using @url{https://common-lisp.net/" -"project/asdf/, ``ASDF''}. ASDF is a system definition facility for Common " -"Lisp programs and libraries." +"build procedures for Common Lisp packages using @url{https://common-" +"lisp.net/project/asdf/, ``ASDF''}. ASDF is a system definition facility for " +"Common Lisp programs and libraries." msgstr "" #. type: defvr #: doc/guix.texi:3767 msgid "" "The @code{asdf-build-system/source} system installs the packages in source " -"form, and can be loaded using any common lisp implementation, via ASDF. The " -"others, such as @code{asdf-build-system/sbcl}, install binary systems in the " -"format which a particular implementation understands. These build systems " -"can also be used to produce executable programs, or lisp images which " -"contain a set of packages pre-loaded." +"form, and can be loaded using any common lisp implementation, via ASDF. The" +" others, such as @code{asdf-build-system/sbcl}, install binary systems in " +"the format which a particular implementation understands. These build " +"systems can also be used to produce executable programs, or lisp images " +"which contain a set of packages pre-loaded." msgstr "" #. type: defvr @@ -10102,12 +11987,12 @@ msgstr "" #. type: defvr #: doc/guix.texi:3787 msgid "" -"In order to create executable programs and images, the build-side procedures " -"@code{build-program} and @code{build-image} can be used. They should be " +"In order to create executable programs and images, the build-side procedures" +" @code{build-program} and @code{build-image} can be used. They should be " "called in a build phase after the @code{create-symlinks} phase, so that the " "system which was just built can be used within the resulting image. " -"@code{build-program} requires a list of Common Lisp expressions to be passed " -"as the @code{#:entry-program} argument." +"@code{build-program} requires a list of Common Lisp expressions to be passed" +" as the @code{#:entry-program} argument." msgstr "" #. type: defvr @@ -10115,10 +12000,10 @@ msgstr "" msgid "" "If the system is not defined within its own @code{.asd} file of the same " "name, then the @code{#:asd-file} parameter should be used to specify which " -"file the system is defined in. Furthermore, if the package defines a system " -"for its tests in a separate file, it will be loaded before the tests are run " -"if it is specified by the @code{#:test-asd-file} parameter. If it is not " -"set, the files @code{-tests.asd}, @code{-test.asd}, " +"file the system is defined in. Furthermore, if the package defines a system" +" for its tests in a separate file, it will be loaded before the tests are " +"run if it is specified by the @code{#:test-asd-file} parameter. If it is " +"not set, the files @code{-tests.asd}, @code{-test.asd}, " "@code{tests.asd}, and @code{test.asd} will be tried if they exist." msgstr "" @@ -10152,8 +12037,8 @@ msgstr "" #: doc/guix.texi:3809 msgid "" "This variable is exported by @code{(guix build-system cargo)}. It supports " -"builds of packages using Cargo, the build tool of the @uref{https://www.rust-" -"lang.org, Rust programming language}." +"builds of packages using Cargo, the build tool of the " +"@uref{https://www.rust-lang.org, Rust programming language}." msgstr "" #. type: defvr @@ -10175,8 +12060,8 @@ msgstr "" #: doc/guix.texi:3820 msgid "" "This variable is exported by @code{(guix build-system cmake)}. It " -"implements the build procedure for packages using the @url{http://www.cmake." -"org, CMake build tool}." +"implements the build procedure for packages using the " +"@url{http://www.cmake.org, CMake build tool}." msgstr "" #. type: defvr @@ -10189,12 +12074,12 @@ msgstr "" #. type: defvr #: doc/guix.texi:3831 msgid "" -"The @code{#:configure-flags} parameter is taken as a list of flags passed to " -"the @command{cmake} command. The @code{#:build-type} parameter specifies in " -"abstract terms the flags passed to the compiler; it defaults to " +"The @code{#:configure-flags} parameter is taken as a list of flags passed to" +" the @command{cmake} command. The @code{#:build-type} parameter specifies " +"in abstract terms the flags passed to the compiler; it defaults to " "@code{\"RelWithDebInfo\"} (short for ``release mode with debugging " -"information''), which roughly means that code is compiled with @code{-O2 -" -"g}, as is the case for Autoconf-based packages by default." +"information''), which roughly means that code is compiled with @code{-O2 " +"-g}, as is the case for Autoconf-based packages by default." msgstr "" #. type: defvr @@ -10206,31 +12091,33 @@ msgstr "" #. type: defvr #: doc/guix.texi:3838 msgid "" -"This variable is exported by @code{(guix build-system go)}. It implements a " -"build procedure for Go packages using the standard @url{https://golang.org/" -"cmd/go/#hdr-Compile_packages_and_dependencies, Go build mechanisms}." +"This variable is exported by @code{(guix build-system go)}. It implements a" +" build procedure for Go packages using the standard " +"@url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies, Go " +"build mechanisms}." msgstr "" #. type: defvr #: doc/guix.texi:3849 msgid "" "The user is expected to provide a value for the key @code{#:import-path} " -"and, in some cases, @code{#:unpack-path}. The @url{https://golang.org/doc/" -"code.html#ImportPaths, import path} corresponds to the file system path " -"expected by the package's build scripts and any referring packages, and " -"provides a unique way to refer to a Go package. It is typically based on a " -"combination of the package source code's remote URI and file system " -"hierarchy structure. In some cases, you will need to unpack the package's " -"source code to a different directory structure than the one indicated by the " -"import path, and @code{#:unpack-path} should be used in such cases." +"and, in some cases, @code{#:unpack-path}. The " +"@url{https://golang.org/doc/code.html#ImportPaths, import path} corresponds " +"to the file system path expected by the package's build scripts and any " +"referring packages, and provides a unique way to refer to a Go package. It " +"is typically based on a combination of the package source code's remote URI " +"and file system hierarchy structure. In some cases, you will need to unpack" +" the package's source code to a different directory structure than the one " +"indicated by the import path, and @code{#:unpack-path} should be used in " +"such cases." msgstr "" #. type: defvr #: doc/guix.texi:3854 msgid "" "Packages that provide Go libraries should be installed along with their " -"source code. The key @code{#:install-source?}, which defaults to @code{#t}, " -"controls whether or not the source code is installed. It can be set to " +"source code. The key @code{#:install-source?}, which defaults to @code{#t}," +" controls whether or not the source code is installed. It can be set to " "@code{#f} for packages that only provide executable files." msgstr "" @@ -10264,10 +12151,11 @@ msgstr "" #: doc/guix.texi:3871 msgid "" "The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are " -"able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/" -"stable/gtk-running.html, GTK+ modules}. This is achieved by wrapping the " -"programs in launch scripts that appropriately set the @code{XDG_DATA_DIRS} " -"and @code{GTK_PATH} environment variables." +"able to find GLib ``schemas'' and " +"@uref{https://developer.gnome.org/gtk3/stable/gtk-running.html, GTK+ " +"modules}. This is achieved by wrapping the programs in launch scripts that " +"appropriately set the @code{XDG_DATA_DIRS} and @code{GTK_PATH} environment " +"variables." msgstr "" #. type: table @@ -10345,8 +12233,8 @@ msgid "" "This variable is exported by @code{(guix build-system ocaml)}. It " "implements a build procedure for @uref{https://ocaml.org, OCaml} packages, " "which consists of choosing the correct set of commands to run for each " -"package. OCaml packages can expect many different commands to be run. This " -"build system will try some of them." +"package. OCaml packages can expect many different commands to be run. This" +" build system will try some of them." msgstr "" #. type: defvr @@ -10354,12 +12242,12 @@ msgstr "" 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 " +"@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 "" @@ -10367,9 +12255,9 @@ msgstr "" #: doc/guix.texi:3928 msgid "" "When the package has a @file{configure} file, it is assumed that it is a " -"hand-made configure script that requires a different argument format than in " -"the @code{gnu-build-system}. You can add more flags with the @code{#:" -"configure-flags} key." +"hand-made configure script that requires a different argument format than in" +" the @code{gnu-build-system}. You can add more flags with the " +"@code{#:configure-flags} key." msgstr "" #. type: defvr @@ -10455,16 +12343,16 @@ msgstr "" #. type: defvr #: doc/guix.texi:3984 msgid "" -"This variable is exported by @code{(guix build-system perl)}. It implements " -"the standard build procedure for Perl packages, which either consists in " +"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 " +"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." +"This preference can be reversed by specifying @code{#t} for the " +"@code{#:make-maker?} parameter." msgstr "" #. type: defvr @@ -10491,10 +12379,10 @@ msgstr "" msgid "" "This variable is exported by @code{(guix build-system r)}. It implements " "the build procedure used by @uref{http://r-project.org, R} packages, which " -"essentially is little more than running @code{R CMD INSTALL --library=/gnu/" -"store/@dots{}} in an environment where @code{R_LIBS_SITE} contains the paths " -"to all R package inputs. Tests are run after installation using the R " -"function @code{tools::testInstalledPackage}." +"essentially is little more than running @code{R CMD INSTALL " +"--library=/gnu/store/@dots{}} in an environment where @code{R_LIBS_SITE} " +"contains the paths to all R package inputs. Tests are run after " +"installation using the R function @code{tools::testInstalledPackage}." msgstr "" #. type: defvr @@ -10506,8 +12394,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:4007 msgid "" -"This variable is exported by @code{(guix build-system texlive)}. It is used " -"to build TeX packages in batch mode with a specified engine. The build " +"This variable is exported by @code{(guix build-system texlive)}. It is used" +" to build TeX packages in batch mode with a specified engine. The build " "system sets the @code{TEXINPUTS} variable to find all TeX source files in " "the inputs." msgstr "" @@ -10521,14 +12409,15 @@ msgid "" "targets} argument, which expects a list of file names. The build system " "adds only @code{texlive-bin} and @code{texlive-latex-base} (both from " "@code{(gnu packages tex}) to the inputs. Both can be overridden with the " -"arguments @code{#:texlive-bin} and @code{#:texlive-latex-base}, respectively." +"arguments @code{#:texlive-bin} and @code{#:texlive-latex-base}, " +"respectively." msgstr "" #. type: defvr #: doc/guix.texi:4019 msgid "" -"The @code{#:tex-directory} parameter tells the build system where to install " -"the built files under the texmf tree." +"The @code{#:tex-directory} parameter tells the build system where to install" +" the built files under the texmf tree." msgstr "" #. type: defvr @@ -10540,8 +12429,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:4025 msgid "" -"This variable is exported by @code{(guix build-system ruby)}. It implements " -"the RubyGems build procedure used by Ruby packages, which involves running " +"This variable is exported by @code{(guix build-system ruby)}. It implements" +" the RubyGems build procedure used by Ruby packages, which involves running " "@code{gem build} followed by @code{gem install}." msgstr "" @@ -10551,8 +12440,8 @@ msgid "" "The @code{source} field of a package that uses this build system typically " "references a gem archive, since this is the format that Ruby developers use " "when releasing their software. The build system unpacks the gem archive, " -"potentially patches the source, runs the test suite, repackages the gem, and " -"installs it. Additionally, directories and tarballs may be referenced to " +"potentially patches the source, runs the test suite, repackages the gem, and" +" installs it. Additionally, directories and tarballs may be referenced to " "allow building unreleased gems from Git or a traditional source release " "tarball." msgstr "" @@ -10575,9 +12464,9 @@ msgstr "" #: doc/guix.texi:4045 msgid "" "This variable is exported by @code{(guix build-system waf)}. It implements " -"a build procedure around the @code{waf} script. The common phases---" -"@code{configure}, @code{build}, and @code{install}---are implemented by " -"passing their names as arguments to the @code{waf} script." +"a build procedure around the @code{waf} script. The common " +"phases---@code{configure}, @code{build}, and @code{install}---are " +"implemented by passing their names as arguments to the @code{waf} script." msgstr "" #. type: defvr @@ -10598,8 +12487,8 @@ msgstr "" #: doc/guix.texi:4057 msgid "" "This variable is exported by @code{(guix build-system scons)}. It " -"implements the build procedure used by the SCons software construction " -"tool. This build system runs @code{scons} to build the package, @code{scons " +"implements the build procedure used by the SCons software construction tool." +" This build system runs @code{scons} to build the package, @code{scons " "test} to run tests, and then @code{scons install} to install the package." msgstr "" @@ -10607,9 +12496,9 @@ msgstr "" #: doc/guix.texi:4062 msgid "" "Additional flags to be passed to @code{scons} can be specified with the " -"@code{#:scons-flags} parameter. The version of Python used to run SCons can " -"be specified by selecting the appropriate SCons package with the @code{#:" -"scons} parameter." +"@code{#:scons-flags} parameter. The version of Python used to run SCons can" +" be specified by selecting the appropriate SCons package with the " +"@code{#:scons} parameter." msgstr "" #. type: defvr @@ -10623,16 +12512,17 @@ msgstr "" msgid "" "This variable is exported by @code{(guix build-system haskell)}. It " "implements the Cabal build procedure used by Haskell packages, which " -"involves running @code{runhaskell Setup.hs configure --prefix=/gnu/store/" -"@dots{}} and @code{runhaskell Setup.hs build}. Instead of installing the " -"package by running @code{runhaskell Setup.hs install}, to avoid trying to " -"register libraries in the read-only compiler store directory, the build " -"system uses @code{runhaskell Setup.hs copy}, followed by @code{runhaskell " -"Setup.hs register}. In addition, the build system generates the package " -"documentation by running @code{runhaskell Setup.hs haddock}, unless @code{#:" -"haddock? #f} is passed. Optional Haddock parameters can be passed with the " -"help of the @code{#:haddock-flags} parameter. If the file @code{Setup.hs} " -"is not found, the build system looks for @code{Setup.lhs} instead." +"involves running @code{runhaskell Setup.hs configure " +"--prefix=/gnu/store/@dots{}} and @code{runhaskell Setup.hs build}. Instead " +"of installing the package by running @code{runhaskell Setup.hs install}, to " +"avoid trying to register libraries in the read-only compiler store " +"directory, the build system uses @code{runhaskell Setup.hs copy}, followed " +"by @code{runhaskell Setup.hs register}. In addition, the build system " +"generates the package documentation by running @code{runhaskell Setup.hs " +"haddock}, unless @code{#:haddock? #f} is passed. Optional Haddock " +"parameters can be passed with the help of the @code{#:haddock-flags} " +"parameter. If the file @code{Setup.hs} is not found, the build system looks" +" for @code{Setup.lhs} instead." msgstr "" #. type: defvr @@ -10652,8 +12542,8 @@ msgstr "" #: doc/guix.texi:4088 msgid "" "This variable is exported by @code{(guix build-system dub)}. It implements " -"the Dub build procedure used by D packages, which involves running @code{dub " -"build} and @code{dub run}. Installation is done by copying the files " +"the Dub build procedure used by D packages, which involves running @code{dub" +" build} and @code{dub run}. Installation is done by copying the files " "manually." msgstr "" @@ -10682,8 +12572,8 @@ msgstr "" #: doc/guix.texi:4104 msgid "" "It first creates the @code{@var{package}-autoloads.el} file, then it byte " -"compiles all Emacs Lisp files. Differently from the Emacs packaging system, " -"the Info documentation files are moved to the standard documentation " +"compiles all Emacs Lisp files. Differently from the Emacs packaging system," +" the Info documentation files are moved to the standard documentation " "directory and the @file{dir} file is deleted. Each package is installed in " "its own directory under @file{share/emacs/site-lisp/guix.d}." msgstr "" @@ -10697,8 +12587,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:4112 msgid "" -"This variable is exported by @code{(guix build-system font)}. It implements " -"an installation procedure for font packages where upstream provides pre-" +"This variable is exported by @code{(guix build-system font)}. It implements" +" an installation procedure for font packages where upstream provides pre-" "compiled TrueType, OpenType, etc. font files that merely need to be copied " "into place. It copies font files to standard locations in the output " "directory." @@ -10714,8 +12604,8 @@ msgstr "" #: doc/guix.texi:4118 msgid "" "This variable is exported by @code{(guix build-system meson)}. It " -"implements the build procedure for packages that use @url{http://mesonbuild." -"com, Meson} as their build system." +"implements the build procedure for packages that use " +"@url{http://mesonbuild.com, Meson} as their build system." msgstr "" #. type: defvr @@ -10724,8 +12614,8 @@ msgid "" "It adds both Meson and @uref{https://ninja-build.org/, Ninja} to the set of " "inputs, and they can be changed with the parameters @code{#:meson} and " "@code{#:ninja} if needed. The default Meson is @code{meson-for-build}, " -"which is special because it doesn't clear the @code{RUNPATH} of binaries and " -"libraries when they are installed." +"which is special because it doesn't clear the @code{RUNPATH} of binaries and" +" libraries when they are installed." msgstr "" #. type: defvr @@ -10746,8 +12636,8 @@ msgstr "" #. type: table #: doc/guix.texi:4138 msgid "" -"The phase runs @code{ninja} to build the package in parallel by default, but " -"this can be changed with @code{#:parallel-build?}." +"The phase runs @code{ninja} to build the package in parallel by default, but" +" this can be changed with @code{#:parallel-build?}." msgstr "" #. type: table @@ -10842,24 +12732,24 @@ msgid "" "information such as the store paths referred to by each store path, and the " "list of @emph{valid} store items---results of successful builds. This " "database resides in @file{@var{localstatedir}/guix/db}, where " -"@var{localstatedir} is the state directory specified @i{via} @option{--" -"localstatedir} at configure time, usually @file{/var}." +"@var{localstatedir} is the state directory specified @i{via} " +"@option{--localstatedir} at configure time, usually @file{/var}." msgstr "" #. type: Plain text #: doc/guix.texi:4204 msgid "" "The store is @emph{always} accessed by the daemon on behalf of its clients " -"(@pxref{Invoking guix-daemon}). To manipulate the store, clients connect to " -"the daemon over a Unix-domain socket, send requests to it, and read the " +"(@pxref{Invoking guix-daemon}). To manipulate the store, clients connect to" +" the daemon over a Unix-domain socket, send requests to it, and read the " "result---these are remote procedure calls, or RPCs." msgstr "" #. type: quotation #: doc/guix.texi:4209 msgid "" -"Users must @emph{never} modify files under @file{/gnu/store} directly. This " -"would lead to inconsistencies and break the immutability assumptions of " +"Users must @emph{never} modify files under @file{/gnu/store} directly. This" +" would lead to inconsistencies and break the immutability assumptions of " "Guix's functional model (@pxref{Introduction})." msgstr "" @@ -10874,8 +12764,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:4220 msgid "" -"The @code{(guix store)} module provides procedures to connect to the daemon, " -"and to perform RPCs. These are described below. By default, @code{open-" +"The @code{(guix store)} module provides procedures to connect to the daemon," +" and to perform RPCs. These are described below. By default, @code{open-" "connection}, and thus all the @command{guix} commands, connect to the local " "daemon or to the URI specified by the @code{GUIX_DAEMON_SOCKET} environment " "variable." @@ -10911,8 +12801,8 @@ msgstr "" #. type: table #: doc/guix.texi:4233 msgid "" -"These are for Unix-domain sockets. @code{file:///var/guix/daemon-socket/" -"socket} is equivalent to @file{/var/guix/daemon-socket/socket}." +"These are for Unix-domain sockets. @code{file:///var/guix/daemon-" +"socket/socket} is equivalent to @file{/var/guix/daemon-socket/socket}." msgstr "" #. type: item @@ -10939,16 +12829,16 @@ msgstr "" #: doc/guix.texi:4250 msgid "" "This setup is suitable on local networks, such as clusters, where only " -"trusted nodes may connect to the build daemon at @code{master.guix.example." -"org}." +"trusted nodes may connect to the build daemon at " +"@code{master.guix.example.org}." msgstr "" #. type: table #: doc/guix.texi:4254 msgid "" "The @code{--listen} option of @command{guix-daemon} can be used to instruct " -"it to listen for TCP connections (@pxref{Invoking guix-daemon, @code{--" -"listen}})." +"it to listen for TCP connections (@pxref{Invoking guix-daemon, " +"@code{--listen}})." msgstr "" #. type: item @@ -10980,8 +12870,8 @@ msgstr "" #. type: table #: doc/guix.texi:4267 msgid "" -"As for @command{guix copy}, the usual OpenSSH client configuration files are " -"honored (@pxref{Invoking guix copy})." +"As for @command{guix copy}, the usual OpenSSH client configuration files are" +" honored (@pxref{Invoking guix copy})." msgstr "" #. type: defvr @@ -10992,8 +12882,8 @@ msgstr "" #. type: quotation #: doc/guix.texi:4277 msgid "" -"The ability to connect to remote build daemons is considered experimental as " -"of @value{VERSION}. Please get in touch with us to share any problems or " +"The ability to connect to remote build daemons is considered experimental as" +" of @value{VERSION}. Please get in touch with us to share any problems or " "suggestions you may have (@pxref{Contributing})." msgstr "" @@ -11064,8 +12954,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:4308 msgid "" -"Return @code{#t} when @var{path} designates a valid store item and @code{#f} " -"otherwise (an invalid item may exist on disk but still be invalid, for " +"Return @code{#t} when @var{path} designates a valid store item and @code{#f}" +" otherwise (an invalid item may exist on disk but still be invalid, for " "instance because it is the result of an aborted or failed build.)" msgstr "" @@ -11079,7 +12969,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:4313 #, no-wrap -msgid "{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]" +msgid "" +"{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} " +"[@var{references}]" msgstr "" #. type: deffn @@ -11099,9 +12991,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:4323 msgid "" -"Build @var{derivations} (a list of @code{} objects or derivation " -"paths), and return when the worker is done building them. Return @code{#t} " -"on success." +"Build @var{derivations} (a list of @code{} objects or derivation" +" paths), and return when the worker is done building them. Return @code{#t}" +" on success." msgstr "" #. type: Plain text @@ -11142,20 +13034,21 @@ msgstr "" #. type: itemize #: doc/guix.texi:4349 msgid "" -"The inputs of the derivations, which may be other derivations or plain files " -"in the store (patches, build scripts, etc.)" +"The inputs of the derivations, which may be other derivations or plain files" +" in the store (patches, build scripts, etc.)" msgstr "" #. type: itemize #: doc/guix.texi:4352 -msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}." +msgid "" +"The system type targeted by the derivation---e.g., @code{x86_64-linux}." msgstr "" #. type: itemize #: doc/guix.texi:4356 msgid "" -"The file name of a build script in the store, along with the arguments to be " -"passed." +"The file name of a build script in the store, along with the arguments to be" +" passed." msgstr "" #. type: itemize @@ -11173,11 +13066,11 @@ msgstr "" #: doc/guix.texi:4370 msgid "" "Derivations allow clients of the daemon to communicate build actions to the " -"store. They exist in two forms: as an in-memory representation, both on the " -"client- and daemon-side, and as files in the store whose name end in @code{." -"drv}---these files are referred to as @dfn{derivation paths}. Derivations " -"paths can be passed to the @code{build-derivations} procedure to perform the " -"build actions they prescribe (@pxref{The Store})." +"store. They exist in two forms: as an in-memory representation, both on the" +" client- and daemon-side, and as files in the store whose name end in " +"@code{.drv}---these files are referred to as @dfn{derivation paths}. " +"Derivations paths can be passed to the @code{build-derivations} procedure to" +" perform the build actions they prescribe (@pxref{The Store})." msgstr "" #. type: cindex @@ -11201,8 +13094,8 @@ msgstr "" #: doc/guix.texi:4383 msgid "" "The @code{(guix derivations)} module provides a representation of " -"derivations as Scheme objects, along with procedures to create and otherwise " -"manipulate derivations. The lowest-level primitive to create a derivation " +"derivations as Scheme objects, along with procedures to create and otherwise" +" manipulate derivations. The lowest-level primitive to create a derivation " "is the @code{derivation} procedure:" msgstr "" @@ -11215,28 +13108,28 @@ msgstr "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @" #. type: deffn #: doc/guix.texi:4393 msgid "" -"@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:" -"recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-" +"@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ " +"[#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-" "system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-" -"references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:" -"substitutable? #t] Build a derivation with the given arguments, and return " -"the resulting @code{} object." +"references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ " +"[#:substitutable? #t] Build a derivation with the given arguments, and " +"return the resulting @code{} object." msgstr "" -"@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:" -"recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-" +"@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ " +"[#:recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-" "system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-" -"references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:" -"substitutable? #t] Construit une dérivation avec les arguments donnés et " +"references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ " +"[#:substitutable? #t] Construit une dérivation avec les arguments donnés et " "renvie l'objet @code{} obtenu." #. type: deffn #: doc/guix.texi:4400 msgid "" "When @var{hash} and @var{hash-algo} are given, a @dfn{fixed-output " -"derivation} is created---i.e., one whose result is known in advance, such as " -"a file download. If, in addition, @var{recursive?} is true, then that fixed " -"output may be an executable file or a directory and @var{hash} must be the " -"hash of an archive containing this output." +"derivation} is created---i.e., one whose result is known in advance, such as" +" a file download. If, in addition, @var{recursive?} is true, then that " +"fixed output may be an executable file or a directory and @var{hash} must be" +" the hash of an archive containing this output." msgstr "" #. type: deffn @@ -11286,8 +13179,8 @@ msgid "" "host CPU instruction set." msgstr "" "Lorsque que @var{substitutable?} est faux, déclare que les substituts de la " -"sortie de la dérivation ne devraient pas être utilisés (@pxref{Substituts}). " -"Cela est utile par exemple pour construire des paquets qui utilisent des " +"sortie de la dérivation ne devraient pas être utilisés (@pxref{Substituts})." +" Cela est utile par exemple pour construire des paquets qui utilisent des " "détails du jeu d'instruction du CPU hôte." #. type: Plain text @@ -11328,8 +13221,8 @@ msgid "" "As can be guessed, this primitive is cumbersome to use directly. A better " "approach is to write build scripts in Scheme, of course! The best course of " "action for that is to write the build code as a ``G-expression'', and to " -"pass it to @code{gexp->derivation}. For more information, @pxref{G-" -"Expressions}." +"pass it to @code{gexp->derivation}. For more information, " +"@pxref{G-Expressions}." msgstr "" #. type: Plain text @@ -11337,8 +13230,8 @@ msgstr "" msgid "" "Once upon a time, @code{gexp->derivation} did not exist and constructing " "derivations with build code written in Scheme was achieved with @code{build-" -"expression->derivation}, documented below. This procedure is now deprecated " -"in favor of the much nicer @code{gexp->derivation}." +"expression->derivation}, documented below. This procedure is now deprecated" +" in favor of the much nicer @code{gexp->derivation}." msgstr "" #. type: deffn @@ -11350,29 +13243,30 @@ msgstr "" #. type: deffn #: doc/guix.texi:4476 msgid "" -"@var{name} @var{exp} @ [#:system (%current-system)] [#:inputs '()] @ [#:" -"outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-" -"vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references " -"#f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? " -"#t] [#:guile-for-build #f] Return a derivation that executes Scheme " -"expression @var{exp} as a builder for derivation @var{name}. @var{inputs} " -"must be a list of @code{(name drv-path sub-drv)} tuples; when @var{sub-drv} " -"is omitted, @code{\"out\"} is assumed. @var{modules} is a list of names of " -"Guile modules from the current search path to be copied in the store, " -"compiled, and made available in the load path during the execution of " -"@var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}." +"@var{name} @var{exp} @ [#:system (%current-system)] [#:inputs '()] @ " +"[#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] " +"[#:env-vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-" +"references #f] @ [#:disallowed-references #f] @ [#:local-build? #f] " +"[#:substitutable? #t] [#:guile-for-build #f] Return a derivation that " +"executes Scheme expression @var{exp} as a builder for derivation @var{name}." +" @var{inputs} must be a list of @code{(name drv-path sub-drv)} tuples; when" +" @var{sub-drv} is omitted, @code{\"out\"} is assumed. @var{modules} is a " +"list of names of Guile modules from the current search path to be copied in " +"the store, compiled, and made available in the load path during the " +"execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-" +"build-system))}." msgstr "" #. type: deffn #: doc/guix.texi:4484 msgid "" -"@var{exp} is evaluated in an environment where @code{%outputs} is bound to a " -"list of output/path pairs, and where @code{%build-inputs} is bound to a list " -"of string/output-path pairs made from @var{inputs}. Optionally, @var{env-" -"vars} is a list of string pairs specifying the name and value of environment " -"variables visible to the builder. The builder terminates by passing the " -"result of @var{exp} to @code{exit}; thus, when @var{exp} returns @code{#f}, " -"the build is considered to have failed." +"@var{exp} is evaluated in an environment where @code{%outputs} is bound to a" +" list of output/path pairs, and where @code{%build-inputs} is bound to a " +"list of string/output-path pairs made from @var{inputs}. Optionally, " +"@var{env-vars} is a list of string pairs specifying the name and value of " +"environment variables visible to the builder. The builder terminates by " +"passing the result of @var{exp} to @code{exit}; thus, when @var{exp} returns" +" @code{#f}, the build is considered to have failed." msgstr "" #. type: deffn @@ -11518,8 +13412,8 @@ msgstr "" #: doc/guix.texi:4572 msgid "" "As it turns out, the call to @code{package->derivation} can even be omitted " -"since it will take place implicitly, as we will see later (@pxref{G-" -"Expressions}):" +"since it will take place implicitly, as we will see later " +"(@pxref{G-Expressions}):" msgstr "" #. type: example @@ -11635,9 +13529,9 @@ msgstr "" msgid "" "@dfn{Bind} monadic value @var{mval}, passing its ``contents'' to monadic " "procedures @var{mproc}@dots{}@footnote{This operation is commonly referred " -"to as ``bind'', but that name denotes an unrelated procedure in Guile. Thus " -"we use this somewhat cryptic symbol inherited from the Haskell language.}. " -"There can be one @var{mproc} or several of them, as in this example:" +"to as ``bind'', but that name denotes an unrelated procedure in Guile. Thus" +" we use this somewhat cryptic symbol inherited from the Haskell language.}." +" There can be one @var{mproc} or several of them, as in this example:" msgstr "" #. type: example @@ -11685,12 +13579,12 @@ msgid "" "@var{mval} in @var{body}, which is a sequence of expressions. As with the " "bind operator, this can be thought of as ``unpacking'' the raw, non-monadic " "value ``contained'' in @var{mval} and making @var{var} refer to that raw, " -"non-monadic value within the scope of the @var{body}. The form (@var{var} -" -"> @var{val}) binds @var{var} to the ``normal'' value @var{val}, as per " +"non-monadic value within the scope of the @var{body}. The form (@var{var} " +"-> @var{val}) binds @var{var} to the ``normal'' value @var{val}, as per " "@code{let}. The binding operations occur in sequence from left to right. " "The last expression of @var{body} must be a monadic expression, and its " -"result will become the result of the @code{mlet} or @code{mlet*} when run in " -"the @var{monad}." +"result will become the result of the @code{mlet} or @code{mlet*} when run in" +" the @var{monad}." msgstr "" #. type: deffn @@ -11709,9 +13603,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:4676 msgid "" -"Bind @var{mexp} and the following monadic expressions in sequence, returning " -"the result of the last expression. Every expression in the sequence must be " -"a monadic expression." +"Bind @var{mexp} and the following monadic expressions in sequence, returning" +" the result of the last expression. Every expression in the sequence must " +"be a monadic expression." msgstr "" #. type: deffn @@ -11748,8 +13642,8 @@ msgstr "" 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." +"true, return @code{*unspecified*} in the current monad. Every expression in" +" the sequence must be a monadic expression." msgstr "" #. type: cindex @@ -11761,8 +13655,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:4700 msgid "" -"The @code{(guix monads)} module provides the @dfn{state monad}, which allows " -"an additional value---the state---to be @emph{threaded} through monadic " +"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 "" @@ -11783,8 +13677,8 @@ msgstr "" #: doc/guix.texi:4708 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:" +"the state monad. It returns the square of its argument, but also increments" +" the current state value:" msgstr "" #. type: example @@ -11874,8 +13768,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:4747 msgid "" -"Run monadic value @var{mval} starting with @var{state} as the initial " -"state. Return two values: the resulting value, and the resulting state." +"Run monadic value @var{mval} starting with @var{state} as the initial state." +" Return two values: the resulting value, and the resulting state." msgstr "" #. type: Plain text @@ -11907,7 +13801,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:4760 #, no-wrap -msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]" +msgid "" +"{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build]" +" [#:system (%current-system)]" msgstr "" #. type: deffn @@ -11941,8 +13837,8 @@ msgstr "" #: doc/guix.texi:4776 msgid "" "[#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once " -"interned in the store. Use @var{name} as its store name, or the basename of " -"@var{file} if @var{name} is omitted." +"interned in the store. Use @var{name} as its store name, or the basename of" +" @var{file} if @var{name} is omitted." msgstr "" #. type: deffn @@ -11981,7 +13877,9 @@ msgstr "" #. type: example #: doc/guix.texi:4795 #, no-wrap -msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n" +msgid "" +"@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-" +"MIN\")\n" msgstr "" #. type: Plain text @@ -12002,9 +13900,9 @@ msgstr "" msgid "" "[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Return as a " "monadic value in the absolute file name of @var{file} within the " -"@var{output} directory of @var{package}. When @var{file} is omitted, return " -"the name of the @var{output} directory of @var{package}. When @var{target} " -"is true, use it as a cross-compilation target triplet." +"@var{output} directory of @var{package}. When @var{file} is omitted, return" +" the name of the @var{output} directory of @var{package}. When @var{target}" +" is true, use it as a cross-compilation target triplet." msgstr "" #. type: deffn @@ -12022,8 +13920,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:4817 msgid "" -"@var{target} [@var{system}] Monadic version of @code{package-derivation} and " -"@code{package-cross-derivation} (@pxref{Defining Packages})." +"@var{target} [@var{system}] Monadic version of @code{package-derivation} and" +" @code{package-cross-derivation} (@pxref{Defining Packages})." msgstr "" #. type: cindex @@ -12044,8 +13942,8 @@ msgid "" "So we have ``derivations'', which represent a sequence of build actions to " "be performed to produce an item in the store (@pxref{Derivations}). These " "build actions are performed when asking the daemon to actually build the " -"derivations; they are run by the daemon in a container (@pxref{Invoking guix-" -"daemon})." +"derivations; they are run by the daemon in a container (@pxref{Invoking " +"guix-daemon})." msgstr "" #. type: cindex @@ -12072,8 +13970,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:4850 msgid "" -"To describe a derivation and its build actions, one typically needs to embed " -"build code inside host code. It boils down to manipulating build code as " +"To describe a derivation and its build actions, one typically needs to embed" +" build code inside host code. It boils down to manipulating build code as " "data, and the homoiconicity of Scheme---code has a direct representation as " "data---comes in handy for that. But we need more than the normal " "@code{quasiquote} mechanism in Scheme to construct build expressions." @@ -12082,14 +13980,14 @@ msgstr "" #. type: Plain text #: doc/guix.texi:4859 msgid "" -"The @code{(guix gexp)} module implements @dfn{G-expressions}, a form of S-" -"expressions adapted to build expressions. G-expressions, or @dfn{gexps}, " +"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:" +"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 "" #. type: itemize @@ -12109,9 +14007,9 @@ msgstr "" #. type: itemize #: doc/guix.texi:4874 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." +"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 "" #. type: cindex @@ -12124,8 +14022,8 @@ msgstr "" #: doc/guix.texi:4886 msgid "" "This mechanism is not limited to package and derivation objects: " -"@dfn{compilers} able to ``lower'' other high-level objects to derivations or " -"files in the store can be defined, such that these objects can also be " +"@dfn{compilers} able to ``lower'' other high-level objects to derivations or" +" files in the store can be defined, such that these objects can also be " "inserted into gexps. For example, a useful type of high-level objects that " "can be inserted in a gexp is ``file-like objects'', which make it easy to " "add files to the store and to refer to them in derivations and such (see " @@ -12153,8 +14051,8 @@ msgstr "" #: doc/guix.texi:4901 msgid "" "This gexp can be passed to @code{gexp->derivation}; we obtain a derivation " -"that builds a directory containing exactly one symlink to @file{/gnu/store/" -"@dots{}-coreutils-8.22/bin/ls}:" +"that builds a directory containing exactly one symlink to " +"@file{/gnu/store/@dots{}-coreutils-8.22/bin/ls}:" msgstr "" #. type: example @@ -12166,10 +14064,10 @@ msgstr "" #. type: Plain text #: doc/guix.texi:4912 msgid "" -"As one would expect, the @code{\"/gnu/store/@dots{}-coreutils-8.22\"} string " -"is substituted to the reference to the @var{coreutils} package in the actual " -"build code, and @var{coreutils} is automatically made an input to the " -"derivation. Likewise, @code{#$output} (equivalent to @code{(ungexp " +"As one would expect, the @code{\"/gnu/store/@dots{}-coreutils-8.22\"} string" +" is substituted to the reference to the @var{coreutils} package in the " +"actual build code, and @var{coreutils} is automatically made an input to the" +" derivation. Likewise, @code{#$output} (equivalent to @code{(ungexp " "output)}) is replaced by a string containing the directory name of the " "output of the derivation." msgstr "" @@ -12208,8 +14106,8 @@ msgstr "" #: doc/guix.texi:4935 msgid "" "In the example above, the native build of @var{coreutils} is used, so that " -"@command{ln} can actually run on the host; but then the cross-compiled build " -"of @var{emacs} is referenced." +"@command{ln} can actually run on the host; but then the cross-compiled build" +" of @var{emacs} is referenced." msgstr "" #. type: cindex @@ -12228,8 +14126,8 @@ msgstr "" #: doc/guix.texi:4942 msgid "" "Another gexp feature is @dfn{imported modules}: sometimes you want to be " -"able to use certain Guile modules from the ``host environment'' in the gexp, " -"so those modules should be imported in the ``build environment''. The " +"able to use certain Guile modules from the ``host environment'' in the gexp," +" so those modules should be imported in the ``build environment''. The " "@code{with-imported-modules} form allows you to express that:" msgstr "" @@ -12252,8 +14150,8 @@ msgstr "" #: doc/guix.texi:4959 msgid "" "In this example, the @code{(guix build utils)} module is automatically " -"pulled into the isolated build environment of our gexp, such that @code{(use-" -"modules (guix build utils))} works as expected." +"pulled into the isolated build environment of our gexp, such that " +"@code{(use-modules (guix build utils))} works as expected." msgstr "" #. type: cindex @@ -12271,8 +14169,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:4968 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 " +"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, " @@ -12340,10 +14238,10 @@ msgstr "" #. type: table #: doc/guix.texi:4996 msgid "" -"Introduce a reference to @var{obj}. @var{obj} may have one of the supported " -"types, for example a package or a derivation, in which case the " -"@code{ungexp} form is replaced by its output file name---e.g., @code{\"/gnu/" -"store/@dots{}-coreutils-8.22}." +"Introduce a reference to @var{obj}. @var{obj} may have one of the supported" +" types, for example a package or a derivation, in which case the " +"@code{ungexp} form is replaced by its output file name---e.g., " +"@code{\"/gnu/store/@dots{}-coreutils-8.22}." msgstr "" #. type: table @@ -12356,8 +14254,8 @@ msgstr "" #. type: table #: doc/guix.texi:5002 msgid "" -"If @var{obj} is another gexp, its contents are inserted and its dependencies " -"are added to those of the containing gexp." +"If @var{obj} is another gexp, its contents are inserted and its dependencies" +" are added to those of the containing gexp." msgstr "" #. type: table @@ -12380,8 +14278,8 @@ msgstr "" #. type: table #: doc/guix.texi:5010 msgid "" -"This is like the form above, but referring explicitly to the @var{output} of " -"@var{obj}---this is useful when @var{obj} produces multiple outputs " +"This is like the form above, but referring explicitly to the @var{output} of" +" @var{obj}---this is useful when @var{obj} produces multiple outputs " "(@pxref{Packages with Multiple Outputs})." msgstr "" @@ -12502,8 +14400,8 @@ msgstr "" #: doc/guix.texi:5048 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:" +"build utils)}, or it can be a module name, followed by an arrow, followed by" +" a file-like object:" msgstr "" #. type: example @@ -12560,15 +14458,15 @@ msgstr "" #. type: deffn #: doc/guix.texi:5090 msgid "" -"[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:" -"hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:" -"module-path @var{%load-path}] @ [#:references-graphs #f] [#:allowed-" -"references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:" -"script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-" +"[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] " +"[#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ " +"[#:module-path @var{%load-path}] @ [#:references-graphs #f] [#:allowed-" +"references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ " +"[#:script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-" "warnings #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build " "#f] Return a derivation @var{name} that runs @var{exp} (a gexp) with " -"@var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in " -"a file called @var{script-name}. When @var{target} is true, it is used as " +"@var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in" +" a file called @var{script-name}. When @var{target} is true, it is used as " "the cross-compilation target triplet for packages referred to by @var{exp}." msgstr "" @@ -12578,8 +14476,8 @@ msgid "" "@var{modules} is deprecated in favor of @code{with-imported-modules}. Its " "meaning is to make @var{modules} available in the evaluation context of " "@var{exp}; @var{modules} is a list of names of Guile modules searched in " -"@var{module-path} to be copied in the store, compiled, and made available in " -"the load path during the execution of @var{exp}---e.g., @code{((guix build " +"@var{module-path} to be copied in the store, compiled, and made available in" +" the load path during the execution of @var{exp}---e.g., @code{((guix build " "utils) (guix build gnu-build-system))}." msgstr "" @@ -12612,8 +14510,8 @@ msgstr "" #: doc/guix.texi:5117 msgid "" "The right-hand-side of each element of @var{references-graphs} is " -"automatically made an input of the build process of @var{exp}. In the build " -"environment, each @var{file-name} contains the reference graph of the " +"automatically made an input of the build process of @var{exp}. In the build" +" environment, each @var{file-name} contains the reference graph of the " "corresponding item, in a simple text format." msgstr "" @@ -12623,8 +14521,8 @@ msgid "" "@var{allowed-references} must be either @code{#f} or a list of output names " "and packages. In the latter case, the list denotes store items that the " "result is allowed to refer to. Any reference to another store item will " -"lead to a build error. Similarly for @var{disallowed-references}, which can " -"list items that must not be referenced by the outputs." +"lead to a build error. Similarly for @var{disallowed-references}, which can" +" list items that must not be referenced by the outputs." msgstr "" #. type: deffn @@ -12637,7 +14535,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:5128 -msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})." +msgid "" +"The other arguments are as for @code{derivation} (@pxref{Derivations})." msgstr "" #. type: cindex @@ -12667,10 +14566,10 @@ msgstr "" #: doc/guix.texi:5148 msgid "" "The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it to " -"the store. Once expanded, for instance @i{via} @code{gexp->derivation}, the " -"G-expression refers to that copy under @file{/gnu/store}; thus, modifying or " -"removing the file in @file{/tmp} does not have any effect on what the G-" -"expression does. @code{plain-file} can be used similarly; it differs in " +"the store. Once expanded, for instance @i{via} @code{gexp->derivation}, the" +" G-expression refers to that copy under @file{/gnu/store}; thus, modifying " +"or removing the file in @file{/tmp} does not have any effect on what the " +"G-expression does. @code{plain-file} can be used similarly; it differs in " "that the file content is directly passed as a string." msgstr "" @@ -12683,9 +14582,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:5155 msgid "" -"[#:recursive? #f] [#:select? (const #t)] Return an object representing local " -"file @var{file} to add to the store; this object can be used in a gexp. If " -"@var{file} is a relative file name, it is looked up relative to the source " +"[#:recursive? #f] [#:select? (const #t)] Return an object representing local" +" file @var{file} to add to the store; this object can be used in a gexp. If" +" @var{file} is a relative file name, it is looked up relative to the source " "file where this form appears. @var{file} will be added to the store under " "@var{name}--by default the base name of @var{file}." msgstr "" @@ -12819,8 +14718,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:5229 msgid "" -"[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile " -"(default-guile)] Return a derivation that builds a file @var{name} " +"[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile" +" (default-guile)] Return a derivation that builds a file @var{name} " "containing @var{exp}. When @var{splice?} is true, @var{exp} is considered " "to be a list of expressions that will be spliced in the resulting file." msgstr "" @@ -12842,7 +14741,7 @@ msgstr "" #. type: deffn #: doc/guix.texi:5239 -#, fuzzy, no-wrap +#, no-wrap msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]" msgstr "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @" @@ -12877,8 +14776,8 @@ msgstr "" #: doc/guix.texi:5257 msgid "" "This variant should be preferred over @code{text-file} anytime the file to " -"create will reference items from the store. This is typically the case when " -"building a configuration file that embeds store file names, like this:" +"create will reference items from the store. This is typically the case when" +" building a configuration file that embeds store file names, like this:" msgstr "" #. type: example @@ -12993,9 +14892,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:5317 msgid "" -"Return a file-like object that expands to the concatenation of @var{obj} and " -"@var{suffix}, where @var{obj} is a lowerable object and each @var{suffix} is " -"a string." +"Return a file-like object that expands to the concatenation of @var{obj} and" +" @var{suffix}, where @var{obj} is a lowerable object and each @var{suffix} " +"is a string." msgstr "" #. type: deffn @@ -13030,9 +14929,9 @@ msgstr "" #: doc/guix.texi:5338 msgid "" "There is one difference though: in the @code{file-append} case, the " -"resulting script contains the absolute file name as a string, whereas in the " -"second case, the resulting script contains a @code{(string-append @dots{})} " -"expression to construct the file name @emph{at run time}." +"resulting script contains the absolute file name as a string, whereas in the" +" second case, the resulting script contains a @code{(string-append @dots{})}" +" expression to construct the file name @emph{at run time}." msgstr "" #. type: Plain text @@ -13049,8 +14948,8 @@ msgstr "" msgid "" "Internally, high-level objects are @dfn{lowered}, using their compiler, to " "either derivations or store items. For instance, lowering a package yields " -"a derivation, and lowering a @code{plain-file} yields a store item. This is " -"achieved using the @code{lower-object} monadic procedure." +"a derivation, and lowering a @code{plain-file} yields a store item. This is" +" achieved using the @code{lower-object} monadic procedure." msgstr "" #. type: deffn @@ -13076,18 +14975,23 @@ msgid "" "definitions, while others are more generally useful. They complement the " "Scheme programming interface of Guix in a convenient way." msgstr "" +"cette section décrit les utilitaires en ligne de commande de Guix. certains" +" sont surtout faits pour les développeurs qui écrivent de nouvelles " +"définitions de paquets tandis que d'autres sont plus utiles pour une " +"utilisation générale. Ils complètent l'interface de programmation Scheme de" +" Guix d'une manière pratique." #. type: cindex #: doc/guix.texi:5391 #, no-wrap msgid "package building" -msgstr "" +msgstr "construction de paquets" #. type: command{#1} #: doc/guix.texi:5392 #, no-wrap msgid "guix build" -msgstr "" +msgstr "guix build" #. type: Plain text #: doc/guix.texi:5398 @@ -13104,7 +15008,7 @@ msgstr "" #: doc/guix.texi:7123 doc/guix.texi:7453 doc/guix.texi:7758 doc/guix.texi:7824 #: doc/guix.texi:7863 msgid "The general syntax is:" -msgstr "" +msgstr "La syntaxe générale est :" #. type: example #: doc/guix.texi:5403 @@ -13115,8 +15019,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:5408 msgid "" -"As an example, the following command builds the latest versions of Emacs and " -"of Guile, displays their build logs, and finally displays the resulting " +"As an example, the following command builds the latest versions of Emacs and" +" of Guile, displays their build logs, and finally displays the resulting " "directories:" msgstr "" @@ -13142,11 +15046,12 @@ msgstr "" #. type: Plain text #: doc/guix.texi:5426 msgid "" -"@var{package-or-derivation} may be either the name of a package found in the " -"software distribution such as @code{coreutils} or @code{coreutils@@8.20}, or " -"a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}. In the " -"former case, a package with the corresponding name (and optionally version) " -"is searched for among the GNU distribution modules (@pxref{Package Modules})." +"@var{package-or-derivation} may be either the name of a package found in the" +" software distribution such as @code{coreutils} or @code{coreutils@@8.20}, " +"or a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}. In " +"the former case, a package with the corresponding name (and optionally " +"version) is searched for among the GNU distribution modules (@pxref{Package " +"Modules})." msgstr "" #. type: Plain text @@ -13290,21 +15195,21 @@ msgstr "" #. type: table #: doc/guix.texi:5490 msgid "" -"Consider @var{urls} the whitespace-separated list of substitute source URLs, " -"overriding the default list of URLs of @command{guix-daemon} (@pxref{daemon-" -"substitute-urls,, @command{guix-daemon} URLs})." +"Consider @var{urls} the whitespace-separated list of substitute source URLs," +" overriding the default list of URLs of @command{guix-daemon} " +"(@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs})." msgstr "" #. type: table #: doc/guix.texi:5494 msgid "" -"This means that substitutes may be downloaded from @var{urls}, provided they " -"are signed by a key authorized by the system administrator " +"This means that substitutes may be downloaded from @var{urls}, provided they" +" are signed by a key authorized by the system administrator " "(@pxref{Substitutes})." msgstr "" -"Cela signifie que les substituts peuvent être téléchargés depuis @var{urls}, " -"tant qu'ils sont signés par une clef autorisée par l'administrateur système " -"(@pxref{Substituts})." +"Cela signifie que les substituts peuvent être téléchargés depuis @var{urls}," +" tant qu'ils sont signés par une clef autorisée par l'administrateur système" +" (@pxref{Substituts})." #. type: table #: doc/guix.texi:5497 @@ -13343,8 +15248,8 @@ msgstr "" #: doc/guix.texi:5516 msgid "" "This is a useful way to detect non-deterministic builds processes. Non-" -"deterministic build processes are a problem because they make it practically " -"impossible for users to @emph{verify} whether third-party binaries are " +"deterministic build processes are a problem because they make it practically" +" impossible for users to @emph{verify} whether third-party binaries are " "genuine. @xref{Invoking guix challenge}, for more." msgstr "" @@ -13389,8 +15294,8 @@ msgstr "" #. type: table #: doc/guix.texi:5546 msgid "" -"Use the given verbosity level. @var{level} must be an integer between 0 and " -"5; higher means more verbose output. Setting a level of 4 or more may be " +"Use the given verbosity level. @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." msgstr "" @@ -13463,8 +15368,8 @@ msgstr "" #: doc/guix.texi:5595 msgid "" "Another set of command-line options supported by @command{guix build} and " -"also @command{guix package} are @dfn{package transformation options}. These " -"are options that make it possible to define @dfn{package variants}---for " +"also @command{guix package} are @dfn{package transformation options}. These" +" are options that make it possible to define @dfn{package variants}---for " "instance, packages built from different source code. This is a convenient " "way to create customized packages on the fly without having to type in the " "definitions of package variants (@pxref{Defining Packages})." @@ -13508,16 +15413,17 @@ msgstr "" #. type: table #: doc/guix.texi:5614 msgid "" -"Likewise, when @var{version} is omitted, the version string is inferred from " -"@var{source}; in the previous example, it is @code{2.0.10}." +"Likewise, when @var{version} is omitted, the version string is inferred from" +" @var{source}; in the previous example, it is @code{2.0.10}." msgstr "" #. type: table #: doc/guix.texi:5619 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:" +"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 "" #. type: example @@ -13569,8 +15475,8 @@ msgstr "" #. type: table #: doc/guix.texi:5647 msgid "" -"For instance, the following command builds Guix, but replaces its dependency " -"on the current stable version of Guile with a dependency on the legacy " +"For instance, the following command builds Guix, but replaces its dependency" +" on the current stable version of Guile with a dependency on the legacy " "version of Guile, @code{guile@@2.0}:" msgstr "" @@ -13583,8 +15489,8 @@ msgstr "" #. type: table #: doc/guix.texi:5655 msgid "" -"This is a recursive, deep replacement. So in this example, both @code{guix} " -"and its dependency @code{guile-json} (which also depends on @code{guile}) " +"This is a recursive, deep replacement. So in this example, both @code{guix}" +" and its dependency @code{guile-json} (which also depends on @code{guile}) " "get rebuilt against @code{guile@@2.0}." msgstr "" @@ -13605,8 +15511,8 @@ msgstr "" #: doc/guix.texi:5665 msgid "" "This is similar to @code{--with-input} but with an important difference: " -"instead of rebuilding the whole dependency chain, @var{replacement} is built " -"and then @dfn{grafted} onto the binaries that were initially referring to " +"instead of rebuilding the whole dependency chain, @var{replacement} is built" +" and then @dfn{grafted} onto the binaries that were initially referring to " "@var{package}. @xref{Security Updates}, for more information on grafts." msgstr "" @@ -13627,8 +15533,8 @@ msgstr "" #. type: table #: doc/guix.texi:5681 msgid "" -"This has the advantage of being much faster than rebuilding everything. But " -"there is a caveat: it works if and only if @var{package} and " +"This has the advantage of being much faster than rebuilding everything. But" +" there is a caveat: it works if and only if @var{package} and " "@var{replacement} are strictly compatible---for example, if they provide a " "library, the application binary interface (ABI) of those libraries must be " "compatible. If @var{replacement} is somehow incompatible with " @@ -13657,8 +15563,8 @@ msgstr "" #. type: table #: doc/guix.texi:5697 msgid "" -"Build quietly, without displaying the build log. Upon completion, the build " -"log is kept in @file{/var} (or similar) and can always be retrieved using " +"Build quietly, without displaying the build log. Upon completion, the build" +" log is kept in @file{/var} (or similar) and can always be retrieved using " "the @option{--log-file} option." msgstr "" @@ -13671,7 +15577,8 @@ msgstr "" #. type: table #: doc/guix.texi:5703 msgid "" -"Build the package or derivation that the code within @var{file} evaluates to." +"Build the package or derivation that the code within @var{file} evaluates " +"to." msgstr "" #. type: table @@ -13690,14 +15597,15 @@ msgstr "" #: doc/guix.texi:5718 msgid "" "For example, @var{expr} may be @code{(@@ (gnu packages guile) guile-1.8)}, " -"which unambiguously designates this specific variant of version 1.8 of Guile." +"which unambiguously designates this specific variant of version 1.8 of " +"Guile." msgstr "" #. type: table #: doc/guix.texi:5722 msgid "" -"Alternatively, @var{expr} may be a G-expression, in which case it is used as " -"a build program passed to @code{gexp->derivation} (@pxref{G-Expressions})." +"Alternatively, @var{expr} may be a G-expression, in which case it is used as" +" a build program passed to @code{gexp->derivation} (@pxref{G-Expressions})." msgstr "" #. type: table @@ -13730,8 +15638,9 @@ msgstr "" #. type: table #: doc/guix.texi:5735 msgid "" -"For instance, @code{guix build -S gcc} returns something like @file{/gnu/" -"store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source tarball." +"For instance, @code{guix build -S gcc} returns something like " +"@file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source " +"tarball." msgstr "" #. type: table @@ -13852,8 +15761,8 @@ msgstr "" #. type: table #: doc/guix.texi:5807 msgid "" -"Builds for a system other than that of the machine you are using can also be " -"offloaded to a remote machine of the right architecture. @xref{Daemon " +"Builds for a system other than that of the machine you are using can also be" +" offloaded to a remote machine of the right architecture. @xref{Daemon " "Offload Setup}, for more information on offloading." msgstr "" @@ -13884,7 +15793,8 @@ msgstr "reproductibilité, vérification" #: doc/guix.texi:5821 msgid "" "Rebuild @var{package-or-derivation}, which are already available in the " -"store, and raise an error if the build results are not bit-for-bit identical." +"store, and raise an error if the build results are not bit-for-bit " +"identical." msgstr "" #. type: table @@ -13972,8 +15882,8 @@ msgstr "" msgid "" "Consequently, the results of this @command{guix build} invocation are " "protected from garbage collection until @var{file} is removed. When that " -"option is omitted, build results are eligible for garbage collection as soon " -"as the build completes. @xref{Invoking guix gc}, for more on GC roots." +"option is omitted, build results are eligible for garbage collection as soon" +" as the build completes. @xref{Invoking guix gc}, for more on GC roots." msgstr "" #. type: item @@ -14051,16 +15961,16 @@ msgstr "" msgid "" "When defining a new package (@pxref{Defining Packages}), you will probably " "find yourself spending some time debugging and tweaking the build until it " -"succeeds. To do that, you need to operate the build commands yourself in an " -"environment as close as possible to the one the build daemon uses." +"succeeds. To do that, you need to operate the build commands yourself in an" +" environment as close as possible to the one the build daemon uses." msgstr "" #. type: Plain text #: doc/guix.texi:5902 msgid "" "To that end, the first thing to do is to use the @option{--keep-failed} or " -"@option{-K} option of @command{guix build}, which will keep the failed build " -"tree in @file{/tmp} or whatever directory you specified as @code{TMPDIR} " +"@option{-K} option of @command{guix build}, which will keep the failed build" +" tree in @file{/tmp} or whatever directory you specified as @code{TMPDIR} " "(@pxref{Invoking guix build, @code{--keep-failed}})." msgstr "" @@ -14069,8 +15979,8 @@ msgstr "" msgid "" "From there on, you can @command{cd} to the failed build tree and source the " "@file{environment-variables} file, which contains all the environment " -"variable definitions that were in place when the build failed. So let's say " -"you're debugging a build failure in package @code{foo}; a typical session " +"variable definitions that were in place when the build failed. So let's say" +" you're debugging a build failure in package @code{foo}; a typical session " "would look like this:" msgstr "" @@ -14098,8 +16008,8 @@ msgid "" "Sometimes it happens that, for example, a package's tests pass when you run " "them manually but they fail when the daemon runs them. This can happen " "because the daemon runs builds in containers where, unlike in our " -"environment above, network access is missing, @file{/bin/sh} does not exist, " -"etc. (@pxref{Build Environment Setup})." +"environment above, network access is missing, @file{/bin/sh} does not exist," +" etc. (@pxref{Build Environment Setup})." msgstr "" #. type: Plain text @@ -14126,8 +16036,8 @@ msgstr "" msgid "" "Here, @command{guix environment -C} creates a container and spawns a new " "shell in it (@pxref{Invoking guix environment}). The @command{--ad-hoc " -"strace gdb} part adds the @command{strace} and @command{gdb} commands to the " -"container, which would may find handy while debugging. The @option{--no-" +"strace gdb} part adds the @command{strace} and @command{gdb} commands to the" +" container, which would may find handy while debugging. The @option{--no-" "grafts} option makes sure we get the exact same environment, with ungrafted " "packages (@pxref{Security Updates}, for more info on grafts)." msgstr "" @@ -14168,8 +16078,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:5966 msgid "" -"In this way, not only you will have reproduced the environment variables the " -"daemon uses, you will also be running the build process in a container " +"In this way, not only you will have reproduced the environment variables the" +" daemon uses, you will also be running the build process in a container " "similar to the one the daemon uses." msgstr "" @@ -14247,8 +16157,8 @@ msgid "" "When writing a package definition, developers typically need to download a " "source tarball, compute its SHA256 hash, and write that hash in the package " "definition (@pxref{Defining Packages}). The @command{guix download} tool " -"helps with this task: it downloads a file from the given URI, adds it to the " -"store, and prints both its file name in the store and its SHA256 hash." +"helps with this task: it downloads a file from the given URI, adds it to the" +" store, and prints both its file name in the store and its SHA256 hash." msgstr "" #. type: Plain text @@ -14269,8 +16179,8 @@ msgid "" "package definitions. In particular, it supports @code{mirror://} URIs. " "@code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile " "bindings for GnuTLS are available in the user's environment; when they are " -"not available, an error is raised. @xref{Guile Preparations, how to install " -"the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more " +"not available, an error is raised. @xref{Guile Preparations, how to install" +" the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more " "information." msgstr "" @@ -14321,9 +16231,9 @@ msgstr "" #. type: table #: doc/guix.texi:6040 msgid "" -"When using this option, you have @emph{absolutely no guarantee} that you are " -"communicating with the authentic server responsible for the given URL, which " -"makes you vulnerable to ``man-in-the-middle'' attacks." +"When using this option, you have @emph{absolutely no guarantee} that you are" +" communicating with the authentic server responsible for the given URL, " +"which makes you vulnerable to ``man-in-the-middle'' attacks." msgstr "" #. type: item @@ -14360,8 +16270,8 @@ msgstr "" #: doc/guix.texi:6055 msgid "" "The @command{guix hash} command computes the SHA256 hash of a file. It is " -"primarily a convenience tool for anyone contributing to the distribution: it " -"computes the cryptographic hash of a file, which can be used in the " +"primarily a convenience tool for anyone contributing to the distribution: it" +" computes the cryptographic hash of a file, which can be used in the " "definition of a package (@pxref{Defining Packages})." msgstr "" @@ -14478,10 +16388,10 @@ msgstr "" #. type: Plain text #: doc/guix.texi:6122 msgid "" -"The @command{guix import} command is useful for people who would like to add " -"a package to the distribution with as little work as possible---a legitimate " -"demand. The command knows of a few repositories from which it can " -"``import'' package metadata. The result is a package definition, or a " +"The @command{guix import} command is useful for people who would like to add" +" a package to the distribution with as little work as possible---a " +"legitimate demand. The command knows of a few repositories from which it " +"can ``import'' package metadata. The result is a package definition, or a " "template thereof, in the format we know (@pxref{Defining Packages})." msgstr "" @@ -14508,8 +16418,8 @@ msgstr "" #. type: table #: doc/guix.texi:6139 msgid "" -"Import metadata for the given GNU package. This provides a template for the " -"latest version of that GNU package, including the hash of its source " +"Import metadata for the given GNU package. This provides a template for the" +" latest version of that GNU package, including the hash of its source " "tarball, and its canonical synopsis and description." msgstr "" @@ -14523,8 +16433,8 @@ msgstr "" #. type: table #: doc/guix.texi:6145 msgid "" -"For example, the following command returns a package definition for GNU@tie{}" -"Hello:" +"For example, the following command returns a package definition for " +"GNU@tie{}Hello:" msgstr "" #. type: example @@ -14564,8 +16474,8 @@ msgid "" "Import metadata from the @uref{https://pypi.python.org/, Python Package " "Index}@footnote{This functionality requires Guile-JSON to be installed. " "@xref{Requirements}.}. 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 " +"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." msgstr "" @@ -14597,8 +16507,8 @@ msgid "" "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 " +"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 "" @@ -14629,8 +16539,8 @@ msgstr "" #. type: table #: doc/guix.texi:6206 msgid "" -"Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}" -"@footnote{This functionality requires Guile-JSON to be installed. " +"Import metadata from @uref{https://www.metacpan.org/, " +"MetaCPAN}@footnote{This functionality requires Guile-JSON to be installed. " "@xref{Requirements}.}. 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. " @@ -14642,8 +16552,8 @@ msgstr "" #. type: table #: doc/guix.texi:6209 msgid "" -"The command command below imports metadata for the @code{Acme::Boolean} Perl " -"module:" +"The command command below imports metadata for the @code{Acme::Boolean} Perl" +" module:" msgstr "" #. type: example @@ -14754,16 +16664,16 @@ msgstr "" #: doc/guix.texi:6255 msgid "" "Import metadata from @uref{http://www.ctan.org/, CTAN}, the comprehensive " -"TeX archive network for TeX packages that are part of the @uref{https://www." -"tug.org/texlive/, TeX Live distribution}." +"TeX archive network for TeX packages that are part of the " +"@uref{https://www.tug.org/texlive/, TeX Live distribution}." msgstr "" #. type: table #: doc/guix.texi:6260 msgid "" "Information about the package is obtained through the XML API provided by " -"CTAN, while the source code is downloaded from the SVN repository of the Tex " -"Live project. This is done because the CTAN does not keep versioned " +"CTAN, while the source code is downloaded from the SVN repository of the Tex" +" Live project. This is done because the CTAN does not keep versioned " "archives." msgstr "" @@ -14894,13 +16804,13 @@ msgstr "" #. type: table #: doc/guix.texi:6340 msgid "" -"Import metadata from a local copy of the source of the @uref{http://nixos." -"org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-" -"instantiate} command of @uref{http://nixos.org/nix/, Nix}.}. Package " -"definitions in Nixpkgs are typically written in a mixture of Nix-language " -"and Bash code. This command only imports the high-level package structure " -"that is written in the Nix language. It normally includes all the basic " -"fields of a package definition." +"Import metadata from a local copy of the source of the " +"@uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies " +"on the @command{nix-instantiate} command of @uref{http://nixos.org/nix/, " +"Nix}.}. Package definitions in Nixpkgs are typically written in a mixture " +"of Nix-language and Bash code. This command only imports the high-level " +"package structure that is written in the Nix language. It normally includes" +" all the basic fields of a package definition." msgstr "" #. type: table @@ -15018,9 +16928,9 @@ msgstr "" #. type: table #: doc/guix.texi:6392 msgid "" -"The command below imports metadata for the latest version of the @code{HTTP} " -"Haskell package without including test dependencies and specifying the value " -"of the flag @samp{network-uri} as @code{false}:" +"The command below imports metadata for the latest version of the @code{HTTP}" +" Haskell package without including test dependencies and specifying the " +"value of the flag @samp{network-uri} as @code{false}:" msgstr "" #. type: example @@ -15051,11 +16961,11 @@ msgstr "" #. type: table #: doc/guix.texi:6412 msgid "" -"The @code{stackage} importer is a wrapper around the @code{hackage} one. It " -"takes a package name, looks up the package version included in a long-term " -"support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the " -"@code{hackage} importer to retrieve its metadata. Note that it is up to you " -"to select an LTS release compatible with the GHC compiler used by Guix." +"The @code{stackage} importer is a wrapper around the @code{hackage} one. It" +" takes a package name, looks up the package version included in a long-term " +"support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the" +" @code{hackage} importer to retrieve its metadata. Note that it is up to " +"you to select an LTS release compatible with the GHC compiler used by Guix." msgstr "" #. type: item @@ -15099,8 +17009,8 @@ msgstr "" #. type: table #: doc/guix.texi:6436 msgid "" -"Import metadata from an Emacs Lisp Package Archive (ELPA) package repository " -"(@pxref{Packages,,, emacs, The GNU Emacs Manual})." +"Import metadata from an Emacs Lisp Package Archive (ELPA) package repository" +" (@pxref{Packages,,, emacs, The GNU Emacs Manual})." msgstr "" #. type: item @@ -15119,7 +17029,8 @@ msgstr "" #: doc/guix.texi:6445 msgid "" "@var{repo} identifies the archive repository from which to retrieve the " -"information. Currently the supported repositories and their identifiers are:" +"information. Currently the supported repositories and their identifiers " +"are:" msgstr "" #. type: itemize @@ -15161,8 +17072,8 @@ msgstr "" #. type: table #: doc/guix.texi:6470 msgid "" -"Import metadata from the crates.io Rust package repository @uref{https://" -"crates.io, crates.io}." +"Import metadata from the crates.io Rust package repository " +"@uref{https://crates.io, crates.io}." msgstr "" #. type: Plain text @@ -15189,8 +17100,8 @@ msgstr "" #: doc/guix.texi:6484 msgid "" "The primary audience of the @command{guix refresh} command is developers of " -"the GNU software distribution. By default, it reports any packages provided " -"by the distribution that are outdated compared to the latest upstream " +"the GNU software distribution. By default, it reports any packages provided" +" by the distribution that are outdated compared to the latest upstream " "version, like this:" msgstr "" @@ -15224,8 +17135,8 @@ msgstr "" msgid "" "@command{guix refresh} browses the upstream repository of each package and " "determines the highest version number of the releases therein. The command " -"knows how to update specific types of packages: GNU packages, ELPA packages, " -"etc.---see the documentation for @option{--type} below. There are many " +"knows how to update specific types of packages: GNU packages, ELPA packages," +" etc.---see the documentation for @option{--type} below. There are many " "packages, though, for which it lacks a method to determine whether a new " "upstream release is available. However, the mechanism is extensible, so " "feel free to get in touch with us to add a new method!" @@ -15254,13 +17165,13 @@ msgstr "" #. type: Plain text #: doc/guix.texi:6531 msgid "" -"When passed @code{--update}, it modifies distribution source files to update " -"the version numbers and source tarball hashes of those package recipes " -"(@pxref{Defining Packages}). This is achieved by downloading each package's " -"latest source tarball and its associated OpenPGP signature, authenticating " +"When passed @code{--update}, it modifies distribution source files to update" +" the version numbers and source tarball hashes of those package recipes " +"(@pxref{Defining Packages}). This is achieved by downloading each package's" +" latest source tarball and its associated OpenPGP signature, authenticating " "the downloaded tarball against its signature using @command{gpg}, and " -"finally computing its hash. When the public key used to sign the tarball is " -"missing from the user's keyring, an attempt is made to automatically " +"finally computing its hash. When the public key used to sign the tarball is" +" missing from the user's keyring, an attempt is made to automatically " "retrieve it from a public key server; when this is successful, the key is " "added to the user's keyring; otherwise, @command{guix refresh} reports an " "error." @@ -15285,8 +17196,8 @@ msgstr "" #. type: table #: doc/guix.texi:6548 msgid "" -"This command lists the dependents of the ``final'' libc (essentially all the " -"packages.)" +"This command lists the dependents of the ``final'' libc (essentially all the" +" packages.)" msgstr "" #. type: item @@ -15380,8 +17291,8 @@ msgstr "" #. type: table #: doc/guix.texi:6586 msgid "" -"Select only packages handled by @var{updater} (may be a comma-separated list " -"of updaters). Currently, @var{updater} may be one of:" +"Select only packages handled by @var{updater} (may be a comma-separated list" +" of updaters). Currently, @var{updater} may be one of:" msgstr "" #. type: table @@ -15516,8 +17427,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:6633 msgid "" -"In addition, @command{guix refresh} can be passed one or more package names, " -"as in this example:" +"In addition, @command{guix refresh} can be passed one or more package names," +" as in this example:" msgstr "" #. type: example @@ -15536,8 +17447,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:6647 msgid "" -"When considering whether to upgrade a package, it is sometimes convenient to " -"know which packages would be affected by the upgrade and should be checked " +"When considering whether to upgrade a package, it is sometimes convenient to" +" know which packages would be affected by the upgrade and should be checked " "for compatibility. For this the following option may be used when passing " "@command{guix refresh} one or more package names:" msgstr "" @@ -15694,13 +17605,13 @@ msgstr "" msgid "" "The @code{github} updater uses the @uref{https://developer.github.com/v3/, " "GitHub API} to query for new releases. When used repeatedly e.g. when " -"refreshing all packages, GitHub will eventually refuse to answer any further " -"API requests. By default 60 API requests per hour are allowed, and a full " +"refreshing all packages, GitHub will eventually refuse to answer any further" +" API requests. By default 60 API requests per hour are allowed, and a full " "refresh on all GitHub packages in Guix requires more than this. " "Authentication with GitHub through the use of an API token alleviates these " "limits. To use an API token, set the environment variable " -"@code{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/" -"settings/tokens} or otherwise." +"@code{GUIX_GITHUB_TOKEN} to a token procured from " +"@uref{https://github.com/settings/tokens} or otherwise." msgstr "" #. type: section @@ -15726,9 +17637,9 @@ msgstr "" msgid "" "The @command{guix lint} command is meant to help package developers avoid " "common errors and use a consistent style. It runs a number of checks on a " -"given set of packages in order to find common mistakes in their " -"definitions. Available @dfn{checkers} include (see @code{--list-checkers} " -"for a complete list):" +"given set of packages in order to find common mistakes in their definitions." +" Available @dfn{checkers} include (see @code{--list-checkers} for a " +"complete list):" msgstr "" #. type: table @@ -15792,8 +17703,8 @@ msgstr "" #: doc/guix.texi:6760 msgid "" "Report known vulnerabilities found in the Common Vulnerabilities and " -"Exposures (CVE) databases of the current and past year @uref{https://nvd." -"nist.gov/download.cfm#CVE_FEED, published by the US NIST}." +"Exposures (CVE) databases of the current and past year " +"@uref{https://nvd.nist.gov/download.cfm#CVE_FEED, published by the US NIST}." msgstr "" #. type: table @@ -15822,9 +17733,10 @@ msgstr "" #. type: table #: doc/guix.texi:6778 msgid "" -"Package developers can specify in package recipes the @uref{https://nvd.nist." -"gov/cpe.cfm,Common Platform Enumeration (CPE)} name and version of the " -"package when they differ from the name that Guix uses, as in this example:" +"Package developers can specify in package recipes the " +"@uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)} name " +"and version of the package when they differ from the name that Guix uses, as" +" in this example:" msgstr "" #. type: example @@ -15892,8 +17804,8 @@ msgstr "" #. type: table #: doc/guix.texi:6811 msgid "" -"Only enable the checkers specified in a comma-separated list using the names " -"returned by @code{--list-checkers}." +"Only enable the checkers specified in a comma-separated list using the names" +" returned by @code{--list-checkers}." msgstr "" #. type: section @@ -15926,16 +17838,15 @@ msgid "" "The @command{guix size} command helps package developers profile the disk " "usage of packages. It is easy to overlook the impact of an additional " "dependency added to a package, or the impact of using a single output for a " -"package that could easily be split (@pxref{Packages with Multiple " -"Outputs}). Such are the typical issues that @command{guix size} can " -"highlight." +"package that could easily be split (@pxref{Packages with Multiple Outputs})." +" Such are the typical issues that @command{guix size} can highlight." msgstr "" #. type: Plain text #: doc/guix.texi:6831 msgid "" -"The command can be passed a package specification such as @code{gcc@@4.8} or " -"@code{guile:debug}, or a file name in the store. Consider this example:" +"The command can be passed a package specification such as @code{gcc@@4.8} or" +" @code{guile:debug}, or a file name in the store. Consider this example:" msgstr "" #. type: example @@ -15956,8 +17867,8 @@ msgstr "" #: doc/guix.texi:6847 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:" +"Coreutils---i.e., Coreutils and all its dependencies, recursively---as would" +" be returned by:" msgstr "" #. type: example @@ -15980,10 +17891,10 @@ msgstr "" #. type: Plain text #: doc/guix.texi:6863 msgid "" -"In this example, we see that the closure of Coreutils weighs in at 70@tie{}" -"MiB, half of which is taken by libc. (That libc represents a large fraction " -"of the closure is not a problem @i{per se} because it is always available on " -"the system anyway.)" +"In this example, we see that the closure of Coreutils weighs in at " +"70@tie{}MiB, half of which is taken by libc. (That libc represents a large " +"fraction of the closure is not a problem @i{per se} because it is always " +"available on the system anyway.)" msgstr "" #. type: Plain text @@ -16102,8 +18013,8 @@ msgstr "" #: doc/guix.texi:6923 msgid "" "This option requires that @uref{http://wingolog.org/software/guile-" -"charting/, Guile-Charting} be installed and visible in Guile's module search " -"path. When that is not the case, @command{guix size} fails as it tries to " +"charting/, Guile-Charting} be installed and visible in Guile's module search" +" path. When that is not the case, @command{guix size} fails as it tries to " "load it." msgstr "" @@ -16134,16 +18045,17 @@ msgstr "" #: doc/guix.texi:6948 msgid "" "Packages and their dependencies form a @dfn{graph}, specifically a directed " -"acyclic graph (DAG). It can quickly become difficult to have a mental model " -"of the package DAG, so the @command{guix graph} command provides a visual " +"acyclic graph (DAG). It can quickly become difficult to have a mental model" +" of the package DAG, so the @command{guix graph} command provides a visual " "representation of the DAG. By default, @command{guix graph} emits a DAG " "representation in the input format of @uref{http://www.graphviz.org/, " -"Graphviz}, so its output can be passed directly to the @command{dot} command " -"of Graphviz. It can also emit an HTML page with embedded JavaScript code to " -"display a ``chord diagram'' in a Web browser, using the @uref{https://d3js." -"org/, d3.js} library, or emit Cypher queries to construct a graph in a graph " -"database supporting the @uref{http://www.opencypher.org/, openCypher} query " -"language. The general syntax is:" +"Graphviz}, so its output can be passed directly to the @command{dot} command" +" of Graphviz. It can also emit an HTML page with embedded JavaScript code " +"to display a ``chord diagram'' in a Web browser, using the " +"@uref{https://d3js.org/, d3.js} library, or emit Cypher queries to construct" +" a graph in a graph database supporting the " +"@uref{http://www.opencypher.org/, openCypher} query language. The general " +"syntax is:" msgstr "" #. type: example @@ -16188,8 +18100,8 @@ msgid "" "But there is more than one graph! The one above is concise: it is the graph " "of package objects, omitting implicit inputs such as GCC, libc, grep, etc. " "It is often useful to have such a concise graph, but sometimes one may want " -"to see more details. @command{guix graph} supports several types of graphs, " -"allowing you to choose the level of detail:" +"to see more details. @command{guix graph} supports several types of graphs," +" allowing you to choose the level of detail:" msgstr "" #. type: table @@ -16268,8 +18180,8 @@ msgstr "" #. type: table #: doc/guix.texi:7008 msgid "" -"At the bottom of the graph, we see all the implicit inputs of @var{gnu-build-" -"system} (@pxref{Build Systems, @code{gnu-build-system}})." +"At the bottom of the graph, we see all the implicit inputs of @var{gnu-" +"build-system} (@pxref{Build Systems, @code{gnu-build-system}})." msgstr "" #. type: table @@ -16301,7 +18213,8 @@ msgstr "" #. type: table #: doc/guix.texi:7019 -msgid "Similar to @code{bag}, but also showing origins and their dependencies." +msgid "" +"Similar to @code{bag}, but also showing origins and their dependencies." msgstr "" #. type: table @@ -16403,10 +18316,10 @@ msgstr "" #. type: table #: doc/guix.texi:7071 msgid "" -"This relies exclusively on local information from your store. For instance, " -"let us suppose that the current Inkscape is available in 10 profiles on your " -"machine; @command{guix graph -t referrers inkscape} will show a graph rooted " -"at Inkscape and with those 10 profiles linked to it." +"This relies exclusively on local information from your store. For instance," +" let us suppose that the current Inkscape is available in 10 profiles on " +"your machine; @command{guix graph -t referrers inkscape} will show a graph " +"rooted at Inkscape and with those 10 profiles linked to it." msgstr "" #. type: table @@ -16552,19 +18465,19 @@ msgstr "" #: doc/guix.texi:7150 msgid "" "If the needed dependencies are not built yet, @command{guix environment} " -"automatically builds them. The environment of the new shell is an augmented " -"version of the environment that @command{guix environment} was run in. It " +"automatically builds them. The environment of the new shell is an augmented" +" version of the environment that @command{guix environment} was run in. It " "contains the necessary search paths for building the given package added to " "the existing environment variables. To create a ``pure'' environment, in " -"which the original environment variables have been unset, use the @code{--" -"pure} option@footnote{Users sometimes wrongfully augment environment " -"variables such as @code{PATH} in their @file{~/.bashrc} file. As a " +"which the original environment variables have been unset, use the " +"@code{--pure} option@footnote{Users sometimes wrongfully augment environment" +" variables such as @code{PATH} in their @file{~/.bashrc} file. As a " "consequence, when @code{guix environment} launches it, Bash may read " "@file{~/.bashrc}, thereby introducing ``impurities'' in these environment " -"variables. It is an error to define such environment variables in @file{." -"bashrc}; instead, they should be defined in @file{.bash_profile}, which is " -"sourced only by log-in shells. @xref{Bash Startup Files,,, bash, The GNU " -"Bash Reference Manual}, for details on Bash start-up files.}." +"variables. It is an error to define such environment variables in " +"@file{.bashrc}; instead, they should be defined in @file{.bash_profile}, " +"which is sourced only by log-in shells. @xref{Bash Startup Files,,, bash, " +"The GNU Bash Reference Manual}, for details on Bash start-up files.}." msgstr "" #. type: vindex @@ -16609,8 +18522,8 @@ msgstr "" msgid "" "Additionally, more than one package may be specified, in which case the " "union of the inputs for the given packages are used. For example, the " -"command below spawns a shell where all of the dependencies of both Guile and " -"Emacs are available:" +"command below spawns a shell where all of the dependencies of both Guile and" +" Emacs are available:" msgstr "" #. type: example @@ -16622,8 +18535,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:7184 msgid "" -"Sometimes an interactive shell session is not desired. An arbitrary command " -"may be invoked by placing the @code{--} token to separate the command from " +"Sometimes an interactive shell session is not desired. An arbitrary command" +" may be invoked by placing the @code{--} token to separate the command from " "the rest of the arguments:" msgstr "" @@ -16651,14 +18564,13 @@ msgstr "" #: doc/guix.texi:7207 msgid "" "Furthermore, one might want the dependencies of a package and also some " -"additional packages that are not build-time or runtime dependencies, but are " -"useful when developing nonetheless. Because of this, the @code{--ad-hoc} " +"additional packages that are not build-time or runtime dependencies, but are" +" useful when developing nonetheless. Because of this, the @code{--ad-hoc} " "flag is positional. Packages appearing before @code{--ad-hoc} are " -"interpreted as packages whose dependencies will be added to the " -"environment. Packages appearing after are interpreted as packages that will " -"be added to the environment directly. For example, the following command " -"creates a Guix development environment that additionally includes Git and " -"strace:" +"interpreted as packages whose dependencies will be added to the environment." +" Packages appearing after are interpreted as packages that will be added to" +" the environment directly. For example, the following command creates a " +"Guix development environment that additionally includes Git and strace:" msgstr "" #. type: example @@ -16671,11 +18583,12 @@ msgstr "" #: doc/guix.texi:7219 msgid "" "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 GuixSD, 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:" +"for maximal purity and reproducibility. In particular, when using Guix on a" +" host distro that is not GuixSD, 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:" msgstr "" #. type: example @@ -16724,10 +18637,10 @@ msgstr "" #: doc/guix.texi:7246 msgid "" "When this option is omitted, the environment is protected from garbage " -"collection only for the duration of the @command{guix environment} session. " -"This means that next time you recreate the same environment, you could have " -"to rebuild or re-download packages. @xref{Invoking guix gc}, for more on GC " -"roots." +"collection only for the duration of the @command{guix environment} session." +" This means that next time you recreate the same environment, you could " +"have to rebuild or re-download packages. @xref{Invoking guix gc}, for more " +"on GC roots." msgstr "" #. type: table @@ -16781,7 +18694,9 @@ msgstr "" #. type: example #: doc/guix.texi:7274 #, no-wrap -msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n" +msgid "" +"guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) " +"\"include\")'\n" msgstr "" #. type: item @@ -16835,8 +18750,8 @@ msgstr "" msgid "" "Include all specified packages in the resulting environment, as if an @i{ad " "hoc} package were defined with them as inputs. This option is useful for " -"quickly creating an environment without having to write a package expression " -"to contain the desired inputs." +"quickly creating an environment without having to write a package expression" +" to contain the desired inputs." msgstr "" #. type: table @@ -16862,8 +18777,8 @@ msgstr "" msgid "" "Note that this example implicitly asks for the default output of " "@code{guile} and @code{guile-sdl}, but it is possible to ask for a specific " -"output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib} " -"(@pxref{Packages with Multiple Outputs})." +"output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib}" +" (@pxref{Packages with Multiple Outputs})." msgstr "" #. type: table @@ -16872,8 +18787,8 @@ msgid "" "This option may be composed with the default behavior of @command{guix " "environment}. Packages appearing before @code{--ad-hoc} are interpreted as " "packages whose dependencies will be added to the environment, the default " -"behavior. Packages appearing after are interpreted as packages that will be " -"added to the environment directly." +"behavior. Packages appearing after are interpreted as packages that will be" +" added to the environment directly." msgstr "" #. type: item @@ -16931,10 +18846,10 @@ 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." +"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 "" #. type: item @@ -16953,7 +18868,8 @@ msgstr "" #: doc/guix.texi:7352 msgid "" "For containers, share the network namespace with the host system. " -"Containers created without this flag only have access to the loopback device." +"Containers created without this flag only have access to the loopback " +"device." msgstr "" #. type: item @@ -16972,8 +18888,8 @@ msgstr "" #: doc/guix.texi:7361 msgid "" "For containers, link the environment profile to @file{~/.guix-profile} " -"within the container. This is equivalent to running the command @command{ln " -"-s $GUIX_ENVIRONMENT ~/.guix-profile} within the container. Linking will " +"within the container. This is equivalent to running the command @command{ln" +" -s $GUIX_ENVIRONMENT ~/.guix-profile} within the container. Linking will " "fail and abort the environment if the directory already exists, which will " "certainly be the case if @command{guix environment} was invoked in the " "user's home directory." @@ -16985,8 +18901,8 @@ msgid "" "Certain packages are configured to look in @code{~/.guix-profile} for " "configuration files and data;@footnote{For example, the @code{fontconfig} " "package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} " -"@code{--link-profile} allows these programs to behave as expected within the " -"environment." +"@code{--link-profile} allows these programs to behave as expected within the" +" environment." msgstr "" #. type: item @@ -17005,18 +18921,18 @@ msgstr "" #: doc/guix.texi:7376 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 " +"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 "" #. type: table #: doc/guix.texi:7381 msgid "" -"Additionally, any shared or exposed path (see @code{--share} and @code{--" -"expose} respectively) whose target is within the current user's home " -"directory will be remapped relative to @file{/home/USER}; this includes the " -"automatic mapping of the current working directory." +"Additionally, any shared or exposed path (see @code{--share} and " +"@code{--expose} respectively) whose target is within the current user's home" +" directory will be remapped relative to @file{/home/USER}; this includes the" +" automatic mapping of the current working directory." msgstr "" #. type: example @@ -17063,7 +18979,9 @@ msgstr "" #. type: example #: doc/guix.texi:7406 #, no-wrap -msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n" +msgid "" +"guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- " +"guile\n" msgstr "" #. type: item @@ -17076,8 +18994,8 @@ msgstr "" #: doc/guix.texi:7413 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 " +"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 "" @@ -17085,14 +19003,16 @@ msgstr "" #: doc/guix.texi:7417 msgid "" "The example below spawns a Guile REPL in a container in which the user's " -"home directory is accessible for both reading and writing via the @file{/" -"exchange} directory:" +"home directory is accessible for both reading and writing via the " +"@file{/exchange} directory:" msgstr "" #. type: example #: doc/guix.texi:7420 #, no-wrap -msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n" +msgid "" +"guix environment --container --share=$HOME=/exchange --ad-hoc guile -- " +"guile\n" msgstr "" #. type: Plain text @@ -17131,8 +19051,8 @@ msgid "" "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{hydra." -"gnu.org} build farm." +"HTTP interface is compatible with Hydra, the software behind the " +"@code{hydra.gnu.org} build farm." msgstr "" #. type: Plain text @@ -17147,8 +19067,8 @@ msgstr "" "Pour des raisons de sécurité, chaque substitut est signé, ce qui permet aux " "destinataires de vérifier leur authenticité et leur intégrité " "(@pxref{Substituts}). Comme @command{guix publish} utilise la clef de " -"signature du système, qui n'est lisible que par l'administrateur système, il " -"doit être lancé en root ; l'option @code{--user} lui fait baisser ses " +"signature du système, qui n'est lisible que par l'administrateur système, il" +" doit être lancé en root ; l'option @code{--user} lui fait baisser ses " "privilèges le plus tôt possible." #. type: Plain text @@ -17197,8 +19117,8 @@ msgid "" "By default, @command{guix publish} compresses archives on the fly as it " "serves them. This ``on-the-fly'' mode is convenient in that it requires no " "setup and is immediately available. However, when serving lots of clients, " -"we recommend using the @option{--cache} option, which enables caching of the " -"archives before they are sent to clients---see below for details. The " +"we recommend using the @option{--cache} option, which enables caching of the" +" archives before they are sent to clients---see below for details. The " "@command{guix weather} command provides a handy way to check what a server " "provides (@pxref{Invoking guix weather})." msgstr "" @@ -17206,12 +19126,12 @@ msgstr "" #. type: Plain text #: doc/guix.texi:7486 msgid "" -"As a bonus, @command{guix publish} also serves as a content-addressed mirror " -"for source files referenced in @code{origin} records (@pxref{origin " +"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}):" +"@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 "" #. type: example @@ -17249,8 +19169,8 @@ msgstr "" 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-" +"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 "" @@ -17317,8 +19237,8 @@ msgstr "" #: doc/guix.texi:7541 msgid "" "Unless @option{--cache} is used, compression occurs on the fly and the " -"compressed streams are not cached. Thus, to reduce load on the machine that " -"runs @command{guix publish}, it may be a good idea to choose a low " +"compressed streams are not cached. Thus, to reduce load on the machine that" +" runs @command{guix publish}, it may be a good idea to choose a low " "compression level, to run @command{guix publish} behind a caching proxy, or " "to use @option{--cache}. Using @option{--cache} has the advantage that it " "allows @command{guix publish} to add @code{Content-Length} HTTP header to " @@ -17347,8 +19267,8 @@ msgstr "" #. type: table #: doc/guix.texi:7554 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 " +"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 " @@ -17371,8 +19291,8 @@ msgstr "" #: doc/guix.texi:7566 msgid "" "The ``baking'' process is performed by worker threads. By default, one " -"thread per CPU core is created, but this can be customized. See @option{--" -"workers} below." +"thread per CPU core is created, but this can be customized. See " +"@option{--workers} below." msgstr "" #. type: table @@ -17413,9 +19333,9 @@ msgstr "" #: doc/guix.texi:7583 msgid "" "This allows the user's Guix to keep substitute information in cache for " -"@var{ttl}. However, note that @code{guix publish} does not itself guarantee " -"that the store items it provides will indeed remain available for as long as " -"@var{ttl}." +"@var{ttl}. However, note that @code{guix publish} does not itself guarantee" +" that the store items it provides will indeed remain available for as long " +"as @var{ttl}." msgstr "" #. type: table @@ -17442,9 +19362,9 @@ msgstr "" #. type: table #: doc/guix.texi:7595 msgid "" -"By default, nars are served at a URL such as @code{/nar/gzip/@dots{}-" -"coreutils-8.25}. This option allows you to change the @code{/nar} part to " -"@var{path}." +"By default, nars are served at a URL such as " +"@code{/nar/gzip/@dots{}-coreutils-8.25}. This option allows you to change " +"the @code{/nar} part to @var{path}." msgstr "" #. type: item @@ -17462,19 +19382,19 @@ msgstr "" #. type: table #: doc/guix.texi:7600 msgid "" -"Use the specific @var{file}s as the public/private key pair used to sign the " -"store items being published." +"Use the specific @var{file}s as the public/private key pair used to sign the" +" store items being published." msgstr "" #. type: table #: doc/guix.texi:7607 msgid "" "The files must correspond to the same key pair (the private key is used for " -"signing and the public key is merely advertised in the signature metadata). " -"They must contain keys in the canonical s-expression format as produced by " -"@command{guix archive --generate-key} (@pxref{Invoking guix archive}). By " -"default, @file{/etc/guix/signing-key.pub} and @file{/etc/guix/signing-key." -"sec} are used." +"signing and the public key is merely advertised in the signature metadata)." +" They must contain keys in the canonical s-expression format as produced by" +" @command{guix archive --generate-key} (@pxref{Invoking guix archive}). By " +"default, @file{/etc/guix/signing-key.pub} and @file{/etc/guix/signing-" +"key.sec} are used." msgstr "" #. type: item @@ -17492,8 +19412,8 @@ msgstr "" #. type: table #: doc/guix.texi:7613 msgid "" -"Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile Reference " -"Manual}) on @var{port} (37146 by default). This is used primarily for " +"Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile Reference" +" Manual}) on @var{port} (37146 by default). This is used primarily for " "debugging a running @command{guix publish} server." msgstr "" @@ -17567,9 +19487,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:7656 msgid "" -"Do the binaries provided by this server really correspond to the source code " -"it claims to build? Is a package build process deterministic? These are the " -"questions the @command{guix challenge} command attempts to answer." +"Do the binaries provided by this server really correspond to the source code" +" it claims to build? Is a package build process deterministic? These are the" +" questions the @command{guix challenge} command attempts to answer." msgstr "" #. type: Plain text @@ -17583,8 +19503,8 @@ msgid "" "server provides a binary different from the one obtained locally, it may be " "either corrupt or malicious." msgstr "" -"La première question est évidemment importante : avant d'utiliser un serveur " -"de substituts (@pxref{Substituts}), il vaut mieux @emph{vérifier} qu'il " +"La première question est évidemment importante : avant d'utiliser un serveur" +" de substituts (@pxref{Substituts}), il vaut mieux @emph{vérifier} qu'il " "fournit les bons binaires et donc le @emph{défier}. La deuxième est ce qui " "permet la première : si les constructions des paquets sont déterministes " "alors des constructions indépendantes du paquet devraient donner le même " @@ -17597,8 +19517,8 @@ msgid "" "We know that the hash that shows up in @file{/gnu/store} file names is the " "hash of all the inputs of the process that built the file or directory---" "compilers, libraries, build scripts, etc. (@pxref{Introduction}). Assuming " -"deterministic build processes, one store file name should map to exactly one " -"build output. @command{guix challenge} checks whether there is, indeed, a " +"deterministic build processes, one store file name should map to exactly one" +" build output. @command{guix challenge} checks whether there is, indeed, a " "single mapping by comparing the build outputs of several independent builds " "of any given store item." msgstr "" @@ -17651,11 +19571,11 @@ msgstr "" #. type: Plain text #: doc/guix.texi:7707 msgid "" -"In this example, @command{guix challenge} first scans the store to determine " -"the set of locally-built derivations---as opposed to store items that were " +"In this example, @command{guix challenge} first scans the store to determine" +" the set of locally-built derivations---as opposed to store items that were " "downloaded from a substitute server---and then queries all the substitute " -"servers. It then reports those store items for which the servers obtained a " -"result different from the local build." +"servers. It then reports those store items for which the servers obtained a" +" result different from the local build." msgstr "" #. type: cindex @@ -17674,8 +19594,8 @@ msgid "" "things that Guix does not fully control, in spite of building packages in " "isolated environments (@pxref{Features}). 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." +"inclusion of random numbers, and directory listings sorted by inode number." +" See @uref{https://reproducible-builds.org/docs/}, for more information." msgstr "" #. type: Plain text @@ -17697,8 +19617,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:7736 msgid "" -"This command shows the difference between the files resulting from the local " -"build, and the files resulting from the build on @code{hydra.gnu.org} " +"This command shows the difference between the files resulting from the local" +" build, and the files resulting from the build on @code{hydra.gnu.org} " "(@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/, " @@ -17710,8 +19630,8 @@ msgstr "" msgid "" "Once you have done that work, you can tell whether the differences are due " "to a non-deterministic build process or to a malicious server. We try hard " -"to remove sources of non-determinism in packages to make it easier to verify " -"substitutes, but of course, this is a process that involves not just Guix, " +"to remove sources of non-determinism in packages to make it easier to verify" +" substitutes, but of course, this is a process that involves not just Guix, " "but a large part of the free software community. In the meantime, " "@command{guix challenge} is one tool to help address the problem." msgstr "" @@ -17746,9 +19666,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:7768 msgid "" -"When a difference is found between the hash of a locally-built item and that " -"of a server-provided substitute, or among substitutes provided by different " -"servers, the command displays it as in the example above and its exit code " +"When a difference is found between the hash of a locally-built item and that" +" of a server-provided substitute, or among substitutes provided by different" +" servers, the command displays it as in the example above and its exit code " "is 2 (other non-zero exit codes denote other kinds of errors.)" msgstr "" @@ -17812,10 +19732,10 @@ msgstr "" msgid "" "The @command{guix copy} command copies items from the store of one machine " "to that of another machine over a secure shell (SSH) " -"connection@footnote{This command is available only when Guile-SSH was " -"found. @xref{Requirements}, for details.}. For example, the following " -"command copies the @code{coreutils} package, the user's profile, and all " -"their dependencies over to @var{host}, logged in as @var{user}:" +"connection@footnote{This command is available only when Guile-SSH was found." +" @xref{Requirements}, for details.}. For example, the following command " +"copies the @code{coreutils} package, the user's profile, and all their " +"dependencies over to @var{host}, logged in as @var{user}:" msgstr "" #. type: example @@ -17850,18 +19770,18 @@ msgstr "" #: doc/guix.texi:7816 msgid "" "The SSH connection is established using the Guile-SSH client, which is " -"compatible with OpenSSH: it honors @file{~/.ssh/known_hosts} and @file{~/." -"ssh/config}, and uses the SSH agent for authentication." +"compatible with OpenSSH: it honors @file{~/.ssh/known_hosts} and " +"@file{~/.ssh/config}, and uses the SSH agent for authentication." msgstr "" #. type: Plain text #: doc/guix.texi:7822 msgid "" "The key used to sign items that are sent must be accepted by the remote " -"machine. Likewise, the key used by the remote machine to sign items you are " -"retrieving must be in @file{/etc/guix/acl} so it is accepted by your own " -"daemon. @xref{Invoking guix archive}, for more information about store item " -"authentication." +"machine. Likewise, the key used by the remote machine to sign items you are" +" retrieving must be in @file{/etc/guix/acl} so it is accepted by your own " +"daemon. @xref{Invoking guix archive}, for more information about store item" +" authentication." msgstr "" #. type: example @@ -17890,8 +19810,8 @@ msgstr "" #. type: table #: doc/guix.texi:7837 msgid "" -"Specify the host to send to or receive from. @var{spec} must be an SSH spec " -"such as @code{example.org}, @code{charlie@@example.org}, or " +"Specify the host to send to or receive from. @var{spec} must be an SSH spec" +" such as @code{example.org}, @code{charlie@@example.org}, or " "@code{charlie@@example.org:2222}." msgstr "" @@ -17906,8 +19826,8 @@ msgstr "" #: doc/guix.texi:7845 msgid "" "When specifying the name of a package to send, it is first built if needed, " -"unless @option{--dry-run} was specified. Common build options are supported " -"(@pxref{Common Build Options})." +"unless @option{--dry-run} was specified. Common build options are supported" +" (@pxref{Common Build Options})." msgstr "" #. type: section @@ -17933,8 +19853,8 @@ msgstr "" #: doc/guix.texi:7861 msgid "" "The purpose of @command{guix container} is to manipulate processes running " -"within an isolated environment, commonly known as a ``container'', typically " -"created by the @command{guix environment} (@pxref{Invoking guix " +"within an isolated environment, commonly known as a ``container'', typically" +" created by the @command{guix environment} (@pxref{Invoking guix " "environment}) and @command{guix system container} (@pxref{Invoking guix " "system}) commands." msgstr "" @@ -18020,15 +19940,15 @@ msgstr "" msgid "" "Occasionally you're grumpy because substitutes are lacking and you end up " "building packages by yourself (@pxref{Substitutes}). The @command{guix " -"weather} command reports on substitute availability on the specified servers " -"so you can have an idea of whether you'll be grumpy today. It can sometimes " -"be useful info as a user, but it is primarily useful to people running " -"@command{guix publish} (@pxref{Invoking guix publish})." +"weather} command reports on substitute availability on the specified servers" +" so you can have an idea of whether you'll be grumpy today. It can " +"sometimes be useful info as a user, but it is primarily useful to people " +"running @command{guix publish} (@pxref{Invoking guix publish})." msgstr "" "Vous pouvez parfois grogner lorsque les substituts ne sont pas disponibles " "et que vous devez construire les paquets vous-même (@pxref{Substituts}). La " -"commande @command{guix weather} rapporte la disponibilité des substituts sur " -"les serveurs spécifiés pour que vous sachiez si vous allez raller " +"commande @command{guix weather} rapporte la disponibilité des substituts sur" +" les serveurs spécifiés pour que vous sachiez si vous allez raller " "aujourd'hui. Cela peut parfois être une information utile pour les " "utilisateurs, mais elle est surtout utile pour les personnes qui font " "tourner @command{guix publish} (@pxref{Invoking guix publish})." @@ -18107,10 +20027,10 @@ msgid "" "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." +"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." msgstr "" #. type: Plain text @@ -18158,14 +20078,14 @@ msgstr "" #. type: Plain text #: doc/guix.texi:7995 msgid "" -"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{System Installation}), " -"but it is also possible to install Guix as a package manager on top of an " -"installed GNU/Linux system (@pxref{Installation}). To distinguish between " -"the two, we refer to the standalone distribution as the Guix System " -"Distribution, or GuixSD." +"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{System Installation}), but it is also possible to install Guix as a " +"package manager on top of an installed GNU/Linux system " +"(@pxref{Installation}). To distinguish between the two, we refer to the " +"standalone distribution as the Guix System Distribution, or GuixSD." msgstr "" #. type: Plain text @@ -18173,9 +20093,9 @@ msgstr "" msgid "" "The distribution provides core GNU packages such as GNU libc, GCC, and " "Binutils, as well as many GNU and non-GNU applications. The complete list " -"of available packages can be browsed @url{http://www.gnu.org/software/guix/" -"packages,on-line} or by running @command{guix package} (@pxref{Invoking guix " -"package}):" +"of available packages can be browsed " +"@url{http://www.gnu.org/software/guix/packages,on-line} or by running " +"@command{guix package} (@pxref{Invoking guix package}):" msgstr "" #. type: example @@ -18315,12 +20235,13 @@ msgstr "" msgid "" "As of version @value{VERSION}, the Guix System Distribution (GuixSD) 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 GuixSD 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})." +"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 " +"GuixSD 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})." msgstr "" #. type: Plain text @@ -18353,8 +20274,8 @@ msgstr "" #. type: itemize #: doc/guix.texi:8124 msgid "" -"More than 6,500 packages are available, but you might occasionally find that " -"a useful package is missing." +"More than 6,500 packages are available, but you might occasionally find that" +" a useful package is missing." msgstr "" #. type: itemize @@ -18420,11 +20341,11 @@ msgstr "" #. type: Plain text #: doc/guix.texi:8165 msgid "" -"The @uref{https://www.fsf.org/, Free Software Foundation} runs @uref{https://" -"www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a certification program " -"for hardware products that respect your freedom and your privacy and ensure " -"that you have control over your device. We encourage you to check the list " -"of RYF-certified devices." +"The @uref{https://www.fsf.org/, Free Software Foundation} runs " +"@uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a " +"certification program for hardware products that respect your freedom and " +"your privacy and ensure that you have control over your device. We " +"encourage you to check the list of RYF-certified devices." msgstr "" #. type: Plain text @@ -18439,9 +20360,9 @@ msgstr "" #: doc/guix.texi:8178 msgid "" "An ISO-9660 installation image that can be written to a USB stick or burnt " -"to a DVD can be downloaded from @indicateurl{ftp://alpha.gnu.org/gnu/guix/" -"guixsd-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is " -"one of:" +"to a DVD can be downloaded from " +"@indicateurl{ftp://alpha.gnu.org/gnu/guix/guixsd-" +"install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of:" msgstr "" #. type: table @@ -18472,8 +20393,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:8209 msgid "" -"This image contains the tools necessary for an installation. It is meant to " -"be copied @emph{as is} to a large-enough USB stick or DVD." +"This image contains the tools necessary for an installation. It is meant to" +" be copied @emph{as is} to a large-enough USB stick or DVD." msgstr "" #. type: unnumberedsubsubsec @@ -18534,13 +20455,16 @@ msgstr "" #: doc/guix.texi:8251 msgid "" "Insert a blank DVD into your machine, and determine its device name. " -"Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with:" +"Assuming that the DVD drive is known as @file{/dev/srX}, copy the image " +"with:" msgstr "" #. type: example #: doc/guix.texi:8254 #, no-wrap -msgid "growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64.iso\n" +msgid "" +"growisofs -dvd-compat -Z /dev/srX=guixsd-" +"install-@value{VERSION}.x86_64.iso\n" msgstr "" #. type: enumerate @@ -18557,8 +20481,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:8264 msgid "" -"Once this is done, you should be able to reboot the system and boot from the " -"USB stick or DVD. The latter usually requires you to get in the BIOS or " +"Once this is done, you should be able to reboot the system and boot from the" +" USB stick or DVD. The latter usually requires you to get in the BIOS or " "UEFI boot menu, where you can choose to boot from the USB stick." msgstr "" @@ -18724,8 +20648,8 @@ msgstr "" #: doc/guix.texi:8351 msgid "" "As an example, the following stanza can go to this file and will work for " -"many wireless networks, provided you give the actual SSID and passphrase for " -"the network you are connecting to:" +"many wireless networks, provided you give the actual SSID and passphrase for" +" the network you are connecting to:" msgstr "" #. type: example @@ -18837,10 +20761,10 @@ msgstr "" #. type: Plain text #: doc/guix.texi:8408 msgid "" -"The installation image includes several partitioning tools, including Parted " -"(@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and " -"@command{cfdisk}. Run it and set up your disk with the partition layout you " -"want:" +"The installation image includes several partitioning tools, including Parted" +" (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and " +"@command{cfdisk}. Run it and set up your disk with the partition layout you" +" want:" msgstr "" #. type: example @@ -18879,8 +20803,9 @@ msgstr "" #: doc/guix.texi:8424 msgid "" "If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System " -"Partition} (ESP) is required. This partition should be mounted at @file{/" -"boot/efi} and must have the @code{esp} flag set. E.g., for @command{parted}:" +"Partition} (ESP) is required. This partition should be mounted at " +"@file{/boot/efi} and must have the @code{esp} flag set. E.g., for " +"@command{parted}:" msgstr "" #. type: example @@ -18910,9 +20835,10 @@ msgstr "" msgid "" "Preferably, assign file systems a label so that you can easily and reliably " "refer to them in @code{file-system} declarations (@pxref{File Systems}). " -"This is typically done using the @code{-L} option of @command{mkfs.ext4} and " -"related commands. So, assuming the target root partition lives at @file{/" -"dev/sda1}, a file system with the label @code{my-root} can be created with:" +"This is typically done using the @code{-L} option of @command{mkfs.ext4} and" +" related commands. So, assuming the target root partition lives at " +"@file{/dev/sda1}, a file system with the label @code{my-root} can be created" +" with:" msgstr "" #. type: example @@ -18964,9 +20890,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:8477 msgid "" -"Also mount any other file systems you would like to use on the target system " -"relative to this path. If you have @file{/boot} on a separate partition for " -"example, mount it at @file{/mnt/boot} now so it is found by @code{guix " +"Also mount any other file systems you would like to use on the target system" +" relative to this path. If you have @file{/boot} on a separate partition " +"for example, mount it at @file{/mnt/boot} now so it is found by @code{guix " "system init} afterwards." msgstr "" @@ -18974,8 +20900,8 @@ msgstr "" #: doc/guix.texi:8482 msgid "" "Finally, if you plan to use one or more swap partitions (@pxref{Memory " -"Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure " -"to initialize them with @command{mkswap}. Assuming you have one swap " +"Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure" +" to initialize them with @command{mkswap}. Assuming you have one swap " "partition on @file{/dev/sda2}, you would run:" msgstr "" @@ -18992,8 +20918,8 @@ msgstr "" msgid "" "Alternatively, you may use a swap file. For example, assuming that in the " "new system you want to use the file @file{/swapfile} as a swap file, you " -"would run@footnote{This example will work for many types of file systems (e." -"g., ext4). However, for copy-on-write file systems (e.g., btrfs), the " +"would run@footnote{This example will work for many types of file systems " +"(e.g., ext4). However, for copy-on-write file systems (e.g., btrfs), the " "required steps may be different. For details, see the manual pages for " "@command{mkswap} and @command{swapon}.}:" msgstr "" @@ -19014,15 +20940,15 @@ msgstr "" #: doc/guix.texi:8507 msgid "" "Note that if you have encrypted the root partition and created a swap file " -"in its file system as described above, then the encryption also protects the " -"swap file, just like any other file in that file system." +"in its file system as described above, then the encryption also protects the" +" swap file, just like any other file in that file system." msgstr "" #. type: Plain text #: doc/guix.texi:8513 msgid "" -"With the target partitions ready and the target root mounted on @file{/mnt}, " -"we're ready to go. First, run:" +"With the target partitions ready and the target root mounted on @file{/mnt}," +" we're ready to go. First, run:" msgstr "" #. type: example @@ -19047,12 +20973,12 @@ msgid "" "Next, you have to edit a file and provide the declaration of the operating " "system to be installed. To that end, the installation system comes with " "three text editors. We recommend GNU nano (@pxref{Top,,, nano, GNU nano " -"Manual}), which supports syntax highlighting and parentheses matching; other " -"editors include GNU Zile (an Emacs clone), and nvi (a clone of the original " -"BSD @command{vi} editor). We strongly recommend storing that file on the " +"Manual}), which supports syntax highlighting and parentheses matching; other" +" editors include GNU Zile (an Emacs clone), and nvi (a clone of the original" +" BSD @command{vi} editor). We strongly recommend storing that file on the " "target root file system, say, as @file{/mnt/etc/config.scm}. Failing to do " -"that, you will have lost your configuration file once you have rebooted into " -"the newly-installed system." +"that, you will have lost your configuration file once you have rebooted into" +" the newly-installed system." msgstr "" #. type: Plain text @@ -19097,8 +21023,8 @@ msgstr "" #: doc/guix.texi:8566 msgid "" "Be sure that your file system labels match the value of their respective " -"@code{device} fields in your @code{file-system} configuration, assuming your " -"@code{file-system} configuration sets the value of @code{title} to " +"@code{device} fields in your @code{file-system} configuration, assuming your" +" @code{file-system} configuration sets the value of @code{title} to " "@code{'label}." msgstr "" @@ -19216,8 +21142,8 @@ msgstr "" #. type: enumerate #: doc/guix.texi:8626 msgid "" -"Create a disk image that will hold the installed system. To make a qcow2-" -"formatted disk image, use the @command{qemu-img} command:" +"Create a disk image that will hold the installed system. To make a " +"qcow2-formatted disk image, use the @command{qemu-img} command:" msgstr "" #. type: example @@ -19321,12 +21247,12 @@ msgstr "" #: doc/guix.texi:8693 msgid "" "One of the advantages of putting all the system configuration under the " -"control of Guix is that it supports transactional system upgrades, and makes " -"it possible to roll back to a previous system instantiation, should " +"control of Guix is that it supports transactional system upgrades, and makes" +" it possible to roll back to a previous system instantiation, should " "something go wrong with the new one (@pxref{Features}). Another advantage " "is that it makes it easy to replicate the exact same configuration across " -"different machines, or at different points in time, without having to resort " -"to additional administration tools layered on top of the own tools of the " +"different machines, or at different points in time, without having to resort" +" to additional administration tools layered on top of the own tools of the " "system." msgstr "" @@ -19335,8 +21261,8 @@ msgstr "" msgid "" "This section describes this mechanism. First we focus on the system " "administrator's viewpoint---explaining how the system is configured and " -"instantiated. Then we show how this mechanism can be extended, for instance " -"to support new system services." +"instantiated. Then we show how this mechanism can be extended, for instance" +" to support new system services." msgstr "" #. type: Plain text @@ -19365,8 +21291,8 @@ msgstr "" #: doc/guix.texi:8735 msgid "" "This example should be self-describing. Some of the fields defined above, " -"such as @code{host-name} and @code{bootloader}, are mandatory. Others, such " -"as @code{packages} and @code{services}, can be omitted, in which case they " +"such as @code{host-name} and @code{bootloader}, are mandatory. Others, such" +" as @code{packages} and @code{services}, can be omitted, in which case they " "get a default value." msgstr "" @@ -19396,15 +21322,15 @@ msgstr "" msgid "" "The @code{packages} field lists packages that will be globally visible on " "the system, for all user accounts---i.e., in every user's @code{PATH} " -"environment variable---in addition to the per-user profiles (@pxref{Invoking " -"guix package}). The @var{%base-packages} variable provides all the tools " +"environment variable---in addition to the per-user profiles (@pxref{Invoking" +" guix package}). The @var{%base-packages} variable provides all the tools " "one would expect for basic user and administrator tasks---including the GNU " "Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text " "editor, @command{find}, @command{grep}, etc. The example above adds " "GNU@tie{}Screen and OpenSSH to those, taken from the @code{(gnu packages " "screen)} and @code{(gnu packages ssh)} modules (@pxref{Package Modules}). " -"The @code{(list package output)} syntax can be used to add a specific output " -"of a package:" +"The @code{(list package output)} syntax can be used to add a specific output" +" of a package:" msgstr "" #. type: lisp @@ -19439,9 +21365,9 @@ msgid "" "advantage of being unambiguous; it also allows typos and such to be " "diagnosed right away as ``unbound variables''. The downside is that one " "needs to know which module defines which package, and to augment the " -"@code{use-package-modules} line accordingly. To avoid that, one can use the " -"@code{specification->package} procedure of the @code{(gnu packages)} module, " -"which returns the best package for a given name or name and version:" +"@code{use-package-modules} line accordingly. To avoid that, one can use the" +" @code{specification->package} procedure of the @code{(gnu packages)} " +"module, which returns the best package for a given name or name and version:" msgstr "" #. type: lisp @@ -19486,12 +21412,12 @@ msgstr "" msgid "" "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 @command{lshd} secure shell daemon listening on port 2222 " +"declaration above specifies that, in addition to the basic services, we want" +" the @command{lshd} secure shell daemon listening on port 2222 " "(@pxref{Networking Services, @code{lsh-service}}). Under the hood, " "@code{lsh-service} arranges so that @code{lshd} is started with the right " -"command-line options, possibly with supporting configuration files generated " -"as needed (@pxref{Defining Services})." +"command-line options, possibly with supporting configuration files generated" +" as needed (@pxref{Defining Services})." msgstr "" #. type: cindex @@ -19517,8 +21443,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:8811 msgid "" -"For example, suppose you want to modify @code{guix-daemon} and Mingetty (the " -"console log-in) in the @var{%base-services} list (@pxref{Base Services, " +"For example, suppose you want to modify @code{guix-daemon} and Mingetty (the" +" console log-in) in the @var{%base-services} list (@pxref{Base Services, " "@code{%base-services}}). To do that, you can write the following in your " "operating system declaration:" msgstr "" @@ -19568,8 +21494,8 @@ msgstr "" #: doc/guix.texi:8846 msgid "" "The configuration for a typical ``desktop'' usage, with an encrypted root " -"partition, the X11 display server, GNOME and Xfce (users can choose which of " -"these desktop environments to use at the log-in screen by pressing " +"partition, the X11 display server, GNOME and Xfce (users can choose which of" +" these desktop environments to use at the log-in screen by pressing " "@kbd{F1}), network management, power management, and more, would look like " "this:" msgstr "" @@ -19589,8 +21515,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:8854 msgid "" -"A graphical UEFI system with a choice of lightweight window managers instead " -"of full-blown desktop environments would look like this:" +"A graphical UEFI system with a choice of lightweight window managers instead" +" of full-blown desktop environments would look like this:" msgstr "" #. type: include @@ -19620,8 +21546,8 @@ msgstr "" msgid "" "Again, @var{%desktop-services} is just a list of service objects. If you " "want to remove services from there, you can do so using the procedures for " -"list filtering (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile " -"Reference Manual}). For instance, the following expression returns a list " +"list filtering (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile" +" Reference Manual}). For instance, the following expression returns a list " "that contains all the services in @var{%desktop-services} minus the Avahi " "service:" msgstr "" @@ -19657,9 +21583,9 @@ msgid "" "and re-running @command{guix system reconfigure}. One should never have to " "touch files in @file{/etc} or to run commands that modify the system state " "such as @command{useradd} or @command{grub-install}. In fact, you must " -"avoid that since that would not only void your warranty but also prevent you " -"from rolling back to previous versions of your system, should you ever need " -"to." +"avoid that since that would not only void your warranty but also prevent you" +" from rolling back to previous versions of your system, should you ever need" +" to." msgstr "" #. type: cindex @@ -19674,8 +21600,8 @@ msgid "" "Speaking of roll-back, each time you run @command{guix system reconfigure}, " "a new @dfn{generation} of the system is created---without modifying or " "deleting previous generations. Old system generations get an entry in the " -"bootloader boot menu, allowing you to boot them in case something went wrong " -"with the latest generation. Reassuring, no? The @command{guix system list-" +"bootloader boot menu, allowing you to boot them in case something went wrong" +" with the latest generation. Reassuring, no? The @command{guix system list-" "generations} command lists the system generations available on disk. It is " "also possible to roll back the system via the commands @command{guix system " "roll-back} and @command{guix system switch-generation}." @@ -19741,8 +21667,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:8939 msgid "" -"This section summarizes all the options available in @code{operating-system} " -"declarations (@pxref{Using the Configuration System})." +"This section summarizes all the options available in @code{operating-system}" +" declarations (@pxref{Using the Configuration System})." msgstr "" #. type: deftp @@ -19795,7 +21721,8 @@ msgstr "" #. type: table #: doc/guix.texi:8957 msgid "" -"The system bootloader configuration object. @xref{Bootloader Configuration}." +"The system bootloader configuration object. @xref{Bootloader " +"Configuration}." msgstr "" #. type: item @@ -19933,10 +21860,10 @@ msgstr "" #. type: table #: doc/guix.texi:9002 msgid "" -"A list of strings identifying devices or files to be used for ``swap " -"space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference " -"Manual}). For example, @code{'(\"/dev/sda3\")} or @code{'(\"/swapfile\")}. " -"It is possible to specify a swap file in a file system on a mapped device, " +"A list of strings identifying devices or files to be used for ``swap space''" +" (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}). For" +" example, @code{'(\"/dev/sda3\")} or @code{'(\"/swapfile\")}. It is " +"possible to specify a swap file in a file system on a mapped device, " "provided that the necessary device mapping and file system are also " "specified. @xref{Mapped Devices} and @ref{File Systems}." msgstr "" @@ -19975,8 +21902,8 @@ msgstr "" #: doc/guix.texi:9014 msgid "" "A list target file name/file-like object tuples (@pxref{G-Expressions, file-" -"like objects}). These are the skeleton files that will be added to the home " -"directory of newly-created user accounts." +"like objects}). These are the skeleton files that will be added to the home" +" directory of newly-created user accounts." msgstr "" #. type: table @@ -20041,8 +21968,8 @@ msgstr "" #. type: table #: doc/guix.texi:9042 msgid "" -"You can run the @command{tzselect} command to find out which timezone string " -"corresponds to your region. Choosing an invalid timezone name causes " +"You can run the @command{tzselect} command to find out which timezone string" +" corresponds to your region. Choosing an invalid timezone name causes " "@command{guix system} to fail." msgstr "" @@ -20161,8 +22088,8 @@ msgstr "" #. type: table #: doc/guix.texi:9078 msgid "" -"The contents of the @file{/etc/sudoers} file as a file-like object (@pxref{G-" -"Expressions, @code{local-file} and @code{plain-file}})." +"The contents of the @file{/etc/sudoers} file as a file-like object " +"(@pxref{G-Expressions, @code{local-file} and @code{plain-file}})." msgstr "" #. type: table @@ -20209,8 +22136,8 @@ msgstr "" #. type: deftp #: doc/guix.texi:9108 msgid "" -"Objects of this type represent file systems to be mounted. They contain the " -"following members:" +"Objects of this type represent file systems to be mounted. They contain the" +" following members:" msgstr "" #. type: item @@ -20278,10 +22205,11 @@ msgstr "" msgid "" "UUIDs may be converted from their string representation (as shown by the " "@command{tune2fs -l} command) using the @code{uuid} form@footnote{The " -"@code{uuid} form expects 16-byte UUIDs as defined in @uref{https://tools." -"ietf.org/html/rfc4122, RFC@tie{}4122}. This is the form of UUID used by the " -"ext2 family of file systems and others, but it is different from ``UUIDs'' " -"found in FAT file systems, for instance.}, like this:" +"@code{uuid} form expects 16-byte UUIDs as defined in " +"@uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}. This is the form" +" of UUID used by the ext2 family of file systems and others, but it is " +"different from ``UUIDs'' found in FAT file systems, for instance.}, like " +"this:" msgstr "" #. type: example @@ -20328,8 +22256,8 @@ msgstr "" msgid "" "This is a list of symbols denoting mount flags. Recognized flags include " "@code{read-only}, @code{bind-mount}, @code{no-dev} (disallow access to " -"special files), @code{no-suid} (ignore setuid and setgid bits), and @code{no-" -"exec} (disallow program execution.)" +"special files), @code{no-suid} (ignore setuid and setgid bits), and " +"@code{no-exec} (disallow program execution.)" msgstr "" #. type: item @@ -20352,9 +22280,9 @@ msgstr "" #. type: table #: doc/guix.texi:9176 msgid "" -"This value indicates whether to automatically mount the file system when the " -"system is brought up. When set to @code{#f}, the file system gets an entry " -"in @file{/etc/fstab} (read by the @command{mount} command) but is not " +"This value indicates whether to automatically mount the file system when the" +" system is brought up. When set to @code{#f}, the file system gets an entry" +" in @file{/etc/fstab} (read by the @command{mount} command) but is not " "automatically mounted." msgstr "" @@ -20367,10 +22295,10 @@ msgstr "" #. type: table #: doc/guix.texi:9182 msgid "" -"This Boolean value indicates whether the file system is needed when " -"booting. If that is true, then the file system is mounted when the initial " -"RAM disk (initrd) is loaded. This is always the case, for instance, for the " -"root file system." +"This Boolean value indicates whether the file system is needed when booting." +" If that is true, then the file system is mounted when the initial RAM disk" +" (initrd) is loaded. This is always the case, for instance, for the root " +"file system." msgstr "" #. type: item @@ -20469,9 +22397,9 @@ msgstr "" #. type: defvr #: doc/guix.texi:9226 msgid "" -"This file system is mounted as @file{/dev/shm} and is used to support memory " -"sharing across processes (@pxref{Memory-mapped I/O, @code{shm_open},, libc, " -"The GNU C Library Reference Manual})." +"This file system is mounted as @file{/dev/shm} and is used to support memory" +" sharing across processes (@pxref{Memory-mapped I/O, @code{shm_open},, libc," +" The GNU C Library Reference Manual})." msgstr "" #. type: defvr @@ -20519,8 +22447,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:9248 msgid "" -"The @code{fusectl} file system, which allows unprivileged users to mount and " -"unmount user-space FUSE file systems. This requires the @code{fuse.ko} " +"The @code{fusectl} file system, which allows unprivileged users to mount and" +" unmount user-space FUSE file systems. This requires the @code{fuse.ko} " "kernel module to be loaded." msgstr "" @@ -20543,17 +22471,17 @@ msgid "" "as a hard disk partition, can be @dfn{mapped} into another device, usually " "in @code{/dev/mapper/}, with additional processing over the data that flows " "through it@footnote{Note that the GNU@tie{}Hurd makes no difference between " -"the concept of a ``mapped device'' and that of a file system: both boil down " -"to @emph{translating} input/output operations made on a file to operations " +"the concept of a ``mapped device'' and that of a file system: both boil down" +" to @emph{translating} input/output operations made on a file to operations " "on its backing store. Thus, the Hurd implements mapped devices, like file " -"systems, using the generic @dfn{translator} mechanism (@pxref{Translators,,, " -"hurd, The GNU Hurd Reference Manual}).}. A typical example is encryption " -"device mapping: all writes to the mapped device are encrypted, and all reads " -"are deciphered, transparently. Guix extends this notion by considering any " -"device or set of devices that are @dfn{transformed} in some way to create a " -"new device; for instance, RAID devices are obtained by @dfn{assembling} " -"several other devices, such as hard disks or partitions, into a new one that " -"behaves as one partition. Other examples, not yet implemented, are LVM " +"systems, using the generic @dfn{translator} mechanism (@pxref{Translators,,," +" hurd, The GNU Hurd Reference Manual}).}. A typical example is encryption " +"device mapping: all writes to the mapped device are encrypted, and all reads" +" are deciphered, transparently. Guix extends this notion by considering any" +" device or set of devices that are @dfn{transformed} in some way to create a" +" new device; for instance, RAID devices are obtained by @dfn{assembling} " +"several other devices, such as hard disks or partitions, into a new one that" +" behaves as one partition. Other examples, not yet implemented, are LVM " "logical volumes." msgstr "" @@ -20581,8 +22509,8 @@ msgstr "" #: doc/guix.texi:9285 msgid "" "This is either a string specifying the name of the block device to be " -"mapped, such as @code{\"/dev/sda3\"}, or a list of such strings when several " -"devices need to be assembled for creating a new one." +"mapped, such as @code{\"/dev/sda3\"}, or a list of such strings when several" +" devices need to be assembled for creating a new one." msgstr "" #. type: code{#1} @@ -20596,9 +22524,10 @@ msgstr "" msgid "" "This string specifies the name of the resulting mapped device. For kernel " "mappers such as encrypted devices of type @code{luks-device-mapping}, " -"specifying @code{\"my-partition\"} leads to the creation of the @code{\"/dev/" -"mapper/my-partition\"} device. For RAID devices of type @code{raid-device-" -"mapping}, the full device name such as @code{\"/dev/md0\"} needs to be given." +"specifying @code{\"my-partition\"} leads to the creation of the " +"@code{\"/dev/mapper/my-partition\"} device. For RAID devices of type " +"@code{raid-device-mapping}, the full device name such as @code{\"/dev/md0\"}" +" needs to be given." msgstr "" #. type: table @@ -20652,11 +22581,12 @@ msgstr "" #. type: Plain text #: doc/guix.texi:9322 msgid "" -"The following example specifies a mapping from @file{/dev/sda3} to @file{/" -"dev/mapper/home} using LUKS---the @url{https://gitlab.com/cryptsetup/" -"cryptsetup,Linux Unified Key Setup}, a standard mechanism for disk " -"encryption. The @file{/dev/mapper/home} device can then be used as the " -"@code{device} of a @code{file-system} declaration (@pxref{File Systems})." +"The following example specifies a mapping from @file{/dev/sda3} to " +"@file{/dev/mapper/home} using LUKS---the " +"@url{https://gitlab.com/cryptsetup/cryptsetup,Linux Unified Key Setup}, a " +"standard mechanism for disk encryption. The @file{/dev/mapper/home} device " +"can then be used as the @code{device} of a @code{file-system} declaration " +"(@pxref{File Systems})." msgstr "" #. type: example @@ -20672,8 +22602,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:9333 msgid "" -"Alternatively, to become independent of device numbering, one may obtain the " -"LUKS UUID (@dfn{unique identifier}) of the source device by a command like:" +"Alternatively, to become independent of device numbering, one may obtain the" +" LUKS UUID (@dfn{unique identifier}) of the source device by a command like:" msgstr "" #. type: example @@ -20716,8 +22646,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:9356 msgid "" -"A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} " -"may be declared as follows:" +"A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1}" +" may be declared as follows:" msgstr "" #. type: example @@ -20852,8 +22782,8 @@ msgstr "" #: doc/guix.texi:9422 msgid "" "This is the user ID for this account (a number), or @code{#f}. In the " -"latter case, a number is automatically chosen by the system when the account " -"is created." +"latter case, a number is automatically chosen by the system when the account" +" is created." msgstr "" #. type: item @@ -20887,8 +22817,8 @@ msgstr "" #. type: table #: doc/guix.texi:9432 msgid "" -"Indicates whether the home directory of this account should be created if it " -"does not exist yet." +"Indicates whether the home directory of this account should be created if it" +" does not exist yet." msgstr "" #. type: item @@ -20900,8 +22830,8 @@ msgstr "" #. type: table #: doc/guix.texi:9436 msgid "" -"This is a G-expression denoting the file name of a program to be used as the " -"shell (@pxref{G-Expressions})." +"This is a G-expression denoting the file name of a program to be used as the" +" shell (@pxref{G-Expressions})." msgstr "" #. type: item @@ -20934,8 +22864,8 @@ msgstr "" msgid "" "You would normally leave this field to @code{#f}, initialize user passwords " "as @code{root} with the @command{passwd} command, and then let users change " -"it with @command{passwd}. Passwords set with @command{passwd} are of course " -"preserved across reboot and reconfiguration." +"it with @command{passwd}. Passwords set with @command{passwd} are of course" +" preserved across reboot and reconfiguration." msgstr "" #. type: table @@ -21018,9 +22948,9 @@ msgstr "" #: doc/guix.texi:9496 msgid "" "This is the list of basic user groups that users and/or packages expect to " -"be present on the system. This includes groups such as ``root'', ``wheel'', " -"and ``users'', as well as groups used to control access to specific devices " -"such as ``audio'', ``disk'', and ``cdrom''." +"be present on the system. This includes groups such as ``root'', ``wheel''," +" and ``users'', as well as groups used to control access to specific devices" +" such as ``audio'', ``disk'', and ``cdrom''." msgstr "" #. type: defvr @@ -21055,9 +22985,9 @@ msgid "" "A @dfn{locale} defines cultural conventions for a particular language and " "region of the world (@pxref{Locales,,, libc, The GNU C Library Reference " "Manual}). Each locale has a name that typically has the form " -"@code{@var{language}_@var{territory}.@var{codeset}}---e.g., @code{fr_LU." -"utf8} designates the locale for the French language, with cultural " -"conventions from Luxembourg, and using the UTF-8 encoding." +"@code{@var{language}_@var{territory}.@var{codeset}}---e.g., " +"@code{fr_LU.utf8} designates the locale for the French language, with " +"cultural conventions from Luxembourg, and using the UTF-8 encoding." msgstr "" #. type: cindex @@ -21078,20 +23008,20 @@ msgstr "" #: doc/guix.texi:9530 msgid "" "The selected locale is automatically added to the @dfn{locale definitions} " -"known to the system if needed, with its codeset inferred from its name---e." -"g., @code{bo_CN.utf8} will be assumed to use the @code{UTF-8} codeset. " +"known to the system if needed, with its codeset inferred from its name---" +"e.g., @code{bo_CN.utf8} will be assumed to use the @code{UTF-8} codeset. " "Additional locale definitions can be specified in the @code{locale-" -"definitions} slot of @code{operating-system}---this is useful, for instance, " -"if the codeset could not be inferred from the locale name. The default set " -"of locale definitions includes some widely used locales, but not all the " +"definitions} slot of @code{operating-system}---this is useful, for instance," +" if the codeset could not be inferred from the locale name. The default set" +" of locale definitions includes some widely used locales, but not all the " "available locales, in order to save space." msgstr "" #. type: Plain text #: doc/guix.texi:9533 msgid "" -"For instance, to add the North Frisian locale for Germany, the value of that " -"field may be:" +"For instance, to add the North Frisian locale for Germany, the value of that" +" field may be:" msgstr "" #. type: example @@ -21122,10 +23052,10 @@ msgstr "" #. type: Plain text #: doc/guix.texi:9556 msgid "" -"The compiled locale definitions are available at @file{/run/current-system/" -"locale/X.Y}, where @code{X.Y} is the libc version, which is the default " -"location where the GNU@tie{}libc provided by Guix looks for locale data. " -"This can be overridden using the @code{LOCPATH} environment variable " +"The compiled locale definitions are available at @file{/run/current-" +"system/locale/X.Y}, where @code{X.Y} is the libc version, which is the " +"default location where the GNU@tie{}libc provided by Guix looks for locale " +"data. This can be overridden using the @code{LOCPATH} environment variable " "(@pxref{locales-and-locpath, @code{LOCPATH} and locale packages})." msgstr "" @@ -21170,8 +23100,8 @@ msgstr "" #. type: table #: doc/guix.texi:9577 msgid "" -"The ``character set'' or ``code set'' for that locale, @uref{http://www.iana." -"org/assignments/character-sets, as defined by IANA}." +"The ``character set'' or ``code set'' for that locale, " +"@uref{http://www.iana.org/assignments/character-sets, as defined by IANA}." msgstr "" #. type: defvr @@ -21248,8 +23178,8 @@ msgstr "" msgid "" "The ``problem'' in GuixSD 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." +"using a libc version different from the one the system administrator used to" +" build the system-wide locale data." msgstr "" #. type: Plain text @@ -21291,8 +23221,8 @@ msgstr "" #: doc/guix.texi:9644 msgid "" "This example would lead to a system containing locale definitions for both " -"libc 2.21 and the current version of libc in @file{/run/current-system/" -"locale}." +"libc 2.21 and the current version of libc in @file{/run/current-" +"system/locale}." msgstr "" #. type: cindex @@ -21306,8 +23236,8 @@ msgstr "" msgid "" "An important part of preparing an @code{operating-system} declaration is " "listing @dfn{system services} and their configuration (@pxref{Using the " -"Configuration System}). System services are typically daemons launched when " -"the system boots, or other actions needed at that time---e.g., configuring " +"Configuration System}). System services are typically daemons launched when" +" the system boots, or other actions needed at that time---e.g., configuring " "network access." msgstr "" @@ -21331,9 +23261,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:9670 msgid "" -"The above command, run as @code{root}, lists the currently defined " -"services. The @command{herd doc} command shows a synopsis of the given " -"service:" +"The above command, run as @code{root}, lists the currently defined services." +" The @command{herd doc} command shows a synopsis of the given service:" msgstr "" #. type: example @@ -21347,9 +23276,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:9679 msgid "" -"The @command{start}, @command{stop}, and @command{restart} sub-commands have " -"the effect you would expect. For instance, the commands below stop the nscd " -"service and restart the Xorg display server:" +"The @command{start}, @command{stop}, and @command{restart} sub-commands have" +" the effect you would expect. For instance, the commands below stop the " +"nscd service and restart the Xorg display server:" msgstr "" #. type: example @@ -21423,8 +23352,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:9751 msgid "" -"The value associated with @code{special-files-service-type} services must be " -"a list of tuples where the first element is the ``special file'' and the " +"The value associated with @code{special-files-service-type} services must be" +" a list of tuples where the first element is the ``special file'' and the " "second element is its target. By default it is:" msgstr "" @@ -21496,8 +23425,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:9781 msgid "" -"For example, adding the following lines to the @code{services} field of your " -"operating system declaration leads to a @file{/usr/bin/env} symlink:" +"For example, adding the following lines to the @code{services} field of your" +" operating system declaration leads to a @file{/usr/bin/env} symlink:" msgstr "" #. type: example @@ -21695,16 +23624,16 @@ msgstr "" #: doc/guix.texi:9866 msgid "" "The name of the console this agetty runs on, as a string---e.g., " -"@code{\"ttyS0\"}. This argument is optional, it will default to a reasonable " -"default serial port used by the kernel Linux." +"@code{\"ttyS0\"}. This argument is optional, it will default to a reasonable" +" default serial port used by the kernel Linux." msgstr "" #. type: table #: doc/guix.texi:9870 msgid "" "For this, if there is a value for an option @code{agetty.tty} in the kernel " -"command line, agetty will extract the device name of the serial port from it " -"and use that." +"command line, agetty will extract the device name of the serial port from it" +" and use that." msgstr "" #. type: table @@ -21718,8 +23647,8 @@ msgstr "" #. type: table #: doc/guix.texi:9878 msgid "" -"In both cases, agetty will leave the other serial device settings (baud rate " -"etc.) alone---in the hope that Linux pinned them to the correct values." +"In both cases, agetty will leave the other serial device settings (baud rate" +" etc.) alone---in the hope that Linux pinned them to the correct values." msgstr "" #. type: item @@ -21801,8 +23730,8 @@ msgstr "" #: doc/guix.texi:9906 msgid "" "When set to @code{#t} in conjunction with @var{host}, this will add an " -"@code{-r} fakehost option to the command line of the login program specified " -"in @var{login-program}." +"@code{-r} fakehost option to the command line of the login program specified" +" in @var{login-program}." msgstr "" #. type: item @@ -21879,8 +23808,8 @@ msgstr "" #: doc/guix.texi:9931 msgid "" "Control the CLOCAL line flag. This accepts one of three symbols as " -"arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, the " -"default value chosen by agetty is @code{'auto}." +"arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, the" +" default value chosen by agetty is @code{'auto}." msgstr "" #. type: item @@ -21905,8 +23834,8 @@ msgstr "" #. type: table #: doc/guix.texi:9940 msgid "" -"When set to @code{#t}, do not prompt the user for a login name. This can be " -"used with @var{login-program} field to use non-standard login systems." +"When set to @code{#t}, do not prompt the user for a login name. This can be" +" used with @var{login-program} field to use non-standard login systems." msgstr "" #. type: item @@ -21918,8 +23847,8 @@ msgstr "" #. type: table #: doc/guix.texi:9944 msgid "" -"When set to @code{#t}, do not print a newline before printing the @file{/etc/" -"issue} file." +"When set to @code{#t}, do not print a newline before printing the " +"@file{/etc/issue} file." msgstr "" #. type: item @@ -21931,10 +23860,10 @@ msgstr "" #. type: table #: doc/guix.texi:9951 msgid "" -"This option accepts a string containing options that are passed to the login " -"program. When used with the @var{login-program}, be aware that a malicious " -"user could try to enter a login name containing embedded options that could " -"be parsed by the login program." +"This option accepts a string containing options that are passed to the login" +" program. When used with the @var{login-program}, be aware that a malicious" +" user could try to enter a login name containing embedded options that could" +" be parsed by the login program." msgstr "" #. type: item @@ -21999,8 +23928,8 @@ msgstr "" #. type: table #: doc/guix.texi:9973 msgid "" -"When set to an integer value, terminate if no user name could be read within " -"@var{timeout} seconds." +"When set to an integer value, terminate if no user name could be read within" +" @var{timeout} seconds." msgstr "" #. type: item @@ -22093,8 +24022,8 @@ msgstr "" #. type: table #: doc/guix.texi:10008 msgid "" -"This option accepts a string that should be interpreted to mean \"ignore all " -"previous characters\" (also called a \"kill\" character) when the types " +"This option accepts a string that should be interpreted to mean \"ignore all" +" previous characters\" (also called a \"kill\" character) when the types " "their login name." msgstr "" @@ -22159,9 +24088,10 @@ msgstr "" #. type: deffn #: doc/guix.texi:10032 msgid "" -"Return a service to run @uref{https://www.freedesktop.org/wiki/Software/" -"kmscon,kmscon} according to @var{config}, a @code{} " -"object, which specifies the tty to run, among other things." +"Return a service to run " +"@uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} according to " +"@var{config}, a @code{} object, which specifies the " +"tty to run, among other things." msgstr "" #. type: deftp @@ -22191,7 +24121,9 @@ msgstr "" #. type: item #: doc/guix.texi:10043 #, no-wrap -msgid "@code{login-program} (default: @code{#~(string-append #$shadow \"/bin/login\")})" +msgid "" +"@code{login-program} (default: @code{#~(string-append #$shadow " +"\"/bin/login\")})" msgstr "" #. type: table @@ -22255,8 +24187,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:10066 msgid "" -"[#:name-services '()] Return a service that runs the libc name service cache " -"daemon (nscd) with the given @var{config}---an @code{} " +"[#:name-services '()] Return a service that runs the libc name service cache" +" daemon (nscd) with the given @var{config}---an @code{} " "object. @xref{Name Service Switch}, for an example." msgstr "" @@ -22467,9 +24399,9 @@ msgstr "" msgid "" "It enables persistent and aggressive caching of service and host name " "lookups. The latter provides better host name lookup performance, " -"resilience in the face of unreliable name servers, and also better privacy---" -"often the result of host name lookups is in local cache, so external name " -"servers do not even need to be queried." +"resilience in the face of unreliable name servers, and also better privacy" +"---often the result of host name lookups is in local cache, so external name" +" servers do not even need to be queried." msgstr "" #. type: anchor{#1} @@ -22503,7 +24435,9 @@ msgstr "" #. type: item #: doc/guix.texi:10160 #, no-wrap -msgid "@code{syslogd} (default: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})" +msgid "" +"@code{syslogd} (default: @code{#~(string-append #$inetutils " +"\"/libexec/syslogd\")})" msgstr "" #. type: table @@ -22605,8 +24539,8 @@ msgstr "" #. type: table #: doc/guix.texi:10198 msgid "" -"Whether to authorize the substitute keys listed in @code{authorized-keys}---" -"by default that of @code{hydra.gnu.org} (@pxref{Substitutes})." +"Whether to authorize the substitute keys listed in @code{authorized-" +"keys}---by default that of @code{hydra.gnu.org} (@pxref{Substitutes})." msgstr "" "Autoriser ou non les clefs de substituts listées dans @code{authorize-keys} " "— par défaut celle de @code{hydra.gny.org} (@pxref{Substituts})." @@ -22717,7 +24651,8 @@ msgstr "" #. type: table #: doc/guix.texi:10231 msgid "" -"The HTTP proxy used for downloading fixed-output derivations and substitutes." +"The HTTP proxy used for downloading fixed-output derivations and " +"substitutes." msgstr "" #. type: item @@ -22746,15 +24681,16 @@ msgstr "" #. type: deffn #: doc/guix.texi:10243 #, no-wrap -msgid "{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]" +msgid "" +"{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]" msgstr "" #. type: deffn #: doc/guix.texi:10248 msgid "" -"Run @var{udev}, which populates the @file{/dev} directory dynamically. udev " -"rules can be provided as a list of files through the @var{rules} variable. " -"The procedures @var{udev-rule} and @var{file->udev-rule} from @code{(gnu " +"Run @var{udev}, which populates the @file{/dev} directory dynamically. udev" +" rules can be provided as a list of files through the @var{rules} variable." +" The procedures @var{udev-rule} and @var{file->udev-rule} from @code{(gnu " "services base)} simplify the creation of such rule files." msgstr "" @@ -22774,9 +24710,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:10256 msgid "" -"In the following example, a rule for a USB device is defined to be stored in " -"the file @file{90-usb-thing.rules}. The rule runs a script upon detecting a " -"USB device with a given product identifier." +"In the following example, a rule for a USB device is defined to be stored in" +" the file @file{90-usb-thing.rules}. The rule runs a script upon detecting " +"a USB device with a given product identifier." msgstr "" #. type: example @@ -22820,8 +24756,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:10283 msgid "" -"Return a udev file named @var{file-name} containing the rules defined within " -"@var{file}, a file-like object." +"Return a udev file named @var{file-name} containing the rules defined within" +" @var{file}, a file-like object." msgstr "" #. type: deffn @@ -22860,9 +24796,10 @@ msgstr "" msgid "" "Additionally, Guix package definitions can be included in @var{rules} in " "order to extend the udev rules with the definitions found under their " -"@file{lib/udev/rules.d} sub-directory. In lieu of the previous @var{file-" -">udev-rule} example, we could have used the @var{android-udev-rules} package " -"which exists in Guix in the @code{(gnu packages android)} module." +"@file{lib/udev/rules.d} sub-directory. In lieu of the previous " +"@var{file->udev-rule} example, we could have used the @var{android-udev-" +"rules} package which exists in Guix in the @code{(gnu packages android)} " +"module." msgstr "" #. type: deffn @@ -22872,8 +24809,8 @@ msgid "" "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} " +"@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 "" @@ -22942,8 +24879,9 @@ msgstr "" #: doc/guix.texi:10353 msgid "" "Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} " -"when rebooting. It also tries to seed @file{/dev/urandom} from @file{/dev/" -"hwrng} while booting, if @file{/dev/hwrng} exists and is readable." +"when rebooting. It also tries to seed @file{/dev/urandom} from " +"@file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is " +"readable." msgstr "" #. type: defvr @@ -23110,8 +25048,8 @@ msgstr "" #. type: table #: doc/guix.texi:10421 msgid "" -"The host (and thus, network interface) to listen to. Use @code{\"0.0.0.0\"} " -"to listen on all the network interfaces." +"The host (and thus, network interface) to listen to. Use @code{\"0.0.0.0\"}" +" to listen on all the network interfaces." msgstr "" #. type: table @@ -23131,8 +25069,8 @@ msgstr "" #. type: table #: doc/guix.texi:10430 msgid "" -"The URL path at which ``nars'' can be fetched. @xref{Invoking guix publish, " -"@code{--nar-path}}, for details." +"The URL path at which ``nars'' can be fetched. @xref{Invoking guix publish," +" @code{--nar-path}}, for details." msgstr "" #. type: item @@ -23145,10 +25083,10 @@ msgstr "" #: doc/guix.texi:10437 msgid "" "When it is @code{#f}, disable caching and instead generate archives on " -"demand. Otherwise, this should be the name of a directory---e.g., @code{\"/" -"var/cache/guix/publish\"}---where @command{guix publish} caches archives and " -"meta-data ready to be sent. @xref{Invoking guix publish, @option{--cache}}, " -"for more information on the tradeoffs involved." +"demand. Otherwise, this should be the name of a directory---e.g., " +"@code{\"/var/cache/guix/publish\"}---where @command{guix publish} caches " +"archives and meta-data ready to be sent. @xref{Invoking guix publish, " +"@option{--cache}}, for more information on the tradeoffs involved." msgstr "" #. type: item @@ -23174,9 +25112,9 @@ msgstr "" #. type: table #: doc/guix.texi:10447 msgid "" -"When it is an integer, this denotes the @dfn{time-to-live} in seconds of the " -"published archives. @xref{Invoking guix publish, @option{--ttl}}, for more " -"information." +"When it is an integer, this denotes the @dfn{time-to-live} in seconds of the" +" published archives. @xref{Invoking guix publish, @option{--ttl}}, for more" +" information." msgstr "" #. type: anchor{#1} @@ -23242,11 +25180,11 @@ msgstr "" #. type: deffn #: doc/guix.texi:10471 msgid "" -"Return a service that installs a configuration file for the @uref{http://" -"linux-pam.org/Linux-PAM-html/sag-pam_limits.html, @code{pam_limits} " -"module}. The procedure optionally takes a list of @code{pam-limits-entry} " -"values, which can be used to specify @code{ulimit} limits and nice priority " -"limits to user sessions." +"Return a service that installs a configuration file for the " +"@uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, " +"@code{pam_limits} module}. The procedure optionally takes a list of " +"@code{pam-limits-entry} values, which can be used to specify @code{ulimit} " +"limits and nice priority limits to user sessions." msgstr "" #. type: deffn @@ -23296,9 +25234,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:10500 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 " +"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." @@ -23380,8 +25318,8 @@ msgstr "" #: doc/guix.texi:10546 msgid "" "@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, for " -"more information on mcron job specifications. Below is the reference of the " -"mcron service." +"more information on mcron job specifications. Below is the reference of the" +" mcron service." msgstr "" #. type: deffn @@ -23463,8 +25401,8 @@ msgstr "" #. type: table #: doc/guix.texi:10579 msgid "" -"This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds " -"to an mcron job specification (@pxref{Syntax, mcron job specifications,, " +"This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds" +" to an mcron job specification (@pxref{Syntax, mcron job specifications,, " "mcron, GNU@tie{}mcron})." msgstr "" @@ -23533,15 +25471,15 @@ msgstr "" #. type: defvr #: doc/guix.texi:10615 msgid "" -"Other services can extend this one with new @code{log-rotation} objects (see " -"below), thereby augmenting the set of files to be rotated." +"Other services can extend this one with new @code{log-rotation} objects (see" +" below), thereby augmenting the set of files to be rotated." msgstr "" #. type: defvr #: doc/guix.texi:10618 msgid "" -"This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to " -"run the rottlog service." +"This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to" +" run the rottlog service." msgstr "" #. type: deftp @@ -23612,8 +25550,8 @@ msgstr "" #: doc/guix.texi:10646 msgid "" "Taking an example from the Rottlog manual (@pxref{Period Related File " -"Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be defined " -"like this:" +"Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be defined" +" like this:" msgstr "" #. type: example @@ -23728,8 +25666,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:10695 msgid "" -"Return a service that runs @var{dhcp}, a Dynamic Host Configuration Protocol " -"(DHCP) client, on all the non-loopback network interfaces." +"Return a service that runs @var{dhcp}, a Dynamic Host Configuration Protocol" +" (DHCP) client, on all the non-loopback network interfaces." msgstr "" #. type: deffn @@ -23741,8 +25679,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:10701 msgid "" -"This type defines a service that runs a DHCP daemon. To create a service of " -"this type, you must supply a @code{}. For example:" +"This type defines a service that runs a DHCP daemon. To create a service of" +" this type, you must supply a @code{}. For example:" msgstr "" #. type: example @@ -23787,8 +25725,8 @@ msgstr "" msgid "" "The configuration file to use. This is required. It will be passed to " "@code{dhcpd} via its @code{-cf} option. This may be any ``file-like'' " -"object (@pxref{G-Expressions, file-like objects}). See @code{man dhcpd." -"conf} for details on the configuration file syntax." +"object (@pxref{G-Expressions, file-like objects}). See @code{man " +"dhcpd.conf} for details on the configuration file syntax." msgstr "" #. type: item @@ -23861,7 +25799,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:10747 #, no-wrap -msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @" +msgid "" +"{Scheme Procedure} static-networking-service @var{interface} @var{ip} @" msgstr "" #. type: deffn @@ -23932,9 +25871,10 @@ msgstr "" #. type: defvr #: doc/guix.texi:10783 msgid "" -"This is the service type for the @uref{https://wiki.gnome.org/Projects/" -"NetworkManager, NetworkManager} service. The value for this service type is " -"a @code{network-manager-configuration} record." +"This is the service type for the " +"@uref{https://wiki.gnome.org/Projects/NetworkManager, NetworkManager} " +"service. The value for this service type is a @code{network-manager-" +"configuration} record." msgstr "" #. type: defvr @@ -24001,8 +25941,8 @@ msgstr "" #: doc/guix.texi:10808 msgid "" "NetworkManager will run @code{dnsmasq} as a local caching nameserver, using " -"a \"split DNS\" configuration if you are connected to a VPN, and then update " -"@code{resolv.conf} to point to the local nameserver." +"a \"split DNS\" configuration if you are connected to a VPN, and then update" +" @code{resolv.conf} to point to the local nameserver." msgstr "" #. type: item @@ -24284,7 +26224,8 @@ msgstr "" #. type: table #: doc/guix.texi:10917 msgid "" -"Specify a list of IP addresses or hostnames of NTP servers to synchronize to." +"Specify a list of IP addresses or hostnames of NTP servers to synchronize " +"to." msgstr "" #. type: item @@ -24308,10 +26249,10 @@ msgstr "" #. type: table #: doc/guix.texi:10926 msgid "" -"@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers " -"via TLS. This time information is not used for precision but acts as an " -"authenticated constraint, thereby reducing the impact of unauthenticated NTP " -"man-in-the-middle attacks. Specify a list of URLs, IP addresses or " +"@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers" +" via TLS. This time information is not used for precision but acts as an " +"authenticated constraint, thereby reducing the impact of unauthenticated NTP" +" man-in-the-middle attacks. Specify a list of URLs, IP addresses or " "hostnames of HTTPS servers to provide a constraint." msgstr "" @@ -24358,19 +26299,19 @@ msgstr "" #. type: deffn #: doc/guix.texi:10942 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." +"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 "" #. type: deffn #: doc/guix.texi:10948 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 " +"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 "" @@ -24420,7 +26361,8 @@ msgstr "" #. type: item #: doc/guix.texi:10980 #, no-wrap -msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})" +msgid "" +"@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})" msgstr "" #. type: table @@ -24451,7 +26393,8 @@ msgstr "" #: doc/guix.texi:10993 msgid "" "Data type representing an entry in the @command{inetd} configuration. Each " -"entry corresponds to a socket where @command{inetd} will listen for requests." +"entry corresponds to a socket where @command{inetd} will listen for " +"requests." msgstr "" #. type: item @@ -24470,7 +26413,8 @@ msgstr "" #. type: table #: doc/guix.texi:11002 -msgid "A string, the name must correspond to an entry in @code{/etc/services}." +msgid "" +"A string, the name must correspond to an entry in @code{/etc/services}." msgstr "" #. type: code{#1} @@ -24572,8 +26516,8 @@ msgstr "" 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." +"line and lines for hidden services added via @code{tor-hidden-service}. Run" +" @command{man tor} for information about the configuration file." msgstr "" #. type: cindex @@ -24627,7 +26571,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:11062 -msgid "The @code{(gnu services rsync)} module provides the following services:" +msgid "" +"The @code{(gnu services rsync)} module provides the following services:" msgstr "" #. type: Plain text @@ -24646,8 +26591,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:11070 msgid "" -"This is the type for the @uref{https://rsync.samba.org, rsync} rsync daemon, " -"@command{rsync-configuration} record as in this example:" +"This is the type for the @uref{https://rsync.samba.org, rsync} rsync daemon," +" @command{rsync-configuration} record as in this example:" msgstr "" #. type: example @@ -24692,8 +26637,8 @@ msgstr "" #. type: table #: doc/guix.texi:11089 msgid "" -"TCP port on which @command{rsync} listens for incoming connections. If port " -"is less than @code{1024} @command{rsync} needs to be started as the " +"TCP port on which @command{rsync} listens for incoming connections. If port" +" is less than @code{1024} @command{rsync} needs to be started as the " "@code{root} user and group." msgstr "" @@ -24816,8 +26761,8 @@ msgstr "" #. type: table #: doc/guix.texi:11123 msgid "" -"User name or user ID that file transfers to and from that module should take " -"place as when the daemon was run as @code{root}." +"User name or user ID that file transfers to and from that module should take" +" place as when the daemon was run as @code{root}." msgstr "" #. type: item @@ -24833,7 +26778,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:11131 -msgid "Furthermore, @code{(gnu services ssh)} provides the following services." +msgid "" +"Furthermore, @code{(gnu services ssh)} provides the following services." msgstr "" #. type: cindex @@ -24858,11 +26804,11 @@ msgstr "" #: doc/guix.texi:11143 msgid "" "[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @ [#:allow-empty-" -"passwords? #f] [#:root-login? #f] @ [#:syslog-output? #t] [#:x11-forwarding? " -"#t] @ [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @ [#:public-" -"key-authentication? #t] [#:initialize? #t] Run the @command{lshd} program " -"from @var{lsh} to listen on port @var{port-number}. @var{host-key} must " -"designate a file containing the host key, and readable only by root." +"passwords? #f] [#:root-login? #f] @ [#:syslog-output? #t] [#:x11-forwarding?" +" #t] @ [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @ " +"[#:public-key-authentication? #t] [#:initialize? #t] Run the @command{lshd} " +"program from @var{lsh} to listen on port @var{port-number}. @var{host-key} " +"must designate a file containing the host key, and readable only by root." msgstr "" #. type: deffn @@ -24896,15 +26842,16 @@ msgstr "" #: doc/guix.texi:11162 msgid "" "When @var{interfaces} is empty, lshd listens for connections on all the " -"network interfaces; otherwise, @var{interfaces} must be a list of host names " -"or addresses." +"network interfaces; otherwise, @var{interfaces} must be a list of host names" +" or addresses." msgstr "" #. type: deffn #: doc/guix.texi:11166 msgid "" "@var{allow-empty-passwords?} specifies whether to accept log-ins with empty " -"passwords, and @var{root-login?} specifies whether to accept log-ins as root." +"passwords, and @var{root-login?} specifies whether to accept log-ins as " +"root." msgstr "" #. type: deffn @@ -24921,8 +26868,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:11176 msgid "" -"This is the type for the @uref{http://www.openssh.org, OpenSSH} secure shell " -"daemon, @command{sshd}. Its value must be an @code{openssh-configuration} " +"This is the type for the @uref{http://www.openssh.org, OpenSSH} secure shell" +" daemon, @command{sshd}. Its value must be an @code{openssh-configuration} " "record as in this example:" msgstr "" @@ -25003,8 +26950,8 @@ msgstr "" msgid "" "This field determines whether and when to allow logins as root. If " "@code{#f}, root logins are disallowed; if @code{#t}, they are allowed. If " -"it's the symbol @code{'without-password}, then root logins are permitted but " -"not with password-based authentication." +"it's the symbol @code{'without-password}, then root logins are permitted but" +" not with password-based authentication." msgstr "" #. type: item @@ -25048,8 +26995,8 @@ msgstr "" #. type: table #: doc/guix.texi:11229 msgid "" -"Authorized public keys are stored in @file{~/.ssh/authorized_keys}. This is " -"used only by protocol version 2." +"Authorized public keys are stored in @file{~/.ssh/authorized_keys}. This is" +" used only by protocol version 2." msgstr "" #. type: item @@ -25087,8 +27034,8 @@ msgstr "" #. type: table #: doc/guix.texi:11245 msgid "" -"Enables the Pluggable Authentication Module interface. If set to @code{#t}, " -"this will enable PAM authentication using @code{challenge-response-" +"Enables the Pluggable Authentication Module interface. If set to @code{#t}," +" this will enable PAM authentication using @code{challenge-response-" "authentication?} and @code{password-authentication?}, in addition to PAM " "account and session module processing for all authentication types." msgstr "" @@ -25158,7 +27105,8 @@ msgstr "" #. type: table #: doc/guix.texi:11273 -msgid "List of strings describing which environment variables may be exported." +msgid "" +"List of strings describing which environment variables may be exported." msgstr "" #. type: table @@ -25171,10 +27119,10 @@ msgstr "" #. type: table #: doc/guix.texi:11281 msgid "" -"This example allows ssh-clients to export the @code{COLORTERM} variable. It " -"is set by terminal emulators, which support colors. You can use it in your " -"shell's ressource file to enable colors for the prompt and commands if this " -"variable is set." +"This example allows ssh-clients to export the @code{COLORTERM} variable. It" +" is set by terminal emulators, which support colors. You can use it in your" +" shell's ressource file to enable colors for the prompt and commands if this" +" variable is set." msgstr "" #. type: example @@ -25233,14 +27181,15 @@ msgstr "" #. type: table #: doc/guix.texi:11309 msgid "" -"Additional authorized keys can be specified @i{via} @code{service-extension}." +"Additional authorized keys can be specified @i{via} @code{service-" +"extension}." msgstr "" #. type: table #: doc/guix.texi:11312 msgid "" -"Note that this does @emph{not} interfere with the use of @file{~/.ssh/" -"authorized_keys}." +"Note that this does @emph{not} interfere with the use of " +"@file{~/.ssh/authorized_keys}." msgstr "" #. type: deffn @@ -25421,17 +27370,17 @@ msgid "" "@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/}), and 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}. Additionally, add the @var{avahi} " -"package to the system profile so that commands such as @command{avahi-" -"browse} are directly usable." +"so that it can resolve @code{.local} host names using " +"@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. " +"Additionally, add the @var{avahi} package to the system profile so that " +"commands such as @command{avahi-browse} are directly usable." msgstr "" #. type: deffn #: doc/guix.texi:11402 msgid "" -"If @var{host-name} is different from @code{#f}, use that as the host name to " -"publish for this machine; otherwise, use the machine's actual host name." +"If @var{host-name} is different from @code{#f}, use that as the host name to" +" publish for this machine; otherwise, use the machine's actual host name." msgstr "" #. type: deffn @@ -25450,8 +27399,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:11411 msgid "" -"Boolean values @var{ipv4?} and @var{ipv6?} determine whether to use IPv4/" -"IPv6 sockets." +"Boolean values @var{ipv4?} and @var{ipv6?} determine whether to use " +"IPv4/IPv6 sockets." msgstr "" #. type: deffn @@ -25528,9 +27477,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:11447 msgid "" -"To use X11, you must install at least one @dfn{window manager}---for example " -"the @code{windowmaker} or @code{openbox} packages---preferably by adding it " -"to the @code{packages} field of your operating system definition " +"To use X11, you must install at least one @dfn{window manager}---for example" +" the @code{windowmaker} or @code{openbox} packages---preferably by adding it" +" to the @code{packages} field of your operating system definition " "(@pxref{operating-system Reference, system-wide packages})." msgstr "" @@ -25560,8 +27509,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:11459 msgid "" -"SLiM looks for @dfn{session types} described by the @file{.desktop} files in " -"@file{/run/current-system/profile/share/xsessions} and allows users to " +"SLiM looks for @dfn{session types} described by the @file{.desktop} files in" +" @file{/run/current-system/profile/share/xsessions} and allows users to " "choose a session from the log-in screen using @kbd{F1}. Packages such as " "@code{xfce}, @code{sawfish}, and @code{ratpoison} provide @file{.desktop} " "files; adding them to the system-wide set of packages automatically makes " @@ -25571,9 +27520,9 @@ msgstr "" #. type: defvr #: doc/guix.texi:11463 msgid "" -"In addition, @file{~/.xsession} files are honored. When available, @file{~/." -"xsession} must be an executable that starts a window manager and/or other X " -"clients." +"In addition, @file{~/.xsession} files are honored. When available, " +"@file{~/.xsession} must be an executable that starts a window manager and/or" +" other X clients." msgstr "" #. type: deftp @@ -25773,7 +27722,9 @@ msgstr "" #. type: item #: doc/guix.texi:11532 #, no-wrap -msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})" +msgid "" +"@code{halt-command} (default @code{#~(string-apppend #$shepherd " +"\"/sbin/halt\")})" msgstr "" #. type: table @@ -25784,7 +27735,9 @@ msgstr "" #. type: item #: doc/guix.texi:11535 #, no-wrap -msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})" +msgid "" +"@code{reboot-command} (default @code{#~(string-append #$shepherd " +"\"/sbin/reboot\")})" msgstr "" #. type: table @@ -25800,14 +27753,15 @@ msgstr "" #. type: table #: doc/guix.texi:11540 -msgid "" -"Theme to use. Default themes provided by SDDM are \"elarun\" or \"maldives\"." +msgid "Theme to use. Default themes provided by SDDM are \"elarun\" or \"maldives\"." msgstr "" #. type: item #: doc/guix.texi:11541 #, no-wrap -msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")" +msgid "" +"@code{themes-directory} (default \"/run/current-" +"system/profile/share/sddm/themes\")" msgstr "" #. type: table @@ -25818,7 +27772,9 @@ msgstr "" #. type: item #: doc/guix.texi:11544 #, no-wrap -msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")" +msgid "" +"@code{faces-directory} (default \"/run/current-" +"system/profile/share/sddm/faces\")" msgstr "" #. type: table @@ -25895,7 +27851,9 @@ msgstr "" #. type: item #: doc/guix.texi:11565 #, no-wrap -msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})" +msgid "" +"@code{hide-shells} (default @code{#~(string-append #$shadow " +"\"/sbin/nologin\")})" msgstr "" #. type: table @@ -25906,7 +27864,9 @@ msgstr "" #. type: item #: doc/guix.texi:11568 #, no-wrap -msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})" +msgid "" +"@code{session-command} (default @code{#~(string-append #$sddm " +"\"/share/sddm/scripts/wayland-session\")})" msgstr "" #. type: table @@ -25917,7 +27877,9 @@ msgstr "" #. type: item #: doc/guix.texi:11571 #, no-wrap -msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")" +msgid "" +"@code{sessions-directory} (default \"/run/current-" +"system/profile/share/wayland-sessions\")" msgstr "" #. type: table @@ -25939,7 +27901,8 @@ msgstr "" #. type: item #: doc/guix.texi:11577 #, no-wrap -msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})" +msgid "" +"@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})" msgstr "" #. type: table @@ -25950,7 +27913,9 @@ msgstr "" #. type: item #: doc/guix.texi:11580 #, no-wrap -msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})" +msgid "" +"@code{xephyr-path} (default @code{#~(string-append #$xorg-server " +"\"/bin/Xephyr\")})" msgstr "" #. type: table @@ -25961,7 +27926,9 @@ msgstr "" #. type: item #: doc/guix.texi:11583 #, no-wrap -msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})" +msgid "" +"@code{xdisplay-start} (default @code{#~(string-append #$sddm " +"\"/share/sddm/scripts/Xsetup\")})" msgstr "" #. type: table @@ -25972,7 +27939,9 @@ msgstr "" #. type: item #: doc/guix.texi:11586 #, no-wrap -msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})" +msgid "" +"@code{xdisplay-stop} (default @code{#~(string-append #$sddm " +"\"/share/sddm/scripts/Xstop\")})" msgstr "" #. type: table @@ -25994,7 +27963,9 @@ msgstr "" #. type: item #: doc/guix.texi:11592 #, no-wrap -msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")" +msgid "" +"@code{xsessions-directory} (default: \"/run/current-" +"system/profile/share/xsessions\")" msgstr "" #. type: table @@ -26094,8 +28065,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:11635 msgid "" -"[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:" -"configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server " +"[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ " +"[#:configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server " "@var{xorg-server}] 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. " @@ -26116,9 +28087,10 @@ msgstr "" #. type: deffn #: doc/guix.texi:11645 msgid "" -"[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:" -"drivers '()] [#:resolutions '()] [#:extra-config '()] Return a configuration " -"file for the Xorg server containing search paths for all the common drivers." +"[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ " +"[#:drivers '()] [#:resolutions '()] [#:extra-config '()] Return a " +"configuration file for the Xorg server containing search paths for all the " +"common drivers." msgstr "" #. type: deffn @@ -26142,8 +28114,8 @@ msgstr "" #: doc/guix.texi:11658 msgid "" "Likewise, when @var{resolutions} is the empty list, Xorg chooses an " -"appropriate screen resolution; otherwise, it must be a list of resolutions---" -"e.g., @code{((1024 768) (640 480))}." +"appropriate screen resolution; otherwise, it must be a list of resolutions" +"---e.g., @code{((1024 768) (640 480))}." msgstr "" #. type: deffn @@ -26188,9 +28160,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:11684 msgid "" -"The @code{(gnu services cups)} module provides a Guix service definition for " -"the CUPS printing service. To add printer support to a GuixSD system, add a " -"@code{cups-service} to the operating system definition:" +"The @code{(gnu services cups)} module provides a Guix service definition for" +" the CUPS printing service. To add printer support to a GuixSD system, add " +"a @code{cups-service} to the operating system definition:" msgstr "" #. type: deffn @@ -26247,10 +28219,10 @@ msgstr "" #. type: Plain text #: doc/guix.texi:11721 msgid "" -"The available configuration parameters follow. Each parameter definition is " -"preceded by its type; for example, @samp{string-list foo} indicates that the " -"@code{foo} parameter should be specified as a list of strings. There is " -"also a way to specify the configuration as a string, if you have an old " +"The available configuration parameters follow. Each parameter definition is" +" preceded by its type; for example, @samp{string-list foo} indicates that " +"the @code{foo} parameter should be specified as a list of strings. There is" +" also a way to specify the configuration as a string, if you have an old " "@code{cupsd.conf} file that you want to port over from some other system; " "see the end for more details." msgstr "" @@ -26285,7 +28257,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11741 #, no-wrap -msgid "{@code{cups-configuration} parameter} files-configuration files-configuration" +msgid "" +"{@code{cups-configuration} parameter} files-configuration files-" +"configuration" msgstr "" #. type: deftypevr @@ -26313,9 +28287,9 @@ msgid "" "access log generation. The value @code{stderr} causes log entries to be " "sent to the standard error file when the scheduler is running in the " "foreground, or to the system log daemon when run in the background. The " -"value @code{syslog} causes log entries to be sent to the system log daemon. " -"The server name may be included in filenames using the string @code{%s}, as " -"in @code{/var/log/cups/%s-access_log}." +"value @code{syslog} causes log entries to be sent to the system log daemon." +" The server name may be included in filenames using the string @code{%s}, " +"as in @code{/var/log/cups/%s-access_log}." msgstr "" #. type: deftypevr @@ -26355,8 +28329,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11774 msgid "" -"Note that the permissions for the printers.conf file are currently masked to " -"only allow access from the scheduler user (typically root). This is done " +"Note that the permissions for the printers.conf file are currently masked to" +" only allow access from the scheduler user (typically root). This is done " "because printer device URIs sometimes contain sensitive authentication " "information that should not be generally known on the system. There is no " "way to disable this security feature." @@ -26376,8 +28350,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11786 msgid "" -"Defines the error log filename. Specifying a blank filename disables access " -"log generation. The value @code{stderr} causes log entries to be sent to " +"Defines the error log filename. Specifying a blank filename disables access" +" log generation. The value @code{stderr} causes log entries to be sent to " "the standard error file when the scheduler is running in the foreground, or " "to the system log daemon when run in the background. The value " "@code{syslog} causes log entries to be sent to the system log daemon. The " @@ -26446,8 +28420,8 @@ msgstr "" #. type: table #: doc/guix.texi:11811 msgid "" -"Listen or Port errors are fatal, except for IPv6 failures on the loopback or " -"@code{any} addresses." +"Listen or Port errors are fatal, except for IPv6 failures on the loopback or" +" @code{any} addresses." msgstr "" #. type: item @@ -26488,8 +28462,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11826 msgid "" -"Specifies whether the file pseudo-device can be used for new printer " -"queues. The URI @uref{file:///dev/null} is always allowed." +"Specifies whether the file pseudo-device can be used for new printer queues." +" The URI @uref{file:///dev/null} is always allowed." msgstr "" #. type: deftypevr @@ -26598,7 +28572,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11865 msgid "" -"Specifies the directory that contains print jobs and other HTTP request data." +"Specifies the directory that contains print jobs and other HTTP request " +"data." msgstr "" #. type: deftypevr @@ -26615,9 +28590,10 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11874 msgid "" -"Specifies the level of security sandboxing that is applied to print filters, " -"backends, and other child processes of the scheduler; either @code{relaxed} " -"or @code{strict}. This directive is currently only used/supported on macOS." +"Specifies the level of security sandboxing that is applied to print filters," +" backends, and other child processes of the scheduler; either @code{relaxed}" +" or @code{strict}. This directive is currently only used/supported on " +"macOS." msgstr "" #. type: deftypevr @@ -26634,8 +28610,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11883 msgid "" -"Specifies the location of TLS certificates and private keys. CUPS will look " -"for public and private keys in this directory: a @code{.crt} files for PEM-" +"Specifies the location of TLS certificates and private keys. CUPS will look" +" for public and private keys in this directory: a @code{.crt} files for PEM-" "encoded certificates and corresponding @code{.key} files for PEM-encoded " "private keys." msgstr "" @@ -26677,12 +28653,15 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11900 #, no-wrap -msgid "{@code{files-configuration} parameter} space-separated-string-list system-group" +msgid "" +"{@code{files-configuration} parameter} space-separated-string-list system-" +"group" msgstr "" #. type: deftypevr #: doc/guix.texi:11902 -msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication." +msgid "" +"Specifies the group(s) to use for @code{@@SYSTEM} group authentication." msgstr "" #. type: deftypevr @@ -26716,14 +28695,15 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11918 #, no-wrap -msgid "{@code{cups-configuration} parameter} access-log-level access-log-level" +msgid "" +"{@code{cups-configuration} parameter} access-log-level access-log-level" msgstr "" #. type: deftypevr #: doc/guix.texi:11925 msgid "" -"Specifies the logging level for the AccessLog file. The @code{config} level " -"logs when printers and classes are added, deleted, or modified and when " +"Specifies the logging level for the AccessLog file. The @code{config} level" +" logs when printers and classes are added, deleted, or modified and when " "configuration files are accessed or updated. The @code{actions} level logs " "when print jobs are submitted, held, released, modified, or canceled, and " "any of the conditions for @code{config}. The @code{all} level logs all " @@ -26751,7 +28731,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11936 #, no-wrap -msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols" +msgid "" +"{@code{cups-configuration} parameter} browse-local-protocols browse-local-" +"protocols" msgstr "" #. type: deftypevr @@ -26797,8 +28779,8 @@ msgstr "" msgid "" "Specifies the security classification of the server. Any valid banner name " "can be used, including \"classified\", \"confidential\", \"secret\", " -"\"topsecret\", and \"unclassified\", or the banner can be omitted to disable " -"secure printing functions." +"\"topsecret\", and \"unclassified\", or the banner can be omitted to disable" +" secure printing functions." msgstr "" #. type: deftypevr @@ -26839,7 +28821,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11970 #, no-wrap -msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type" +msgid "" +"{@code{cups-configuration} parameter} default-auth-type default-auth-type" msgstr "" #. type: deftypevr @@ -26855,7 +28838,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11976 #, no-wrap -msgid "{@code{cups-configuration} parameter} default-encryption default-encryption" +msgid "" +"{@code{cups-configuration} parameter} default-encryption default-encryption" msgstr "" #. type: deftypevr @@ -26893,8 +28877,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:11993 msgid "" -"Specifies the default paper size for new print queues. @samp{\"Auto\"} uses " -"a locale-specific default, while @samp{\"None\"} specifies there is no " +"Specifies the default paper size for new print queues. @samp{\"Auto\"} uses" +" a locale-specific default, while @samp{\"None\"} specifies there is no " "default paper size. Specific size names are typically @samp{\"Letter\"} or " "@samp{\"A4\"}." msgstr "" @@ -26946,7 +28930,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12009 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer dirty-clean-" +"interval" msgstr "" #. type: deftypevr @@ -26986,7 +28972,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12027 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer filter-limit" msgstr "" #. type: deftypevr @@ -26996,8 +28983,8 @@ msgid "" "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." +"that (100). Setting the limit below these thresholds will effectively limit" +" the scheduler to printing a single job at any time." msgstr "" #. type: deftypevr @@ -27026,7 +29013,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12047 #, no-wrap -msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups" +msgid "" +"{@code{cups-configuration} parameter} host-name-lookups host-name-lookups" msgstr "" #. type: deftypevr @@ -27043,7 +29031,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12058 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer job-kill-delay" msgstr "" #. type: deftypevr @@ -27056,7 +29045,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12065 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer job-retry-" +"interval" msgstr "" #. type: deftypevr @@ -27070,7 +29061,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12074 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer job-retry-limit" msgstr "" #. type: deftypevr @@ -27105,7 +29097,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12089 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer keep-alive-" +"timeout" msgstr "" #. type: deftypevr @@ -27116,14 +29110,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12095 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer limit-request-" +"body" msgstr "" #. type: deftypevr #: doc/guix.texi:12098 msgid "" -"Specifies the maximum size of print files, IPP requests, and HTML form " -"data. A limit of 0 disables the limit check." +"Specifies the maximum size of print files, IPP requests, and HTML form data." +" A limit of 0 disables the limit check." msgstr "" #. type: deftypevr @@ -27138,15 +29134,16 @@ 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." +"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 "" #. type: deftypevr #: doc/guix.texi:12111 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer listen-back-log" msgstr "" #. type: deftypevr @@ -27167,7 +29164,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12122 #, no-wrap -msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls" +msgid "" +"{@code{cups-configuration} parameter} location-access-control-list location-" +"access-controls" msgstr "" #. type: deftypevr @@ -27194,7 +29193,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12131 #, no-wrap -msgid "{@code{location-access-controls} parameter} access-control-list access-controls" +msgid "" +"{@code{location-access-controls} parameter} access-control-list access-" +"controls" msgstr "" #. type: deftypevr @@ -27219,7 +29220,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12138 #, no-wrap -msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls" +msgid "" +"{@code{location-access-controls} parameter} method-access-control-list " +"method-access-controls" msgstr "" #. type: deftypevr @@ -27259,7 +29262,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12158 #, no-wrap -msgid "{@code{method-access-controls} parameter} access-control-list access-controls" +msgid "" +"{@code{method-access-controls} parameter} access-control-list access-" +"controls" msgstr "" #. type: deftypevr @@ -27272,15 +29277,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12167 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer log-debug-history" msgstr "" #. type: deftypevr #: doc/guix.texi:12171 msgid "" "Specifies the number of debugging messages that are retained for logging if " -"an error occurs in a print job. Debug messages are logged regardless of the " -"LogLevel setting." +"an error occurs in a print job. Debug messages are logged regardless of the" +" LogLevel setting." msgstr "" #. type: deftypevr @@ -27298,8 +29304,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12178 msgid "" -"Specifies the level of logging for the ErrorLog file. The value @code{none} " -"stops all logging while @code{debug2} logs everything." +"Specifies the level of logging for the ErrorLog file. The value @code{none}" +" stops all logging while @code{debug2} logs everything." msgstr "" #. type: deftypevr @@ -27334,21 +29340,23 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12192 msgid "" -"Specifies the maximum number of simultaneous clients that are allowed by the " -"scheduler." +"Specifies the maximum number of simultaneous clients that are allowed by the" +" scheduler." msgstr "" #. type: deftypevr #: doc/guix.texi:12196 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer max-clients-per-" +"host" msgstr "" #. type: deftypevr #: doc/guix.texi:12199 msgid "" -"Specifies the maximum number of simultaneous clients that are allowed from a " -"single address." +"Specifies the maximum number of simultaneous clients that are allowed from a" +" single address." msgstr "" #. type: deftypevr @@ -27371,7 +29379,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12210 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer max-hold-time" msgstr "" #. type: deftypevr @@ -27403,7 +29412,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12225 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-" +"printer" msgstr "" #. type: deftypevr @@ -27416,27 +29427,29 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12232 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user" msgstr "" #. type: deftypevr #: doc/guix.texi:12235 msgid "" -"Specifies the maximum number of simultaneous jobs that are allowed per " -"user. A value of 0 allows up to MaxJobs jobs per user." +"Specifies the maximum number of simultaneous jobs that are allowed per user." +" A value of 0 allows up to MaxJobs jobs per user." msgstr "" #. type: deftypevr #: doc/guix.texi:12239 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer max-job-time" msgstr "" #. type: deftypevr #: doc/guix.texi:12242 msgid "" -"Specifies the maximum time a job may take to print before it is canceled, in " -"seconds. Set to 0 to disable cancellation of \"stuck\" jobs." +"Specifies the maximum time a job may take to print before it is canceled, in" +" seconds. Set to 0 to disable cancellation of \"stuck\" jobs." msgstr "" #. type: deftypevr @@ -27447,7 +29460,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12246 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer max-log-size" msgstr "" #. type: deftypevr @@ -27465,7 +29479,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12253 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer multiple-" +"operation-timeout" msgstr "" #. type: deftypevr @@ -27490,9 +29506,9 @@ msgstr "" #: doc/guix.texi:12265 msgid "" "Specifies the format of PageLog lines. Sequences beginning with percent " -"(@samp{%}) characters are replaced with the corresponding information, while " -"all other characters are copied literally. The following percent sequences " -"are recognized:" +"(@samp{%}) characters are replaced with the corresponding information, while" +" all other characters are copied literally. The following percent sequences" +" are recognized:" msgstr "" #. type: item @@ -27594,7 +29610,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12300 #, no-wrap -msgid "{@code{cups-configuration} parameter} environment-variables environment-variables" +msgid "" +"{@code{cups-configuration} parameter} environment-variables environment-" +"variables" msgstr "" #. type: deftypevr @@ -27607,7 +29625,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12307 #, no-wrap -msgid "{@code{cups-configuration} parameter} policy-configuration-list policies" +msgid "" +"{@code{cups-configuration} parameter} policy-configuration-list policies" msgstr "" #. type: deftypevr @@ -27678,7 +29697,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12338 #, no-wrap -msgid "{@code{policy-configuration} parameter} string subscription-private-access" +msgid "" +"{@code{policy-configuration} parameter} string subscription-private-access" msgstr "" #. type: deftypevr @@ -27698,7 +29718,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12352 #, no-wrap -msgid "{@code{policy-configuration} parameter} string subscription-private-values" +msgid "" +"{@code{policy-configuration} parameter} string subscription-private-values" msgstr "" #. type: deftypevr @@ -27711,7 +29732,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12360 #, no-wrap -msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls" +msgid "" +"{@code{policy-configuration} parameter} operation-access-control-list " +"access-controls" msgstr "" #. type: deftypevr @@ -27722,7 +29745,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12367 #, no-wrap -msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files" +msgid "" +"{@code{cups-configuration} parameter} boolean-or-non-negative-integer " +"preserve-job-files" msgstr "" #. type: deftypevr @@ -27742,14 +29767,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12376 #, no-wrap -msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history" +msgid "" +"{@code{cups-configuration} parameter} boolean-or-non-negative-integer " +"preserve-job-history" msgstr "" #. type: deftypevr #: doc/guix.texi:12381 msgid "" -"Specifies whether the job history is preserved after a job is printed. If a " -"numeric value is specified, the job history is preserved for the indicated " +"Specifies whether the job history is preserved after a job is printed. If a" +" numeric value is specified, the job history is preserved for the indicated " "number of seconds after printing. If @code{#t}, the job history is " "preserved until the MaxJobs limit is reached." msgstr "" @@ -27757,7 +29784,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12385 #, no-wrap -msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout" +msgid "" +"{@code{cups-configuration} parameter} non-negative-integer reload-timeout" msgstr "" #. type: deftypevr @@ -27776,8 +29804,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12395 msgid "" -"Specifies the maximum amount of memory to use when converting documents into " -"bitmaps for a printer." +"Specifies the maximum amount of memory to use when converting documents into" +" bitmaps for a printer." msgstr "" #. type: deftypevr @@ -27870,7 +29898,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12437 -msgid "Set the specified environment variable to be passed to child processes." +msgid "" +"Set the specified environment variable to be passed to child processes." msgstr "" #. type: deftypevr @@ -27887,8 +29916,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12446 msgid "" -"Listens on the specified interfaces for encrypted connections. Valid values " -"are of the form @var{address}:@var{port}, where @var{address} is either an " +"Listens on the specified interfaces for encrypted 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." msgstr "" @@ -27905,8 +29934,8 @@ msgid "" "Sets encryption options. By default, CUPS only supports encryption using " "TLS v1.0 or higher using known secure cipher suites. The @code{AllowRC4} " "option enables the 128-bit RC4 cipher suites, which are required for some " -"older clients that do not implement newer ones. The @code{AllowSSL3} option " -"enables SSL v3.0, which is required for some older clients that do not " +"older clients that do not implement newer ones. The @code{AllowSSL3} option" +" enables SSL v3.0, which is required for some older clients that do not " "support TLS v1.0." msgstr "" @@ -27950,9 +29979,10 @@ msgstr "" msgid "" "At this point you're probably thinking ``oh dear, Guix manual, I like you " "but you can stop already with the configuration options''. Indeed. " -"However, one more point: it could be that you have an existing @code{cupsd." -"conf} that you want to use. In that case, you can pass an @code{opaque-cups-" -"configuration} as the configuration of a @code{cups-service-type}." +"However, one more point: it could be that you have an existing " +"@code{cupsd.conf} that you want to use. In that case, you can pass an " +"@code{opaque-cups-configuration} as the configuration of a @code{cups-" +"service-type}." msgstr "" #. type: Plain text @@ -28009,8 +30039,8 @@ msgstr "" #: doc/guix.texi:12522 msgid "" "The @code{(gnu services desktop)} module provides services that are usually " -"useful in the context of a ``desktop'' setup---that is, on a machine running " -"a graphical display server, possibly with graphical user interfaces, etc. " +"useful in the context of a ``desktop'' setup---that is, on a machine running" +" a graphical display server, possibly with graphical user interfaces, etc. " "It also defines services that provide specific desktop environments like " "GNOME, XFCE or MATE." msgstr "" @@ -28032,8 +30062,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:12530 msgid "" -"This is a list of services that builds upon @var{%base-services} and adds or " -"adjusts services for a typical ``desktop'' setup." +"This is a list of services that builds upon @var{%base-services} and adds or" +" adjusts services for a typical ``desktop'' setup." msgstr "" #. type: defvr @@ -28044,8 +30074,8 @@ msgid "" "(@pxref{Networking Services, @code{network-manager-service-type}}), energy " "and color management services, the @code{elogind} login and seat manager, " "the Polkit privilege service, the GeoClue location service, the " -"AccountsService daemon that allows authorized users change system passwords, " -"an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the " +"AccountsService daemon that allows authorized users change system passwords," +" an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the " "name service switch service configured to be able to use @code{nss-mdns} " "(@pxref{Name Service Switch, mDNS})." msgstr "" @@ -28064,14 +30094,14 @@ msgid "" "Additionally, the @code{gnome-desktop-service}, @code{xfce-desktop-service} " "and @code{mate-desktop-service} procedures can add GNOME, XFCE and/or MATE " "to a system. To ``add GNOME'' means that system-level services like the " -"backlight adjustment helpers and the power management utilities are added to " -"the system, extending @code{polkit} and @code{dbus} appropriately, allowing " -"GNOME to operate with elevated privileges on a limited number of special-" +"backlight adjustment helpers and the power management utilities are added to" +" the system, extending @code{polkit} and @code{dbus} appropriately, allowing" +" GNOME to operate with elevated privileges on a limited number of special-" "purpose system interfaces. Additionally, adding a service made by " "@code{gnome-desktop-service} adds the GNOME metapackage to the system " "profile. Likewise, adding the XFCE service not only adds the @code{xfce} " -"metapackage to the system profile, but it also gives the Thunar file manager " -"the ability to open a ``root-mode'' file management window, if the user " +"metapackage to the system profile, but it also gives the Thunar file manager" +" the ability to open a ``root-mode'' file management window, if the user " "authenticates using the administrator's password via the standard polkit " "graphical interface. To ``add MATE'' means that @code{polkit} and " "@code{dbus} are extended appropriately, allowing MATE to operate with " @@ -28083,11 +30113,11 @@ msgstr "" #. type: Plain text #: doc/guix.texi:12574 msgid "" -"The desktop environments in Guix use the Xorg display server by default. If " -"you'd like to use the newer display server protocol called Wayland, you need " -"to use the @code{sddm-service} instead of the @code{slim-service} for the " -"graphical login manager. You should then select the ``GNOME (Wayland)'' " -"session in SDDM. Alternatively you can also try starting GNOME on Wayland " +"The desktop environments in Guix use the Xorg display server by default. If" +" you'd like to use the newer display server protocol called Wayland, you " +"need to use the @code{sddm-service} instead of the @code{slim-service} for " +"the graphical login manager. You should then select the ``GNOME (Wayland)''" +" session in SDDM. Alternatively you can also try starting GNOME on Wayland " "manually from a TTY with the command ``XDG_SESSION_TYPE=wayland exec dbus-" "run-session gnome-session``. Currently only GNOME has support for Wayland." msgstr "" @@ -28115,9 +30145,9 @@ msgstr "" #: doc/guix.texi:12586 msgid "" "Return a service that adds the @code{xfce} package to the system profile, " -"and extends polkit with the ability for @code{thunar} to manipulate the file " -"system as root from within a user session, after the user has authenticated " -"with the administrator's password." +"and extends polkit with the ability for @code{thunar} to manipulate the file" +" system as root from within a user session, after the user has authenticated" +" with the administrator's password." msgstr "" #. type: deffn @@ -28137,8 +30167,8 @@ msgstr "" #: doc/guix.texi:12599 msgid "" "Because the GNOME, XFCE and MATE desktop services pull in so many packages, " -"the default @code{%desktop-services} variable doesn't include either of them " -"by default. To add GNOME, XFCE or MATE, just @code{cons} them onto " +"the default @code{%desktop-services} variable doesn't include either of them" +" by default. To add GNOME, XFCE or MATE, just @code{cons} them onto " "@code{%desktop-services} in the @code{services} field of your " "@code{operating-system}:" msgstr "" @@ -28169,8 +30199,8 @@ msgstr "" #: doc/guix.texi:12618 msgid "" "The actual service definitions included in @code{%desktop-services} and " -"provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are " -"described below." +"provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are" +" described below." msgstr "" #. type: deffn @@ -28189,18 +30219,18 @@ msgstr "" #. type: deffn #: doc/guix.texi:12626 msgid "" -"@uref{http://dbus.freedesktop.org/, D-Bus} is an inter-process communication " -"facility. Its system bus is used to allow system services to communicate " +"@uref{http://dbus.freedesktop.org/, D-Bus} is an inter-process communication" +" facility. Its system bus is used to allow system services to communicate " "and to be notified of system-wide events." msgstr "" #. type: deffn #: doc/guix.texi:12631 msgid "" -"@var{services} must be a list of packages that provide an @file{etc/dbus-1/" -"system.d} directory containing additional D-Bus configuration and policy " -"files. For example, to allow avahi-daemon to use the system bus, " -"@var{services} must be equal to @code{(list avahi)}." +"@var{services} must be a list of packages that provide an " +"@file{etc/dbus-1/system.d} directory containing additional D-Bus " +"configuration and policy files. For example, to allow avahi-daemon to use " +"the system bus, @var{services} must be equal to @code{(list avahi)}." msgstr "" #. type: deffn @@ -28214,8 +30244,8 @@ msgstr "" msgid "" "Return a service that runs the @code{elogind} login and seat management " "daemon. @uref{https://github.com/elogind/elogind, Elogind} exposes a D-Bus " -"interface that can be used to know which users are logged in, know what kind " -"of sessions they have open, suspend the system, inhibit system suspend, " +"interface that can be used to know which users are logged in, know what kind" +" of sessions they have open, suspend the system, inhibit system suspend, " "reboot the system, and other tasks." msgstr "" @@ -28231,9 +30261,9 @@ msgstr "" #: doc/guix.texi:12648 msgid "" "The @var{config} keyword argument specifies the configuration for elogind, " -"and should be the result of an @code{(elogind-configuration (@var{parameter} " -"@var{value})...)} invocation. Available parameters and their default values " -"are:" +"and should be the result of an @code{(elogind-configuration (@var{parameter}" +" @var{value})...)} invocation. Available parameters and their default " +"values are:" msgstr "" #. type: item @@ -28480,8 +30510,9 @@ msgid "" "AccountsService, a system service that can list available accounts, change " "their passwords, and so on. AccountsService integrates with PolicyKit to " "enable unprivileged users to acquire the capability to modify their system " -"configuration. @uref{https://www.freedesktop.org/wiki/Software/" -"AccountsService/, the accountsservice web site} for more information." +"configuration. " +"@uref{https://www.freedesktop.org/wiki/Software/AccountsService/, the " +"accountsservice web site} for more information." msgstr "" #. type: deffn @@ -28500,13 +30531,14 @@ msgstr "" #. type: deffn #: doc/guix.texi:12725 msgid "" -"[#:polkit @var{polkit}] Return a service that runs the @uref{http://www." -"freedesktop.org/wiki/Software/polkit/, Polkit privilege management service}, " -"which allows system administrators to grant access to privileged operations " -"in a structured way. By querying the Polkit service, a privileged system " -"component can know when it should grant additional capabilities to ordinary " -"users. For example, an ordinary user can be granted the capability to " -"suspend the system if the user is logged in locally." +"[#:polkit @var{polkit}] Return a service that runs the " +"@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege " +"management service}, which allows system administrators to grant access to " +"privileged operations in a structured way. By querying the Polkit service, " +"a privileged system component can know when it should grant additional " +"capabilities to ordinary users. For example, an ordinary user can be " +"granted the capability to suspend the system if the user is logged in " +"locally." msgstr "" #. type: deffn @@ -28524,8 +30556,8 @@ msgid "" "[#:time-action 120] @ [#:critical-power-action 'hybrid-sleep] Return a " "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." +"given configuration settings. It implements the " +"@code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME." msgstr "" #. type: deffn @@ -28539,8 +30571,8 @@ msgstr "" msgid "" "Return a service for @uref{http://udisks.freedesktop.org/docs/latest/, " "UDisks}, a @dfn{disk management} daemon that provides user interfaces with " -"notifications and ways to mount/unmount disks. Programs that talk to UDisks " -"include the @command{udisksctl} command, part of UDisks, and GNOME Disks." +"notifications and ways to mount/unmount disks. Programs that talk to UDisks" +" include the @command{udisksctl} command, part of UDisks, and GNOME Disks." msgstr "" #. type: deffn @@ -28562,16 +30594,18 @@ msgstr "" #. type: deffn #: doc/guix.texi:12761 #, no-wrap -msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]" +msgid "" +"{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] " +"[#:users '()]" msgstr "" #. type: deffn #: doc/guix.texi:12770 msgid "" "Return a configuration allowing an application to access GeoClue location " -"data. @var{name} is the Desktop ID of the application, without the @code{." -"desktop} part. If @var{allowed?} is true, the application will have access " -"to location information by default. The boolean @var{system?} value " +"data. @var{name} is the Desktop ID of the application, without the " +"@code{.desktop} part. If @var{allowed?} is true, the application will have " +"access to location information by default. The boolean @var{system?} value " "indicates whether an application is a system component or not. Finally " "@var{users} is a list of UIDs of all users for which this application is " "allowed location info access. An empty users list means that all users are " @@ -28587,11 +30621,11 @@ msgstr "" #. type: defvr #: doc/guix.texi:12779 msgid "" -"The standard list of well-known GeoClue application configurations, granting " -"authority to the GNOME date-and-time utility to ask for the current location " -"in order to set the time zone, and allowing the IceCat and Epiphany web " -"browsers to request location information. IceCat and Epiphany both query " -"the user before allowing a web page to know the user's location." +"The standard list of well-known GeoClue application configurations, granting" +" authority to the GNOME date-and-time utility to ask for the current " +"location in order to set the time zone, and allowing the IceCat and Epiphany" +" web browsers to request location information. IceCat and Epiphany both " +"query the user before allowing a web page to know the user's location." msgstr "" #. type: deffn @@ -28603,15 +30637,17 @@ msgstr "" #. type: deffn #: doc/guix.texi:12794 msgid "" -"[#:whitelist '()] @ [#:wifi-geolocation-url \"https://location.services." -"mozilla.com/v1/geolocate?key=geoclue\"] @ [#:submit-data? #f] [#:wifi-" -"submission-url \"https://location.services.mozilla.com/v1/submit?key=geoclue" -"\"] @ [#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-" -"applications] Return a service that runs the GeoClue location service. This " -"service provides a D-Bus interface to allow applications to request access " +"[#:whitelist '()] @ [#:wifi-geolocation-url " +"\"https://location.services.mozilla.com/v1/geolocate?key=geoclue\"] @ " +"[#:submit-data? #f] [#:wifi-submission-url " +"\"https://location.services.mozilla.com/v1/submit?key=geoclue\"] @ " +"[#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-" +"applications] Return a service that runs the GeoClue location service. This" +" service provides a D-Bus interface to allow applications to request access " "to a user's physical location, and optionally to add information to online " -"location databases. See @uref{https://wiki.freedesktop.org/www/Software/" -"GeoClue/, the GeoClue web site} for more information." +"location databases. See " +"@uref{https://wiki.freedesktop.org/www/Software/GeoClue/, the GeoClue web " +"site} for more information." msgstr "" #. type: deffn @@ -28624,8 +30660,8 @@ msgstr "" #: doc/guix.texi:12803 msgid "" "[@w{#:auto-enable? #f}] Return a service that runs the @command{bluetoothd} " -"daemon, which manages all the Bluetooth devices and provides a number of D-" -"Bus interfaces. When AUTO-ENABLE? is true, the bluetooth controller is " +"daemon, which manages all the Bluetooth devices and provides a number of " +"D-Bus interfaces. When AUTO-ENABLE? is true, the bluetooth controller is " "powered automatically at boot, which can be useful when using a bluetooth " "keyboard or mouse." msgstr "" @@ -28657,8 +30693,8 @@ msgstr "" #: doc/guix.texi:12819 msgid "" "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port " -"5432] [#:locale ``en_US.utf8''] Return a service that runs @var{postgresql}, " -"the PostgreSQL database server." +"5432] [#:locale ``en_US.utf8''] Return a service that runs @var{postgresql}," +" the PostgreSQL database server." msgstr "" #. type: deffn @@ -28728,7 +30764,8 @@ msgstr "" #. type: table #: doc/guix.texi:12846 -msgid "TCP port on which the database server listens for incoming connections." +msgid "" +"TCP port on which the database server listens for incoming connections." msgstr "" #. type: defvr @@ -28863,7 +30900,8 @@ msgstr "" #. type: item #: doc/guix.texi:12897 #, no-wrap -msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})" +msgid "" +"@code{config-file} (default: @code{%default-mongodb-configuration-file})" msgstr "" #. type: table @@ -29025,10 +31063,10 @@ msgstr "" #. type: Plain text #: doc/guix.texi:12971 msgid "" -"The available configuration parameters follow. Each parameter definition is " -"preceded by its type; for example, @samp{string-list foo} indicates that the " -"@code{foo} parameter should be specified as a list of strings. There is " -"also a way to specify the configuration as a string, if you have an old " +"The available configuration parameters follow. Each parameter definition is" +" preceded by its type; for example, @samp{string-list foo} indicates that " +"the @code{foo} parameter should be specified as a list of strings. There is" +" also a way to specify the configuration as a string, if you have an old " "@code{dovecot.conf} file that you want to port over from some other system; " "see the end for more details." msgstr "" @@ -29052,23 +31090,26 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:12986 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen" +msgid "" +"{@code{dovecot-configuration} parameter} comma-separated-string-list listen" msgstr "" #. type: deftypevr #: doc/guix.texi:12992 msgid "" -"A list of IPs or hosts where to listen for connections. @samp{*} listens on " -"all IPv4 interfaces, @samp{::} listens on all IPv6 interfaces. If you want " -"to specify non-default ports or anything more complex, customize the address " -"and port fields of the @samp{inet-listener} of the specific services you are " -"interested in." +"A list of IPs or hosts where to listen for connections. @samp{*} listens on" +" all IPv4 interfaces, @samp{::} listens on all IPv6 interfaces. If you want" +" to specify non-default ports or anything more complex, customize the " +"address and port fields of the @samp{inet-listener} of the specific services" +" you are interested in." msgstr "" #. type: deftypevr #: doc/guix.texi:12994 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols" +msgid "" +"{@code{dovecot-configuration} parameter} protocol-configuration-list " +"protocols" msgstr "" #. type: deftypevr @@ -29103,15 +31144,17 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13008 msgid "" -"UNIX socket path to the master authentication server to find users. This is " -"used by imap (for shared users) and lda. It defaults to @samp{\"/var/run/" -"dovecot/auth-userdb\"}." +"UNIX socket path to the master authentication server to find users. This is" +" used by imap (for shared users) and lda. It defaults to " +"@samp{\"/var/run/dovecot/auth-userdb\"}." msgstr "" #. type: deftypevr #: doc/guix.texi:13010 #, no-wrap -msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins" +msgid "" +"{@code{protocol-configuration} parameter} space-separated-string-list mail-" +"plugins" msgstr "" #. type: deftypevr @@ -29122,20 +31165,23 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13014 #, no-wrap -msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections" +msgid "" +"{@code{protocol-configuration} parameter} non-negative-integer mail-max-" +"userip-connections" msgstr "" #. type: deftypevr #: doc/guix.texi:13018 msgid "" -"Maximum number of IMAP connections allowed for a user from each IP address. " -"NOTE: The username is compared case-sensitively. Defaults to @samp{10}." +"Maximum number of IMAP connections allowed for a user from each IP address." +" NOTE: The username is compared case-sensitively. Defaults to @samp{10}." msgstr "" #. type: deftypevr #: doc/guix.texi:13022 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} service-configuration-list services" +msgid "" +"{@code{dovecot-configuration} parameter} service-configuration-list services" msgstr "" #. type: deftypevr @@ -29169,7 +31215,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13036 #, no-wrap -msgid "{@code{service-configuration} parameter} listener-configuration-list listeners" +msgid "" +"{@code{service-configuration} parameter} listener-configuration-list " +"listeners" msgstr "" #. type: deftypevr @@ -29292,7 +31340,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13099 #, no-wrap -msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port" +msgid "" +"{@code{inet-listener-configuration} parameter} non-negative-integer port" msgstr "" #. type: deftypevr @@ -29316,7 +31365,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13111 #, no-wrap -msgid "{@code{service-configuration} parameter} non-negative-integer service-count" +msgid "" +"{@code{service-configuration} parameter} non-negative-integer service-count" msgstr "" #. type: deftypevr @@ -29330,7 +31380,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13118 #, no-wrap -msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail" +msgid "" +"{@code{service-configuration} parameter} non-negative-integer process-min-" +"avail" msgstr "" #. type: deftypevr @@ -29343,14 +31395,15 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13123 #, no-wrap -msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit" +msgid "" +"{@code{service-configuration} parameter} non-negative-integer vsz-limit" msgstr "" #. type: deftypevr #: doc/guix.texi:13127 msgid "" -"If you set @samp{service-count 0}, you probably need to grow this. Defaults " -"to @samp{256000000}." +"If you set @samp{service-count 0}, you probably need to grow this. Defaults" +" to @samp{256000000}." msgstr "" #. type: deftypevr @@ -29379,13 +31432,15 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13140 msgid "" -"A list of key-value pairs that this dict should hold. Defaults to @samp{()}." +"A list of key-value pairs that this dict should hold. Defaults to " +"@samp{()}." msgstr "" #. type: deftypevr #: doc/guix.texi:13144 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs" +msgid "" +"{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs" msgstr "" #. type: deftypevr @@ -29417,7 +31472,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13157 #, no-wrap -msgid "{@code{passdb-configuration} parameter} space-separated-string-list args" +msgid "" +"{@code{passdb-configuration} parameter} space-separated-string-list args" msgstr "" #. type: deftypevr @@ -29430,7 +31486,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13164 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs" +msgid "" +"{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs" msgstr "" #. type: deftypevr @@ -29461,7 +31518,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13176 #, no-wrap -msgid "{@code{userdb-configuration} parameter} space-separated-string-list args" +msgid "" +"{@code{userdb-configuration} parameter} space-separated-string-list args" msgstr "" #. type: deftypevr @@ -29485,7 +31543,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13188 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration" +msgid "" +"{@code{dovecot-configuration} parameter} plugin-configuration plugin-" +"configuration" msgstr "" #. type: deftypevr @@ -29498,14 +31558,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13193 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces" +msgid "" +"{@code{dovecot-configuration} parameter} list-of-namespace-configuration " +"namespaces" msgstr "" #. type: deftypevr #: doc/guix.texi:13196 msgid "" -"List of namespaces. Each item in the list is created by the @code{namespace-" -"configuration} constructor." +"List of namespaces. Each item in the list is created by the " +"@code{namespace-configuration} constructor." msgstr "" #. type: deftypevr @@ -29533,8 +31595,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13206 msgid "" -"Namespace type: @samp{private}, @samp{shared} or @samp{public}. Defaults to " -"@samp{\"private\"}." +"Namespace type: @samp{private}, @samp{shared} or @samp{public}. Defaults to" +" @samp{\"private\"}." msgstr "" #. type: deftypevr @@ -29548,8 +31610,8 @@ msgstr "" msgid "" "Hierarchy separator to use. You should use the same separator for all " "namespaces or some clients get confused. @samp{/} is usually a good one. " -"The default however depends on the underlying mail storage format. Defaults " -"to @samp{\"\"}." +"The default however depends on the underlying mail storage format. Defaults" +" to @samp{\"\"}." msgstr "" #. type: deftypevr @@ -29640,12 +31702,15 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13259 #, no-wrap -msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes" +msgid "" +"{@code{namespace-configuration} parameter} mailbox-configuration-list " +"mailboxes" msgstr "" #. type: deftypevr #: doc/guix.texi:13262 -msgid "List of predefined mailboxes in this namespace. Defaults to @samp{()}." +msgid "" +"List of predefined mailboxes in this namespace. Defaults to @samp{()}." msgstr "" #. type: deftypevr @@ -29673,14 +31738,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13273 msgid "" -"@samp{create} will automatically create this mailbox. @samp{subscribe} will " -"both create and subscribe to the mailbox. Defaults to @samp{\"no\"}." +"@samp{create} will automatically create this mailbox. @samp{subscribe} will" +" both create and subscribe to the mailbox. Defaults to @samp{\"no\"}." msgstr "" #. type: deftypevr #: doc/guix.texi:13275 #, no-wrap -msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use" +msgid "" +"{@code{mailbox-configuration} parameter} space-separated-string-list " +"special-use" msgstr "" #. type: deftypevr @@ -29701,8 +31768,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13289 msgid "" -"Base directory where to store runtime data. Defaults to @samp{\"/var/run/" -"dovecot/\"}." +"Base directory where to store runtime data. Defaults to " +"@samp{\"/var/run/dovecot/\"}." msgstr "" #. type: deftypevr @@ -29719,7 +31786,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13296 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list login-" +"trusted-networks" msgstr "" #. type: deftypevr @@ -29727,15 +31796,17 @@ msgstr "" msgid "" "List of trusted network ranges. Connections from these IPs are allowed to " "override their IP addresses and ports (for logging and for authentication " -"checks). @samp{disable-plaintext-auth} is also ignored for these networks. " -"Typically you would specify your IMAP proxy servers here. Defaults to " +"checks). @samp{disable-plaintext-auth} is also ignored for these networks." +" Typically you would specify your IMAP proxy servers here. Defaults to " "@samp{()}." msgstr "" #. type: deftypevr #: doc/guix.texi:13305 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list login-" +"access-sockets" msgstr "" #. type: deftypevr @@ -29769,15 +31840,17 @@ msgstr "" #: doc/guix.texi:13324 msgid "" "Should all processes be killed when Dovecot master process shuts down. " -"Setting this to @code{#f} means that Dovecot can be upgraded without forcing " -"existing client connections to close (although that could also be a problem " -"if the upgrade is e.g. due to a security fix). Defaults to @samp{#t}." +"Setting this to @code{#f} means that Dovecot can be upgraded without forcing" +" existing client connections to close (although that could also be a problem" +" if the upgrade is e.g. due to a security fix). Defaults to @samp{#t}." msgstr "" #. type: deftypevr #: doc/guix.texi:13326 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer doveadm-" +"worker-count" msgstr "" #. type: deftypevr @@ -29796,14 +31869,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13335 msgid "" -"UNIX socket or host:port used for connecting to doveadm server. Defaults to " -"@samp{\"doveadm-server\"}." +"UNIX socket or host:port used for connecting to doveadm server. Defaults to" +" @samp{\"doveadm-server\"}." msgstr "" #. type: deftypevr #: doc/guix.texi:13337 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list import-" +"environment" msgstr "" #. type: deftypevr @@ -29817,23 +31892,26 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13343 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?" +msgid "" +"{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?" msgstr "" #. type: deftypevr #: doc/guix.texi:13350 msgid "" -"Disable LOGIN command and all other plaintext authentications unless SSL/TLS " -"is used (LOGINDISABLED capability). Note that if the remote IP matches the " -"local IP (i.e. you're connecting from the same computer), the connection is " -"considered secure and plaintext authentication is allowed. See also " +"Disable LOGIN command and all other plaintext authentications unless SSL/TLS" +" is used (LOGINDISABLED capability). Note that if the remote IP matches the" +" local IP (i.e. you're connecting from the same computer), the connection is" +" considered secure and plaintext authentication is allowed. See also " "ssl=required setting. Defaults to @samp{#t}." msgstr "" #. type: deftypevr #: doc/guix.texi:13352 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-" +"size" msgstr "" #. type: deftypevr @@ -29854,8 +31932,8 @@ msgstr "" #: doc/guix.texi:13367 msgid "" "Time to live for cached data. After TTL expires the cached record is no " -"longer used, *except* if the main database lookup returns internal failure. " -"We also try to handle password changes automatically: If user's previous " +"longer used, *except* if the main database lookup returns internal failure." +" We also try to handle password changes automatically: If user's previous " "authentication was successful, but this one wasn't, the cache isn't used. " "For now this works only with plaintext authentication. Defaults to " "@samp{\"1 hour\"}." @@ -29864,7 +31942,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13369 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl" +msgid "" +"{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl" msgstr "" #. type: deftypevr @@ -29877,7 +31956,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13375 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list auth-" +"realms" msgstr "" #. type: deftypevr @@ -29912,19 +31993,19 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13397 msgid "" -"List of allowed characters in username. If the user-given username contains " -"a character not listed in here, the login automatically fails. This is just " -"an extra check to make sure user can't exploit any potential quote escaping " -"vulnerabilities with SQL/LDAP databases. If you want to allow all " +"List of allowed characters in username. If the user-given username contains" +" a character not listed in here, the login automatically fails. This is " +"just an extra check to make sure user can't exploit any potential quote " +"escaping vulnerabilities with SQL/LDAP databases. If you want to allow all " "characters, set this value to empty. Defaults to " -"@samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@" -"\"}." +"@samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@\"}." msgstr "" #. type: deftypevr #: doc/guix.texi:13399 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} string auth-username-translation" +msgid "" +"{@code{dovecot-configuration} parameter} string auth-username-translation" msgstr "" #. type: deftypevr @@ -29955,7 +32036,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13416 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator" +msgid "" +"{@code{dovecot-configuration} parameter} string auth-master-user-separator" msgstr "" #. type: deftypevr @@ -29971,7 +32053,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13426 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username" +msgid "" +"{@code{dovecot-configuration} parameter} string auth-anonymous-username" msgstr "" #. type: deftypevr @@ -29984,7 +32067,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13432 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-" +"max-count" msgstr "" #. type: deftypevr @@ -30019,8 +32104,8 @@ msgstr "" #: doc/guix.texi:13452 msgid "" "Kerberos keytab to use for the GSSAPI mechanism. Will use the system " -"default (usually @file{/etc/krb5.keytab}) if not specified. You may need to " -"change the auth service to run as root to be able to read this file. " +"default (usually @file{/etc/krb5.keytab}) if not specified. You may need to" +" change the auth service to run as root to be able to read this file. " "Defaults to @samp{\"\"}." msgstr "" @@ -30034,21 +32119,22 @@ msgstr "" #: doc/guix.texi:13459 msgid "" "Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and " -"@samp{ntlm-auth} helper. . " -"Defaults to @samp{#f}." +"@samp{ntlm-auth} helper. ." +" Defaults to @samp{#f}." msgstr "" #. type: deftypevr #: doc/guix.texi:13461 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path" +msgid "" +"{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path" msgstr "" #. type: deftypevr #: doc/guix.texi:13464 msgid "" -"Path for Samba's @samp{ntlm-auth} helper binary. Defaults to @samp{\"/usr/" -"bin/ntlm_auth\"}." +"Path for Samba's @samp{ntlm-auth} helper binary. Defaults to " +"@samp{\"/usr/bin/ntlm_auth\"}." msgstr "" #. type: deftypevr @@ -30067,7 +32153,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13471 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?" +msgid "" +"{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-" +"cert?" msgstr "" #. type: deftypevr @@ -30080,7 +32168,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13477 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?" +msgid "" +"{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-" +"cert?" msgstr "" #. type: deftypevr @@ -30094,15 +32184,17 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13484 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list auth-" +"mechanisms" msgstr "" #. type: deftypevr #: doc/guix.texi:13490 msgid "" "List of wanted authentication mechanisms. Supported mechanisms are: " -"@samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}, " -"@samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, " +"@samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}," +" @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, " "@samp{skey}, and @samp{gss-spnego}. NOTE: See also @samp{disable-plaintext-" "auth} setting." msgstr "" @@ -30110,7 +32202,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13492 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list " +"director-servers" msgstr "" #. type: deftypevr @@ -30124,7 +32218,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13499 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list " +"director-mail-servers" msgstr "" #. type: deftypevr @@ -30157,8 +32253,8 @@ msgstr "" #: doc/guix.texi:13516 msgid "" "How the username is translated before being hashed. Useful values include " -"%Ln if user can log in with or without @@domain, %Ld if mailboxes are shared " -"within domain. Defaults to @samp{\"%Lu\"}." +"%Ln if user can log in with or without @@domain, %Ld if mailboxes are shared" +" within domain. Defaults to @samp{\"%Lu\"}." msgstr "" #. type: deftypevr @@ -30170,8 +32266,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13522 msgid "" -"Log file to use for error messages. @samp{syslog} logs to syslog, @samp{/" -"dev/stderr} logs to stderr. Defaults to @samp{\"syslog\"}." +"Log file to use for error messages. @samp{syslog} logs to syslog, " +"@samp{/dev/stderr} logs to stderr. Defaults to @samp{\"syslog\"}." msgstr "" #. type: deftypevr @@ -30230,7 +32326,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13549 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose-passwords?" +msgid "" +"{@code{dovecot-configuration} parameter} boolean auth-verbose-passwords?" msgstr "" #. type: deftypevr @@ -30239,8 +32336,8 @@ msgid "" "In case of password mismatches, log the attempted password. Valid values " "are no, plain and sha1. sha1 can be useful for detecting brute force " "password attempts vs. user simply trying the same password over and over " -"again. You can also truncate the value to n chars by appending \":n\" (e.g. " -"sha1:6). Defaults to @samp{#f}." +"again. You can also truncate the value to n chars by appending \":n\" (e.g." +" sha1:6). Defaults to @samp{#f}." msgstr "" #. type: deftypevr @@ -30310,7 +32407,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13588 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list login-" +"log-format-elements" msgstr "" #. type: deftypevr @@ -30343,8 +32442,8 @@ msgstr "" #: doc/guix.texi:13604 msgid "" "Log prefix for mail processes. See doc/wiki/Variables.txt for list of " -"possible variables you can use. Defaults to @samp{\"\\\"%s(%u)<%@{pid@}><" -"%@{session@}>: \\\"\"}." +"possible variables you can use. Defaults to " +"@samp{\"\\\"%s(%u)<%@{pid@}><%@{session@}>: \\\"\"}." msgstr "" #. type: deftypevr @@ -30522,8 +32621,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13664 msgid "" -"System user and group used to access mails. If you use multiple, userdb can " -"override these by returning uid or gid fields. You can use either numbers " +"System user and group used to access mails. If you use multiple, userdb can" +" override these by returning uid or gid fields. You can use either numbers " "or names. . Defaults to @samp{\"\"}." msgstr "" @@ -30560,15 +32659,17 @@ msgid "" "Grant access to these supplementary groups for mail processes. Typically " "these are used to set up access to shared mailboxes. Note that it may be " "dangerous to set these if users can create symlinks (e.g. if \"mail\" group " -"is set here, ln -s /var/mail ~/mail/var could allow a user to delete others' " -"mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading " +"is set here, ln -s /var/mail ~/mail/var could allow a user to delete others'" +" mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading " "it). Defaults to @samp{\"\"}." msgstr "" #. type: deftypevr #: doc/guix.texi:13689 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?" +msgid "" +"{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-" +"access?" msgstr "" #. type: deftypevr @@ -30576,8 +32677,8 @@ msgstr "" msgid "" "Allow full file system access to clients. There's no access checks other " "than what the operating system does for the active UID/GID. It works with " -"both maildir and mboxes, allowing you to prefix mailboxes names with e.g. /" -"path/ or ~user/. Defaults to @samp{#f}." +"both maildir and mboxes, allowing you to prefix mailboxes names with e.g. " +"/path/ or ~user/. Defaults to @samp{#f}." msgstr "" #. type: deftypevr @@ -30667,8 +32768,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13734 msgid "" -"Mail index files also exist in NFS. Setting this to yes requires @samp{mmap-" -"disable? #t} and @samp{fsync-disable? #f}. Defaults to @samp{#f}." +"Mail index files also exist in NFS. Setting this to yes requires " +"@samp{mmap-disable? #t} and @samp{fsync-disable? #f}. Defaults to " +"@samp{#f}." msgstr "" #. type: deftypevr @@ -30680,8 +32782,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13742 msgid "" -"Locking method for index files. Alternatives are fcntl, flock and dotlock. " -"Dotlocking uses some tricks which may create more disk I/O than other " +"Locking method for index files. Alternatives are fcntl, flock and dotlock." +" Dotlocking uses some tricks which may create more disk I/O than other " "locking methods. NFS users: flock doesn't work, remember to change " "@samp{mmap-disable}. Defaults to @samp{\"fcntl\"}." msgstr "" @@ -30702,28 +32804,33 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13750 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer first-valid-" +"uid" msgstr "" #. type: deftypevr #: doc/guix.texi:13756 msgid "" -"Valid UID range for users. This is mostly to make sure that users can't log " -"in as daemons or other system users. Note that denying root logins is " -"hardcoded to dovecot binary and can't be done even if @samp{first-valid-uid} " -"is set to 0. Defaults to @samp{500}." +"Valid UID range for users. This is mostly to make sure that users can't log" +" in as daemons or other system users. Note that denying root logins is " +"hardcoded to dovecot binary and can't be done even if @samp{first-valid-uid}" +" is set to 0. Defaults to @samp{500}." msgstr "" #. type: deftypevr #: doc/guix.texi:13758 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid" msgstr "" #. type: deftypevr #: doc/guix.texi:13763 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer first-valid-" +"gid" msgstr "" #. type: deftypevr @@ -30737,13 +32844,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13770 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid" msgstr "" #. type: deftypevr #: doc/guix.texi:13775 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer mail-max-" +"keyword-length" msgstr "" #. type: deftypevr @@ -30756,16 +32866,18 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13781 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs" +msgid "" +"{@code{dovecot-configuration} parameter} colon-separated-file-name-list " +"valid-chroot-dirs" msgstr "" #. type: deftypevr #: doc/guix.texi:13791 msgid "" -"List of directories under which chrooting is allowed for mail processes (i." -"e. /var/mail will allow chrooting to /var/mail/foo/bar too). This setting " -"doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot " -"settings. If this setting is empty, \"/./\" in home dirs are ignored. " +"List of directories under which chrooting is allowed for mail processes " +"(i.e. /var/mail will allow chrooting to /var/mail/foo/bar too). This " +"setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot" +" settings. If this setting is empty, \"/./\" in home dirs are ignored. " "WARNING: Never add directories here which local users can modify, that may " "lead to root exploit. Usually this should be done only if you don't allow " "shell access for users. . Defaults to @samp{()}." @@ -30781,12 +32893,12 @@ msgstr "" #: doc/guix.texi:13802 msgid "" "Default chroot directory for mail processes. This can be overridden for " -"specific users in user database by giving /./ in user's home directory (e." -"g. /home/./user chroots into /home). Note that usually there is no real " -"need to do chrooting, Dovecot doesn't allow users to access files outside " -"their mail directory anyway. If your home directories are prefixed with the " -"chroot directory, append \"/.\" to @samp{mail-chroot}. . Defaults to @samp{\"\"}." +"specific users in user database by giving /./ in user's home directory (e.g." +" /home/./user chroots into /home). Note that usually there is no real need " +"to do chrooting, Dovecot doesn't allow users to access files outside their " +"mail directory anyway. If your home directories are prefixed with the " +"chroot directory, append \"/.\" to @samp{mail-chroot}. " +". Defaults to @samp{\"\"}." msgstr "" #. type: deftypevr @@ -30799,8 +32911,8 @@ msgstr "" #: doc/guix.texi:13808 msgid "" "UNIX socket path to master authentication server to find users. This is " -"used by imap (for shared users) and lda. Defaults to @samp{\"/var/run/" -"dovecot/auth-userdb\"}." +"used by imap (for shared users) and lda. Defaults to " +"@samp{\"/var/run/dovecot/auth-userdb\"}." msgstr "" #. type: deftypevr @@ -30812,27 +32924,32 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13813 msgid "" -"Directory where to look up mail plugins. Defaults to @samp{\"/usr/lib/" -"dovecot\"}." +"Directory where to look up mail plugins. Defaults to " +"@samp{\"/usr/lib/dovecot\"}." msgstr "" #. type: deftypevr #: doc/guix.texi:13815 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list mail-" +"plugins" msgstr "" #. type: deftypevr #: doc/guix.texi:13819 msgid "" "List of plugins to load for all services. Plugins specific to IMAP, LDA, " -"etc. are added to this list in their own .conf files. Defaults to @samp{()}." +"etc. are added to this list in their own .conf files. Defaults to " +"@samp{()}." msgstr "" #. type: deftypevr #: doc/guix.texi:13821 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-" +"min-mail-count" msgstr "" #. type: deftypevr @@ -30846,7 +32963,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13828 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval" +msgid "" +"{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval" msgstr "" #. type: deftypevr @@ -30870,8 +32988,8 @@ msgstr "" msgid "" "Save mails with CR+LF instead of plain LF. This makes sending those mails " "take less CPU, especially with sendfile() syscall with Linux and FreeBSD. " -"But it also creates a bit more disk I/O which may just make it slower. Also " -"note that if other software reads the mboxes/maildirs, they may handle the " +"But it also creates a bit more disk I/O which may just make it slower. Also" +" note that if other software reads the mboxes/maildirs, they may handle the " "extra CRs wrong and cause problems. Defaults to @samp{#f}." msgstr "" @@ -30884,31 +33002,34 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13854 msgid "" -"By default LIST command returns all entries in maildir beginning with a " -"dot. Enabling this option makes Dovecot return only entries which are " -"directories. This is done by stat()ing each entry, so it causes more disk I/" -"O. (For systems setting struct @samp{dirent->d_type} this check is free and " -"it's done always regardless of this setting). Defaults to @samp{#f}." +"By default LIST command returns all entries in maildir beginning with a dot." +" Enabling this option makes Dovecot return only entries which are " +"directories. This is done by stat()ing each entry, so it causes more disk " +"I/O. (For systems setting struct @samp{dirent->d_type} this check is free " +"and it's done always regardless of this setting). Defaults to @samp{#f}." msgstr "" #. type: deftypevr #: doc/guix.texi:13856 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?" +msgid "" +"{@code{dovecot-configuration} parameter} boolean maildir-copy-with-" +"hardlinks?" msgstr "" #. type: deftypevr #: doc/guix.texi:13861 msgid "" -"When copying a message, do it with hard links whenever possible. This makes " -"the performance much better, and it's unlikely to have any side effects. " +"When copying a message, do it with hard links whenever possible. This makes" +" the performance much better, and it's unlikely to have any side effects. " "Defaults to @samp{#t}." msgstr "" #. type: deftypevr #: doc/guix.texi:13863 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?" +msgid "" +"{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?" msgstr "" #. type: deftypevr @@ -30922,7 +33043,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13870 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list mbox-" +"read-locks" msgstr "" #. type: deftypevr @@ -30940,8 +33063,8 @@ msgstr "" #. type: table #: doc/guix.texi:13879 msgid "" -"Create .lock file. This is the oldest and most NFS-safe solution. " -"If you want to use /var/mail/ like directory, the users will need write " +"Create .lock file. This is the oldest and most NFS-safe solution." +" If you want to use /var/mail/ like directory, the users will need write " "access to that directory." msgstr "" @@ -30998,7 +33121,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13896 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks" +msgid "" +"{@code{dovecot-configuration} parameter} space-separated-string-list mbox-" +"write-locks" msgstr "" #. type: deftypevr @@ -31017,7 +33142,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13905 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout" +msgid "" +"{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout" msgstr "" #. type: deftypevr @@ -31038,11 +33164,11 @@ msgstr "" msgid "" "When mbox changes unexpectedly we have to fully read it to find out what " "changed. If the mbox is large this can take a long time. Since the change " -"is usually just a newly appended mail, it'd be faster to simply read the new " -"mails. If this setting is enabled, Dovecot does this but still safely " -"fallbacks to re-reading the whole mbox file whenever something in mbox isn't " -"how it's expected to be. The only real downside to this setting is that if " -"some other MUA changes message flags, Dovecot doesn't notice it " +"is usually just a newly appended mail, it'd be faster to simply read the new" +" mails. If this setting is enabled, Dovecot does this but still safely " +"fallbacks to re-reading the whole mbox file whenever something in mbox isn't" +" how it's expected to be. The only real downside to this setting is that if" +" some other MUA changes message flags, Dovecot doesn't notice it " "immediately. Note that a full sync is done with SELECT, EXAMINE, EXPUNGE " "and CHECK commands. Defaults to @samp{#t}." msgstr "" @@ -31050,15 +33176,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13924 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?" +msgid "" +"{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?" msgstr "" #. type: deftypevr #: doc/guix.texi:13929 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}." +"EXAMINE, EXPUNGE or CHECK commands. If this is set, @samp{mbox-dirty-syncs}" +" is ignored. Defaults to @samp{#f}." msgstr "" #. type: deftypevr @@ -31079,21 +33206,25 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13939 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-" +"index-size" msgstr "" #. type: deftypevr #: doc/guix.texi:13944 msgid "" "If mbox size is smaller than this (e.g. 100k), don't write index files. If " -"an index file already exists it's still read, just not updated. Defaults to " -"@samp{0}." +"an index file already exists it's still read, just not updated. Defaults to" +" @samp{0}." msgstr "" #. type: deftypevr #: doc/guix.texi:13946 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-" +"size" msgstr "" #. type: deftypevr @@ -31119,7 +33250,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13958 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?" +msgid "" +"{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?" msgstr "" #. type: deftypevr @@ -31160,7 +33292,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:13976 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer mail-" +"attachment-min-size" msgstr "" #. type: deftypevr @@ -31239,13 +33373,17 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:14004 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer default-" +"process-limit" msgstr "" #. type: deftypevr #: doc/guix.texi:14009 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer default-" +"client-limit" msgstr "" #. type: deftypevr @@ -31256,15 +33394,17 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:14014 #, no-wrap -msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit" +msgid "" +"{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-" +"limit" msgstr "" #. type: deftypevr #: doc/guix.texi:14019 msgid "" "Default VSZ (virtual memory size) limit for service processes. This is " -"mainly intended to catch and kill processes that leak memory before they eat " -"up everything. Defaults to @samp{256000000}." +"mainly intended to catch and kill processes that leak memory before they eat" +" up everything. Defaults to @samp{256000000}." msgstr "" #. type: deftypevr @@ -31290,9 +33430,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:14033 msgid "" -"Internal user is used by unprivileged processes. It should be separate from " -"login user, so that login processes can't disturb other processes. Defaults " -"to @samp{\"dovecot\"}." +"Internal user is used by unprivileged processes. It should be separate from" +" login user, so that login processes can't disturb other processes. " +"Defaults to @samp{\"dovecot\"}." msgstr "" #. type: deftypevr @@ -31317,8 +33457,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:14043 msgid "" -"PEM encoded X.509 SSL/TLS certificate (public key). Defaults to @samp{\"}." +"A list of @dfn{server blocks} to create in the generated configuration file," +" the elements should be of type @code{}." msgstr "" #. type: table #: doc/guix.texi:15558 msgid "" -"The following example would setup NGinx to serve @code{www.example.com} from " -"the @code{/srv/http/www.example.com} directory, without using HTTPS." +"The following example would setup NGinx to serve @code{www.example.com} from" +" the @code{/srv/http/www.example.com} directory, without using HTTPS." msgstr "" #. type: item @@ -34908,8 +37095,8 @@ msgstr "" msgid "" "Each @code{listen} directive sets the address and port for IP, or the path " "for a UNIX-domain socket on which the server will accept requests. Both " -"address and port, or only address or only port can be specified. An address " -"may also be a hostname, for example:" +"address and port, or only address or only port can be specified. An address" +" may also be a hostname, for example:" msgstr "" #. type: example @@ -35038,8 +37225,8 @@ msgstr "" #. type: deftp #: doc/guix.texi:15675 msgid "" -"Data type representing the configuration of an nginx @code{upstream} block. " -"This type has the following parameters:" +"Data type representing the configuration of an nginx @code{upstream} block." +" This type has the following parameters:" msgstr "" #. type: table @@ -35059,8 +37246,8 @@ msgid "" "Specify the addresses of the servers in the group. The address can be " "specified as a IP address (e.g. @samp{127.0.0.1}), domain name (e.g. " "@samp{backend1.example.com}) or a path to a UNIX socket using the prefix " -"@samp{unix:}. For addresses using an IP address or domain name, the default " -"port is 80, and a different port can be specified explicitly." +"@samp{unix:}. For addresses using an IP address or domain name, the default" +" port is 80, and a different port can be specified explicitly." msgstr "" #. type: deftp @@ -35072,8 +37259,8 @@ msgstr "" #. type: deftp #: doc/guix.texi:15694 msgid "" -"Data type representing the configuration of an nginx @code{location} block. " -"This type has the following parameters:" +"Data type representing the configuration of an nginx @code{location} block." +" This type has the following parameters:" msgstr "" #. type: table @@ -35095,11 +37282,11 @@ msgstr "" #. type: table #: doc/guix.texi:15707 msgid "" -"Body of the location block, specified as a list of strings. This can contain " -"many configuration directives. For example, to pass requests to a upstream " -"server group defined using an @code{nginx-upstream-configuration} block, the " -"following directive would be specified in the body @samp{(list \"proxy_pass " -"http://upstream-name;\")}." +"Body of the location block, specified as a list of strings. This can contain" +" many configuration directives. For example, to pass requests to a upstream" +" server group defined using an @code{nginx-upstream-configuration} block, " +"the following directive would be specified in the body @samp{(list " +"\"proxy_pass http://upstream-name;\")}." msgstr "" #. type: deftp @@ -35207,10 +37394,10 @@ msgstr "" #. type: table #: doc/guix.texi:15763 msgid "" -"The socket on which the @code{fcgiwrap} process should listen, as a string. " -"Valid @var{socket} values include @code{unix:@var{/path/to/unix/socket}}, " -"@code{tcp:@var{dot.ted.qu.ad}:@var{port}} and @code{tcp6:[@var{ipv6_addr}]:" -"port}." +"The socket on which the @code{fcgiwrap} process should listen, as a string." +" Valid @var{socket} values include @code{unix:@var{/path/to/unix/socket}}, " +"@code{tcp:@var{dot.ted.qu.ad}:@var{port}} and " +"@code{tcp6:[@var{ipv6_addr}]:port}." msgstr "" #. type: item @@ -35228,10 +37415,10 @@ msgstr "" #. type: table #: doc/guix.texi:15770 msgid "" -"The user and group names, as strings, under which to run the @code{fcgiwrap} " -"process. The @code{fastcgi} service will ensure that if the user asks for " -"the specific user or group names @code{fcgiwrap} that the corresponding user " -"and/or group is present on the system." +"The user and group names, as strings, under which to run the @code{fcgiwrap}" +" process. The @code{fastcgi} service will ensure that if the user asks for " +"the specific user or group names @code{fcgiwrap} that the corresponding user" +" and/or group is present on the system." msgstr "" #. type: table @@ -35325,8 +37512,8 @@ msgstr "" #. type: itemize #: doc/guix.texi:15798 msgid "" -"a special function to finish request & flush all data while continuing to do " -"something time-consuming (video converting, stats processing, etc.)" +"a special function to finish request & flush all data while continuing to do" +" something time-consuming (video converting, stats processing, etc.)" msgstr "" #. type: Plain text @@ -35370,7 +37557,9 @@ msgstr "" #. type: item #: doc/guix.texi:15810 #, no-wrap -msgid "@code{socket} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})" +msgid "" +"@code{socket} (default: @code{(string-append \"/var/run/php\" (version-major" +" (package-version php)) \"-fpm.sock\")})" msgstr "" #. type: table @@ -35458,7 +37647,9 @@ msgstr "" #. type: item #: doc/guix.texi:15829 #, no-wrap -msgid "@code{pid-file} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})" +msgid "" +"@code{pid-file} (default: @code{(string-append \"/var/run/php\" (version-" +"major (package-version php)) \"-fpm.pid\")})" msgstr "" #. type: table @@ -35471,7 +37662,9 @@ msgstr "" #. type: item #: doc/guix.texi:15832 #, no-wrap -msgid "@code{log-file} (default: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})" +msgid "" +"@code{log-file} (default: @code{(string-append \"/var/log/php\" (version-" +"major (package-version php)) \"-fpm.log\")})" msgstr "" #. type: table @@ -35482,7 +37675,9 @@ msgstr "" #. type: item #: doc/guix.texi:15834 #, no-wrap -msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})" +msgid "" +"@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-" +"configuration)})" msgstr "" #. type: table @@ -35519,14 +37714,16 @@ msgstr "" msgid "" "Determines whether php errors and warning should be sent to clients and " "displayed in their browsers. This is useful for local php development, but " -"a security risk for public sites, as error messages can reveal passwords and " -"personal data." +"a security risk for public sites, as error messages can reveal passwords and" +" personal data." msgstr "" #. type: item #: doc/guix.texi:15847 #, no-wrap -msgid "@code{workers-logfile} (default @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})" +msgid "" +"@code{workers-logfile} (default @code{(string-append \"/var/log/php\" " +"(version-major (package-version php)) \"-fpm.www.log\")})" msgstr "" #. type: table @@ -35559,8 +37756,8 @@ msgstr "" #: doc/guix.texi:15860 msgid "" "Data Type for the @code{dynamic} php-fpm process manager. With the " -"@code{dynamic} process manager, spare worker processes are kept around based " -"on it's configured limits." +"@code{dynamic} process manager, spare worker processes are kept around based" +" on it's configured limits." msgstr "" #. type: item @@ -35655,9 +37852,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:15901 msgid "" -"[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ (version-" -"major (package-version php)) @ \"-fpm.sock\")] A helper function to quickly " -"add php to an @code{nginx-server-configuration}." +"[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ " +"(version-major (package-version php)) @ \"-fpm.sock\")] A helper function to" +" quickly add php to an @code{nginx-server-configuration}." msgstr "" #. type: Plain text @@ -35707,9 +37904,9 @@ msgstr "" #: doc/guix.texi:15932 msgid "" "[#:cache-dir \"/var/cache/cat-avatar-generator\"] @ [#:package cat-avatar-" -"generator] @ [#:configuration (nginx-server-configuration)] Returns an nginx-" -"server-configuration that inherits @code{configuration}. It extends the " -"nginx configuration to add a server block that serves @code{package}, a " +"generator] @ [#:configuration (nginx-server-configuration)] Returns an " +"nginx-server-configuration that inherits @code{configuration}. It extends " +"the nginx configuration to add a server block that serves @code{package}, a " "version of cat-avatar-generator. During execution, cat-avatar-generator " "will be able to use @code{cache-dir} as its cache directory." msgstr "" @@ -35758,8 +37955,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:15957 msgid "" -"The @code{(gnu services certbot)} module provides a service to automatically " -"obtain a valid TLS certificate from the Let's Encrypt certificate " +"The @code{(gnu services certbot)} module provides a service to automatically" +" obtain a valid TLS certificate from the Let's Encrypt certificate " "authority. These certificates can then be used to serve content securely " "over HTTPS or other TLS-based protocols, with the knowledge that the client " "will be able to verify the server's authenticity." @@ -35770,14 +37967,14 @@ msgstr "" msgid "" "@url{https://letsencrypt.org/, Let's Encrypt} provides the @code{certbot} " "tool to automate the certification process. This tool first securely " -"generates a key on the server. It then makes a request to the Let's Encrypt " -"certificate authority (CA) to sign the key. The CA checks that the request " -"originates from the host in question by using a challenge-response protocol, " -"requiring the server to provide its response over HTTP. If that protocol " -"completes successfully, the CA signs the key, resulting in a certificate. " -"That certificate is valid for a limited period of time, and therefore to " -"continue to provide TLS services, the server needs to periodically ask the " -"CA to renew its signature." +"generates a key on the server. It then makes a request to the Let's Encrypt" +" certificate authority (CA) to sign the key. The CA checks that the request" +" originates from the host in question by using a challenge-response " +"protocol, requiring the server to provide its response over HTTP. If that " +"protocol completes successfully, the CA signs the key, resulting in a " +"certificate. That certificate is valid for a limited period of time, and " +"therefore to continue to provide TLS services, the server needs to " +"periodically ask the CA to renew its signature." msgstr "" #. type: Plain text @@ -35793,17 +37990,17 @@ msgstr "" #. type: Plain text #: doc/guix.texi:15982 msgid "" -"Certbot is run twice a day, at a random minute within the hour. It won't do " -"anything until your certificates are due for renewal or revoked, but running " -"it regularly would give your service a chance of staying online in case a " -"Let's Encrypt-initiated revocation happened for some reason." +"Certbot is run twice a day, at a random minute within the hour. It won't do" +" anything until your certificates are due for renewal or revoked, but " +"running it regularly would give your service a chance of staying online in " +"case a Let's Encrypt-initiated revocation happened for some reason." msgstr "" #. type: Plain text #: doc/guix.texi:15986 msgid "" -"By using this service, you agree to the ACME Subscriber Agreement, which can " -"be found there: @url{https://acme-v01.api.letsencrypt.org/directory}." +"By using this service, you agree to the ACME Subscriber Agreement, which can" +" be found there: @url{https://acme-v01.api.letsencrypt.org/directory}." msgstr "" #. type: defvr @@ -35885,7 +38082,8 @@ msgstr "" #. type: table #: doc/guix.texi:16024 msgid "" -"The directory from which to serve the Let's Encrypt challenge/response files." +"The directory from which to serve the Let's Encrypt challenge/response " +"files." msgstr "" #. type: item @@ -35898,8 +38096,8 @@ msgstr "" #: doc/guix.texi:16029 msgid "" "A list of @code{certificates-configuration}s for which to generate " -"certificates and request signatures. Each certificate has a @code{name} and " -"several @code{domains}." +"certificates and request signatures. Each certificate has a @code{name} and" +" several @code{domains}." msgstr "" #. type: table @@ -35931,11 +38129,11 @@ msgstr "" msgid "" "The default @code{nginx-location-configuration}. Because @code{certbot} " "needs to be able to serve challenges and responses, it needs to be able to " -"run a web server. It does so by extending the @code{nginx} web service with " -"an @code{nginx-server-configuration} listening on the @var{domains} on port " -"80, and which has a @code{nginx-location-configuration} for the @code{/.well-" -"known/} URI path subspace used by Let's Encrypt. @xref{Web Services}, for " -"more on these nginx configuration data types." +"run a web server. It does so by extending the @code{nginx} web service with" +" an @code{nginx-server-configuration} listening on the @var{domains} on port" +" 80, and which has a @code{nginx-location-configuration} for the " +"@code{/.well-known/} URI path subspace used by Let's Encrypt. @xref{Web " +"Services}, for more on these nginx configuration data types." msgstr "" #. type: table @@ -35981,8 +38179,8 @@ msgstr "" #: doc/guix.texi:16068 msgid "" "This name is used by Certbot for housekeeping and in file paths; it doesn't " -"affect the content of the certificate itself. To see certificate names, run " -"@code{certbot certificates}." +"affect the content of the certificate itself. To see certificate names, run" +" @code{certbot certificates}." msgstr "" #. type: table @@ -35999,8 +38197,8 @@ msgstr "" #. type: table #: doc/guix.texi:16074 msgid "" -"The first domain provided will be the subject CN of the certificate, and all " -"domains will be Subject Alternative Names on the certificate." +"The first domain provided will be the subject CN of the certificate, and all" +" domains will be Subject Alternative Names on the certificate." msgstr "" #. type: item @@ -36012,12 +38210,13 @@ msgstr "" #. type: table #: doc/guix.texi:16083 msgid "" -"Command to be run in a shell once for each successfully issued certificate. " -"For this command, the shell variable @code{$RENEWED_LINEAGE} will point to " -"the config live subdirectory (for example, @samp{\"/etc/letsencrypt/live/" -"example.com\"}) containing the new certificates and keys; the shell variable " -"@code{$RENEWED_DOMAINS} will contain a space-delimited list of renewed " -"certificate domains (for example, @samp{\"example.com www.example.com\"}." +"Command to be run in a shell once for each successfully issued certificate." +" For this command, the shell variable @code{$RENEWED_LINEAGE} will point to" +" the config live subdirectory (for example, " +"@samp{\"/etc/letsencrypt/live/example.com\"}) containing the new " +"certificates and keys; the shell variable @code{$RENEWED_DOMAINS} will " +"contain a space-delimited list of renewed certificate domains (for example, " +"@samp{\"example.com www.example.com\"}." msgstr "" #. type: Plain text @@ -36044,8 +38243,8 @@ msgstr "" #: doc/guix.texi:16099 msgid "" "The @code{(gnu services dns)} module provides services related to the " -"@dfn{domain name system} (DNS). It provides a server service for hosting an " -"@emph{authoritative} DNS server for multiple zones, slave or master. This " +"@dfn{domain name system} (DNS). It provides a server service for hosting an" +" @emph{authoritative} DNS server for multiple zones, slave or master. This " "service uses @uref{https://www.knot-dns.cz/, Knot DNS}." msgstr "" @@ -36137,8 +38336,8 @@ msgid "" "server is not a resolver, meaning that it can only resolve names for which " "it is authoritative. This server can be configured to serve zones as a " "master server or a slave server as a per-zone basis. Slave zones will get " -"their data from masters, and will serve it as an authoritative server. From " -"the point of view of a resolver, there is no difference between master and " +"their data from masters, and will serve it as an authoritative server. From" +" the point of view of a resolver, there is no difference between master and " "slave." msgstr "" @@ -36399,9 +38598,9 @@ msgstr "" #: doc/guix.texi:16256 msgid "" "The domain of your primary authoritative DNS server. The name is relative " -"to the origin, unless it ends with a dot. It is mandatory that this primary " -"DNS server corresponds to an NS record in the zone and that it is associated " -"to an IP address in the list of entries." +"to the origin, unless it ends with a dot. It is mandatory that this primary" +" DNS server corresponds to an NS record in the zone and that it is " +"associated to an IP address in the list of entries." msgstr "" #. type: item @@ -36467,8 +38666,8 @@ msgstr "" #. type: table #: doc/guix.texi:16279 msgid "" -"Default TTL of records. Existing records are considered correct for at most " -"this amount of time. After this period, resolvers will invalidate their " +"Default TTL of records. Existing records are considered correct for at most" +" this amount of time. After this period, resolvers will invalidate their " "cache and check again that it still exists." msgstr "" @@ -36522,8 +38721,8 @@ msgstr "" #. type: table #: doc/guix.texi:16305 msgid "" -"An ordered list of source IP addresses. An empty list will have Knot choose " -"an appropriate source IP. An optional port can be given with the @@ " +"An ordered list of source IP addresses. An empty list will have Knot choose" +" an appropriate source IP. An optional port can be given with the @@ " "separator. The default is to choose at random." msgstr "" @@ -36580,9 +38779,9 @@ msgstr "" #: doc/guix.texi:16328 msgid "" "The configuration string of the backend. An example for the PKCS#11 is: " -"@code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/" -"libsofthsm2.so\"}. For the pem backend, the string reprensents a path in " -"the file system." +"@code{\"pkcs11:token=knot;pin-value=1234 " +"/gnu/store/.../lib/pkcs11/libsofthsm2.so\"}. For the pem backend, the " +"string reprensents a path in the file system." msgstr "" #. type: deftp @@ -36615,8 +38814,8 @@ msgstr "" #: doc/guix.texi:16349 msgid "" "The policy also defines the lifetime of keys. Usually, ZSK can be changed " -"easily and use weaker cryptographic functions (they use lower parameters) in " -"order to sign records quickly, so they are changed often. The KSK however " +"easily and use weaker cryptographic functions (they use lower parameters) in" +" order to sign records quickly, so they are changed often. The KSK however " "requires manual interaction with the registrar, so they are changed less " "often and use stronger parameters because they sign only one record." msgstr "" @@ -36858,8 +39057,8 @@ msgstr "" #. type: table #: doc/guix.texi:16427 msgid "" -"The content of the zone file. This parameter is ignored by slave zones. It " -"must contain a zone-file record." +"The content of the zone file. This parameter is ignored by slave zones. It" +" must contain a zone-file record." msgstr "" #. type: item @@ -36884,8 +39083,8 @@ msgstr "" #. type: table #: doc/guix.texi:16435 msgid "" -"The main master. When empty, it defaults to the first master in the list of " -"masters." +"The main master. When empty, it defaults to the first master in the list of" +" masters." msgstr "" #. type: item @@ -37166,7 +39365,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16537 doc/guix.texi:16673 msgid "" -"The protocol (UDP or TCP) used to open a channel between clients and servers." +"The protocol (UDP or TCP) used to open a channel between clients and " +"servers." msgstr "" #. type: deftypevr @@ -37297,7 +39497,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16601 #, no-wrap -msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth" +msgid "" +"{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth" msgstr "" #. type: deftypevr @@ -37310,7 +39511,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16609 #, no-wrap -msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?" +msgid "" +"{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?" msgstr "" #. type: deftypevr @@ -37332,7 +39534,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16623 #, no-wrap -msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?" +msgid "" +"{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?" msgstr "" #. type: deftypevr @@ -37343,7 +39546,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16630 #, no-wrap -msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote" +msgid "" +"{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote" msgstr "" #. type: deftypevr @@ -37462,7 +39666,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16737 #, no-wrap -msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth" +msgid "" +"{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth" msgstr "" #. type: deftypevr @@ -37522,7 +39727,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16773 #, no-wrap -msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist" +msgid "" +"{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist" msgstr "" #. type: deftypevr @@ -37538,7 +39744,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16780 #, no-wrap -msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?" +msgid "" +"{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?" msgstr "" #. type: deftypevr @@ -37549,7 +39756,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16787 #, no-wrap -msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?" +msgid "" +"{@code{openvpn-server-configuration} parameter} boolean client-to-client?" msgstr "" #. type: deftypevr @@ -37604,7 +39812,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:16818 #, no-wrap -msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir" +msgid "" +"{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-" +"config-dir" msgstr "" #. type: deftypevr @@ -37685,8 +39895,8 @@ msgstr "" #: doc/guix.texi:16867 msgid "" "The RPC Bind service provides a facility to map program numbers into " -"universal addresses. Many NFS related services use this facility. Hence it " -"is automatically started when a dependent service starts." +"universal addresses. Many NFS related services use this facility. Hence it" +" is automatically started when a dependent service starts." msgstr "" #. type: defvr @@ -37709,8 +39919,8 @@ msgstr "" #. type: deftp #: doc/guix.texi:16876 msgid "" -"Data type representing the configuration of the RPC Bind Service. This type " -"has the following parameters:" +"Data type representing the configuration of the RPC Bind Service. This type" +" has the following parameters:" msgstr "" #. type: item @@ -37953,8 +40163,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:16974 msgid "" -"@uref{https://notabug.org/mthl/cuirass, Cuirass} is a continuous integration " -"tool for Guix. It can be used both for development and for providing " +"@uref{https://notabug.org/mthl/cuirass, Cuirass} is a continuous integration" +" tool for Guix. It can be used both for development and for providing " "substitutes to others (@pxref{Substitutes})." msgstr "" "@uref{https://notabug.org/mthl/cuirass, Cuirass} est un outil d'intégration " @@ -38124,8 +40334,8 @@ msgstr "" msgid "" "A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications, " "where a specification is an association list (@pxref{Associations Lists,,, " -"guile, GNU Guile Reference Manual}) whose keys are keywords (@code{#:keyword-" -"example}) as shown in the example above." +"guile, GNU Guile Reference Manual}) whose keys are keywords " +"(@code{#:keyword-example}) as shown in the example above." msgstr "" #. type: item @@ -38243,8 +40453,8 @@ msgstr "" msgid "" "Each parameter definition is preceded by its type; for example, " "@samp{boolean foo} indicates that the @code{foo} parameter should be " -"specified as a boolean. Types starting with @code{maybe-} denote parameters " -"that won't show up in TLP config file when their value is @code{'disabled}." +"specified as a boolean. Types starting with @code{maybe-} denote parameters" +" that won't show up in TLP config file when their value is @code{'disabled}." msgstr "" #. type: Plain text @@ -38295,7 +40505,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17124 #, no-wrap -msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-" +"ac" msgstr "" #. type: deftypevr @@ -38308,7 +40520,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17132 #, no-wrap -msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-" +"bat" msgstr "" #. type: deftypevr @@ -38324,7 +40538,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17139 #, no-wrap -msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-" +"secs-on-ac" msgstr "" #. type: deftypevr @@ -38341,7 +40557,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17146 #, no-wrap -msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-" +"secs-on-bat" msgstr "" #. type: deftypevr @@ -38357,7 +40575,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17153 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-" +"scaling-governor-on-ac" msgstr "" #. type: deftypevr @@ -38383,7 +40603,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17162 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-" +"scaling-governor-on-bat" msgstr "" #. type: deftypevr @@ -38394,7 +40616,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17169 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-" +"min-freq-on-ac" msgstr "" #. type: deftypevr @@ -38405,7 +40629,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17176 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-" +"max-freq-on-ac" msgstr "" #. type: deftypevr @@ -38416,7 +40642,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17183 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-" +"min-freq-on-bat" msgstr "" #. type: deftypevr @@ -38427,7 +40655,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17190 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-" +"max-freq-on-bat" msgstr "" #. type: deftypevr @@ -38438,7 +40668,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17197 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-" +"perf-on-ac" msgstr "" #. type: deftypevr @@ -38451,7 +40683,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17205 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-" +"perf-on-ac" msgstr "" #. type: deftypevr @@ -38464,7 +40698,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17213 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-" +"perf-on-bat" msgstr "" #. type: deftypevr @@ -38475,7 +40711,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17220 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-" +"perf-on-bat" msgstr "" #. type: deftypevr @@ -38590,7 +40828,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17286 #, no-wrap -msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices" +msgid "" +"{@code{tlp-configuration} parameter} space-separated-string-list disks-" +"devices" msgstr "" #. type: deftypevr @@ -38601,7 +40841,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17291 #, no-wrap -msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-" +"level-on-ac" msgstr "" #. type: deftypevr @@ -38612,7 +40854,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17296 #, no-wrap -msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-" +"level-on-bat" msgstr "" #. type: deftypevr @@ -38623,7 +40867,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17301 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-" +"spindown-timeout-on-ac" msgstr "" #. type: deftypevr @@ -38636,7 +40882,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17309 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-" +"spindown-timeout-on-bat" msgstr "" #. type: deftypevr @@ -38647,7 +40895,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17316 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched" +msgid "" +"{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-" +"iosched" msgstr "" #. type: deftypevr @@ -38694,7 +40944,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17340 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist" +msgid "" +"{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist" msgstr "" #. type: deftypevr @@ -38705,7 +40956,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17347 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?" +msgid "" +"{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-" +"on-ac?" msgstr "" #. type: deftypevr @@ -38717,7 +40970,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17355 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?" +msgid "" +"{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-" +"on-bat?" msgstr "" #. type: deftypevr @@ -38728,7 +40983,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17362 #, no-wrap -msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout" +msgid "" +"{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-" +"timeout" msgstr "" #. type: deftypevr @@ -38781,7 +41038,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17392 #, no-wrap -msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat" msgstr "" #. type: deftypevr @@ -38826,7 +41084,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17414 #, no-wrap -msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac" msgstr "" #. type: deftypevr @@ -38842,7 +41101,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17421 #, no-wrap -msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat" msgstr "" #. type: deftypevr @@ -38886,7 +41146,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17449 #, no-wrap -msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac" +msgid "" +"{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-" +"on-ac" msgstr "" #. type: deftypevr @@ -38899,7 +41161,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17457 #, no-wrap -msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat" +msgid "" +"{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-" +"on-bat" msgstr "" #. type: deftypevr @@ -38915,7 +41179,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17464 #, no-wrap -msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?" +msgid "" +"{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-" +"controller?" msgstr "" #. type: deftypevr @@ -38932,8 +41198,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17475 msgid "" -"Enable optical drive in UltraBay/MediaBay on BAT mode. Drive can be powered " -"on again by releasing (and reinserting) the eject lever or by pressing the " +"Enable optical drive in UltraBay/MediaBay on BAT mode. Drive can be powered" +" on again by releasing (and reinserting) the eject lever or by pressing the " "disc eject button on newer models." msgstr "" @@ -38991,13 +41257,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17505 msgid "" -"Runtime Power Management for all PCI(e) bus devices, except blacklisted ones." +"Runtime Power Management for all PCI(e) bus devices, except blacklisted " +"ones." msgstr "" #. type: deftypevr #: doc/guix.texi:17510 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist" +msgid "" +"{@code{tlp-configuration} parameter} maybe-space-separated-string-list " +"runtime-pm-blacklist" msgstr "" #. type: deftypevr @@ -39009,7 +41278,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17517 #, no-wrap -msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist" +msgid "" +"{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-" +"driver-blacklist" msgstr "" #. type: deftypevr @@ -39068,7 +41339,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17552 #, no-wrap -msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?" +msgid "" +"{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-" +"on-shutdown?" msgstr "" #. type: deftypevr @@ -39079,21 +41352,23 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17559 #, no-wrap -msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?" +msgid "" +"{@code{tlp-configuration} parameter} boolean restore-device-state-on-" +"startup?" msgstr "" #. type: deftypevr #: doc/guix.texi:17562 msgid "" -"Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on " -"system startup." +"Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on" +" system startup." msgstr "" #. type: Plain text #: doc/guix.texi:17570 msgid "" -"The @code{(gnu services pm)} module provides an interface to thermald, a CPU " -"frequency scaling service which helps prevent overheating." +"The @code{(gnu services pm)} module provides an interface to thermald, a CPU" +" frequency scaling service which helps prevent overheating." msgstr "" #. type: defvr @@ -39174,8 +41449,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:17606 msgid "" -"The following example shows how one might run @code{mpd} as user @code{\"bob" -"\"} on port @code{6666}. It uses pulseaudio for output." +"The following example shows how one might run @code{mpd} as user " +"@code{\"bob\"} on port @code{6666}. It uses pulseaudio for output." msgstr "" #. type: example @@ -39263,8 +41538,8 @@ msgstr "" #. type: table #: doc/guix.texi:17637 msgid "" -"The address that mpd will bind to. To use a Unix domain socket, an absolute " -"path can be specified here." +"The address that mpd will bind to. To use a Unix domain socket, an absolute" +" path can be specified here." msgstr "" #. type: subsubsection @@ -39690,8 +41965,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17854 msgid "" -"Certificate revocation list path. If set to an empty string, then no CRL is " -"loaded." +"Certificate revocation list path. If set to an empty string, then no CRL is" +" loaded." msgstr "" #. type: deftypevr @@ -39734,7 +42009,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17880 #, no-wrap -msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list" +msgid "" +"{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list" msgstr "" #. type: deftypevr @@ -39745,14 +42021,16 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17887 #, no-wrap -msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames" +msgid "" +"{@code{libvirt-configuration} parameter} optional-list sasl-allowed-" +"usernames" msgstr "" #. type: deftypevr #: doc/guix.texi:17890 msgid "" -"Whitelist of allowed SASL usernames. The format for username depends on the " -"SASL authentication mechanism." +"Whitelist of allowed SASL usernames. The format for username depends on the" +" SASL authentication mechanism." msgstr "" #. type: deftypevr @@ -39801,9 +42079,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17916 msgid "" -"Maximum length of queue of connections waiting to be accepted by the " -"daemon. Note, that some protocols supporting retransmission may obey this " -"so that a later reattempt at connection succeeds." +"Maximum length of queue of connections waiting to be accepted by the daemon." +" Note, that some protocols supporting retransmission may obey this so that " +"a later reattempt at connection succeeds." msgstr "" #. type: deftypevr @@ -39889,8 +42167,8 @@ msgstr "" #: doc/guix.texi:17967 msgid "" "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." +"client monopolizing the server this should be a small fraction of the global" +" max_requests and max_workers parameter." msgstr "" #. type: deftypevr @@ -39929,7 +42207,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:17993 #, no-wrap -msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients" +msgid "" +"{@code{libvirt-configuration} parameter} integer admin-max-queued-clients" msgstr "" #. type: deftypevr @@ -39940,7 +42219,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18000 #, no-wrap -msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests" +msgid "" +"{@code{libvirt-configuration} parameter} integer admin-max-client-requests" msgstr "" #. type: deftypevr @@ -39990,13 +42270,13 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18036 doc/guix.texi:18259 msgid "" -"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., " +"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:" +"each message matching name, and @code{x} is the minimal level where matching" +" messages should be logged:" msgstr "" #. type: itemize @@ -40049,8 +42329,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18064 doc/guix.texi:18287 msgid "" -"An output is one of the places to save logging information The format for an " -"output can be:" +"An output is one of the places to save logging information The format for an" +" output can be:" msgstr "" #. type: item @@ -40204,8 +42484,8 @@ msgstr "" #: doc/guix.texi:18161 msgid "" "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 " +"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." msgstr "" @@ -40236,7 +42516,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18182 #, no-wrap -msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval" +msgid "" +"{@code{libvirt-configuration} parameter} integer admin-keepalive-interval" msgstr "" #. type: deftypevr @@ -40288,8 +42569,8 @@ msgid "" "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 " +"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." msgstr "" @@ -40399,8 +42680,8 @@ msgstr "" msgid "" "@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 " +"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." msgstr "" @@ -40414,8 +42695,8 @@ msgstr "" #: doc/guix.texi:18364 msgid "" "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:" +"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:" msgstr "" #. type: example @@ -40470,10 +42751,10 @@ msgstr "" #: doc/guix.texi:18391 msgid "" "When it is true, QEMU and all its dependencies are added to the build " -"environment of @command{guix-daemon} (@pxref{Invoking 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." +"environment of @command{guix-daemon} (@pxref{Invoking 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." msgstr "" #. type: table @@ -40532,10 +42813,10 @@ msgstr "" #. type: deffn #: doc/guix.texi:18424 msgid "" -"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." +"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." msgstr "" #. type: deffn @@ -40563,18 +42844,19 @@ msgstr "" #. type: Plain text #: doc/guix.texi:18444 msgid "" -"The @code{(gnu services version-control)} module provides a service to allow " -"remote access to local Git repositories. There are three options: the " +"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}." +"server to proxy some requests to @code{git-http-backend}, or providing a web" +" interface with @code{cgit-service-type}." msgstr "" #. type: deffn #: doc/guix.texi:18445 #, no-wrap -msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]" +msgid "" +"{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]" msgstr "" #. type: deffn @@ -40589,8 +42871,8 @@ msgstr "" msgid "" "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}." +"exported@footnote{By creating the magic file \"git-daemon-export-ok\" in the" +" repository directory.} repositories under @file{/srv/git}." msgstr "" #. type: deftp @@ -40601,7 +42883,8 @@ msgstr "" #. type: deftp #: doc/guix.texi:18460 -msgid "Data type representing the configuration for @code{git-daemon-service}." +msgid "" +"Data type representing the configuration for @code{git-daemon-service}." msgstr "" #. type: item @@ -40639,8 +42922,8 @@ msgstr "" 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}." +"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 "" #. type: item @@ -40717,9 +43000,9 @@ msgid "" "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." +"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 "" #. type: Plain text @@ -40754,8 +43037,8 @@ msgstr "" #. type: table #: doc/guix.texi:18527 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." +"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 "" #. type: item @@ -40767,10 +43050,10 @@ msgstr "" #. type: table #: doc/guix.texi:18533 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." +"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 "" #. type: item @@ -40836,8 +43119,8 @@ 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}." +"You will also need to add an @code{fcgiwrap} proxy to your system services." +" @xref{Web Services}." msgstr "" #. type: subsubheading @@ -40881,8 +43164,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:18592 msgid "" -"The @code{file-object} type designates either a file-like object (@pxref{G-" -"Expressions, file-like objects}) or a string." +"The @code{file-object} type designates either a file-like object " +"(@pxref{G-Expressions, file-like objects}) or a string." msgstr "" #. type: Plain text @@ -40904,7 +43187,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18602 #, no-wrap -msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx" +msgid "" +"{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx" msgstr "" #. type: deftypevr @@ -41313,8 +43597,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18840 doc/guix.texi:19364 msgid "" -"Flag which, when set to @code{#t}, will make cgit display remote branches in " -"the summary and refs views." +"Flag which, when set to @code{#t}, will make cgit display remote branches in" +" the summary and refs views." msgstr "" #. type: deftypevr @@ -41327,8 +43611,8 @@ msgstr "" #: doc/guix.texi:18849 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." +"parent commit as link text when generating links to parent commits in commit" +" view." msgstr "" #. type: deftypevr @@ -41341,8 +43625,8 @@ msgstr "" #: doc/guix.texi:18858 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." +"parent commit as link text when generating links to parent commits in commit" +" view." msgstr "" #. type: deftypevr @@ -41396,9 +43680,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18890 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)." +"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 "" #. type: deftypevr @@ -41410,8 +43694,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18898 msgid "" -"The content of the file specified with this option will be included verbatim " -"in the HTML HEAD section on all pages." +"The content of the file specified with this option will be included verbatim" +" in the HTML HEAD section on all pages." msgstr "" #. type: deftypevr @@ -41423,8 +43707,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18906 msgid "" -"The content of the file specified with this option will be included verbatim " -"at the top of all pages." +"The content of the file specified with this option will be included verbatim" +" at the top of all pages." msgstr "" #. type: deftypevr @@ -41449,8 +43733,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18922 msgid "" -"The content of the file specified with this option will be included verbatim " -"above the repository index." +"The content of the file specified with this option will be included verbatim" +" above the repository index." msgstr "" #. type: deftypevr @@ -41462,8 +43746,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:18930 msgid "" -"The content of the file specified with this option will be included verbatim " -"below the heading on the repository index page." +"The content of the file specified with this option will be included verbatim" +" below the heading on the repository index page." msgstr "" #. type: deftypevr @@ -41633,9 +43917,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19024 msgid "" -"Defaults to @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg" -"\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg " -"\"image/svg+xml\"))}." +"Defaults to @samp{((gif \"image/gif\") (html \"text/html\") (jpg " +"\"image/jpeg\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png " +"\"image/png\") (svg \"image/svg+xml\"))}." msgstr "" #. type: deftypevr @@ -41658,8 +43942,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19037 msgid "" -"Text which will be used as the formatstring for a hyperlink when a submodule " -"is printed in a directory listing." +"Text which will be used as the formatstring for a hyperlink when a submodule" +" is printed in a directory listing." msgstr "" #. type: deftypevr @@ -41800,8 +44084,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19121 msgid "" -"The content of the file specified with this option will be included verbatim " -"below thef \"about\" link on the repository index page." +"The content of the file specified with this option will be included verbatim" +" below thef \"about\" link on the repository index page." msgstr "" #. type: deftypevr @@ -41840,20 +44124,23 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19147 msgid "" -"Text which specifies the default set of snapshot formats that cgit generates " -"links for." +"Text which specifies the default set of snapshot formats that cgit generates" +" links for." msgstr "" #. type: deftypevr #: doc/guix.texi:19152 #, no-wrap -msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory" +msgid "" +"{@code{cgit-configuration} parameter} repository-directory repository-" +"directory" msgstr "" #. type: deftypevr #: doc/guix.texi:19155 msgid "" -"Name of the directory to scan for repositories (represents @code{scan-path})." +"Name of the directory to scan for repositories (represents @code{scan-" +"path})." msgstr "" #. type: deftypevr @@ -41896,8 +44183,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19179 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." +"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 "" #. type: deftypevr @@ -41909,7 +44196,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19187 msgid "" -"If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default." +"If set to @samp{#t} shows side-by-side diffs instead of unidiffs per " +"default." msgstr "" #. type: deftypevr @@ -41947,8 +44235,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19211 msgid "" -"Specifies the number of log entries to display in the repository \"summary\" " -"view." +"Specifies the number of log entries to display in the repository \"summary\"" +" view." msgstr "" #. type: deftypevr @@ -41995,7 +44283,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19239 #, no-wrap -msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories" +msgid "" +"{@code{cgit-configuration} parameter} repository-cgit-configuration-list " +"repositories" msgstr "" #. type: deftypevr @@ -42024,7 +44314,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19254 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-file-object source-" +"filter" msgstr "" #. type: deftypevr @@ -42046,7 +44338,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19268 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-file-object about-" +"filter" msgstr "" #. type: deftypevr @@ -42057,7 +44351,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19275 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-string branch-sort" msgstr "" #. type: deftypevr @@ -42081,7 +44376,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19290 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-file-object commit-" +"filter" msgstr "" #. type: deftypevr @@ -42092,7 +44389,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19297 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-string commit-sort" msgstr "" #. type: deftypevr @@ -42135,7 +44433,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19330 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-file-object email-" +"filter" msgstr "" #. type: deftypevr @@ -42146,7 +44446,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19337 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-commit-graph?" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-boolean enable-commit-" +"graph?" msgstr "" #. type: deftypevr @@ -42159,7 +44461,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19345 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-log-filecount?" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-boolean enable-log-" +"filecount?" msgstr "" #. type: deftypevr @@ -42172,7 +44476,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19353 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-log-linecount?" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-boolean enable-log-" +"linecount?" msgstr "" #. type: deftypevr @@ -42185,26 +44491,32 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19361 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-remote-branches?" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-boolean enable-remote-" +"branches?" msgstr "" #. type: deftypevr #: doc/guix.texi:19369 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-subject-links?" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-boolean enable-" +"subject-links?" msgstr "" #. type: deftypevr #: doc/guix.texi:19372 msgid "" -"A flag which can be used to override the global setting @code{enable-subject-" -"links?}." +"A flag which can be used to override the global setting @code{enable-" +"subject-links?}." msgstr "" #. type: deftypevr #: doc/guix.texi:19377 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-html-serving?" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-boolean enable-html-" +"serving?" msgstr "" #. type: deftypevr @@ -42260,7 +44572,9 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19415 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-file-object owner-" +"filter" msgstr "" #. type: deftypevr @@ -42271,28 +44585,31 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19422 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-string module-link" msgstr "" #. type: deftypevr #: doc/guix.texi:19426 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 " +"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 "" #. type: deftypevr #: doc/guix.texi:19431 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path" +msgid "" +"{@code{repository-cgit-configuration} parameter} module-link-path module-" +"link-path" msgstr "" #. type: deftypevr #: doc/guix.texi:19435 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." +"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 "" #. type: deftypevr @@ -42361,7 +44678,8 @@ msgstr "" #. type: deftypevr #: doc/guix.texi:19484 #, no-wrap -msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options" +msgid "" +"{@code{repository-cgit-configuration} parameter} repo-list extra-options" msgstr "" #. type: deftypevr @@ -42728,9 +45046,9 @@ msgstr "" #. type: table #: doc/guix.texi:19650 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})." +"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 "" #. type: item @@ -42782,9 +45100,9 @@ msgstr "" #. type: table #: doc/guix.texi:19670 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})." +"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 "" #. type: code{#1} @@ -42857,8 +45175,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:19700 msgid "" -"A @code{} object serving the GNU Collaborative International " -"Dictionary of English using the @code{gcide} package." +"A @code{} object serving the GNU Collaborative International" +" Dictionary of English using the @code{gcide} package." msgstr "" #. type: Plain text @@ -42895,11 +45213,11 @@ msgstr "" #: doc/guix.texi:19733 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 " +"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 " +"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 "" @@ -42919,8 +45237,8 @@ msgstr "" #: doc/guix.texi:19746 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 " +"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 "" @@ -42959,9 +45277,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:19765 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." +"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 "" #. type: cindex @@ -42987,17 +45305,18 @@ msgstr "" 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." +"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 "" #. type: Plain text #: doc/guix.texi:19782 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." +"certificates, such that they are able to verify CA signatures out-of-the-" +"box." msgstr "" #. type: Plain text @@ -43022,8 +45341,8 @@ msgstr "" #: doc/guix.texi:19798 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 " +"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 "" @@ -43036,8 +45355,8 @@ msgid "" "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:" +"system honors the certificate bundle pointed to by the @code{GIT_SSL_CAINFO}" +" environment variable. Thus, you would typically run something like:" msgstr "" #. type: example @@ -43102,8 +45421,8 @@ msgstr "" #: doc/guix.texi:19849 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 " +"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}})." @@ -43185,8 +45504,8 @@ msgstr "" #: doc/guix.texi:19884 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." +"contains this configuration, so you will not have to type it if all you want" +" is to have @code{.local} host lookup working." msgstr "" #. type: Plain text @@ -43194,10 +45513,10 @@ msgstr "" 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}})." +"@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 "" #. type: Plain text @@ -43235,14 +45554,14 @@ msgstr "" #. type: Plain text #: doc/guix.texi:19914 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}." +"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 "" #. type: deftp @@ -43335,8 +45654,8 @@ msgstr "" #. type: deftp #: doc/guix.texi:19944 msgid "" -"This is the data type representing an actual name service and the associated " -"lookup action." +"This is the data type representing an actual name service and the associated" +" lookup action." msgstr "" #. type: table @@ -43380,11 +45699,11 @@ msgstr "" #. type: Plain text #: doc/guix.texi:19977 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." +"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 "" #. type: Plain text @@ -43395,8 +45714,9 @@ msgid "" "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:" +"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 "" #. type: example @@ -43423,17 +45743,18 @@ msgstr "" #: doc/guix.texi:20003 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." +"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 "" #. type: Plain text #: doc/guix.texi:20008 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 " +"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 "" @@ -43453,20 +45774,20 @@ msgstr "" #. type: Plain text #: doc/guix.texi:20021 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." +"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 "" #. type: Plain text #: doc/guix.texi:20028 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." +"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 "" #. type: Plain text @@ -43474,8 +45795,8 @@ msgstr "" 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:" +"arguments passed @i{via} the @code{linux} command of GRUB, or the " +"@code{-append} option of QEMU), notably:" msgstr "" #. type: item @@ -43541,8 +45862,8 @@ msgstr "" #: doc/guix.texi:20059 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}." +"(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 "" #. type: item @@ -43578,14 +45899,14 @@ msgstr "" #. type: deffn #: doc/guix.texi:20087 msgid "" -"[#:linux-modules '()] [#:mapped-devices '()] @ [#:helper-packages '()] [#:" -"qemu-networking? #f] [#:volatile-root? #f] Return a monadic 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 " +"[#:linux-modules '()] [#:mapped-devices '()] @ [#:helper-packages '()] " +"[#:qemu-networking? #f] [#:volatile-root? #f] Return a monadic 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 "" @@ -43615,12 +45936,12 @@ msgstr "" #. type: deffn #: doc/guix.texi:20104 msgid "" -"[#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@ [#:" -"linux-modules '()] Return a monadic derivation that builds 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 " +"[#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@ " +"[#:linux-modules '()] Return a monadic derivation that builds 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 "" @@ -43635,9 +45956,9 @@ msgstr "" #: doc/guix.texi:20111 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." +"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 "" #. type: Plain text @@ -43660,8 +45981,8 @@ msgstr "" msgid "" "[#:guile %guile-static-stripped] [#:name \"guile-initrd\"] Return a " "derivation that builds 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 " +"@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 "" @@ -43826,12 +46147,12 @@ msgstr "" #. type: table #: doc/guix.texi:20206 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 " -"GRUB_TERMINAL_INPUT (@pxref{Simple configuration,,, grub,GNU GRUB manual})." +"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 GRUB_TERMINAL_INPUT (@pxref{Simple " +"configuration,,, grub,GNU GRUB manual})." msgstr "" #. type: item @@ -43955,8 +46276,8 @@ msgstr "" #. type: table #: doc/guix.texi:20263 msgid "" -"If the device is specified explicitly as above, then the @code{device} field " -"is ignored entirely." +"If the device is specified explicitly as above, then the @code{device} field" +" is ignored entirely." msgstr "" #. type: item @@ -44129,8 +46450,8 @@ msgstr "" #: doc/guix.texi:20356 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.}." +"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 "" #. type: table @@ -44147,16 +46468,16 @@ msgstr "" #: doc/guix.texi:20369 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 " +"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 "" #. type: table #: doc/guix.texi:20374 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 " +"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 "" @@ -44198,8 +46519,8 @@ msgstr "" #. type: table #: doc/guix.texi:20401 msgid "" -"The target generation can be specified explicitly by its generation number. " -"For example, the following invocation would switch to system generation 7:" +"The target generation can be specified explicitly by its generation number." +" For example, the following invocation would switch to system generation 7:" msgstr "" #. type: example @@ -44297,15 +46618,15 @@ 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." +"system to operate correctly---e.g., the @file{/etc}, @file{/var}, and " +"@file{/run} directories, and the @file{/bin/sh} file." msgstr "" #. type: table #: doc/guix.texi:20460 msgid "" -"This command also installs bootloader on the target specified in @file{my-os-" -"config}, unless the @option{--no-bootloader} option was passed." +"This command also installs bootloader on the target specified in @file{my-" +"os-config}, unless the @option{--no-bootloader} option was passed." msgstr "" #. type: item @@ -44335,8 +46656,8 @@ msgstr "" #: doc/guix.texi:20470 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 " +"@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 "" @@ -44387,10 +46708,11 @@ msgstr "" #. type: table #: doc/guix.texi:20500 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." +"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 "" #. type: cindex @@ -44437,24 +46759,24 @@ msgstr "" #. type: table #: doc/guix.texi:20516 msgid "" -"You can specify the root file system type by using the @option{--file-system-" -"type} option. It defaults to @code{ext4}." +"You can specify the root file system type by using the @option{--file-" +"system-type} option. It defaults to @code{ext4}." msgstr "" #. type: table #: doc/guix.texi:20520 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 " +"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 "" #. type: table #: doc/guix.texi:20525 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 " +"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 "" @@ -44467,9 +46789,9 @@ msgstr "" #. type: table #: doc/guix.texi:20535 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 " +"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 "" @@ -44652,11 +46974,11 @@ msgstr "" #. type: table #: doc/guix.texi:20639 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 " +"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 " +"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 "" @@ -44706,8 +47028,8 @@ msgstr "" 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 " +"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 "" @@ -44740,9 +47062,10 @@ msgstr "" #. type: table #: doc/guix.texi:20681 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})." +"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 "" #. type: table @@ -44817,8 +47140,8 @@ msgstr "" #. type: table #: doc/guix.texi:20720 msgid "" -"Emit in Dot/Graphviz format to standard output the @dfn{dependency graph} of " -"shepherd services of the operating system defined in @var{file}. " +"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 "" @@ -44835,8 +47158,8 @@ msgid "" "GuixSD VM image distributed at @indicateurl{ftp://alpha.gnu.org/guix/guixsd-" "vm-image-@value{VERSION}.@var{system}.tar.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." +"system}). The returned image is in qcow2 format, which the " +"@uref{http://qemu.org/, QEMU emulator} can efficiently use." msgstr "" #. type: cindex @@ -44849,9 +47172,9 @@ msgstr "" #: doc/guix.texi:20742 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 " +"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 "" @@ -44878,7 +47201,8 @@ msgstr "" #. type: table #: doc/guix.texi:20755 msgid "" -"This specifies the hardware platform to emulate. This should match the host." +"This specifies the hardware platform to emulate. This should match the " +"host." msgstr "" #. type: item @@ -44906,8 +47230,8 @@ msgstr "" 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}." +"can get a list of available NIC models by running @command{qemu-" +"system-x86_64 -net nic,model=help}." msgstr "" #. type: item @@ -44951,14 +47275,13 @@ msgstr "" #: doc/guix.texi:20788 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}." +"@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 "" #. type: subsubsection @@ -44991,7 +47314,8 @@ msgstr "" #. type: example #: doc/guix.texi:20807 #, no-wrap -msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n" +msgid "" +"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n" msgstr "" #. type: Plain text @@ -45013,8 +47337,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:20821 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 " +"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." @@ -45083,24 +47407,24 @@ msgstr "" #. type: Plain text #: doc/guix.texi:20878 msgid "" -"GuixSD services are connected by @dfn{extensions}. For instance, the secure " -"shell service @emph{extends} the Shepherd---the GuixSD initialization " +"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})." +"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 "" #. type: Plain text #: doc/guix.texi:20882 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:" +"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 "" #. type: Plain text @@ -45117,11 +47441,11 @@ msgstr "" #. type: Plain text #: doc/guix.texi:20893 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 " +"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 " +"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 "" @@ -45319,10 +47643,10 @@ msgstr "" #. type: Plain text #: doc/guix.texi:21009 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:" +"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 "" #. type: item @@ -45334,8 +47658,8 @@ msgstr "" #. type: table #: doc/guix.texi:21014 msgid "" -"This is the procedure to @dfn{compose} the list of extensions to services of " -"this type." +"This is the procedure to @dfn{compose} the list of extensions to services of" +" this type." msgstr "" #. type: table @@ -45395,9 +47719,9 @@ msgstr "" #: doc/guix.texi:21048 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." +"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 "" #. type: deffn @@ -45410,8 +47734,8 @@ msgstr "" #: doc/guix.texi:21053 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." +"below.) @var{value} can be any object; it represents the parameters of this" +" particular service instance." msgstr "" #. type: deffn @@ -45530,10 +47854,10 @@ 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." +"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 "" #. type: deffn @@ -45550,8 +47874,8 @@ msgstr "" #. type: deffn #: doc/guix.texi:21121 msgid "" -"Modify the services listed in @var{services} according to the given " -"clauses. Each clause has the form:" +"Modify the services listed in @var{services} according to the given clauses." +" Each clause has the form:" msgstr "" #. type: example @@ -45609,8 +47933,8 @@ msgstr "" #. type: deftp #: doc/guix.texi:21152 msgid "" -"This is the representation of a @dfn{service type} (@pxref{Service Types and " -"Services})." +"This is the representation of a @dfn{service type} (@pxref{Service Types and" +" Services})." msgstr "" #. type: table @@ -45639,7 +47963,8 @@ msgstr "" #: doc/guix.texi:21164 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." +"extended---i.e., services that do not receive ``values'' from other " +"services." msgstr "" #. type: table @@ -45685,9 +48010,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:21188 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 " +"@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 "" @@ -45707,8 +48032,8 @@ msgstr "" 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." +"interest, which can be verbose; the @code{simple-service} procedure provides" +" a shorthand for this." msgstr "" #. type: deffn @@ -45744,12 +48069,12 @@ msgstr "" #: doc/guix.texi:21220 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 " +"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." +"extensions down the service graph, updating each node parameters on the way," +" until it reaches the root node." msgstr "" #. type: deffn @@ -45761,9 +48086,9 @@ msgstr "" #. type: deffn #: doc/guix.texi:21225 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." +"[#: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 "" #. type: Plain text @@ -45795,8 +48120,8 @@ msgstr "" #. type: defvr #: doc/guix.texi:21238 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." +"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 "" #. type: defvr @@ -45809,7 +48134,8 @@ msgstr "" #: doc/guix.texi:21244 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:" +"under @file{/etc} and can be extended by passing it name/file tuples such " +"as:" msgstr "" #. type: example @@ -45875,9 +48201,9 @@ msgstr "" #: doc/guix.texi:21277 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})." +"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 "" #. type: Plain text @@ -45906,9 +48232,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:21293 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." +"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 "" #. type: deftp @@ -46084,8 +48410,8 @@ 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 " +"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 "" @@ -46128,8 +48454,8 @@ msgstr "" #: doc/guix.texi:21393 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." +"that documentation you find corresponds to what you have actually installed," +" you can access it off-line, and your privacy is respected." msgstr "" #. type: Plain text @@ -46187,9 +48513,9 @@ msgstr "" #: doc/guix.texi:21432 msgid "" "The problem with debugging information is that is takes up a fair amount of " -"disk space. For example, debugging information for the GNU C Library weighs " -"in at more than 60 MiB. Thus, as a user, keeping all the debugging info of " -"all the installed programs is usually not an option. Yet, space savings " +"disk space. For example, debugging information for the GNU C Library weighs" +" in at more than 60 MiB. Thus, as a user, keeping all the debugging info of" +" all the installed programs is usually not an option. Yet, space savings " "should not come at the cost of an impediment to debugging---especially in " "the GNU system, which should make it easier for users to exert their " "computing freedom (@pxref{GNU Distribution})." @@ -46198,9 +48524,9 @@ msgstr "" "de place sur le disque. Par exemple, les informations de débogage de la " "bibliothèque C de GNU prend plus de 60 Mo. Ainsi, en tant qu'utilisateur, " "garder toutes les informations de débogage de tous les programmes installés " -"n'est souvent pas une possibilité. Cependant, l'économie d'espace ne devrait " -"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 " +"n'est souvent pas une possibilité. Cependant, l'économie d'espace ne devrait" +" 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})." #. type: Plain text @@ -46209,8 +48535,8 @@ 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})." +"able to load debugging information from those files, when they are available" +" (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})." msgstr "" #. type: Plain text @@ -46219,8 +48545,8 @@ 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 " +"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 "" @@ -46247,16 +48573,16 @@ msgstr "" #. type: Plain text #: doc/guix.texi:21463 msgid "" -"From there on, GDB will pick up debugging information from the @code{.debug} " -"files under @file{~/.guix-profile/lib/debug}." +"From there on, GDB will pick up debugging information from the @code{.debug}" +" files under @file{~/.guix-profile/lib/debug}." msgstr "" #. type: Plain text #: doc/guix.texi:21470 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}, " +"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})." @@ -46384,10 +48710,10 @@ msgstr "" #: doc/guix.texi:21550 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 " +"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." @@ -46433,8 +48759,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:21577 msgid "" -"returns the store file name of the ``fixed'', replacement Bash. This allows " -"you to distinguish between the two variants of Bash." +"returns the store file name of the ``fixed'', replacement Bash. This allows" +" you to distinguish between the two variants of Bash." msgstr "" #. type: Plain text @@ -46495,8 +48821,8 @@ msgstr "" #. type: Plain text #: doc/guix.texi:21622 msgid "" -"The @code{(gnu packages @dots{})} module name space is automatically scanned " -"for packages by the command-line tools. For instance, when running " +"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 " @@ -46517,15 +48843,15 @@ msgid "" "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.}. These package definitions will not be visible by default. Users " -"can invoke commands such as @command{guix package} and @command{guix build} " -"with the @code{-e} option so that they know where to find the package. " -"Better yet, they can use the @code{-L} option of these commands to make " -"those modules visible (@pxref{Invoking guix build, @code{--load-path}}), or " -"define the @code{GUIX_PACKAGE_PATH} environment variable. This environment " -"variable makes it easy to extend or customize the distribution and is " -"honored by all the user interfaces." +"@xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for" +" details.}. These package definitions will not be visible by default. " +"Users can invoke commands such as @command{guix package} and @command{guix " +"build} with the @code{-e} option so that they know where to find the " +"package. Better yet, they can use the @code{-L} option of these commands to" +" make those modules visible (@pxref{Invoking guix build, @code{--load-" +"path}}), or define the @code{GUIX_PACKAGE_PATH} environment variable. This " +"environment variable makes it easy to extend or customize the distribution " +"and is honored by all the user interfaces." msgstr "" #. type: defvr @@ -46635,8 +48961,9 @@ 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}." +"package automatically gets built on the supported platforms by " +"@url{http://hydra.gnu.org/jobset/gnu/master, our continuous integration " +"system}." msgstr "" #. type: cindex @@ -46655,10 +48982,11 @@ msgid "" "intervention is needed is to review and apply the patch." msgstr "" "On peut obtenir la nouvelle définition du paquet simplement en lançant " -"@command{guix pull} (@pxref{Invoking 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." +"@command{guix pull} (@pxref{Invoking 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." #. type: cindex #: doc/guix.texi:21736 @@ -46670,9 +48998,9 @@ msgstr "" #: doc/guix.texi:21744 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 " +"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." @@ -46681,11 +49009,11 @@ msgstr "" #. type: Plain text #: doc/guix.texi:21750 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." +"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 "" #. type: Plain text @@ -46693,8 +49021,8 @@ msgstr "" 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 " +"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 "" @@ -46709,11 +49037,11 @@ msgstr "" #: doc/guix.texi:21771 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}." +"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 "" #. type: Plain text @@ -46748,9 +49076,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:21797 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 " +"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 " @@ -46814,8 +49142,8 @@ msgstr "" 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} " +"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 "" @@ -46823,8 +49151,8 @@ msgstr "" #: doc/guix.texi:21840 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 " +"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 " @@ -46874,6 +49202,20 @@ msgid "" " ;; @dots{}\n" " )))\n" msgstr "" +"(define my-package\n" +" (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n" +" (revision \"1\")) ;révision du paquet Guix\n" +" (package\n" +" (version (git-version \"0.9\" revision commit))\n" +" (source (origin\n" +" (method git-fetch)\n" +" (uri (git-reference\n" +" (url \"git://example.org/my-package.git\")\n" +" (commit commit)))\n" +" (sha256 (base32 \"1mbikn@dots{}\"))\n" +" (file-name (git-file-name name version))))\n" +" ;; @dots{}\n" +" )))\n" #. type: cindex #: doc/guix.texi:21879 @@ -46892,10 +49234,10 @@ msgstr "" 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." +"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 "" #. type: Plain text @@ -46912,11 +49254,11 @@ msgstr "" #. type: Plain text #: doc/guix.texi:21905 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 " +"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 " +"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." @@ -46943,22 +49285,22 @@ msgstr "" #: doc/guix.texi:21923 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 " +"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." +"texinfo, GNU Texinfo}). User interfaces such as @command{guix package " +"--show} take care of rendering it appropriately." msgstr "" #. type: Plain text #: doc/guix.texi:21929 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." +"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 "" #. type: Plain text @@ -47009,8 +49351,8 @@ msgstr "" #: doc/guix.texi:21965 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 " +"@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 "" @@ -47051,16 +49393,16 @@ msgstr "" #: doc/guix.texi:21984 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}." +"package source tree, with varying degrees of accuracy: in the " +"@file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini}." msgstr "" #. type: Plain text #: doc/guix.texi:21990 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 " +"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 "" @@ -47085,10 +49427,10 @@ msgstr "" #: doc/guix.texi:22012 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 " +"@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 "" @@ -47111,9 +49453,9 @@ msgstr "" #. type: itemize #: doc/guix.texi:22027 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}})." +"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 "" #. type: cindex @@ -47128,8 +49470,8 @@ 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 " +"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} " @@ -47164,8 +49506,8 @@ msgstr "" 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}." +"and prepend the prefix @code{java-}. So the class @code{apache.commons.cli}" +" becomes package @code{java-apache-commons-cli}." msgstr "" #. type: Plain text @@ -47173,9 +49515,9 @@ msgstr "" 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." +"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 "" #. type: Plain text @@ -47192,9 +49534,9 @@ 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}." +"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 "" #. type: Plain text @@ -47212,10 +49554,11 @@ msgstr "" #. type: Plain text #: doc/guix.texi:22103 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." +"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 "" #. type: cindex @@ -47229,8 +49572,8 @@ msgstr "" 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? " +"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''." @@ -47250,9 +49593,9 @@ msgid "" "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}." +"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 "" #. type: Plain text @@ -47292,6 +49635,9 @@ msgid "" " -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n" " | dot -Tps > t.ps\n" msgstr "" +"guix graph -t derivation \\\n" +" -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n" +" | dot -Tps > t.ps\n" #. type: Plain text #: doc/guix.texi:22160 @@ -47299,8 +49645,8 @@ 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 " +"@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 "" @@ -47311,8 +49657,8 @@ msgid "" "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 " +"@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 "" @@ -47322,22 +49668,22 @@ msgstr "" 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})." +"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 "" #. type: Plain text #: doc/guix.texi:22185 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." +"bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etc., at which point we have" +" a working C tool chain." msgstr "" #. type: unnumberedsubsec @@ -47350,8 +49696,8 @@ msgstr "" #: doc/guix.texi:22196 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 " +"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 " @@ -47377,6 +49723,9 @@ msgid "" " -e '(@@@@ (gnu packages commencement)\n" " glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n" msgstr "" +"guix graph -t bag \\\n" +" -e '(@@@@ (gnu packages commencement)\n" +" glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n" #. type: Plain text #: doc/guix.texi:22215 @@ -47390,41 +49739,42 @@ msgstr "" #. type: Plain text #: doc/guix.texi:22217 msgid "" -"@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}" +"@image{images/bootstrap-packages,6in,,Dependency graph of the early " +"packages}" msgstr "" #. type: Plain text #: doc/guix.texi:22223 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 " +"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 "" #. type: Plain text #: doc/guix.texi:22228 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." +"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 "" #. type: Plain text #: doc/guix.texi:22234 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." +"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 "" #. type: Plain text #: doc/guix.texi:22240 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 " +"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 "" @@ -47448,8 +49798,8 @@ msgstr "" #: doc/guix.texi:22253 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):" +"(Guile, Binutils, GCC, libc, and a tarball containing a mixture of Coreutils" +" and other basic command-line tools):" msgstr "" #. type: example @@ -47469,9 +49819,9 @@ msgstr "" #. type: Plain text #: doc/guix.texi:22267 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 " +"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 "" @@ -47507,8 +49857,8 @@ msgstr "" 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 " +"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 "" @@ -47522,12 +49872,12 @@ msgstr "" #: doc/guix.texi:22300 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." +"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 "" #. type: Plain text @@ -47557,10 +49907,10 @@ msgstr "" #. type: Plain text #: doc/guix.texi:22324 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 " +"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 do download it for the supported " "architectures; a rule for the new platform must be added as well." @@ -47588,13 +49938,21 @@ msgstr "contributing.fr.texi" #: doc/guix.texi:22348 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 " +"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." #. type: Plain text #: doc/guix.texi:22351 @@ -47602,6 +49960,8 @@ msgid "" "The Nix-based software distributions, Nixpkgs and NixOS, have also been an " "inspiration for Guix." msgstr "" +"Les distributions logicielles basées sur Nix, Nixpkgs et NixOS, ont aussi " +"été une inspiration pour Guix." #. type: Plain text #: doc/guix.texi:22357 @@ -47612,6 +49972,12 @@ msgid "" "reporting bugs, taking care of the infrastructure, providing artwork and " "themes, making suggestions, and more---thank you!" msgstr "" +"GNU@tie{}Guix lui-même est un travail collectif avec des contributions d'un " +"grand nombre de personnes. Voyez le fichier @file{AUTHORS} dans Guix pour " +"plus d'information sur ces personnes de qualité. Le fichier @file{THANKS} " +"liste les personnes qui ont aidé en rapportant des bogues, en prenant soin " +"de l'infrastructure, en fournissant des images et des thèmes, en faisant des" +" suggestions et bien plus. Merci !" #. type: cindex #: doc/guix.texi:22362 diff --git a/po/guix/da.po b/po/guix/da.po index b55db1731f..74c0c0efc5 100644 --- a/po/guix/da.po +++ b/po/guix/da.po @@ -1,7 +1,7 @@ # Danish translation guix. -# Copyright (C) 2017 Free Software Foundation, Inc. +# Copyright (C) 2018 the authors of Guix (msgids) # This file is distributed under the same license as the guix package. -# Joe Hansen , 2015, 2016, 2017. +# Joe Hansen , 2015, 2016, 2017, 2018. # # build -> kompilering # derivation -> derivat @@ -14,115 +14,191 @@ # msgid "" msgstr "" -"Project-Id-Version: guix 0.13.0\n" +"Project-Id-Version: guix 0.15.0-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2017-05-10 23:29+0200\n" -"PO-Revision-Date: 2017-05-21 19:31+01:00\n" -"Last-Translator: Joe Hansen \n" +"POT-Creation-Date: 2018-04-27 19:13+0200\n" +"PO-Revision-Date: 2018-06-05 20:58+0200\n" +"Last-Translator: joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.11\n" -#: gnu/packages.scm:90 +#: gnu.scm:82 +#, scheme-format +msgid "module ~a not found" +msgstr "modulet ~a blev ikke fundet" + +#: gnu.scm:100 +msgid "" +"You may use @command{guix package --show=foo | grep location} to search\n" +"for the location of package @code{foo}.\n" +"If you get the line @code{location: gnu/packages/bar.scm:174:2},\n" +"add @code{bar} to the @code{use-package-modules} form." +msgstr "" +"Du kan bruge @command{guix pakke --show=foo | grep placering} til at søge\n" +"efter placeringen af pakken @code{foo}.\n" +"Hvis du møder linjen @code{location: gnu/packages/bar.scm:174:2},\n" +"tilføj @code{bar} til formen @code{use-package-modules}." + +#: gnu.scm:108 +#, scheme-format +msgid "Try adding @code{(use-package-modules ~a)}." +msgstr "Prøv at tilføje @code{(use-package-modules ~a)}." + +#: gnu.scm:123 +#, scheme-format +msgid "" +"You may use @command{guix system search ~a} to search for a service\n" +"matching @code{~a}.\n" +"If you get the line @code{location: gnu/services/foo.scm:188:2},\n" +"add @code{foo} to the @code{use-service-modules} form." +msgstr "" +"Du kan bruge @command{guix system search ~a} til at søge efter en\n" +"tjenste matchende @code{~a}.\n" +"Hvis du møder linjen @code{location: gnu/services/foo.scm:188:2},\n" +"tilføj @code{foo} til formen @code{use-service-modules}." + +#: gnu.scm:132 +#, scheme-format +msgid "Try adding @code{(use-service-modules ~a)}." +msgstr "Prøv at tilføje @code{(use-service-modules ~a)}." + +#: gnu/packages.scm:92 #, scheme-format msgid "~a: patch not found" msgstr "~a: rettelse blev ikke fundet" -#: gnu/packages.scm:106 +#: gnu/packages.scm:108 #, scheme-format msgid "could not find bootstrap binary '~a' for system '~a'" msgstr "kunne ikke finde bootstraps binære »~a« for system »~a«" -#: gnu/packages.scm:236 +#: gnu/packages.scm:259 #, scheme-format msgid "ambiguous package specification `~a'~%" msgstr "tvetydig pakkespecifikation »~a«~%" -#: gnu/packages.scm:237 +#: gnu/packages.scm:260 #, scheme-format msgid "choosing ~a@~a from ~a~%" msgstr "vælger ~a@~a fra ~a~%" -#: gnu/packages.scm:242 guix/scripts/package.scm:272 +#: gnu/packages.scm:265 guix/scripts/package.scm:278 #, scheme-format msgid "package '~a' has been superseded by '~a'~%" msgstr "pakken »~a« er blevet efterfulgt af »~a«~%" -#: gnu/packages.scm:249 +#: gnu/packages.scm:272 #, scheme-format msgid "~A: package not found for version ~a~%" msgstr "~A: pakke ikke fundet for version ~a~%" -#: gnu/packages.scm:250 +#: gnu/packages.scm:273 #, scheme-format msgid "~A: unknown package~%" msgstr "~A: ukendt pakke~%" -#: gnu/packages.scm:278 +#: gnu/packages.scm:301 #, scheme-format msgid "package `~a' lacks output `~a'~%" msgstr "pakke »~a« mangler uddata »~a«~%" -#: gnu/services.scm:186 +#: gnu/services.scm:238 #, scheme-format msgid "~a: no value specified for service of type '~a'" msgstr "~a: ingen værdi angivet for tjenestetypen »~a«" -#: gnu/services.scm:627 +#: gnu/services.scm:643 #, scheme-format -msgid "no target of type '~a' for service ~s" -msgstr "intet mål af typen »~a« for tjeneste ~s" +msgid "no target of type '~a' for service '~a'" +msgstr "intet mål af typen »~a« for tjeneste ~a" -#: gnu/services.scm:638 gnu/services.scm:699 +#: gnu/services.scm:669 gnu/services.scm:762 #, scheme-format msgid "more than one target service of type '~a'" msgstr "mere end en måltjeneste af typen »~a«" -#: gnu/services.scm:689 +#: gnu/services.scm:752 #, scheme-format msgid "service of type '~a' not found" msgstr "tjenste af typen »~a« blev ikke fundet" -#: gnu/system.scm:270 +#: gnu/system.scm:311 #, scheme-format msgid "unrecognized boot parameters for '~a'~%" msgstr "ikke genkendte opstartsparametre for »~a«~%" -#: gnu/system.scm:633 +#: gnu/system.scm:712 #, scheme-format msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" msgstr "brug af en streng for filen »~a« er forældet; brug »plain-file« i stedet~%" -#: gnu/system.scm:649 +#: gnu/system.scm:728 #, scheme-format msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" msgstr "brug af en unik værdi for »~a« er forældet; brug »plain-file« i stedet~%" -#: gnu/system.scm:791 +#: gnu/system.scm:875 #, scheme-format msgid "~a: invalid locale name" msgstr "~a: ugyldigt navn for regionsindstillinger" -#: gnu/services/shepherd.scm:166 +#: gnu/services/shepherd.scm:177 #, scheme-format msgid "service '~a' provided more than once" msgstr "tjenesten »~a« tilbudt mere end en gang" -#: gnu/services/shepherd.scm:181 +#: gnu/services/shepherd.scm:192 #, scheme-format msgid "service '~a' requires '~a', which is not provided by any service" msgstr "tjenesten »~a« kræver »~a«, som ikke tilbydes af nogen tjeneste" -#: gnu/system/shadow.scm:223 +#: gnu/system/mapped-devices.scm:136 +#, scheme-format +msgid "you may need these modules in the initrd for ~a:~{ ~a~}" +msgstr "du kan få brug for disse moduler i initrd for ~a:~{ ~a~}" + +#: gnu/system/mapped-devices.scm:140 +#, scheme-format +msgid "" +"Try adding them to the\n" +"@code{initrd-modules} field of your @code{operating-system} declaration, along\n" +"these lines:\n" +"\n" +"@example\n" +" (operating-system\n" +" ;; @dots{}\n" +" (initrd-modules (append (list~{ ~s~})\n" +" %base-initrd-modules)))\n" +"@end example\n" +msgstr "" +"Prøv at tilføje dem til\n" +"feltet @code{initrd-modules} i din @code{operating-system}-erklæring, sammen\n" +"med disse linjer:\n" +"\n" +"@example\n" +" (operating-system\n" +" ;; @dots{}\n" +" (initrd-modules (append (list~{ ~s~})\n" +" %base-initrd-modules)))\n" +"@end example\n" + +#: gnu/system/mapped-devices.scm:216 +#, scheme-format +msgid "no LUKS partition with UUID '~a'" +msgstr "ingen LUKS-partition med UUID »~a«" + +#: gnu/system/shadow.scm:242 #, scheme-format msgid "supplementary group '~a' of user '~a' is undeclared" msgstr "supplerende gruppe »~a« for bruger »~a« er ikke erklæret" -#: gnu/system/shadow.scm:233 +#: gnu/system/shadow.scm:252 #, scheme-format msgid "primary group '~a' of user '~a' is undeclared" msgstr "primær gruppe »~a« for brugeren »~a« er ikke erklæret" @@ -132,22 +208,21 @@ msgstr "primær gruppe »~a« for brugeren »~a« er ikke erklæret" msgid "invalid argument: ~a~%" msgstr "ugyldigt argument: ~a~%" -#: guix/scripts.scm:82 guix/scripts/download.scm:133 guix/scripts/gc.scm:164 +#: guix/scripts.scm:84 guix/scripts/download.scm:135 #: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:77 -#: guix/scripts/lint.scm:1061 guix/scripts/publish.scm:811 -#: guix/scripts/edit.scm:81 guix/scripts/graph.scm:456 +#: guix/scripts/publish.scm:881 guix/scripts/edit.scm:81 #, scheme-format msgid "~A: unrecognized option~%" msgstr "~A: ikke genkendt tilvalg~%" -#: guix/scripts.scm:174 +#: guix/scripts.scm:179 #, scheme-format msgid "Your Guix installation is ~a day old.\n" msgid_plural "Your Guix installation is ~a days old.\n" msgstr[0] "Din Guix-installation er ~a dag gammel.\n" msgstr[1] "Din Guix-installation er ~a dage gammel.\n" -#: guix/scripts.scm:179 +#: guix/scripts.scm:184 #, scheme-format msgid "" "Consider running 'guix pull' followed by\n" @@ -156,17 +231,22 @@ msgstr "" "Overvej at afvikle »guix pull« efterfulgt af\n" "»~a« for at få opdaterede pakker og sikkerhedsopdateringer.\n" -#: guix/scripts/build.scm:124 +#: guix/scripts/build.scm:81 +#, scheme-format +msgid "cannot access build log at '~a':~%" +msgstr "kan ikke tilgå kompileringsloggen på »~a«:~%" + +#: guix/scripts/build.scm:135 #, scheme-format msgid "failed to create GC root `~a': ~a~%" msgstr "kunne ikke oprette GC-root »~a«: ~a~%" -#: guix/scripts/build.scm:206 +#: guix/scripts/build.scm:237 #, scheme-format msgid "invalid replacement specification: ~s~%" msgstr "ugyldig erstatningsspecifikation: ~s~%" -#: guix/scripts/build.scm:263 +#: guix/scripts/build.scm:294 msgid "" "\n" " --with-source=SOURCE\n" @@ -176,7 +256,7 @@ msgstr "" " --with-source=KILDE\n" " brug KILDE når den tilsvarende pakke kompileres" -#: guix/scripts/build.scm:266 +#: guix/scripts/build.scm:297 msgid "" "\n" " --with-input=PACKAGE=REPLACEMENT\n" @@ -186,7 +266,7 @@ msgstr "" " --with-input=PAKKE=ERSTATNING\n" " erstat afhængighedsPAKKE med ERSTATNING" -#: guix/scripts/build.scm:269 +#: guix/scripts/build.scm:300 msgid "" "\n" " --with-graft=PACKAGE=REPLACEMENT\n" @@ -196,12 +276,12 @@ msgstr "" " --with-graft=PAKKE=ERSTATNING\n" " pod ERSTATNING på pakker som refererer til PAKKE" -#: guix/scripts/build.scm:294 +#: guix/scripts/build.scm:325 #, scheme-format msgid "transformation '~a' had no effect on ~a~%" msgstr "transformation »~a« havde ingen effekt på ~a~%" -#: guix/scripts/build.scm:312 +#: guix/scripts/build.scm:343 msgid "" "\n" " -L, --load-path=DIR prepend DIR to the package module search path" @@ -209,7 +289,7 @@ msgstr "" "\n" " -L, --load-path=MAPPE foranstil MAPPE til pakkemodulets søgesti" -#: guix/scripts/build.scm:314 +#: guix/scripts/build.scm:345 msgid "" "\n" " -K, --keep-failed keep build tree of failed builds" @@ -217,7 +297,7 @@ msgstr "" "\n" " -K, --keep-failed bevar kompileringstræ for mislykkede kompileringer" -#: guix/scripts/build.scm:316 +#: guix/scripts/build.scm:347 msgid "" "\n" " -k, --keep-going keep going when some of the derivations fail" @@ -225,7 +305,7 @@ msgstr "" "\n" " -k, --keep-going fortsæt når nogle af derivaterne fejler" -#: guix/scripts/build.scm:318 +#: guix/scripts/build.scm:349 msgid "" "\n" " -n, --dry-run do not build the derivations" @@ -233,7 +313,7 @@ msgstr "" "\n" " -n, --dry-run kompiler ikke derivater" -#: guix/scripts/build.scm:320 +#: guix/scripts/build.scm:351 msgid "" "\n" " --fallback fall back to building when the substituter fails" @@ -241,7 +321,7 @@ msgstr "" "\n" " --fallback fald tilbage til kompilering når erstatningen fejler" -#: guix/scripts/build.scm:322 +#: guix/scripts/build.scm:353 msgid "" "\n" " --no-substitutes build instead of resorting to pre-built substitutes" @@ -250,7 +330,7 @@ msgstr "" " --no-substitutes kompiler i stedet for at bruge prækompilerede\n" " substitutter" -#: guix/scripts/build.scm:324 guix/scripts/size.scm:222 +#: guix/scripts/build.scm:355 guix/scripts/size.scm:232 msgid "" "\n" " --substitute-urls=URLS\n" @@ -260,7 +340,7 @@ msgstr "" " --substitute-urls=ADRESSER\n" " hent substitut fra ADRESSER hvis de er godkendt" -#: guix/scripts/build.scm:327 +#: guix/scripts/build.scm:358 msgid "" "\n" " --no-grafts do not graft packages" @@ -268,7 +348,7 @@ msgstr "" "\n" " --no-grafts pod ikke pakker" -#: guix/scripts/build.scm:329 +#: guix/scripts/build.scm:360 msgid "" "\n" " --no-build-hook do not attempt to offload builds via the build hook" @@ -277,7 +357,7 @@ msgstr "" " --no-build-hook forsøg ikke at aflaste kompileringer via\n" " kompileringskrogen" -#: guix/scripts/build.scm:331 +#: guix/scripts/build.scm:362 msgid "" "\n" " --max-silent-time=SECONDS\n" @@ -288,7 +368,7 @@ msgstr "" " marker kompileringen som mislykket efter SEKUNDERs\n" " stilhed" -#: guix/scripts/build.scm:334 +#: guix/scripts/build.scm:365 msgid "" "\n" " --timeout=SECONDS mark the build as failed after SECONDS of activity" @@ -297,7 +377,7 @@ msgstr "" " --timeout=SEKUNDER marker kompileringen som mislykket efter SEKUNDERs\n" " aktivitet" -#: guix/scripts/build.scm:336 +#: guix/scripts/build.scm:367 msgid "" "\n" " --verbosity=LEVEL use the given verbosity LEVEL" @@ -305,7 +385,7 @@ msgstr "" "\n" " --verbosity=NIVEAU brug det angivne uddybnings-NIVEAU" -#: guix/scripts/build.scm:338 +#: guix/scripts/build.scm:369 msgid "" "\n" " --rounds=N build N times in a row to detect non-determinism" @@ -314,7 +394,7 @@ msgstr "" " --rounds=N kompiler N gange i træk for at detektere\n" " ikkedeterminisme" -#: guix/scripts/build.scm:340 +#: guix/scripts/build.scm:371 msgid "" "\n" " -c, --cores=N allow the use of up to N CPU cores for the build" @@ -323,7 +403,7 @@ msgstr "" " -c, --cores=N tillad brugen af op til N cpu-kerner til\n" " kompileringen" -#: guix/scripts/build.scm:342 +#: guix/scripts/build.scm:373 msgid "" "\n" " -M, --max-jobs=N allow at most N build jobs" @@ -331,12 +411,12 @@ msgstr "" "\n" " -M, --max-jobs=N tillad højst N kompileringsjob" -#: guix/scripts/build.scm:448 guix/scripts/build.scm:455 +#: guix/scripts/build.scm:479 guix/scripts/build.scm:486 #, scheme-format msgid "not a number: '~a' option argument: ~a~%" msgstr "ikke et nummer: »~a« tilvalgsparameter: ~a~%" -#: guix/scripts/build.scm:474 +#: guix/scripts/build.scm:505 msgid "" "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" @@ -344,7 +424,7 @@ msgstr "" "Brug: guix build [TILVALG]... PAKKE-ELLER-DERIVAT...\n" "Kompiler den angivne PAKKE-ELLER-DERIVAT og returner deres uddatastier.\n" -#: guix/scripts/build.scm:476 +#: guix/scripts/build.scm:507 msgid "" "\n" " -e, --expression=EXPR build the package or derivation EXPR evaluates to" @@ -353,7 +433,7 @@ msgstr "" " -e, --expression=UDTRYK\n" " kompiler pakken eller derivatet UDTRYK evaluerer til" -#: guix/scripts/build.scm:478 +#: guix/scripts/build.scm:509 msgid "" "\n" " -f, --file=FILE build the package or derivation that the code within\n" @@ -363,7 +443,7 @@ msgstr "" " -f, --file=FIL kompiler pakken eller derivatet som koden i FIL\n" " evaluerer til" -#: guix/scripts/build.scm:481 +#: guix/scripts/build.scm:512 msgid "" "\n" " -S, --source build the packages' source derivations" @@ -371,7 +451,7 @@ msgstr "" "\n" " -S, --source kompiler pakkernes kildederivater" -#: guix/scripts/build.scm:483 +#: guix/scripts/build.scm:514 msgid "" "\n" " --sources[=TYPE] build source derivations; TYPE may optionally be one\n" @@ -381,7 +461,7 @@ msgstr "" " --sources[=TYPE] kompileringskildederivater; TYPE kan valgfrit være\n" " »package«, »all« (standard) eller »transitive«" -#: guix/scripts/build.scm:486 guix/scripts/pack.scm:330 +#: guix/scripts/build.scm:517 guix/scripts/pack.scm:357 msgid "" "\n" " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" @@ -389,7 +469,7 @@ msgstr "" "\n" " -s, --system=SYSTEM forsøger at kompilere for SYSTEM--f.eks. »i686-linux«" -#: guix/scripts/build.scm:488 guix/scripts/pack.scm:332 +#: guix/scripts/build.scm:519 guix/scripts/pack.scm:359 msgid "" "\n" " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" @@ -397,7 +477,7 @@ msgstr "" "\n" " --target=TRIPLET krydskompiler for TRIPLET--f.eks. »armel-linux-gnu«" -#: guix/scripts/build.scm:490 +#: guix/scripts/build.scm:521 msgid "" "\n" " -d, --derivations return the derivation paths of the given packages" @@ -405,7 +485,7 @@ msgstr "" "\n" " -d, --derivations returner de derivate stier for de givne pakker" -#: guix/scripts/build.scm:492 +#: guix/scripts/build.scm:523 msgid "" "\n" " --check rebuild items to check for non-determinism issues" @@ -414,7 +494,7 @@ msgstr "" " --check kompiler elementer igen for at kontrollere\n" " ikkedeterminisme" -#: guix/scripts/build.scm:494 +#: guix/scripts/build.scm:525 msgid "" "\n" " --repair repair the specified items" @@ -422,7 +502,7 @@ msgstr "" "\n" " --repair reparer de specificerede elementer" -#: guix/scripts/build.scm:496 +#: guix/scripts/build.scm:527 msgid "" "\n" " -r, --root=FILE make FILE a symlink to the result, and register it\n" @@ -432,7 +512,7 @@ msgstr "" " -r, --root=FIL gør FIL til en symbolsk henvisning for resultatet, og\n" " registrer den som en affaldsindsamlerroot" -#: guix/scripts/build.scm:499 +#: guix/scripts/build.scm:530 msgid "" "\n" " -q, --quiet do not show the build log" @@ -440,7 +520,7 @@ msgstr "" "\n" " -q, --quiet vis ikke kompileringsloggen" -#: guix/scripts/build.scm:501 +#: guix/scripts/build.scm:532 msgid "" "\n" " --log-file return the log file names for the given derivations" @@ -448,16 +528,17 @@ msgstr "" "\n" " --log-file returner logfilnavnen for de givne derivater" -#: guix/scripts/build.scm:508 guix/scripts/download.scm:81 -#: guix/scripts/package.scm:419 guix/scripts/gc.scm:74 +#: guix/scripts/build.scm:539 guix/scripts/download.scm:83 +#: guix/scripts/package.scm:435 guix/scripts/gc.scm:76 #: guix/scripts/hash.scm:59 guix/scripts/import.scm:92 -#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:94 -#: guix/scripts/substitute.scm:810 guix/scripts/system.scm:742 -#: guix/scripts/lint.scm:1010 guix/scripts/publish.scm:93 -#: guix/scripts/edit.scm:44 guix/scripts/size.scm:230 -#: guix/scripts/graph.scm:436 guix/scripts/challenge.scm:227 -#: guix/scripts/copy.scm:121 guix/scripts/pack.scm:341 -#: guix/scripts/container.scm:33 guix/scripts/container/exec.scm:43 +#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:111 +#: guix/scripts/substitute.scm:879 guix/scripts/system.scm:970 +#: guix/scripts/lint.scm:1122 guix/scripts/publish.scm:94 +#: guix/scripts/edit.scm:44 guix/scripts/size.scm:243 +#: guix/scripts/graph.scm:466 guix/scripts/challenge.scm:241 +#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:372 +#: guix/scripts/weather.scm:258 guix/scripts/container.scm:33 +#: guix/scripts/container/exec.scm:43 msgid "" "\n" " -h, --help display this help and exit" @@ -465,16 +546,17 @@ msgstr "" "\n" " -h, --help vis denne hjælpetekst og afslut" -#: guix/scripts/build.scm:510 guix/scripts/download.scm:83 -#: guix/scripts/package.scm:421 guix/scripts/gc.scm:76 +#: guix/scripts/build.scm:541 guix/scripts/download.scm:85 +#: guix/scripts/package.scm:437 guix/scripts/gc.scm:78 #: guix/scripts/hash.scm:61 guix/scripts/import.scm:94 -#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:96 -#: guix/scripts/substitute.scm:812 guix/scripts/system.scm:744 -#: guix/scripts/lint.scm:1014 guix/scripts/publish.scm:95 -#: guix/scripts/edit.scm:46 guix/scripts/size.scm:232 -#: guix/scripts/graph.scm:438 guix/scripts/challenge.scm:229 -#: guix/scripts/copy.scm:123 guix/scripts/pack.scm:343 -#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:45 +#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:113 +#: guix/scripts/substitute.scm:881 guix/scripts/system.scm:972 +#: guix/scripts/lint.scm:1126 guix/scripts/publish.scm:96 +#: guix/scripts/edit.scm:46 guix/scripts/size.scm:245 +#: guix/scripts/graph.scm:468 guix/scripts/challenge.scm:243 +#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:374 +#: guix/scripts/weather.scm:260 guix/scripts/container.scm:35 +#: guix/scripts/container/exec.scm:45 msgid "" "\n" " -V, --version display version information and exit" @@ -482,7 +564,7 @@ msgstr "" "\n" " -V, --version vis versioninformation og afslut" -#: guix/scripts/build.scm:537 +#: guix/scripts/build.scm:568 #, scheme-format msgid "" "invalid argument: '~a' option argument: ~a, ~\n" @@ -491,27 +573,27 @@ msgstr "" "ugyldigt argument: »~a« tilvalgsargumentet: ~a, ~\n" "skal være »package«, »all« eller »transitive«~%" -#: guix/scripts/build.scm:590 +#: guix/scripts/build.scm:621 #, scheme-format msgid "~s: not something we can build~%" msgstr "~s: ikke noget vi kan kompilere~%" -#: guix/scripts/build.scm:644 +#: guix/scripts/build.scm:675 #, scheme-format msgid "~a: warning: package '~a' has no source~%" msgstr "~a: advarsel: pakken »~a« har ingen kilde~%" -#: guix/scripts/build.scm:678 +#: guix/scripts/build.scm:709 #, scheme-format msgid "no build log for '~a'~%" msgstr "ingen kompileringslog for »~a«~%" -#: guix/discovery.scm:56 +#: guix/discovery.scm:90 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "kan ikke tilgå »~a«: ~a~%" -#: guix/scripts/download.scm:67 +#: guix/scripts/download.scm:69 msgid "" "Usage: guix download [OPTION] URL\n" "Download the file at URL to the store or to the given file, and print its\n" @@ -527,7 +609,7 @@ msgstr "" "Understøttede formater: »nix-base32« (standard), »base32«, og »base16«\n" "(»hex« og »hexadecimal« kan også bruges).\n" -#: guix/scripts/download.scm:73 guix/scripts/hash.scm:54 +#: guix/scripts/download.scm:75 guix/scripts/hash.scm:54 msgid "" "\n" " -f, --format=FMT write the hash in the given format" @@ -535,7 +617,7 @@ msgstr "" "\n" " -f, --format=FMT skriv hashen i det givne format" -#: guix/scripts/download.scm:75 +#: guix/scripts/download.scm:77 msgid "" "\n" " --no-check-certificate\n" @@ -545,7 +627,7 @@ msgstr "" " --no-check-certificate\n" " valider ikke certifikatet for HTTPS-servere" -#: guix/scripts/download.scm:78 +#: guix/scripts/download.scm:80 msgid "" "\n" " -o, --output=FILE download to FILE" @@ -553,91 +635,96 @@ msgstr "" "\n" " -o, --output=FIL hent til FIL" -#: guix/scripts/download.scm:101 guix/scripts/hash.scm:82 +#: guix/scripts/download.scm:103 guix/scripts/hash.scm:82 #, scheme-format msgid "unsupported hash format: ~a~%" msgstr "ikke understøttet hash-format: ~a~%" -#: guix/scripts/download.scm:136 guix/scripts/package.scm:882 -#: guix/scripts/publish.scm:813 +#: guix/scripts/download.scm:138 guix/scripts/package.scm:924 +#: guix/scripts/publish.scm:883 #, scheme-format msgid "~A: extraneous argument~%" msgstr "~A: uvedkommende argument~%" -#: guix/scripts/download.scm:144 +#: guix/scripts/download.scm:146 #, scheme-format msgid "no download URI was specified~%" msgstr "ingen overførselsadresse var angivet~%" -#: guix/scripts/download.scm:146 +#: guix/scripts/download.scm:151 #, scheme-format msgid "~a: failed to parse URI~%" msgstr "~a: kunne ikke fortolke URI~%" -#: guix/scripts/download.scm:156 +#: guix/scripts/download.scm:161 #, scheme-format msgid "~a: download failed~%" msgstr "~a: overførsel mislykkede~%" -#: guix/scripts/package.scm:107 +#: guix/scripts/package.scm:112 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "Prøv »info '(guix) Invoking guix package'« for yderligere information.~%" -#: guix/scripts/package.scm:129 +#: guix/scripts/package.scm:134 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "fejl: under oprettelse af mappe »~a«: ~a~%" -#: guix/scripts/package.scm:133 +#: guix/scripts/package.scm:138 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Opret venligst mappen »~a«, med dig som ejer.~%" -#: guix/scripts/package.scm:140 +#: guix/scripts/package.scm:145 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "fejl: mappen »~a« er ikke ejet af dig~%" -#: guix/scripts/package.scm:143 +#: guix/scripts/package.scm:148 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Ændr venligst ejeren af »~a« til brugeren ~s.~%" -#: guix/scripts/package.scm:178 +#: guix/scripts/package.scm:183 #, scheme-format msgid "not removing generation ~a, which is current~%" msgstr "fjerner ikke generation ~a, som er nuværende~%" -#: guix/scripts/package.scm:185 +#: guix/scripts/package.scm:190 #, scheme-format msgid "no matching generation~%" msgstr "ingen matchende generation~%" -#: guix/scripts/package.scm:188 guix/scripts/package.scm:700 -#: guix/scripts/system.scm:530 +#: guix/scripts/package.scm:193 guix/scripts/package.scm:730 +#: guix/scripts/system.scm:573 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "ugyldig syntaks: ~a~%" -#: guix/scripts/package.scm:214 +#: guix/scripts/package.scm:222 #, scheme-format msgid "nothing to be done~%" msgstr "intet at udføre~%" -#: guix/scripts/package.scm:228 +#: guix/scripts/package.scm:236 #, scheme-format msgid "~a package in profile~%" msgid_plural "~a packages in profile~%" msgstr[0] "~a pakke i profil~%" msgstr[1] "~a pakker i profil~%" -#: guix/scripts/package.scm:344 +#: guix/scripts/package.scm:320 +#, scheme-format +msgid "package '~a' no longer exists~%" +msgstr "pakken »~a« findes ikke længere~%" + +#: guix/scripts/package.scm:358 #, scheme-format msgid "The following environment variable definitions may be needed:~%" msgstr "De følgende miljøvariabeldefinitioner kan være krævet:~%" -#: guix/scripts/package.scm:360 +#: guix/scripts/package.scm:374 msgid "" "Usage: guix package [OPTION]...\n" "Install, remove, or upgrade packages in a single transaction.\n" @@ -645,7 +732,7 @@ msgstr "" "Brug: guix-pakke [TILVALG] ... \n" "Installer, fjern eller opgrader pakker i en enkel transaktion.\n" -#: guix/scripts/package.scm:362 +#: guix/scripts/package.scm:376 msgid "" "\n" " -i, --install PACKAGE ...\n" @@ -655,7 +742,7 @@ msgstr "" " -i, --install PAKKE ...\n" " installer PAKKER" -#: guix/scripts/package.scm:365 +#: guix/scripts/package.scm:379 msgid "" "\n" " -e, --install-from-expression=EXP\n" @@ -665,7 +752,7 @@ msgstr "" " -e, --install-from-expression=UDTRYK\n" " installer pakken UDTRYK evaluerer til" -#: guix/scripts/package.scm:368 +#: guix/scripts/package.scm:382 msgid "" "\n" " -f, --install-from-file=FILE\n" @@ -677,7 +764,7 @@ msgstr "" " installer pakken som koden i FIL evaluerer\n" " til" -#: guix/scripts/package.scm:372 +#: guix/scripts/package.scm:386 msgid "" "\n" " -r, --remove PACKAGE ...\n" @@ -687,7 +774,7 @@ msgstr "" " -r, --remove PAKKE ...\n" " fjern PAKKER" -#: guix/scripts/package.scm:375 +#: guix/scripts/package.scm:389 msgid "" "\n" " -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" @@ -697,7 +784,7 @@ msgstr "" " opgrader alle de installerede pakker der matcher\n" " REGUDTRYK" -#: guix/scripts/package.scm:377 +#: guix/scripts/package.scm:391 msgid "" "\n" " -m, --manifest=FILE create a new profile generation with the manifest\n" @@ -707,7 +794,7 @@ msgstr "" " -m, --manifest=FIL opret en ny profiloprettelse med manifestet fra\n" " FIL" -#: guix/scripts/package.scm:380 +#: guix/scripts/package.scm:394 msgid "" "\n" " --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP" @@ -715,7 +802,7 @@ msgstr "" "\n" " --do-not-upgrade[=REGUDTRYK] opgrader ikke pakker der matcher REGUDTRYK" -#: guix/scripts/package.scm:382 +#: guix/scripts/package.scm:396 msgid "" "\n" " --roll-back roll back to the previous generation" @@ -723,7 +810,7 @@ msgstr "" "\n" " --roll-back rul tilbage til den forrige generation" -#: guix/scripts/package.scm:384 +#: guix/scripts/package.scm:398 msgid "" "\n" " --search-paths[=KIND]\n" @@ -733,7 +820,7 @@ msgstr "" " --search-paths[=KIND]\n" " vis krævede miljøvariabeldefinitioner" -#: guix/scripts/package.scm:387 +#: guix/scripts/package.scm:401 msgid "" "\n" " -l, --list-generations[=PATTERN]\n" @@ -743,7 +830,7 @@ msgstr "" " -l, --list-generations[=MØNSTER]\n" " vis generationer der matcher MØNSTER" -#: guix/scripts/package.scm:390 +#: guix/scripts/package.scm:404 msgid "" "\n" " -d, --delete-generations[=PATTERN]\n" @@ -753,7 +840,7 @@ msgstr "" " -d, --delete-generations[=MØNSTER]\n" " slet generationer der matcher MØNSTER" -#: guix/scripts/package.scm:393 +#: guix/scripts/package.scm:407 msgid "" "\n" " -S, --switch-generation=PATTERN\n" @@ -763,7 +850,7 @@ msgstr "" " -S, --switch-generation=MØNSTER\n" " skift til et generationsmatchende MØNSTER" -#: guix/scripts/package.scm:396 +#: guix/scripts/package.scm:410 msgid "" "\n" " -p, --profile=PROFILE use PROFILE instead of the user's default profile" @@ -771,7 +858,15 @@ msgstr "" "\n" " -p, --profile=PROFIL brug PROFIL i stedet for brugerens standardprofil" -#: guix/scripts/package.scm:399 +#: guix/scripts/package.scm:413 +msgid "" +"\n" +" --allow-collisions do not treat collisions in the profile as an error" +msgstr "" +"\n" +" --allow-collisions opfat ikke kollisioner i profilen som en fejl" + +#: guix/scripts/package.scm:415 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the profile" @@ -779,7 +874,7 @@ msgstr "" "\n" " --bootstrap brug bootstrap Guile til at kompilere profilen" -#: guix/scripts/package.scm:401 guix/scripts/pull.scm:86 +#: guix/scripts/package.scm:417 guix/scripts/pull.scm:99 msgid "" "\n" " --verbose produce verbose output" @@ -787,7 +882,7 @@ msgstr "" "\n" " --verbose lav uddybende uddata" -#: guix/scripts/package.scm:404 +#: guix/scripts/package.scm:420 msgid "" "\n" " -s, --search=REGEXP search in synopsis and description using REGEXP" @@ -795,7 +890,7 @@ msgstr "" "\n" " -s, --search=REGUDTRYK søg i synopsis og beskrivelse via REGUDTRYK" -#: guix/scripts/package.scm:406 +#: guix/scripts/package.scm:422 msgid "" "\n" " -I, --list-installed[=REGEXP]\n" @@ -805,7 +900,7 @@ msgstr "" " -I, --list-installed[=REGUDTRYK]\n" " vis installerede pakker der matcher REGUDTRYK" -#: guix/scripts/package.scm:409 +#: guix/scripts/package.scm:425 msgid "" "\n" " -A, --list-available[=REGEXP]\n" @@ -815,7 +910,7 @@ msgstr "" " -A, --list-available[=REGUDTRYK]\n" " vis tilgængelige pakker der matcher REGUDTRYK" -#: guix/scripts/package.scm:412 +#: guix/scripts/package.scm:428 msgid "" "\n" " --show=PACKAGE show details about PACKAGE" @@ -823,22 +918,32 @@ msgstr "" "\n" " --show=PACKAGE vis detaljer om PAKKE" -#: guix/scripts/package.scm:507 +#: guix/scripts/package.scm:480 +#, scheme-format +msgid "upgrade regexp '~a' looks like a command-line option~%" +msgstr "opgradering af regulært udtryk »~a« ligner et tilvalg for kommandolinjen~%" + +#: guix/scripts/package.scm:483 +#, scheme-format +msgid "is this intended?~%" +msgstr "er dette med vilje?~%" + +#: guix/scripts/package.scm:528 #, scheme-format msgid "~a: unsupported kind of search path~%" msgstr "~a: ikke understøttet type af søgesti%" -#: guix/scripts/package.scm:791 +#: guix/scripts/package.scm:829 #, scheme-format msgid "cannot switch to generation '~a'~%" msgstr "kan ikke skifte til generation »~a«~%" -#: guix/scripts/package.scm:807 +#: guix/scripts/package.scm:846 #, scheme-format msgid "would install new manifest from '~a' with ~d entries~%" msgstr "vil installere nyt manifest fra »~a« med ~d poster~%" -#: guix/scripts/package.scm:809 +#: guix/scripts/package.scm:848 #, scheme-format msgid "installing new manifest from '~a' with ~d entries~%" msgstr "installerer nyt manifest fra »~a« med ~d poster~%" @@ -925,7 +1030,15 @@ msgstr "" "\n" " --referrers vis henvisninger for STIER" -#: guix/scripts/gc.scm:65 +#: guix/scripts/gc.scm:64 +msgid "" +"\n" +" --derivers list the derivers of PATHS" +msgstr "" +"\n" +" --derivers vis indholdet af STIER" + +#: guix/scripts/gc.scm:67 msgid "" "\n" " --verify[=OPTS] verify the integrity of the store; OPTS is a\n" @@ -937,7 +1050,7 @@ msgstr "" " kommaadskilt kombination af »repair« og \n" " »contents«" -#: guix/scripts/gc.scm:69 +#: guix/scripts/gc.scm:71 msgid "" "\n" " --list-failures list cached build failures" @@ -945,7 +1058,7 @@ msgstr "" "\n" " --list-failures vis mellemlagrede kompileringsfejl" -#: guix/scripts/gc.scm:71 +#: guix/scripts/gc.scm:73 msgid "" "\n" " --clear-failures remove PATHS from the set of cached failures" @@ -953,25 +1066,30 @@ msgstr "" "\n" " --clear-failures fjern STIER fra sættet med mellemlagrede fejl" -#: guix/scripts/gc.scm:100 +#: guix/scripts/gc.scm:87 +#, scheme-format +msgid "~a: invalid '--verify' option~%" +msgstr "~a: ugyldigt »--verify«-tilvalg~%" + +#: guix/scripts/gc.scm:117 #, scheme-format msgid "invalid amount of storage: ~a~%" msgstr "ugyldig lagermængde: ~a~%" -#: guix/scripts/gc.scm:191 +#: guix/scripts/gc.scm:202 msgid "already ~h bytes available on ~a, nothing to do~%" msgstr "der er allerede ~h byte tilgængelige på ~a, intet at udføre~%" -#: guix/scripts/gc.scm:194 +#: guix/scripts/gc.scm:205 msgid "freeing ~h bytes~%" msgstr "frigiver ~h byte~%" -#: guix/scripts/gc.scm:206 +#: guix/scripts/gc.scm:217 #, scheme-format msgid "extraneous arguments: ~{~a ~}~%" msgstr "uvedkommende argumenter: ~{~a ~}~%" -#: guix/scripts/gc.scm:226 guix/scripts/gc.scm:229 +#: guix/scripts/gc.scm:237 guix/scripts/gc.scm:240 msgid "freed ~h bytes~%" msgstr "frigav ~h byte~%" @@ -1005,18 +1123,13 @@ msgstr "" "\n" " -r, --recursive beregn hashen på FIL rekursivt" -#: guix/scripts/hash.scm:109 -#, scheme-format -msgid "unrecognized option: ~a~%" -msgstr "tilvalg blev ikke genkendt: ~a~%" - -#: guix/scripts/hash.scm:155 guix/ui.scm:264 guix/ui.scm:498 guix/ui.scm:551 +#: guix/scripts/hash.scm:150 guix/ui.scm:346 guix/ui.scm:656 guix/ui.scm:709 #, scheme-format msgid "~a~%" msgstr "~a~%" -#: guix/scripts/hash.scm:158 guix/scripts/system.scm:879 -#: guix/scripts/system.scm:886 guix/scripts/system.scm:893 +#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1138 +#: guix/scripts/system.scm:1147 guix/scripts/system.scm:1154 #, scheme-format msgid "wrong number of arguments~%" msgstr "forkert antal argumenter~%" @@ -1116,7 +1229,26 @@ msgstr "" msgid "failed to download package '~a'~%" msgstr "kunne ikke hente pakken »~a«:~%" -#: guix/scripts/pull.scm:84 +#: guix/scripts/pull.scm:60 +#, scheme-format +msgid "" +"Guile-Git is missing but it is now required by 'guix pull'.\n" +"Install it by running:\n" +"\n" +" guix package -i ~a\n" +" export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH\n" +" export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n" +"\n" +msgstr "" +"Guile-Git mangler men er ikke krævet af »guix pull«.\n" +"Installer den ved at køre:\n" +"\n" +" guix package -i ~a\n" +" export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH\n" +" export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n" +"\n" + +#: guix/scripts/pull.scm:97 msgid "" "Usage: guix pull [OPTION]...\n" "Download and deploy the latest version of Guix.\n" @@ -1124,15 +1256,31 @@ msgstr "" "Brug: guix pull [TILVALG]...\n" "Hent og udrul den seneste version af Guix.\n" -#: guix/scripts/pull.scm:88 +#: guix/scripts/pull.scm:101 msgid "" "\n" -" --url=URL download the Guix tarball from URL" +" --url=URL download from the Git repository at URL" msgstr "" "\n" -" --url=URL hent Guix-tarball'en fra ADRESSE" +" --url=URL hent fra Git-arkivet på URL (ADRESSE)" -#: guix/scripts/pull.scm:90 +#: guix/scripts/pull.scm:103 +msgid "" +"\n" +" --commit=COMMIT download the specified COMMIT" +msgstr "" +"\n" +" --commit=COMMIT hent den angivne COMMIT (INDSENDELSE)" + +#: guix/scripts/pull.scm:105 +msgid "" +"\n" +" --branch=BRANCH download the tip of the specified BRANCH" +msgstr "" +"\n" +" --branch=BRANCH hent toppen af den angivne BRANCH (GREN)" + +#: guix/scripts/pull.scm:107 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the new Guix" @@ -1140,158 +1288,156 @@ msgstr "" "\n" " --bootstrap brug bootstrap Guile til at kompilere den nye Guix" -#: guix/scripts/pull.scm:150 -msgid "tarball did not produce a single source directory" -msgstr "tarball fremstillede ikke en enkel kildemappe" - -#: guix/scripts/pull.scm:168 -#, scheme-format -msgid "unpacking '~a'...~%" -msgstr "udpakker »~a«...~%" - -#: guix/scripts/pull.scm:177 -msgid "failed to unpack source code" -msgstr "kunne ikke udpakke kildekode" - -#: guix/scripts/pull.scm:220 +#: guix/scripts/pull.scm:193 msgid "Guix already up to date\n" msgstr "Guix er allerede opdateret\n" -#: guix/scripts/pull.scm:225 +#: guix/scripts/pull.scm:198 #, scheme-format msgid "updated ~a successfully deployed under `~a'~%" msgstr "opdaterede ~a der med succes blev udrullet undet »~a«~%" -#: guix/scripts/pull.scm:228 +#: guix/scripts/pull.scm:201 #, scheme-format msgid "failed to update Guix, check the build log~%" msgstr "kunne ikke opdatere Guix; kontroller kompileringsloggen~%" -#: guix/scripts/pull.scm:255 -msgid "failed to download up-to-date source, exiting\n" -msgstr "kunne ikke hente opdateret kilde, afslutter\n" +#: guix/scripts/pull.scm:217 +#, scheme-format +msgid "cannot enforce use of the Let's Encrypt certificates~%" +msgstr "kan ikke gennemtvinge brugen af Let's Encrypt-certifikater~%" -#: guix/scripts/substitute.scm:114 +#: guix/scripts/pull.scm:219 +#, scheme-format +msgid "please upgrade Guile-Git~%" +msgstr "opgrader venligst til Guile-Git~%" + +#: guix/scripts/pull.scm:227 +#, scheme-format +msgid "Git error ~a~%" +msgstr "Git-fejl: ~a~%" + +#: guix/scripts/pull.scm:229 +#, scheme-format +msgid "Git error: ~a~%" +msgstr "Git-fejl: ~a~%" + +#: guix/scripts/pull.scm:263 +#, scheme-format +msgid "Updating from Git repository at '~a'...~%" +msgstr "Opdaterer fra Git-arkiv på »~a«...~%" + +#: guix/scripts/pull.scm:272 +#, scheme-format +msgid "Building from Git commit ~a...~%" +msgstr "Kompilerer fra Git commit ~a...~%" + +#: guix/scripts/substitute.scm:125 #, scheme-format msgid "authentication and authorization of substitutes disabled!~%" msgstr "godkendelse og autorisation af substitutter er deaktiveret!~%" -#: guix/scripts/substitute.scm:189 +#: guix/scripts/substitute.scm:200 #, scheme-format msgid "download from '~a' failed: ~a, ~s~%" msgstr "hent fra »~a« mislykkedes: ~a, ~s~%" -#: guix/scripts/substitute.scm:202 +#: guix/scripts/substitute.scm:213 #, scheme-format msgid "while fetching ~a: server is somewhat slow~%" msgstr "under overførsel af ~a: server er noget langsom~%" -#: guix/scripts/substitute.scm:204 +#: guix/scripts/substitute.scm:215 #, scheme-format msgid "try `--no-substitutes' if the problem persists~%" msgstr "prøv »--no-substitutes« hvis problemet fortsætter~%" -#: guix/scripts/substitute.scm:222 +#: guix/scripts/substitute.scm:225 #, scheme-format msgid "unsupported substitute URI scheme: ~a~%" msgstr "ikke understøttet substitut-URI-skema: ~a~%" -#: guix/scripts/substitute.scm:257 +#: guix/scripts/substitute.scm:260 #, scheme-format msgid "while fetching '~a': ~a (~s)~%" msgstr "under overførsel af »~a«: ~a (~s)~%" -#: guix/scripts/substitute.scm:262 +#: guix/scripts/substitute.scm:265 #, scheme-format msgid "ignoring substitute server at '~s'~%" msgstr "ignorerer substitutserver »~s«~%" -#: guix/scripts/substitute.scm:312 +#: guix/scripts/substitute.scm:315 #, scheme-format msgid "signature version must be a number: ~s~%" msgstr "signaturversion skal være et nummer: ~s~%" -#: guix/scripts/substitute.scm:316 +#: guix/scripts/substitute.scm:319 #, scheme-format msgid "unsupported signature version: ~a~%" msgstr "signaturversion er ikke understøttet: ~a~%" -#: guix/scripts/substitute.scm:324 +#: guix/scripts/substitute.scm:327 #, scheme-format msgid "signature is not a valid s-expression: ~s~%" msgstr "signatur er ikke et gyldigt s-udtryk: ~s~%" -#: guix/scripts/substitute.scm:328 +#: guix/scripts/substitute.scm:331 #, scheme-format msgid "invalid format of the signature field: ~a~%" msgstr "ugyldigt format for signaturfeltet: ~a~%" -#: guix/scripts/substitute.scm:363 +#: guix/scripts/substitute.scm:366 #, scheme-format msgid "invalid signature for '~a'~%" msgstr "ugyldig signatur for »~a«~%" -#: guix/scripts/substitute.scm:365 +#: guix/scripts/substitute.scm:368 #, scheme-format msgid "hash mismatch for '~a'~%" msgstr "hash mismatch for »~a«~%" -#: guix/scripts/substitute.scm:367 +#: guix/scripts/substitute.scm:370 #, scheme-format msgid "'~a' is signed with an unauthorized key~%" msgstr "»~a« er underskrevet med en uautoriseret nøgle~%" -#: guix/scripts/substitute.scm:369 +#: guix/scripts/substitute.scm:372 #, scheme-format msgid "signature on '~a' is corrupt~%" msgstr "signatur på »~a« er ødelagt~%" -#: guix/scripts/substitute.scm:407 -#, scheme-format -msgid "substitute at '~a' lacks a signature~%" -msgstr "substitut på »~a« mangler en signatur~%" - -#: guix/scripts/substitute.scm:414 -#, scheme-format -msgid "Found valid signature for ~a~%" -msgstr "Fandt gyldig signatur for ~a~%" - -#: guix/scripts/substitute.scm:417 -#, scheme-format -msgid "From ~a~%" -msgstr "Fra ~a~%" - -#: guix/scripts/substitute.scm:451 +#: guix/scripts/substitute.scm:457 #, scheme-format msgid "'~a' does not name a store item~%" msgstr "»~a« nævner ikke et lagerelement~%" -#: guix/scripts/substitute.scm:599 +#: guix/scripts/substitute.scm:619 #, scheme-format msgid "updating list of substitutes from '~a'... ~5,1f%" msgstr "opdaterer liste af substitutter fra »~a«... ~5,1f%" -#: guix/scripts/substitute.scm:654 +#: guix/scripts/substitute.scm:683 #, scheme-format msgid "~s: unsupported server URI scheme~%" msgstr "~s: ikke understøttet server-URI-skema~%" -#: guix/scripts/substitute.scm:664 +#: guix/scripts/substitute.scm:693 #, scheme-format msgid "'~a' uses different store '~a'; ignoring it~%" msgstr "»~a« bruger et andet lager »~a«; ignorerer~%" -#: guix/scripts/substitute.scm:784 +#: guix/scripts/substitute.scm:853 #, scheme-format msgid "host name lookup error: ~a~%" msgstr "opslagsfejl for værtsnavn: ~a~%" -#: guix/scripts/substitute.scm:789 +#: guix/scripts/substitute.scm:858 #, scheme-format msgid "TLS error in procedure '~a': ~a~%" msgstr "TLS-fejl i proceduren »~a«: ~a~%" -#: guix/scripts/substitute.scm:800 +#: guix/scripts/substitute.scm:869 msgid "" "Usage: guix substitute [OPTION]...\n" "Internal tool to substitute a pre-built binary to a local build.\n" @@ -1299,7 +1445,7 @@ msgstr "" "Brug: guix substitute [TILVALG] ...\n" "Internt værktøj til at erstatte en prækompileret binær fil med en lokal kompilering.\n" -#: guix/scripts/substitute.scm:802 +#: guix/scripts/substitute.scm:871 msgid "" "\n" " --query report on the availability of substitutes for the\n" @@ -1309,7 +1455,7 @@ msgstr "" " --query rapport om tilgængeligheden for substitutter for\n" " lagerfilnavnene sendt til standardind" -#: guix/scripts/substitute.scm:805 +#: guix/scripts/substitute.scm:874 msgid "" "\n" " --substitute STORE-FILE DESTINATION\n" @@ -1321,24 +1467,26 @@ msgstr "" " hent LAGER-FIL og lagr den som en Nar i filen\n" " DESTINATION" -#. TRANSLATORS: The second part of this message looks like -#. "(4.1MiB installed)"; it shows the size of the package once -#. installed. -#: guix/scripts/substitute.scm:878 +#: guix/scripts/substitute.scm:939 #, scheme-format -msgid "Downloading ~a~:[~*~; (~a installed)~]...~%" -msgstr "Henter ~a~:[~*~; (~a installeret)~]...~%" +msgid "no valid substitute for '~a'~%" +msgstr "ingen gyldig substitut for »~a«~%" -#: guix/scripts/substitute.scm:935 +#: guix/scripts/substitute.scm:946 +#, scheme-format +msgid "Downloading ~a...~%" +msgstr "Henter ~a...~%" + +#: guix/scripts/substitute.scm:1002 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" msgstr "ACL for arkivimporter ser ikke ud til at være initialiseret, substitutter kan være utilgængelige\n" -#: guix/scripts/substitute.scm:985 +#: guix/scripts/substitute.scm:1056 #, scheme-format msgid "~a: invalid URI~%" msgstr "~a: ugyldig URI~%" -#: guix/scripts/substitute.scm:1043 +#: guix/scripts/substitute.scm:1116 #, scheme-format msgid "~a: unrecognized options~%" msgstr "~a: ikke genkendte tilvalg~%" @@ -1377,141 +1525,172 @@ msgstr "" msgid "wrong arguments" msgstr "forkerte argumenter" -#: guix/scripts/system.scm:133 +#: guix/scripts/system.scm:141 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "kunne ikke registrere »~a« under »~a«~%" -#: guix/scripts/system.scm:166 +#: guix/scripts/system.scm:152 #, scheme-format -msgid "failed to install GRUB on device '~a'~%" -msgstr "kunne ikke installere GRUB på enhed »~a«~%" +msgid "copying to '~a'..." +msgstr "kopierer til »~a«..." -#: guix/scripts/system.scm:184 +#: guix/scripts/system.scm:187 +#, scheme-format +msgid "failed to install bootloader ~a~%" +msgstr "kunne ikke installere opstartsindlæseren ~a~%" + +#: guix/scripts/system.scm:207 #, scheme-format msgid "initializing the current root file system~%" msgstr "initialiserer det nuværende root-filsystem~%" -#: guix/scripts/system.scm:198 +#: guix/scripts/system.scm:221 #, scheme-format msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" msgstr "kører ikke som »root«, så ejerskabet af »~a« kan være forkert!~%" -#: guix/scripts/system.scm:239 +#: guix/scripts/system.scm:266 #, scheme-format msgid "while talking to shepherd: ~a~%" msgstr "under kommunikation med shepherd: ~a~%" -#: guix/scripts/system.scm:246 +#: guix/scripts/system.scm:273 #, scheme-format msgid "service '~a' could not be found~%" msgstr "tjensten »~a« blev ikke fundet~%" -#: guix/scripts/system.scm:249 +#: guix/scripts/system.scm:276 #, scheme-format msgid "service '~a' does not have an action '~a'~%" msgstr "tjenesten »~a« har ikke en handling »~a«~%" -#: guix/scripts/system.scm:253 +#: guix/scripts/system.scm:280 #, scheme-format msgid "exception caught while executing '~a' on service '~a':~%" msgstr "undtagelse fanget under kørsel af »~a« på tjenesten »~a«:~%" -#: guix/scripts/system.scm:261 +#: guix/scripts/system.scm:288 #, scheme-format msgid "something went wrong: ~s~%" msgstr "noget gik galt: ~s~%" -#: guix/scripts/system.scm:264 +#: guix/scripts/system.scm:291 #, scheme-format msgid "shepherd error~%" msgstr "shepherd-fejl~%" -#: guix/scripts/system.scm:281 +#: guix/scripts/system.scm:308 #, scheme-format msgid "failed to obtain list of shepherd services~%" msgstr "kunne ikke indhente liste over shepherd-tjenester~%" -#: guix/scripts/system.scm:301 +#: guix/scripts/system.scm:328 #, scheme-format msgid "unloading service '~a'...~%" msgstr "afslutter tjeneste »~a« ...~%" -#: guix/scripts/system.scm:309 +#: guix/scripts/system.scm:336 #, scheme-format msgid "loading new services:~{ ~a~}...~%" msgstr "indlæser nye tjenester:~{ ~a~}...~%" -#: guix/scripts/system.scm:333 +#: guix/scripts/system.scm:362 #, scheme-format msgid "activating system...~%" msgstr "aktiverer system ...~%" -#: guix/scripts/system.scm:408 +#: guix/scripts/system.scm:438 #, scheme-format msgid "cannot switch to system generation '~a'~%" msgstr "kan ikke skifte til systemoprettelse »~a«~%" -#: guix/scripts/system.scm:441 -#, scheme-format -msgid "failed to re-install GRUB configuration file: '~a'~%" -msgstr "kunne ikke geninstallere GRUB-konfigurationsfilen: »~a«~%" - -#: guix/scripts/system.scm:471 +#: guix/scripts/system.scm:509 msgid "the DAG of services" msgstr "DAGen for tjenester" -#: guix/scripts/system.scm:484 +#: guix/scripts/system.scm:522 msgid "the dependency graph of shepherd services" msgstr "afhængighedsgrafen for shepherd-tjenester" -#: guix/scripts/system.scm:507 +#: guix/scripts/system.scm:546 #, scheme-format msgid " file name: ~a~%" msgstr " filnavn: ~a~%" -#: guix/scripts/system.scm:508 +#: guix/scripts/system.scm:547 #, scheme-format msgid " canonical file name: ~a~%" msgstr " kanonisk filnavn: ~a~%" #. TRANSLATORS: Please preserve the two-space indentation. -#: guix/scripts/system.scm:510 +#: guix/scripts/system.scm:549 #, scheme-format msgid " label: ~a~%" msgstr " etikelt: ~a~%" -#: guix/scripts/system.scm:511 +#: guix/scripts/system.scm:550 +#, scheme-format +msgid " bootloader: ~a~%" +msgstr " opstartsindlæser: ~a~%" + +#: guix/scripts/system.scm:551 #, scheme-format msgid " root device: ~a~%" msgstr " root-enhed: ~a~%" -#: guix/scripts/system.scm:512 +#: guix/scripts/system.scm:555 #, scheme-format msgid " kernel: ~a~%" msgstr " kerne: ~a~%" -#: guix/scripts/system.scm:569 +#: guix/scripts/system.scm:626 +#, scheme-format +msgid "~a: error: device '~a' not found: ~a~%" +msgstr "~a: fejl: enheden »~a« blev ikke fundet: ~a~%" + +#: guix/scripts/system.scm:630 +#, scheme-format +msgid "" +"If '~a' is a file system\n" +"label, you need to add @code{(title 'label)} to your @code{file-system}\n" +"definition." +msgstr "" +"Hvis »~a« er et filsystem\n" +"etiket, du skal tilføje @code{(title 'label)} til din @code{file-system}-\n" +"definition." + +#: guix/scripts/system.scm:637 +#, scheme-format +msgid "~a: error: file system with label '~a' not found~%" +msgstr "~a: fejl: filsystem med etiketten »~a« blev ikke fundet~%" + +#: guix/scripts/system.scm:643 +#, scheme-format +msgid "~a: error: file system with UUID '~a' not found~%" +msgstr "~a: fejl: filsystem med UUID »~a« blev ikke fundet~%" + +#: guix/scripts/system.scm:741 #, scheme-format msgid "~a not found: 'guix pull' was never run~%" msgstr "~a blev ikke fundet: »guix pull« blev aldrig kørt~%" -#: guix/scripts/system.scm:570 +#: guix/scripts/system.scm:742 #, scheme-format msgid "Consider running 'guix pull' before 'reconfigure'.~%" msgstr "Overvej at køre »guix pull« før »reconfigure«.~%" -#: guix/scripts/system.scm:571 +#: guix/scripts/system.scm:743 #, scheme-format msgid "Failing to do that may downgrade your system!~%" msgstr "Hvis dette ikke gøres, kan dit system blive nedgraderet!~%" -#: guix/scripts/system.scm:646 +#: guix/scripts/system.scm:860 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "initialiserer operativsystem under »~a«...~%" -#: guix/scripts/system.scm:690 +#: guix/scripts/system.scm:905 msgid "" "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n" "Build the operating system declared in FILE according to ACTION.\n" @@ -1521,59 +1700,67 @@ msgstr "" "Kompiler operativsystemet erklæret i FIL jævnfør HANDLING.\n" "Nogle HANDLINGER understøtter yderligere ARGUMENTER.\n" -#: guix/scripts/system.scm:694 guix/scripts/container.scm:28 +#: guix/scripts/system.scm:909 guix/scripts/container.scm:28 msgid "The valid values for ACTION are:\n" msgstr "De gyldige værdier for HANDLING er:\n" -#: guix/scripts/system.scm:696 +#: guix/scripts/system.scm:911 +msgid " search search for existing service types\n" +msgstr " søg søg efter eksisterende tjenestetyper\n" + +#: guix/scripts/system.scm:913 msgid " reconfigure switch to a new operating system configuration\n" msgstr " reconfigure skift til en ny operativsystemkonfiguration\n" -#: guix/scripts/system.scm:698 +#: guix/scripts/system.scm:915 msgid " roll-back switch to the previous operating system configuration\n" msgstr " roll-back skift til den forrige operativsystemkonfiguration\n" -#: guix/scripts/system.scm:700 +#: guix/scripts/system.scm:917 msgid " switch-generation switch to an existing operating system configuration\n" msgstr " switch-generation skift til en eksisterende operativsystemkonfiguration\n" -#: guix/scripts/system.scm:702 +#: guix/scripts/system.scm:919 msgid " list-generations list the system generations\n" msgstr " list-generations viser systemoprettelserne\n" -#: guix/scripts/system.scm:704 +#: guix/scripts/system.scm:921 msgid " build build the operating system without installing anything\n" msgstr " build kompiler operativsystemet uden at installere noget\n" -#: guix/scripts/system.scm:706 +#: guix/scripts/system.scm:923 msgid " container build a container that shares the host's store\n" msgstr " container kompiler en container som deler værtens lager\n" -#: guix/scripts/system.scm:708 +#: guix/scripts/system.scm:925 msgid " vm build a virtual machine image that shares the host's store\n" msgstr " vm kompiler et virtuelt maskinaftryk som deler værtens lager\n" -#: guix/scripts/system.scm:710 +#: guix/scripts/system.scm:927 msgid " vm-image build a freestanding virtual machine image\n" msgstr " vm-image kompiler et fritstående virtuelt maskinaftryk\n" -#: guix/scripts/system.scm:712 +#: guix/scripts/system.scm:929 msgid " disk-image build a disk image, suitable for a USB stick\n" msgstr " disk-image kompiler et diskaftryk, som egner sig til et USB-drev\n" -#: guix/scripts/system.scm:714 +#: guix/scripts/system.scm:931 +msgid " docker-image build a Docker image\n" +msgstr " docker-image kompiler et Dockeraftryk\n" + +#: guix/scripts/system.scm:933 msgid " init initialize a root file system to run GNU\n" msgstr " init initialiser et rootfilsystem til at køre GNU.\n" -#: guix/scripts/system.scm:716 +#: guix/scripts/system.scm:935 msgid " extension-graph emit the service extension graph in Dot format\n" msgstr " extension-graph opret tjenesteudvidelsesgrafen i Dot-format\n" -#: guix/scripts/system.scm:718 +#: guix/scripts/system.scm:937 msgid " shepherd-graph emit the graph of shepherd services in Dot format\n" msgstr " shepherd-graph opret grafen for shepherd-tjenester i Dot-format\n" -#: guix/scripts/system.scm:722 +#: guix/scripts/system.scm:941 msgid "" "\n" " -d, --derivation return the derivation of the given system" @@ -1581,7 +1768,17 @@ msgstr "" "\n" " -d, --derivation returner de derivate stier for det givne system" -#: guix/scripts/system.scm:724 +#: guix/scripts/system.scm:943 +msgid "" +"\n" +" -e, --expression=EXPR consider the operating-system EXPR evaluates to\n" +" instead of reading FILE, when applicable" +msgstr "" +"\n" +" -e, --expression=UDTRYK overvej hvad operativsystemets UDTRYK evaluerer\n" +" til i stedet for at læse FIL, når anvendelig" + +#: guix/scripts/system.scm:946 msgid "" "\n" " --on-error=STRATEGY\n" @@ -1592,7 +1789,19 @@ msgstr "" " brug STRATEGI når den opstår en fejl under læsning\n" " af FIL" -#: guix/scripts/system.scm:727 +#: guix/scripts/system.scm:949 +msgid "" +"\n" +" --file-system-type=TYPE\n" +" for 'disk-image', produce a root file system of TYPE\n" +" (one of 'ext4', 'iso9660')" +msgstr "" +"\n" +" --file-system-type=TYPE\n" +" for »disk-image«, lav et rodfilsystem med TYPE (typen)\n" +" (en af »ext4«, »iso9660«)" + +#: guix/scripts/system.scm:953 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -1600,7 +1809,7 @@ msgstr "" "\n" " --image-size=STR for »vm-image«, lav et aftryk af STR" -#: guix/scripts/system.scm:729 +#: guix/scripts/system.scm:955 msgid "" "\n" " --no-bootloader for 'init', do not install a bootloader" @@ -1608,7 +1817,7 @@ msgstr "" "\n" " --no-bootloader for »init«, installer ikke en opstartsindlæser" -#: guix/scripts/system.scm:731 +#: guix/scripts/system.scm:957 msgid "" "\n" " --share=SPEC for 'vm', share host file system according to SPEC" @@ -1616,7 +1825,7 @@ msgstr "" "\n" " --share=SPEC for »vm«, del værtsfilsystem jævnfør SPEC" -#: guix/scripts/system.scm:733 +#: guix/scripts/system.scm:959 msgid "" "\n" " -r, --root=FILE for 'vm', 'vm-image', 'disk-image', 'container',\n" @@ -1629,7 +1838,7 @@ msgstr "" " resultatet, og registrer den som en\n" " affaldsindsamlerrod" -#: guix/scripts/system.scm:737 +#: guix/scripts/system.scm:963 msgid "" "\n" " --expose=SPEC for 'vm', expose host file system according to SPEC" @@ -1637,7 +1846,7 @@ msgstr "" "\n" " --expose=SPEC for »vm«, fremvis værtsfilsystem jævnfør SPEC" -#: guix/scripts/system.scm:739 +#: guix/scripts/system.scm:965 msgid "" "\n" " --full-boot for 'vm', make a full boot sequence" @@ -1645,45 +1854,62 @@ msgstr "" "\n" " --full-boot for »vm«, lav en fuld opstartssekvens" -#: guix/scripts/system.scm:827 -#, scheme-format -msgid "no configuration file specified~%" -msgstr "ingen konfigurationsfil angivet~%" +#: guix/scripts/system.scm:967 +msgid "" +"\n" +" --skip-checks skip file system and initrd module safety checks" +msgstr "" +"\n" +" --skip-checks udelad sikkerhedskontrol af filsystem og initrd-modul" -#: guix/scripts/system.scm:912 +#: guix/scripts/system.scm:1066 +#, scheme-format +msgid "both file and expression cannot be specified~%" +msgstr "både fil og udtryk kan ikke angives~%" + +#: guix/scripts/system.scm:1073 +#, scheme-format +msgid "no configuration specified~%" +msgstr "ingen konfiguration angivet~%" + +#: guix/scripts/system.scm:1173 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: ukendt handling~%" -#: guix/scripts/system.scm:927 +#: guix/scripts/system.scm:1189 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "forkert antal argumenter for handling »~a«~%" -#: guix/scripts/system.scm:932 +#: guix/scripts/system.scm:1194 #, scheme-format msgid "guix system: missing command name~%" msgstr "guix system: mangler kommandonavn~%" -#: guix/scripts/system.scm:934 +#: guix/scripts/system.scm:1196 #, scheme-format msgid "Try 'guix system --help' for more information.~%" msgstr "Prøv »guix system --help« for yderligere information.~%" -#: guix/scripts/lint.scm:135 +#: guix/scripts/system/search.scm:64 guix/ui.scm:1112 guix/ui.scm:1126 +msgid "unknown" +msgstr "ukendt" + +#: guix/scripts/lint.scm:139 #, scheme-format msgid "Available checkers:~%" msgstr "Tilgængelige kontrolprogrammer:~%" -#: guix/scripts/lint.scm:159 +#: guix/scripts/lint.scm:163 msgid "description should not be empty" msgstr "beskrivelse skal være udfyldt" -#: guix/scripts/lint.scm:169 +#: guix/scripts/lint.scm:173 msgid "Texinfo markup in description is invalid" msgstr "Texinfo-opmærkning i beskrivelse er ugyldig" -#: guix/scripts/lint.scm:179 +#: guix/scripts/lint.scm:183 #, scheme-format msgid "" "description should not contain ~\n" @@ -1694,16 +1920,16 @@ msgstr "" #. TRANSLATORS: '@code' is Texinfo markup and must be kept #. as is. -#: guix/scripts/lint.scm:192 +#: guix/scripts/lint.scm:196 msgid "use @code or similar ornament instead of quotes" msgstr "brug @code eller lignende ornament i stedet for citationstegn" -#: guix/scripts/lint.scm:199 +#: guix/scripts/lint.scm:203 msgid "description should start with an upper-case letter or digit" msgstr "beskrivelse skal starte med et stort bogstav eller et tal" # arg, hvad foregår der her -#: guix/scripts/lint.scm:215 +#: guix/scripts/lint.scm:219 #, scheme-format msgid "" "sentences in description should be followed ~\n" @@ -1712,231 +1938,263 @@ msgstr "" "sætninger i beskrivelsen skal efterfølges ~\n" "af to mellemrum; mulig infraction~p ved ~{~a~^, ~}" -#: guix/scripts/lint.scm:233 +#: guix/scripts/lint.scm:237 #, scheme-format msgid "invalid description: ~s" msgstr "ugyldig beskrivelse: ~s" # native kan evt. være platformsspecifik # Det er dog svært at gætte med sikkerhed hvad det betyder her -#: guix/scripts/lint.scm:277 +#: guix/scripts/lint.scm:282 #, scheme-format msgid "'~a' should probably be a native input" msgstr "»~a« skal sandsynligvis være standarddata" -#: guix/scripts/lint.scm:293 +#: guix/scripts/lint.scm:298 #, scheme-format msgid "'~a' should probably not be an input at all" msgstr "»~a« skal sandsynligvis ikke være inddata" -#: guix/scripts/lint.scm:310 +#: guix/scripts/lint.scm:315 msgid "synopsis should not be empty" msgstr "synopsis skal være udfyldt" -#: guix/scripts/lint.scm:318 +#: guix/scripts/lint.scm:323 msgid "no period allowed at the end of the synopsis" msgstr "ingen periode er tilladt i slutningen af synopsen" -#: guix/scripts/lint.scm:330 +#: guix/scripts/lint.scm:335 msgid "no article allowed at the beginning of the synopsis" msgstr "ingen artikel er tilladt i begyndelsen af synopsen" -#: guix/scripts/lint.scm:337 +#: guix/scripts/lint.scm:342 msgid "synopsis should be less than 80 characters long" msgstr "synopsis skal være mindre end 80 tegn lang" -#: guix/scripts/lint.scm:343 +#: guix/scripts/lint.scm:348 msgid "synopsis should start with an upper-case letter or digit" msgstr "synopsis skal starte med et stort bogstav eller et tal" -#: guix/scripts/lint.scm:350 +#: guix/scripts/lint.scm:355 msgid "synopsis should not start with the package name" msgstr "synopsis skal ikke starte med pakkenavnet" -#: guix/scripts/lint.scm:360 +#: guix/scripts/lint.scm:365 msgid "Texinfo markup in synopsis is invalid" msgstr "Texinfo-opmærkning i synopsis er ugyldig" -#: guix/scripts/lint.scm:379 +#: guix/scripts/lint.scm:384 #, scheme-format msgid "invalid synopsis: ~s" msgstr "ugyldig synopsis: ~s" -#: guix/scripts/lint.scm:479 +#: guix/scripts/lint.scm:503 #, scheme-format msgid "URI ~a returned suspiciously small file (~a bytes)" msgstr "URI'en ~a returnerede mistænkelig lille fil (~a byte)" -#: guix/scripts/lint.scm:488 guix/scripts/lint.scm:500 +#: guix/scripts/lint.scm:513 +#, scheme-format +msgid "permanent redirect from ~a to ~a" +msgstr "permanent omdirigering fra ~a til ~a" + +#: guix/scripts/lint.scm:520 +#, scheme-format +msgid "invalid permanent redirect from ~a" +msgstr "ugyldig permanent omdirigering fra ~a" + +#: guix/scripts/lint.scm:527 guix/scripts/lint.scm:539 #, scheme-format msgid "URI ~a not reachable: ~a (~s)" msgstr "URI ~a kan ikke nås: ~a (~s)" -#: guix/scripts/lint.scm:507 +#: guix/scripts/lint.scm:546 #, scheme-format msgid "URI ~a domain not found: ~a" msgstr "URI ~a domæne blev ikke fundet: ~a" -#: guix/scripts/lint.scm:515 +#: guix/scripts/lint.scm:554 #, scheme-format msgid "URI ~a unreachable: ~a" msgstr "URI ~a kan ikke nås: ~a" -#: guix/scripts/lint.scm:524 guix/scripts/lint.scm:780 +#: guix/scripts/lint.scm:563 #, scheme-format msgid "TLS certificate error: ~a" msgstr "TLS-certifikatfejl: ~a" -#: guix/scripts/lint.scm:545 +#: guix/scripts/lint.scm:584 msgid "invalid value for home page" msgstr "ugyldig værdi for hjemmeside" -#: guix/scripts/lint.scm:548 +#: guix/scripts/lint.scm:587 #, scheme-format msgid "invalid home page URL: ~s" msgstr "ugyldig hjemmesideadresse: ~s" -#: guix/scripts/lint.scm:568 +#: guix/scripts/lint.scm:613 msgid "file names of patches should start with the package name" msgstr "filnavn for rettelser skal starte med pakkenavnet" -#: guix/scripts/lint.scm:606 +#: guix/scripts/lint.scm:629 +#, scheme-format +msgid "~a: file name is too long" +msgstr "~a: filnavnet er for langt" + +#: guix/scripts/lint.scm:670 #, scheme-format msgid "~a: ~a: proposed synopsis: ~s~%" msgstr "~a: ~a: foreslået synopsis: ~s~%" -#: guix/scripts/lint.scm:619 +#: guix/scripts/lint.scm:683 #, scheme-format msgid "~a: ~a: proposed description:~% \"~a\"~%" msgstr "~a: ~a: foreslået beskrivelse:~% »~a«~%" -#: guix/scripts/lint.scm:661 +#: guix/scripts/lint.scm:725 msgid "all the source URIs are unreachable:" msgstr "alle kilde-URI'erne kan ikke nås:" -#: guix/scripts/lint.scm:684 +#: guix/scripts/lint.scm:747 msgid "the source file name should contain the package name" msgstr "kildefilnavnet skal indeholde pakkenavnet" -#: guix/scripts/lint.scm:700 +#: guix/scripts/lint.scm:763 #, scheme-format msgid "URL should be 'mirror://~a/~a'" msgstr "Adresse skal være »mirror://~a/~a«" -#: guix/scripts/lint.scm:718 guix/scripts/lint.scm:722 +#: guix/scripts/lint.scm:781 guix/scripts/lint.scm:785 #, scheme-format msgid "failed to create derivation: ~a" msgstr "kunne ikke oprette derivat: ~a" -#: guix/scripts/lint.scm:736 +#: guix/scripts/lint.scm:799 #, scheme-format msgid "failed to create derivation: ~s~%" msgstr "kunne ikke oprette derivat: ~s~%" -#: guix/scripts/lint.scm:746 +#: guix/scripts/lint.scm:809 msgid "invalid license field" msgstr "ugyldigt licensfelt" -#: guix/scripts/lint.scm:763 +#: guix/scripts/lint.scm:825 #, scheme-format -msgid "failed to retrieve CVE vulnerabilities from ~s: ~a (~s)~%" -msgstr "kunne ikke indhente CVE-sårbarheder fra ~s: ~a (~s)~%" +msgid "~a: HTTP GET error for ~a: ~a (~s)~%" +msgstr "~a: HTTP GET-fejl for ~a: ~a (~s)~%" -#: guix/scripts/lint.scm:768 guix/scripts/lint.scm:777 -#: guix/scripts/lint.scm:782 +#: guix/scripts/lint.scm:835 #, scheme-format -msgid "assuming no CVE vulnerabilities~%" -msgstr "antager ingen CVE-sårbarheder~%" +msgid "~a: host lookup failure: ~a~%" +msgstr "~a: værtsnavnet kunne ikke slås op: ~a~%" -#: guix/scripts/lint.scm:775 +#: guix/scripts/lint.scm:840 #, scheme-format -msgid "failed to lookup NIST host: ~a~%" -msgstr "kunne ikke slå NIST-vært op: ~a~%" +msgid "~a: TLS certificate error: ~a" +msgstr "~a: TLS-certifikatfejl: ~a" -#: guix/scripts/lint.scm:820 +#: guix/scripts/lint.scm:855 +msgid "while retrieving CVE vulnerabilities" +msgstr "under indhentelse af CVE-sårbarheder" + +#: guix/scripts/lint.scm:898 #, scheme-format msgid "probably vulnerable to ~a" msgstr "sandsynligvis sårbar for ~a" -#: guix/scripts/lint.scm:835 +#: guix/scripts/lint.scm:905 +#, scheme-format +msgid "while retrieving upstream info for '~a'" +msgstr "under indhentelse af opstrømsinformation for »~a«" + +#: guix/scripts/lint.scm:913 +#, scheme-format +msgid "can be upgraded to ~a" +msgstr "kan opgraderes til ~a" + +#: guix/scripts/lint.scm:928 #, scheme-format msgid "tabulation on line ~a, column ~a" msgstr "tabulering på linje ~a, kolonne ~a" -#: guix/scripts/lint.scm:844 +#: guix/scripts/lint.scm:937 #, scheme-format msgid "trailing white space on line ~a" msgstr "efterstillet mellemrum på linje ~a" -#: guix/scripts/lint.scm:854 +#: guix/scripts/lint.scm:947 #, scheme-format msgid "line ~a is way too long (~a characters)" msgstr "linjen ~a er alt for lang (~a tegn)" -#: guix/scripts/lint.scm:865 +#: guix/scripts/lint.scm:958 #, scheme-format msgid "line ~a: parentheses feel lonely, move to the previous or next line" msgstr "linjen ~a: parenteser er ensomme, flyt til den forrige eller næste linje" -#: guix/scripts/lint.scm:920 +#: guix/scripts/lint.scm:1028 msgid "Validate package descriptions" msgstr "Valider pakkebeskrivelser" -#: guix/scripts/lint.scm:924 +#: guix/scripts/lint.scm:1032 msgid "Validate synopsis & description of GNU packages" msgstr "Valider synopsis og beskrivelse for GNU-pakker" -#: guix/scripts/lint.scm:928 +#: guix/scripts/lint.scm:1036 msgid "Identify inputs that should be native inputs" msgstr "Identificer inddata som skal være standarddata" -#: guix/scripts/lint.scm:932 +#: guix/scripts/lint.scm:1040 msgid "Identify inputs that should be inputs at all" msgstr "Identificer inddata som skal være inddata" -#: guix/scripts/lint.scm:936 +#: guix/scripts/lint.scm:1044 msgid "Validate file names and availability of patches" msgstr "Valider filnavne og tilgængelighed for rettelser" -#: guix/scripts/lint.scm:940 +#: guix/scripts/lint.scm:1048 msgid "Validate home-page URLs" msgstr "Valider hjemmesiders adresser" #. TRANSLATORS: is the name of a data type and must not be #. translated. -#: guix/scripts/lint.scm:946 +#: guix/scripts/lint.scm:1054 msgid "Make sure the 'license' field is a or a list thereof" msgstr "Sikr at feltet »license« er en eller en liste deraf" -#: guix/scripts/lint.scm:951 +#: guix/scripts/lint.scm:1059 msgid "Validate source URLs" msgstr "Valider kildeadresser" -#: guix/scripts/lint.scm:955 +#: guix/scripts/lint.scm:1063 msgid "Suggest 'mirror://' URLs" msgstr "Foreslå »mirror://«-adresser" -#: guix/scripts/lint.scm:959 +#: guix/scripts/lint.scm:1067 msgid "Validate file names of sources" msgstr "Valider filnavne for kilder" -#: guix/scripts/lint.scm:963 +#: guix/scripts/lint.scm:1071 msgid "Report failure to compile a package to a derivation" msgstr "Rapporter mislykket kompilering af en pakke til et derivat" -#: guix/scripts/lint.scm:967 +#: guix/scripts/lint.scm:1075 msgid "Validate package synopses" msgstr "Valider pakkesynopser" -#: guix/scripts/lint.scm:971 +#: guix/scripts/lint.scm:1079 msgid "Check the Common Vulnerabilities and Exposures (CVE) database" msgstr "Kontroller databasen Common Vulnerabilities and Exposures (CVE)" -#: guix/scripts/lint.scm:976 +#: guix/scripts/lint.scm:1084 +msgid "Check the package for new upstream releases" +msgstr "Kontroller pakken for nye opstrømsudgivelser" + +#: guix/scripts/lint.scm:1088 msgid "Look for formatting issues in the source" msgstr "Kig efter formateringsproblemstillinger i kilden" -#: guix/scripts/lint.scm:1004 +#: guix/scripts/lint.scm:1116 msgid "" "Usage: guix lint [OPTION]... [PACKAGE]...\n" "Run a set of checkers on the specified package; if none is specified,\n" @@ -1946,7 +2204,7 @@ msgstr "" "Kør et sæt af kontroller på den specificerede pakke; hvis ingen er specificeret,\n" "så kør kontrollerne på alle pakker.\n" -#: guix/scripts/lint.scm:1007 +#: guix/scripts/lint.scm:1119 msgid "" "\n" " -c, --checkers=CHECKER1,CHECKER2...\n" @@ -1956,7 +2214,7 @@ msgstr "" " -c, --checkers=KONTROL1,KONTROL2...\n" " kør kun de specificerede kontroller" -#: guix/scripts/lint.scm:1012 +#: guix/scripts/lint.scm:1124 msgid "" "\n" " -l, --list-checkers display the list of available lint checkers" @@ -1964,12 +2222,12 @@ msgstr "" "\n" " -l, --list-checkers vis listen med tilgængelige lint-kontroller" -#: guix/scripts/lint.scm:1032 +#: guix/scripts/lint.scm:1144 #, scheme-format msgid "~a: invalid checker~%" msgstr "~a: ugyldig kontrol~%" -#: guix/scripts/publish.scm:67 +#: guix/scripts/publish.scm:68 #, scheme-format msgid "" "Usage: guix publish [OPTION]...\n" @@ -1978,7 +2236,7 @@ msgstr "" "Brug: guix publish [TILVALG] ...\n" "Udgiv ~a over HTTP.\n" -#: guix/scripts/publish.scm:69 +#: guix/scripts/publish.scm:70 msgid "" "\n" " -p, --port=PORT listen on PORT" @@ -1986,7 +2244,7 @@ msgstr "" "\n" " -p, --port=PORT lyt på PORT" -#: guix/scripts/publish.scm:71 +#: guix/scripts/publish.scm:72 msgid "" "\n" " --listen=HOST listen on the network interface for HOST" @@ -1994,7 +2252,7 @@ msgstr "" "\n" " --listen=VÆRT lyt på netværksgrænsefladen efter VÆRT" -#: guix/scripts/publish.scm:73 +#: guix/scripts/publish.scm:74 msgid "" "\n" " -u, --user=USER change privileges to USER as soon as possible" @@ -2002,7 +2260,7 @@ msgstr "" "\n" " -u, --user=BRUGER ændr privilegier for BRUGER så snart som muligt" -#: guix/scripts/publish.scm:75 +#: guix/scripts/publish.scm:76 msgid "" "\n" " -C, --compression[=LEVEL]\n" @@ -2012,7 +2270,7 @@ msgstr "" " -C, --compression[=NIVEAU]\n" " komprimer arkiver med NIVEAU" -#: guix/scripts/publish.scm:78 +#: guix/scripts/publish.scm:79 msgid "" "\n" " -c, --cache=DIRECTORY cache published items to DIRECTORY" @@ -2020,7 +2278,7 @@ msgstr "" "\n" " -c, --cache=MAPPE mellemlagr udgivne elementer til MAPPE" -#: guix/scripts/publish.scm:80 +#: guix/scripts/publish.scm:81 msgid "" "\n" " --workers=N use N workers to bake items" @@ -2028,7 +2286,7 @@ msgstr "" "\n" " --workers=N brug N arbejdere til at bage elementer" -#: guix/scripts/publish.scm:82 +#: guix/scripts/publish.scm:83 msgid "" "\n" " --ttl=TTL announce narinfos can be cached for TTL seconds" @@ -2036,7 +2294,7 @@ msgstr "" "\n" " --ttl=TTL announce narinfos kan mellemlagres i TTL sekunder" -#: guix/scripts/publish.scm:84 +#: guix/scripts/publish.scm:85 msgid "" "\n" " --nar-path=PATH use PATH as the prefix for nar URLs" @@ -2044,7 +2302,7 @@ msgstr "" "\n" " --nar-path=STI brug STI som præfiks for nar-adresser" -#: guix/scripts/publish.scm:86 +#: guix/scripts/publish.scm:87 msgid "" "\n" " --public-key=FILE use FILE as the public key for signatures" @@ -2052,7 +2310,7 @@ msgstr "" "\n" " --public-key=FIL brug FIL som offentlig nøgle for signaturer" -#: guix/scripts/publish.scm:88 +#: guix/scripts/publish.scm:89 msgid "" "\n" " --private-key=FILE use FILE as the private key for signatures" @@ -2060,7 +2318,7 @@ msgstr "" "\n" " --private-key=FIL brug FIL som privat nøgle for signaturer" -#: guix/scripts/publish.scm:90 +#: guix/scripts/publish.scm:91 msgid "" "\n" " -r, --repl[=PORT] spawn REPL server on PORT" @@ -2068,37 +2326,37 @@ msgstr "" "\n" " -r, --repl[=PORT] udsend REPL-server on PORT" -#: guix/scripts/publish.scm:106 +#: guix/scripts/publish.scm:107 #, scheme-format msgid "lookup of host '~a' failed: ~a~%" msgstr "opslag efter værten »~a« mislykkedes: ~a~%" -#: guix/scripts/publish.scm:151 +#: guix/scripts/publish.scm:152 #, scheme-format msgid "lookup of host '~a' returned nothing" msgstr "opslag efter værten »~a« returnerede intet" -#: guix/scripts/publish.scm:164 +#: guix/scripts/publish.scm:165 #, scheme-format msgid "zlib support is missing; compression disabled~%" msgstr "zlib-understøttelse mangler; komprimering deaktiveret~%" -#: guix/scripts/publish.scm:178 +#: guix/scripts/publish.scm:179 #, scheme-format msgid "~a: invalid duration~%" msgstr "~a: ugyldig varighed~%" -#: guix/scripts/publish.scm:799 +#: guix/scripts/publish.scm:869 #, scheme-format msgid "user '~a' not found: ~a~%" msgstr "brugeren »~a« blev ikke fundet: ~a~%" -#: guix/scripts/publish.scm:840 +#: guix/scripts/publish.scm:910 #, scheme-format msgid "server running as root; consider using the '--user' option!~%" msgstr "server kører som root; overvej at bruge tilvalget »--user«!~%" -#: guix/scripts/publish.scm:845 +#: guix/scripts/publish.scm:915 #, scheme-format msgid "publishing ~a on ~a, port ~d~%" msgstr "udgiver ~a på ~a, port ~d~%" @@ -2131,19 +2389,19 @@ msgstr "kunne ikke starte »~a«: ~a~%" msgid "no available substitute information for '~a'~%" msgstr "ingen tilgængelig substitutinformation for »~a«~%" -#: guix/scripts/size.scm:85 +#: guix/scripts/size.scm:99 msgid "store item" msgstr "lagerpost" -#: guix/scripts/size.scm:85 +#: guix/scripts/size.scm:99 msgid "total" msgstr "i alt" -#: guix/scripts/size.scm:85 +#: guix/scripts/size.scm:99 msgid "self" msgstr "selv" -#: guix/scripts/size.scm:97 +#: guix/scripts/size.scm:107 #, scheme-format msgid "total: ~,1f MiB~%" msgstr "i alt: ~,1f MiB~%" @@ -2151,11 +2409,11 @@ msgstr "i alt: ~,1f MiB~%" #. TRANSLATORS: This is the title of a graph, meaning that the graph #. represents a profile of the store (the "store" being the place where #. packages are stored.) -#: guix/scripts/size.scm:211 +#: guix/scripts/size.scm:221 msgid "store profile" msgstr "lagerprofil" -#: guix/scripts/size.scm:220 +#: guix/scripts/size.scm:230 msgid "" "Usage: guix size [OPTION]... PACKAGE\n" "Report the size of PACKAGE and its dependencies.\n" @@ -2163,7 +2421,7 @@ msgstr "" "Brug: guix size [TILVALG]... PAKKE\n" "Rapporter størrelsen for PAKKE og dens afhængigheder.\n" -#: guix/scripts/size.scm:225 +#: guix/scripts/size.scm:235 msgid "" "\n" " -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"" @@ -2171,7 +2429,16 @@ msgstr "" "\n" " -s, --system=SYSTEM overvej pakker for SYSTEM--f.eks., »i686-linux«" -#: guix/scripts/size.scm:227 +#. TRANSLATORS: "closure" and "self" must not be translated. +#: guix/scripts/size.scm:238 +msgid "" +"\n" +" --sort=KEY sort according to KEY--\"closure\" or \"self\"" +msgstr "" +"\n" +" --sort=KEY sorter jævnfør KEY--\"closure\" eller \"self\"" + +#: guix/scripts/size.scm:240 msgid "" "\n" " -m, --map-file=FILE write to FILE a graphical map of disk usage" @@ -2179,89 +2446,98 @@ msgstr "" "\n" " -m, --map-file=FIL skriv til FIL et grafisk kort over diskforbrug" -#: guix/scripts/size.scm:281 +#: guix/scripts/size.scm:271 +#, scheme-format +msgid "~a: invalid sorting key~%" +msgstr "~a: ugyldig sorteringsnøgle~%" + +#: guix/scripts/size.scm:306 msgid "missing store item argument\n" msgstr "manglende lagerpostargument\n" -#: guix/scripts/graph.scm:84 +#: guix/scripts/graph.scm:87 #, scheme-format msgid "~a: invalid argument (package name expected)" msgstr "~a: ugyldigt argument (forventede et pakkenavn)" -#: guix/scripts/graph.scm:95 +#: guix/scripts/graph.scm:98 msgid "the DAG of packages, excluding implicit inputs" msgstr "DAGen for pakker, eksklusive implicitte inddata" -#: guix/scripts/graph.scm:121 +#: guix/scripts/graph.scm:124 msgid "the reverse DAG of packages" msgstr "den omvendte DAG for pakker" -#: guix/scripts/graph.scm:171 +#: guix/scripts/graph.scm:174 msgid "the DAG of packages, including implicit inputs" msgstr "DAGen for pakker, inklusive implicitte inddata" -#: guix/scripts/graph.scm:181 +#: guix/scripts/graph.scm:184 msgid "the DAG of packages and origins, including implicit inputs" msgstr "DAGen for pakker og oprindelser, inklusive implicitte inddata" -#: guix/scripts/graph.scm:211 +#: guix/scripts/graph.scm:214 msgid "same as 'bag', but without the bootstrap nodes" msgstr "samme som »bag«m uden bootstrap-knuder" -#: guix/scripts/graph.scm:257 +#: guix/scripts/graph.scm:256 msgid "the DAG of derivations" msgstr "DAGen for derivater" -#: guix/scripts/graph.scm:269 +#: guix/scripts/graph.scm:268 msgid "unsupported argument for derivation graph" msgstr "argument for derivatgraf er ikke understøttet" -#: guix/scripts/graph.scm:295 +#: guix/scripts/graph.scm:294 msgid "unsupported argument for this type of graph" msgstr "ikke understøttet argument for denne graftype" -#: guix/scripts/graph.scm:308 +#: guix/scripts/graph.scm:307 #, scheme-format msgid "references for '~a' are not known~%" msgstr "referencer for »~a« er ikke kendt~%" -#: guix/scripts/graph.scm:315 +#: guix/scripts/graph.scm:314 msgid "the DAG of run-time dependencies (store references)" msgstr "DAGen for kørselstidsafhængigheder (lagerreferencer)" -#: guix/scripts/graph.scm:331 +#: guix/scripts/graph.scm:330 msgid "the DAG of referrers in the store" msgstr "DAGen for referencer i lageret" -#: guix/scripts/graph.scm:358 +#: guix/scripts/graph.scm:360 +msgid "the graph of package modules" +msgstr "pakkemodulernes graf" + +#: guix/scripts/graph.scm:388 #, scheme-format msgid "~a: unknown node type~%" msgstr "~a: ukendt knudetype~%" -#: guix/scripts/graph.scm:365 +#: guix/scripts/graph.scm:395 #, scheme-format msgid "~a: unknown backend~%" msgstr "~a: ukendt motor~%" -#: guix/scripts/graph.scm:369 +#: guix/scripts/graph.scm:399 msgid "The available node types are:\n" msgstr "De gyldige knudetyper er:\n" -#: guix/scripts/graph.scm:379 +#: guix/scripts/graph.scm:409 msgid "The available backend types are:\n" msgstr "De gyldige motortyper er:\n" #. TRANSLATORS: Here 'dot' is the name of a program; it must not be #. translated. -#: guix/scripts/graph.scm:423 +#: guix/scripts/graph.scm:453 msgid "" "Usage: guix graph PACKAGE...\n" -"Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n" +"Emit a representation of the dependency graph of PACKAGE...\n" msgstr "" "Brug: guix graph PAKKE...\n" -"Opret en Graphviz-repræsentation (dot) af afhængighederne for PAKKE...\n" +"Opret en repræsentation af afhængighedsgrafen for PAKKE...\n" -#: guix/scripts/graph.scm:425 +#: guix/scripts/graph.scm:455 msgid "" "\n" " -b, --backend=TYPE produce a graph with the given backend TYPE" @@ -2269,7 +2545,7 @@ msgstr "" "\n" " -b, --backend=TYPE fremstil en graf med den angivne motor-TYPE" -#: guix/scripts/graph.scm:427 +#: guix/scripts/graph.scm:457 msgid "" "\n" " --list-backends list the available graph backends" @@ -2277,7 +2553,7 @@ msgstr "" "\n" " --list-backends vis de tilgængelige grafmotorer" -#: guix/scripts/graph.scm:429 +#: guix/scripts/graph.scm:459 msgid "" "\n" " -t, --type=TYPE represent nodes of the given TYPE" @@ -2285,7 +2561,7 @@ msgstr "" "\n" " -t, --type=TYPE repræsenter knuder for den givne TYPE" -#: guix/scripts/graph.scm:431 +#: guix/scripts/graph.scm:461 msgid "" "\n" " --list-types list the available graph types" @@ -2293,7 +2569,7 @@ msgstr "" "\n" " --list-types vis de tilgængelige graftyper" -#: guix/scripts/graph.scm:433 guix/scripts/pack.scm:328 +#: guix/scripts/graph.scm:463 guix/scripts/pack.scm:355 msgid "" "\n" " -e, --expression=EXPR consider the package EXPR evaluates to" @@ -2337,6 +2613,22 @@ msgid "~a contents match:~%" msgstr "~a indhold mathcer:~%" #: guix/scripts/challenge.scm:219 +msgid "~h store items were analyzed:~%" +msgstr "~h lagerelementer blev analyseret:~%" + +#: guix/scripts/challenge.scm:220 +msgid " - ~h (~,1f%) were identical~%" +msgstr " - ~h (~,1f%) var identiske~%" + +#: guix/scripts/challenge.scm:222 +msgid " - ~h (~,1f%) differed~%" +msgstr " - ~h (~,1f%) var forskellige~%" + +#: guix/scripts/challenge.scm:224 +msgid " - ~h (~,1f%) were inconclusive~%" +msgstr " - ~h (~,1f%) var ufyldestgørende~%" + +#: guix/scripts/challenge.scm:233 msgid "" "Usage: guix challenge [PACKAGE...]\n" "Challenge the substitutes for PACKAGE... provided by one or more servers.\n" @@ -2344,7 +2636,7 @@ msgstr "" "Brug: guix challenge [PAKKE...]\n" "Ændr substitutterne for PAKKE... tilbudt af en eller flere servere.\n" -#: guix/scripts/challenge.scm:221 +#: guix/scripts/challenge.scm:235 msgid "" "\n" " --substitute-urls=URLS\n" @@ -2354,7 +2646,7 @@ msgstr "" " --substitute-urls=ADRESSER\n" " sammenlign kompileringsresultater med dem på ADRESSER" -#: guix/scripts/challenge.scm:224 +#: guix/scripts/challenge.scm:238 msgid "" "\n" " -v, --verbose show details about successful comparisons" @@ -2372,7 +2664,7 @@ msgstr "~a: ugyldigt TCP-portnummer~%" msgid "~a: invalid SSH specification~%" msgstr "~a: ugyldig SSH-specifikation~%" -#: guix/scripts/copy.scm:112 +#: guix/scripts/copy.scm:113 msgid "" "Usage: guix copy [OPTION]... ITEMS...\n" "Copy ITEMS to or from the specified host over SSH.\n" @@ -2380,7 +2672,7 @@ msgstr "" "Brug: guix copy [TILVALG]... ELEMENTER...\n" "Kopier ELEMENTER til eller fra den specificerede vært over SSH.\n" -#: guix/scripts/copy.scm:114 +#: guix/scripts/copy.scm:115 msgid "" "\n" " --to=HOST send ITEMS to HOST" @@ -2388,7 +2680,7 @@ msgstr "" "\n" " --to=VÆRT send ELEMENTER til VÆRT" -#: guix/scripts/copy.scm:116 +#: guix/scripts/copy.scm:117 msgid "" "\n" " --from=HOST receive ITEMS from HOST" @@ -2396,22 +2688,22 @@ msgstr "" "\n" " --from=VÆRT receive ELEMENTER from HOST" -#: guix/scripts/copy.scm:168 +#: guix/scripts/copy.scm:169 #, scheme-format msgid "use '--to' or '--from'~%" msgstr "brug »--to« eller »--from«~%" -#: guix/scripts/pack.scm:74 +#: guix/scripts/pack.scm:85 #, scheme-format msgid "~a: compressor not found~%" msgstr "~a: kompressor blev ikke fundet~%" -#: guix/scripts/pack.scm:310 +#: guix/scripts/pack.scm:334 #, scheme-format msgid "~a: invalid symlink specification~%" msgstr "~a: ugyldig symbolsk henvisningsspecifikation~%" -#: guix/scripts/pack.scm:320 +#: guix/scripts/pack.scm:347 msgid "" "Usage: guix pack [OPTION]... PACKAGE...\n" "Create a bundle of PACKAGE.\n" @@ -2419,7 +2711,7 @@ msgstr "" "Brug: guix pack [TILVALG]... PAKKE...\n" "Opret en samling af PAKKE.\n" -#: guix/scripts/pack.scm:326 +#: guix/scripts/pack.scm:353 msgid "" "\n" " -f, --format=FORMAT build a pack in the given FORMAT" @@ -2427,7 +2719,7 @@ msgstr "" "\n" " -f, --format=FORMAT kompiler en pakke i det givne FORMAT" -#: guix/scripts/pack.scm:334 +#: guix/scripts/pack.scm:361 msgid "" "\n" " -C, --compression=TOOL compress using TOOL--e.g., \"lzip\"" @@ -2435,7 +2727,7 @@ msgstr "" "\n" " -C, --compression=VÆRKTØJ komprimer via VÆRKTØJ--f.eks., »lzip«" -#: guix/scripts/pack.scm:336 +#: guix/scripts/pack.scm:363 msgid "" "\n" " -S, --symlink=SPEC create symlinks to the profile according to SPEC" @@ -2443,7 +2735,15 @@ msgstr "" "\n" " -S, --symlink=SPEC opret symbolske henvisninger til profilen jævnfør SPEC" -#: guix/scripts/pack.scm:338 +#: guix/scripts/pack.scm:365 +msgid "" +"\n" +" -m, --manifest=FILE create a pack with the manifest from FILE" +msgstr "" +"\n" +" -m, --manifest=FIL opret en pakke med manifestet fra FIL" + +#: guix/scripts/pack.scm:367 msgid "" "\n" " --localstatedir include /var/guix in the resulting pack" @@ -2451,28 +2751,157 @@ msgstr "" "\n" " --localstatedir inkluder /var/guix i resultatpakken" -#: guix/scripts/pack.scm:382 +#: guix/scripts/pack.scm:369 +msgid "" +"\n" +" --bootstrap use the bootstrap binaries to build the pack" +msgstr "" +"\n" +" --bootstrap brug bootstraps binære filer til at kompilere pakken" + +#: guix/scripts/pack.scm:405 +#, scheme-format +msgid "both a manifest and a package list were given~%" +msgstr "både et manifest og en pakkeliste blev angivet~%" + +#: guix/scripts/pack.scm:429 #, scheme-format msgid "~a: unknown pack format" msgstr "~a: ukendt pakkeformat" -#: guix/gnu-maintenance.scm:562 +#: guix/scripts/weather.scm:72 +msgid "computing ~h package derivations for ~a...~%" +msgstr "beregner ~h pakkeafledninger for ~a...~%" + +#: guix/scripts/weather.scm:161 +msgid "looking for ~h store items on ~a...~%" +msgstr "kigger efter ~h lagerelementer på ~a...~%" + +#: guix/scripts/weather.scm:173 +msgid " ~2,1f% substitutes available (~h out of ~h)~%" +msgstr " ~2,1f% erstatninger tilgængelige (~h ud af ~h)~%" + +#: guix/scripts/weather.scm:179 +#, scheme-format +msgid " unknown substitute sizes~%" +msgstr " ukendte erstatningsstørrelser~%" + +#: guix/scripts/weather.scm:182 +msgid " ~,1h MiB of nars (compressed)~%" +msgstr " ~,1h MiB af nars (komprimeret)~%" + +#: guix/scripts/weather.scm:183 +msgid " at least ~,1h MiB of nars (compressed)~%" +msgstr " mindst ~,1h MiB af nars (komprimeret)~%" + +#: guix/scripts/weather.scm:185 +msgid " ~,1h MiB on disk (uncompressed)~%" +msgstr " ~,1h MiB på disk (komprimeret)~%" + +#: guix/scripts/weather.scm:187 +msgid " ~,3h seconds per request (~,1h seconds in total)~%" +msgstr " ~,3h sekunder per forespørgsel (~,1h sekunder samlet)~%" + +#: guix/scripts/weather.scm:189 +msgid " ~,1h requests per second~%" +msgstr " ~,1h forespørgsler per sekund~%" + +#: guix/scripts/weather.scm:195 +#, scheme-format +msgid " (continuous integration information unavailable)~%" +msgstr " (kontinuerlig integrationsinformation utilgængelig)~%" + +#: guix/scripts/weather.scm:198 +#, scheme-format +msgid " '~a' returned ~a (~s)~%" +msgstr " »~a« returnerede ~a (~s)~%" + +#: guix/scripts/weather.scm:215 +msgid " ~,1f% (~h out of ~h) of the missing items are queued~%" +msgstr " ~,1f% (~h ud af ~h) af de manglende elementer er placeret i køen~%" + +#: guix/scripts/weather.scm:221 +msgid " at least ~h queued builds~%" +msgstr " mindst ~h kompileringer i køen~%" + +#: guix/scripts/weather.scm:222 +msgid " ~h queued builds~%" +msgstr " ~h kompileringer i køen~%" + +#: guix/scripts/weather.scm:225 +#, scheme-format +msgid " ~a: ~a (~0,1f%)~%" +msgstr " ~a: ~a (~0,1f%)~%" + +#: guix/scripts/weather.scm:231 +#, scheme-format +msgid " build rate: ~1,2f builds per hour~%" +msgstr " kompileringshastighed: ~1,2f kompileringer per time~%" + +#: guix/scripts/weather.scm:235 +#, scheme-format +msgid " ~a: ~,2f builds per hour~%" +msgstr " ~a: ~,2f kompileringer per time~%" + +#: guix/scripts/weather.scm:247 +msgid "" +"Usage: guix weather [OPTIONS]\n" +"Report the availability of substitutes.\n" +msgstr "" +"Brug: guix weather [TILVALG]\n" +"Rapporter tilgængelighed over erstatninger.\n" + +#: guix/scripts/weather.scm:249 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" check for available substitutes at URLS" +msgstr "" +"\n" +" --substitute-urls=ADRESSER\n" +" kontroller for tilgængelige erstatninger på URLS\n" +" (ADRESSER)" + +#: guix/scripts/weather.scm:252 +msgid "" +"\n" +" -m, --manifest=MANIFEST\n" +" look up substitutes for packages specified in MANIFEST" +msgstr "" +"\n" +" -m, --manifest=MANIFEST\n" +" slå erstatninger op for pakker angivet i MANIFEST" + +#: guix/scripts/weather.scm:255 +msgid "" +"\n" +" -s, --system=SYSTEM consider substitutes for SYSTEM--e.g., \"i686-linux\"" +msgstr "" +"\n" +" -s, --system=SYSTEM overvej erstatninger for SYSTEM--f.eks., »i686-linux«" + +#: guix/scripts/weather.scm:279 +#, scheme-format +msgid "~a: invalid URL~%" +msgstr "~a: ugyldig URL~%" + +#: guix/gnu-maintenance.scm:570 msgid "Updater for GNU packages" msgstr "Opdater for GNU-pakker" -#: guix/gnu-maintenance.scm:569 -msgid "Updater for GNOME packages" -msgstr "Opdateringsprogram for GNOME-pakker" +#: guix/gnu-maintenance.scm:579 +msgid "Updater for GNU packages only available via FTP" +msgstr "Opdater kun for GNU-pakker tilgængelige via FTP" -#: guix/gnu-maintenance.scm:576 +#: guix/gnu-maintenance.scm:588 msgid "Updater for KDE packages" msgstr "Opdateringsprogram for KDE-pakker" -#: guix/gnu-maintenance.scm:583 +#: guix/gnu-maintenance.scm:595 msgid "Updater for X.org packages" msgstr "Opdateringsprogram for X.org-pakker" -#: guix/gnu-maintenance.scm:590 +#: guix/gnu-maintenance.scm:602 msgid "Updater for packages hosted on kernel.org" msgstr "Opdateringsprogram for pakker fra kernel.org" @@ -2531,61 +2960,85 @@ msgstr "ingen sådan proces ~d~%" msgid "exec failed with status ~d~%" msgstr "exec mislykkedes med status ~d~%" -#: guix/upstream.scm:212 +#: guix/upstream.scm:250 #, scheme-format msgid "signature verification failed for `~a'~%" msgstr "signaturverifikation mislykkedes for »~a«~%" -#: guix/upstream.scm:214 +#: guix/upstream.scm:252 #, scheme-format msgid "(could be because the public key is not in your keyring)~%" msgstr "(kunne være fordi den offentlige nøgle ikke er i din nøglering)~%" -#: guix/upstream.scm:293 +#: guix/upstream.scm:337 #, scheme-format msgid "~a: could not locate source file" msgstr "~a: kunne ikke lokalisere kildefil" -#: guix/upstream.scm:298 +#: guix/upstream.scm:342 #, scheme-format msgid "~a: ~a: no `version' field in source; skipping~%" msgstr "~a: ~a: intet »versionsfelt« i kilde; udelader~%" -#: guix/ui.scm:241 +#: guix/ui.scm:161 +#, scheme-format +msgid "~a: unbound variable" +msgstr "~a: variabel uden binding" + +#: guix/ui.scm:253 msgid "entering debugger; type ',bt' for a backtrace\n" msgstr "går i fejlsøger; tast »,bt« for en tilbagesporing\n" -#: guix/ui.scm:257 guix/ui.scm:278 guix/ui.scm:285 +#: guix/ui.scm:302 +#, scheme-format +msgid "hint: ~a~%" +msgstr "fif: ~a~%" + +#: guix/ui.scm:314 guix/ui.scm:362 guix/ui.scm:369 #, scheme-format msgid "failed to load '~a': ~a~%" msgstr "kunne ikke indlæse »~a«: ~a~%" -#: guix/ui.scm:260 +#: guix/ui.scm:321 +#, scheme-format +msgid "~amissing closing parenthesis~%" +msgstr "~amanglende afsluttende parentes~%" + +#: guix/ui.scm:326 guix/ui.scm:342 guix/ui.scm:642 #, scheme-format msgid "~a: error: ~a~%" msgstr "~a: fejl: ~a~%" -#: guix/ui.scm:267 guix/ui.scm:554 +#: guix/ui.scm:334 +msgid "Did you forget a @code{use-modules} form?" +msgstr "Glemte du en @code{use-modules}-form?" + +#: guix/ui.scm:336 +#, scheme-format +msgid "Did you forget @code{(use-modules ~a)}?" +msgstr "Glemte du @code{(use-modules ~a)}?" + +#: guix/ui.scm:349 guix/ui.scm:712 #, scheme-format msgid "exception thrown: ~s~%" msgstr "undtagelse smidt: ~s~%" -#: guix/ui.scm:269 guix/ui.scm:291 +#: guix/ui.scm:353 guix/ui.scm:375 #, scheme-format msgid "failed to load '~a':~%" msgstr "kunne ikke indlæse »~a«:~%" -#: guix/ui.scm:281 +#: guix/ui.scm:365 #, scheme-format msgid "~a: warning: ~a~%" msgstr "~a: advarsel: ~a~%" -#: guix/ui.scm:288 +#: guix/ui.scm:372 #, scheme-format msgid "failed to load '~a': exception thrown: ~s~%" msgstr "kunne ikke indlæse »~a«: undtagelse smidt: ~s~%" -#: guix/ui.scm:300 +#: guix/ui.scm:384 #, scheme-format msgid "failed to install locale: ~a~%" msgstr "kunne ikke installere sprog: ~a~%" @@ -2593,15 +3046,15 @@ msgstr "kunne ikke installere sprog: ~a~%" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. */ -#: guix/ui.scm:323 +#: guix/ui.scm:414 msgid "(C)" msgstr "©" -#: guix/ui.scm:324 +#: guix/ui.scm:415 msgid "the Guix authors\n" msgstr "Guix-forfatterne\n" -#: guix/ui.scm:325 +#: guix/ui.scm:416 msgid "" "License GPLv3+: GNU GPL version 3 or later \n" "This is free software: you are free to change and redistribute it.\n" @@ -2615,7 +3068,7 @@ msgstr "" #. package. Please add another line saying "Report translation bugs to #. ...\n" with the address for translation bugs (typically your translation #. team's web or email address). -#: guix/ui.scm:337 +#: guix/ui.scm:428 #, scheme-format msgid "" "\n" @@ -2624,7 +3077,7 @@ msgstr "" "\n" "Rapporter fejl til: ~a." -#: guix/ui.scm:339 +#: guix/ui.scm:430 #, scheme-format msgid "" "\n" @@ -2633,7 +3086,7 @@ msgstr "" "\n" "~a hjemmeside: <~a>" -#: guix/ui.scm:341 +#: guix/ui.scm:432 msgid "" "\n" "General help using GNU software: " @@ -2641,204 +3094,249 @@ msgstr "" "\n" "Generel hjælp til brugen af GNU-programmer: " -#: guix/ui.scm:386 +#: guix/ui.scm:477 #, scheme-format msgid "'~a' is not a valid regular expression: ~a~%" msgstr "»~a« er ikke et gyldigt regulært udtryk: ~a~%" -#: guix/ui.scm:392 +#: guix/ui.scm:483 #, scheme-format msgid "~a: invalid number~%" msgstr "~a: ugyldigt nummer~%" -#: guix/ui.scm:409 +#: guix/ui.scm:500 #, scheme-format msgid "invalid number: ~a~%" msgstr "ugyldigt nummer: ~a~%" -#: guix/ui.scm:432 +#: guix/ui.scm:523 #, scheme-format msgid "unknown unit: ~a~%" msgstr "ukendt enhed: ~a~%" -#: guix/ui.scm:449 +#: guix/ui.scm:538 +#, scheme-format +msgid "" +"You cannot have two different versions\n" +"or variants of @code{~a} in the same profile." +msgstr "" +"Du kan ikke have to forskellige versioner\n" +"eller varianter af @code{~a} i den samme profil." + +#: guix/ui.scm:541 +#, scheme-format +msgid "" +"Try upgrading both @code{~a} and @code{~a},\n" +"or remove one of them from the profile." +msgstr "" +"Prøv at opgradere både @code{~a} og @code{~a},\n" +"eller fjern en af dem fra profilen." + +#: guix/ui.scm:560 #, scheme-format msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" msgstr "~a:~a:~a: pakken »~a« har ugyldige inddata: ~s~%" -#: guix/ui.scm:456 +#: guix/ui.scm:567 #, scheme-format msgid "~a: ~a: build system `~a' does not support cross builds~%" msgstr "~a: ~a: kompileringssystem »~a« understøtter ikke krydskompileringer~%" -#: guix/ui.scm:462 +#: guix/ui.scm:573 #, scheme-format msgid "~s: invalid G-expression input~%" msgstr "~s: ugyldige G-udtryksindata~%" -#: guix/ui.scm:465 +#: guix/ui.scm:576 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "profilen »~a« findes ikke~%" -#: guix/ui.scm:468 +#: guix/ui.scm:579 #, scheme-format msgid "generation ~a of profile '~a' does not exist~%" msgstr "oprettelse ~a af profilen »~a« findes ikke~%" -#: guix/ui.scm:475 +#: guix/ui.scm:588 +#, scheme-format +msgid " ... propagated from ~a@~a~%" +msgstr " ... formeret fra ~a@~a~%" + +#: guix/ui.scm:598 +#, scheme-format +msgid "profile contains conflicting entries for ~a~a~%" +msgstr "profil indeholder elementer i konflikt for ~a~a~%" + +#: guix/ui.scm:601 +#, scheme-format +msgid " first entry: ~a@~a~a ~a~%" +msgstr " første element: ~a@~a~a ~a~%" + +#: guix/ui.scm:607 +#, scheme-format +msgid " second entry: ~a@~a~a ~a~%" +msgstr " andet element: ~a@~a~a ~a~%" + +#: guix/ui.scm:619 #, scheme-format msgid "corrupt input while restoring '~a' from ~s~%" msgstr "ødelagte inddata under gendannelse af »~a« fra ~s~%" -#: guix/ui.scm:477 +#: guix/ui.scm:621 #, scheme-format msgid "corrupt input while restoring archive from ~s~%" msgstr "ødelagte inddata under gendannelse af arkiv fra ~s~%" -#: guix/ui.scm:480 +#: guix/ui.scm:624 #, scheme-format msgid "failed to connect to `~a': ~a~%" msgstr "kunne ikke forbinde til »~a«: ~a~%" -#: guix/ui.scm:485 +#: guix/ui.scm:629 #, scheme-format msgid "build failed: ~a~%" msgstr "kompilering mislykkedes: ~a~%" -#: guix/ui.scm:488 +#: guix/ui.scm:632 #, scheme-format msgid "reference to invalid output '~a' of derivation '~a'~%" msgstr "reference til ugyldige uddata »~a« for derivat »~a«~%" -#: guix/ui.scm:492 +#: guix/ui.scm:636 #, scheme-format msgid "file '~a' could not be found in these directories:~{ ~a~}~%" msgstr "filen »~a« blev ikke fundet i disse mapper:~{ ~a~}~%" -#: guix/ui.scm:504 +#: guix/ui.scm:662 #, scheme-format msgid "~a: ~a~%" msgstr "~a: ~a~%" -#: guix/ui.scm:539 +#: guix/ui.scm:697 #, scheme-format msgid "failed to read expression ~s: ~s~%" msgstr "kunne ikke læse udtryk ~s: ~s~%" -#: guix/ui.scm:545 +#: guix/ui.scm:703 #, scheme-format msgid "failed to evaluate expression '~a':~%" msgstr "kunne ikke evaluere udtryk »~a«:~%" -#: guix/ui.scm:548 +#: guix/ui.scm:706 #, scheme-format msgid "syntax error: ~a~%" msgstr "syntaksfejl: ~a~%" -#: guix/ui.scm:566 +#: guix/ui.scm:724 #, scheme-format msgid "expression ~s does not evaluate to a package~%" msgstr "udtryk ~s evaluerer ikke til en pakke~%" -#: guix/ui.scm:628 +#: guix/ui.scm:743 +msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%" +msgstr "mindst ~,1h MB krævet men kun ~,1h MB tilgængelig i ~a~%" + +#: guix/ui.scm:811 #, scheme-format msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Det følgende derivat ville blive kompileret:~%~{ ~a~%~}~;~]" msgstr[1] "~:[De følgende derivater ville blive kompileret:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:633 +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:819 +msgid "~:[~,1h MB would be downloaded:~%~{ ~a~%~}~;~]" +msgstr "~:[D,1h MB ville blive hentet:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:824 #, scheme-format msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Den følgende fil ville blive hentet:~%~{ ~a~%~}~;~]" msgstr[1] "~:[De følgende filer ville blive hentet:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:639 +#: guix/ui.scm:831 #, scheme-format msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Det følgende derivat vil blive kompileret:~%~{ ~a~%~}~;~]" msgstr[1] "~:[De følgende derivater vil blive kompileret:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:644 +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:839 +msgid "~:[~,1h MB will be downloaded:~%~{ ~a~%~}~;~]" +msgstr "~:[~,1h MB vil blive hentet:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:844 #, scheme-format msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[Den følgende fil vil blive hentet:~%~{ ~a~%~}~;~]" msgstr[1] "~:[De følgende filer vil blive hentet:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:700 +#: guix/ui.scm:904 #, scheme-format msgid "The following package would be removed:~%~{~a~%~}~%" msgid_plural "The following packages would be removed:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke ville blive fjernet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker ville blive fjernet:~%~{~a~%~}~%" -#: guix/ui.scm:705 +#: guix/ui.scm:909 #, scheme-format msgid "The following package will be removed:~%~{~a~%~}~%" msgid_plural "The following packages will be removed:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke vil blive fjernet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker vil blive fjernet:~%~{~a~%~}~%" -#: guix/ui.scm:718 +#: guix/ui.scm:922 #, scheme-format msgid "The following package would be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke ville blive nedgraderet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker ville blive nedgraderet:~%~{~a~%~}~%" -#: guix/ui.scm:723 +#: guix/ui.scm:927 #, scheme-format msgid "The following package will be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke vil blive nedgraderet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker vil blive nedgraderet:~%~{~a~%~}~%" -#: guix/ui.scm:736 +#: guix/ui.scm:940 #, scheme-format msgid "The following package would be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke ville blive opgraderet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker ville blive opgraderet:~%~{~a~%~}~%" -#: guix/ui.scm:741 +#: guix/ui.scm:945 #, scheme-format msgid "The following package will be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke vil blive opgraderet:~%~{~a~%~}~%" msgstr[1] "De følgende pakker vil blive opgraderet:~%~{~a~%~}~%" -#: guix/ui.scm:752 +#: guix/ui.scm:956 #, scheme-format msgid "The following package would be installed:~%~{~a~%~}~%" msgid_plural "The following packages would be installed:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke ville blive installeret:~%~{~a~%~}~%" msgstr[1] "De følgende pakker ville blive installeret:~%~{~a~%~}~%" -#: guix/ui.scm:757 +#: guix/ui.scm:961 #, scheme-format msgid "The following package will be installed:~%~{~a~%~}~%" msgid_plural "The following packages will be installed:~%~{~a~%~}~%" msgstr[0] "Den følgende pakke vil blive installeret:~%~{~a~%~}~%" msgstr[1] "De følgende pakker vil blive installeret:~%~{~a~%~}~%" -#: guix/ui.scm:774 +#: guix/ui.scm:978 msgid "" msgstr "" -#: guix/ui.scm:793 -#, scheme-format -msgid "failed to create configuration directory `~a': ~a~%" -msgstr "kunne ikke oprette konfiguratinsmappe »~a«: ~a~%" - -#: guix/ui.scm:924 guix/ui.scm:938 -msgid "unknown" -msgstr "ukendt" - -#: guix/ui.scm:1097 +#: guix/ui.scm:1340 #, scheme-format msgid "Generation ~a\t~a" msgstr "Generation ~a\t~a" @@ -2846,27 +3344,27 @@ msgstr "Generation ~a\t~a" #. TRANSLATORS: The word "current" here is an adjective for #. "Generation", as in "current generation". Use the appropriate #. gender where applicable. -#: guix/ui.scm:1107 +#: guix/ui.scm:1350 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(nuværende)~%" -#: guix/ui.scm:1150 +#: guix/ui.scm:1393 #, scheme-format msgid "switched from generation ~a to ~a~%" msgstr "skiftede fra generation ~a til ~a~%" -#: guix/ui.scm:1166 +#: guix/ui.scm:1409 #, scheme-format msgid "deleting ~a~%" msgstr "sletter ~a~%" -#: guix/ui.scm:1197 +#: guix/ui.scm:1440 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Prøv »guix --help« for yderligere information.~%" -#: guix/ui.scm:1225 +#: guix/ui.scm:1468 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -2874,31 +3372,31 @@ msgstr "" "Brug: guix KOMMANDO ARG...\n" "Kør KOMMANDO med ARG.\n" -#: guix/ui.scm:1228 +#: guix/ui.scm:1471 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "KOMMANDO skal være en af underkommandoerne vist nedenfor:\n" -#: guix/ui.scm:1248 +#: guix/ui.scm:1491 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: kommando blev ikke fundet~%" -#: guix/ui.scm:1267 +#: guix/ui.scm:1521 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: mangler kommandonavn~%" -#: guix/ui.scm:1275 +#: guix/ui.scm:1529 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: ikke genkendt tilvalg »~a«~%" -#: guix/http-client.scm:265 +#: guix/http-client.scm:117 #, scheme-format msgid "following redirection to `~a'...~%" msgstr "følger omdirigering til »~a«...~%" -#: guix/http-client.scm:277 +#: guix/http-client.scm:129 #, scheme-format msgid "~a: HTTP download failed: ~a (~s)" msgstr "~a: HTTP-overførsel mislykkede: ~a (~s)" @@ -2945,146 +3443,126 @@ msgstr "importeret fil mangler en signatur" msgid "invalid inter-file archive mark" msgstr "ugyldig arkivmærke for mellemfil" -#: nix/nix-daemon/guix-daemon.cc:61 +#: nix/nix-daemon/guix-daemon.cc:66 msgid "guix-daemon -- perform derivation builds and store accesses" msgstr "guix-daemon – udfør derivatkompileringer og lageradgange" -#: nix/nix-daemon/guix-daemon.cc:63 +#: nix/nix-daemon/guix-daemon.cc:68 msgid "This program is a daemon meant to run in the background. It serves requests sent over a Unix-domain socket. It accesses the store, and builds derivations on behalf of its clients." msgstr "Dette program er en ædmon lavet til at køre i baggrunden. Den betjener forespørgsler sendt over en Unix-domænesokkel. Den tilgår lageret, og bygger derivater på vegne af dens klienter." -#: nix/nix-daemon/guix-daemon.cc:87 +#: nix/nix-daemon/guix-daemon.cc:95 msgid "SYSTEM" msgstr "SYSTEM" -#: nix/nix-daemon/guix-daemon.cc:88 +#: nix/nix-daemon/guix-daemon.cc:96 msgid "assume SYSTEM as the current system type" msgstr "antag SYSTEM som den nuværende systemtype" -#: nix/nix-daemon/guix-daemon.cc:89 nix/nix-daemon/guix-daemon.cc:92 +#: nix/nix-daemon/guix-daemon.cc:97 nix/nix-daemon/guix-daemon.cc:100 msgid "N" msgstr "N" -#: nix/nix-daemon/guix-daemon.cc:90 +#: nix/nix-daemon/guix-daemon.cc:98 msgid "use N CPU cores to build each derivation; 0 means as many as available" msgstr "brug N cpu-kerner til at kompilere hvert derivat; 0 betyder så mange som er tilgængelige" -#: nix/nix-daemon/guix-daemon.cc:93 +#: nix/nix-daemon/guix-daemon.cc:101 msgid "allow at most N build jobs" msgstr "tillad højst N kompileringsjob" -#: nix/nix-daemon/guix-daemon.cc:95 +#: nix/nix-daemon/guix-daemon.cc:102 nix/nix-daemon/guix-daemon.cc:104 +msgid "SECONDS" +msgstr "SEKUNDER" + +#: nix/nix-daemon/guix-daemon.cc:103 +msgid "mark builds as failed after SECONDS of activity" +msgstr "marker kompileringer som mislykkede efter SEKUNDERs aktivitet" + +#: nix/nix-daemon/guix-daemon.cc:105 +msgid "mark builds as failed after SECONDS of silence" +msgstr "marker kompileringer som mislykkede efter SEKUNDERs stilhed" + +#: nix/nix-daemon/guix-daemon.cc:107 msgid "disable chroot builds" msgstr "deaktiver chroot-kompileringer" -#: nix/nix-daemon/guix-daemon.cc:96 +#: nix/nix-daemon/guix-daemon.cc:108 msgid "DIR" msgstr "MAPPE" -#: nix/nix-daemon/guix-daemon.cc:97 +#: nix/nix-daemon/guix-daemon.cc:109 msgid "add DIR to the build chroot" msgstr "tilføj MAPPE til kompileringschrooten" -#: nix/nix-daemon/guix-daemon.cc:98 +#: nix/nix-daemon/guix-daemon.cc:110 msgid "GROUP" msgstr "GRUPPE" -#: nix/nix-daemon/guix-daemon.cc:99 +#: nix/nix-daemon/guix-daemon.cc:111 msgid "perform builds as a user of GROUP" msgstr "udfør kompileringer som en bruger i GRUPPE" -#: nix/nix-daemon/guix-daemon.cc:101 +#: nix/nix-daemon/guix-daemon.cc:113 msgid "do not use substitutes" msgstr "brug ikke substitutter" -#: nix/nix-daemon/guix-daemon.cc:102 +#: nix/nix-daemon/guix-daemon.cc:114 msgid "URLS" msgstr "ADRESSER" -#: nix/nix-daemon/guix-daemon.cc:103 +#: nix/nix-daemon/guix-daemon.cc:115 msgid "use URLS as the default list of substitute providers" msgstr "brug ADRESSER som standardlisten for substitutleverandører" -#: nix/nix-daemon/guix-daemon.cc:105 +#: nix/nix-daemon/guix-daemon.cc:117 msgid "do not use the 'build hook'" msgstr "brug ikke »build hook«" -#: nix/nix-daemon/guix-daemon.cc:107 +#: nix/nix-daemon/guix-daemon.cc:119 msgid "cache build failures" msgstr "kompileringsfejl i mellemlageret" -#: nix/nix-daemon/guix-daemon.cc:109 +#: nix/nix-daemon/guix-daemon.cc:121 msgid "build each derivation N times in a row" msgstr "kompiler hvert derivat N gange i træk" -#: nix/nix-daemon/guix-daemon.cc:111 +#: nix/nix-daemon/guix-daemon.cc:123 msgid "do not keep build logs" msgstr "bevar ikke kompileringslogge" -#: nix/nix-daemon/guix-daemon.cc:113 +#: nix/nix-daemon/guix-daemon.cc:126 msgid "disable compression of the build logs" msgstr "deaktiver komprimering af kompileringslogge" -#: nix/nix-daemon/guix-daemon.cc:118 +#: nix/nix-daemon/guix-daemon.cc:128 +msgid "use the specified compression type for build logs" +msgstr "brug den angivne komprimeringstype for kompileringslogge" + +#: nix/nix-daemon/guix-daemon.cc:133 msgid "disable automatic file \"deduplication\" in the store" msgstr "deaktiver automatisk »fildeduplikation« i lageret" -#: nix/nix-daemon/guix-daemon.cc:128 +#: nix/nix-daemon/guix-daemon.cc:143 msgid "impersonate Linux 2.6" msgstr "udgiv Linux 2.6" -#: nix/nix-daemon/guix-daemon.cc:132 +#: nix/nix-daemon/guix-daemon.cc:147 msgid "tell whether the GC must keep outputs of live derivations" msgstr "fortæl om GC'en skal bevare uddata for live derivater" -#: nix/nix-daemon/guix-daemon.cc:135 +#: nix/nix-daemon/guix-daemon.cc:150 msgid "tell whether the GC must keep derivations corresponding to live outputs" msgstr "fortæl om GC'en skal bevare derivater svarende til live uddata" -#: nix/nix-daemon/guix-daemon.cc:138 +#: nix/nix-daemon/guix-daemon.cc:153 msgid "SOCKET" msgstr "SOKKEL" -#: nix/nix-daemon/guix-daemon.cc:139 +#: nix/nix-daemon/guix-daemon.cc:154 msgid "listen for connections on SOCKET" msgstr "lyt efter forbindelser på SOKKEL" -#: nix/nix-daemon/guix-daemon.cc:141 +#: nix/nix-daemon/guix-daemon.cc:156 msgid "produce debugging output" msgstr "lav fejlsøgningsinformation" - -#~ msgid "deprecated NAME-VERSION syntax; use NAME@VERSION instead~%" -#~ msgstr "forældet NAVN-VERSION-syntaks; brug NAVN@VERSION i stedet for~%" - -#~ msgid "/" -#~ msgstr "/" - -#~ msgid "~A: unexpected argument~%" -#~ msgstr "~A: uventet argument~%" - -#~ msgid "~a: no substitute at '~a'~%" -#~ msgstr "~a: ingen substitut på »~a«~%" - -#~ msgid "no substitutes for '~a'~%" -#~ msgstr "ingen substitutter for »~a«~%" - -#~ msgid " ~50a: unavailable~%" -#~ msgstr " ~50a: utilgængelig~%" - -#~ msgid "gz" -#~ msgstr "gz" - -#~ msgid "download failed" -#~ msgstr "overførsel mislykkedes" - -#~ msgid "error: %s: invalid number of rounds\n" -#~ msgstr "fejl: %s: ugyldigt antal runder\n" - -#~ msgid "error: %s\n" -#~ msgstr "fejl: %s\n" - -#~ msgid "error: libgcrypt version mismatch\n" -#~ msgstr "fejl: forskellige versioner af libgcrypt\n" - -#~ msgid "warning: daemon is running as root, so using `--build-users-group' is highly recommended\n" -#~ msgstr "advarsel: dæmon kører som root, så brug af »--build-users-group« anbefales\n" diff --git a/po/guix/pt_BR.po b/po/guix/pt_BR.po index 317f5213f7..bb7d29c3cf 100644 --- a/po/guix/pt_BR.po +++ b/po/guix/pt_BR.po @@ -1,14 +1,14 @@ # Brazilian Portuguese translation of the guix -# Copyright (C) 2016 Free Software Foundation, Inc. -# Copyright (C) 2016 Ludovic Courtès +# Copyright (C) 2018 the authors of Guix (msgids) +# Copyright (C) 2018 Free Software Foundation, Inc. # This file is distributed under the same license as the guix package. # Rafael Fontenelle , 2013, 2016, 2018. msgid "" msgstr "" -"Project-Id-Version: guix 0.14.0\n" +"Project-Id-Version: guix 0.15.0-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2017-11-28 08:56+0100\n" -"PO-Revision-Date: 2018-02-24 07:29-0200\n" +"POT-Creation-Date: 2018-04-27 19:13+0200\n" +"PO-Revision-Date: 2018-04-30 15:01-0200\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -31,8 +31,8 @@ msgid "" "If you get the line @code{location: gnu/packages/bar.scm:174:2},\n" "add @code{bar} to the @code{use-package-modules} form." msgstr "" -"Você pode usara @command{guix package --show=foo | grep location} para pesquisar\n" -"pela localização do pacote @code{foo}.\n" +"Você pode usar @command{guix package --show=foo | grep location} para\n" +"pesquisar pela localização do pacote @code{foo}.\n" "Se você obtiver a linha @code{location: gnu/packages/bar.scm:174:2},\n" "adicione @code{bar} à forma @code{use-package-modules}." @@ -69,92 +69,127 @@ msgstr "~a: patch não localizado" msgid "could not find bootstrap binary '~a' for system '~a'" msgstr "não foi possível localizar binário de inicialização \"~a\" para o sistema \"~a\"" -#: gnu/packages.scm:240 +#: gnu/packages.scm:259 #, scheme-format msgid "ambiguous package specification `~a'~%" msgstr "especificação ambígua de pacote \"~a\"~%" -#: gnu/packages.scm:241 +#: gnu/packages.scm:260 #, scheme-format msgid "choosing ~a@~a from ~a~%" msgstr "escolhendo ~a@~a de ~a~%" -#: gnu/packages.scm:246 guix/scripts/package.scm:271 +#: gnu/packages.scm:265 guix/scripts/package.scm:278 #, scheme-format msgid "package '~a' has been superseded by '~a'~%" msgstr "pacote \"~a\" foi substituído por \"~a\"~%" -#: gnu/packages.scm:253 +#: gnu/packages.scm:272 #, scheme-format msgid "~A: package not found for version ~a~%" msgstr "~A: pacote não encontrado para versão ~a~%" -#: gnu/packages.scm:254 +#: gnu/packages.scm:273 #, scheme-format msgid "~A: unknown package~%" msgstr "~A: pacote desconhecido~%" -#: gnu/packages.scm:282 +#: gnu/packages.scm:301 #, scheme-format msgid "package `~a' lacks output `~a'~%" msgstr "pacote \"~a\" carece de mensagem de saída \"~a\"~%" -#: gnu/services.scm:235 +#: gnu/services.scm:238 #, scheme-format msgid "~a: no value specified for service of type '~a'" msgstr "~a: nenhum valor especificado para um serviço do tipo \"~a\"" -#: gnu/services.scm:650 +#: gnu/services.scm:643 #, scheme-format msgid "no target of type '~a' for service '~a'" msgstr "nenhum alvo do tipo \"~a\" para o serviço \"~a\"" -#: gnu/services.scm:662 gnu/services.scm:723 +#: gnu/services.scm:669 gnu/services.scm:762 #, scheme-format msgid "more than one target service of type '~a'" msgstr "mais de um serviço alvo do tipo \"~a\"" -#: gnu/services.scm:713 +#: gnu/services.scm:752 #, scheme-format msgid "service of type '~a' not found" msgstr "serviço do tipo \"~a\" não localizado" -#: gnu/system.scm:305 +#: gnu/system.scm:311 #, scheme-format msgid "unrecognized boot parameters for '~a'~%" msgstr "parâmetros de inicialização não reconhecidos para \"~a\"~%" -#: gnu/system.scm:695 +#: gnu/system.scm:712 #, scheme-format msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" msgstr "usando um texto para arquivo \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%" -#: gnu/system.scm:711 +#: gnu/system.scm:728 #, scheme-format msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" msgstr "usando um valor monádico para \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%" -#: gnu/system.scm:856 +#: gnu/system.scm:875 #, scheme-format msgid "~a: invalid locale name" msgstr "~a: nome de localidade inválido" -#: gnu/services/shepherd.scm:166 +#: gnu/services/shepherd.scm:177 #, scheme-format msgid "service '~a' provided more than once" msgstr "serviço \"~a\" fornecido mais de uma vez" -#: gnu/services/shepherd.scm:181 +#: gnu/services/shepherd.scm:192 #, scheme-format msgid "service '~a' requires '~a', which is not provided by any service" msgstr "serviço \"~a\" requer \"~a\", o que não é fornecido por nenhum serviço" -#: gnu/system/shadow.scm:231 +#: gnu/system/mapped-devices.scm:136 +#, scheme-format +msgid "you may need these modules in the initrd for ~a:~{ ~a~}" +msgstr "você pode precisar desses módulos no initrd para ~a:~{ ~a~}" + +#: gnu/system/mapped-devices.scm:140 +#, scheme-format +msgid "" +"Try adding them to the\n" +"@code{initrd-modules} field of your @code{operating-system} declaration, along\n" +"these lines:\n" +"\n" +"@example\n" +" (operating-system\n" +" ;; @dots{}\n" +" (initrd-modules (append (list~{ ~s~})\n" +" %base-initrd-modules)))\n" +"@end example\n" +msgstr "" +"Tente adicioná-los ao campo\n" +"@code{initrd-modules} de sua declaração @code{operating-system}, junto\n" +"com essas linhas:\n" +"\n" +"@example\n" +" (operating-system\n" +" ;; @dots{}\n" +" (initrd-modules (append (list~{ ~s~})\n" +" %base-initrd-modules)))\n" +"@end example\n" + +#: gnu/system/mapped-devices.scm:216 +#, scheme-format +msgid "no LUKS partition with UUID '~a'" +msgstr "nenhuma partição LUKS com UUID \"~a\"" + +#: gnu/system/shadow.scm:242 #, scheme-format msgid "supplementary group '~a' of user '~a' is undeclared" msgstr "grupo suplementar \"~a\" do usuário \"~a\" não está declarado" -#: gnu/system/shadow.scm:241 +#: gnu/system/shadow.scm:252 #, scheme-format msgid "primary group '~a' of user '~a' is undeclared" msgstr "grupo primário \"~a\" do usuário \"~a\" não está declarado" @@ -166,7 +201,7 @@ msgstr "argumento inválido: ~a~%" #: guix/scripts.scm:84 guix/scripts/download.scm:135 #: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:77 -#: guix/scripts/publish.scm:844 guix/scripts/edit.scm:81 +#: guix/scripts/publish.scm:881 guix/scripts/edit.scm:81 #, scheme-format msgid "~A: unrecognized option~%" msgstr "~A: opção não reconhecida~%" @@ -187,17 +222,22 @@ msgstr "" "Considere executar \"guix pull\" seguido de\n" "\"~a\" para obter pacotes atualizados e atualizações de segurança.\n" -#: guix/scripts/build.scm:124 +#: guix/scripts/build.scm:81 +#, scheme-format +msgid "cannot access build log at '~a':~%" +msgstr "não foi possível acessar o log de compilação em \"~a\"~%" + +#: guix/scripts/build.scm:135 #, scheme-format msgid "failed to create GC root `~a': ~a~%" msgstr "falha ao criar raiz de GC \"~a\": ~a~%" -#: guix/scripts/build.scm:206 +#: guix/scripts/build.scm:237 #, scheme-format msgid "invalid replacement specification: ~s~%" msgstr "especificação de substituição inválida: ~s~%" -#: guix/scripts/build.scm:263 +#: guix/scripts/build.scm:294 msgid "" "\n" " --with-source=SOURCE\n" @@ -207,7 +247,7 @@ msgstr "" " --with-source=FONTE\n" " usa FONTE ao compilar o pacote correspondente" -#: guix/scripts/build.scm:266 +#: guix/scripts/build.scm:297 msgid "" "\n" " --with-input=PACKAGE=REPLACEMENT\n" @@ -217,7 +257,7 @@ msgstr "" " --with-input=PACOTE=SUBSTITUIÇÃO\n" " substitui a dependência PACOTE por SUBSTITUIÇÃO" -#: guix/scripts/build.scm:269 +#: guix/scripts/build.scm:300 msgid "" "\n" " --with-graft=PACKAGE=REPLACEMENT\n" @@ -227,12 +267,12 @@ msgstr "" " --with-graft=PACOTE=SUBSTITUIÇÃO\n" " insere SUBSTITUIÇÃO em pacotes referindo-se a PACOTE" -#: guix/scripts/build.scm:294 +#: guix/scripts/build.scm:325 #, scheme-format msgid "transformation '~a' had no effect on ~a~%" msgstr "a transformação \"~a\" não obteve efeito em ~a~%" -#: guix/scripts/build.scm:312 +#: guix/scripts/build.scm:343 msgid "" "\n" " -L, --load-path=DIR prepend DIR to the package module search path" @@ -241,7 +281,7 @@ msgstr "" " -L, --load-path=DIR insere DIR no início do caminho de pesquisa do\n" " módulo do pacote" -#: guix/scripts/build.scm:314 +#: guix/scripts/build.scm:345 msgid "" "\n" " -K, --keep-failed keep build tree of failed builds" @@ -249,7 +289,7 @@ msgstr "" "\n" " -K, --keep-failed mantém a árvore de compilado de pacotes falhos" -#: guix/scripts/build.scm:316 +#: guix/scripts/build.scm:347 msgid "" "\n" " -k, --keep-going keep going when some of the derivations fail" @@ -257,7 +297,7 @@ msgstr "" "\n" " -k, --keep-going continua mesmo se algumas das derivações falharem" -#: guix/scripts/build.scm:318 +#: guix/scripts/build.scm:349 msgid "" "\n" " -n, --dry-run do not build the derivations" @@ -265,7 +305,7 @@ msgstr "" "\n" " -n, --dry-run não compila as derivações" -#: guix/scripts/build.scm:320 +#: guix/scripts/build.scm:351 msgid "" "\n" " --fallback fall back to building when the substituter fails" @@ -273,7 +313,7 @@ msgstr "" "\n" " --fallback volta para compilação quando o substituto falhar" -#: guix/scripts/build.scm:322 +#: guix/scripts/build.scm:353 msgid "" "\n" " --no-substitutes build instead of resorting to pre-built substitutes" @@ -282,7 +322,7 @@ msgstr "" " --no-substitutes compila, em vez de recorrer a substitutos\n" " pré-construídos" -#: guix/scripts/build.scm:324 guix/scripts/size.scm:232 +#: guix/scripts/build.scm:355 guix/scripts/size.scm:232 msgid "" "\n" " --substitute-urls=URLS\n" @@ -292,7 +332,7 @@ msgstr "" " --substitute-urls=URLS\n" " obtém substituto a partir das URLS se autorizadas" -#: guix/scripts/build.scm:327 +#: guix/scripts/build.scm:358 msgid "" "\n" " --no-grafts do not graft packages" @@ -300,7 +340,7 @@ msgstr "" "\n" " --no-grafts não faz gráficos de pacotes" -#: guix/scripts/build.scm:329 +#: guix/scripts/build.scm:360 msgid "" "\n" " --no-build-hook do not attempt to offload builds via the build hook" @@ -309,7 +349,7 @@ msgstr "" " --no-build-hook não tenta descarregar compilações via hook de\n" " compilação" -#: guix/scripts/build.scm:331 +#: guix/scripts/build.scm:362 msgid "" "\n" " --max-silent-time=SECONDS\n" @@ -320,7 +360,7 @@ msgstr "" " marca a compilação como falha após transcorridos\n" " SEGUNDOS de silêncio" -#: guix/scripts/build.scm:334 +#: guix/scripts/build.scm:365 msgid "" "\n" " --timeout=SECONDS mark the build as failed after SECONDS of activity" @@ -330,7 +370,7 @@ msgstr "" " marca a compilação como falha após transcorridos\n" " SEGUNDOS de atividade" -#: guix/scripts/build.scm:336 +#: guix/scripts/build.scm:367 msgid "" "\n" " --verbosity=LEVEL use the given verbosity LEVEL" @@ -338,7 +378,7 @@ msgstr "" "\n" " --verbosity=NÍVEL usa o NÍVEL de detalhamento dado" -#: guix/scripts/build.scm:338 +#: guix/scripts/build.scm:369 msgid "" "\n" " --rounds=N build N times in a row to detect non-determinism" @@ -347,7 +387,7 @@ msgstr "" " --rounds=N compila N vezes de uma vez para detectar\n" " não determinismo" -#: guix/scripts/build.scm:340 +#: guix/scripts/build.scm:371 msgid "" "\n" " -c, --cores=N allow the use of up to N CPU cores for the build" @@ -355,7 +395,7 @@ msgstr "" "\n" " -c, --cores=N permite uso de até N núcleos de CPU para compilação" -#: guix/scripts/build.scm:342 +#: guix/scripts/build.scm:373 msgid "" "\n" " -M, --max-jobs=N allow at most N build jobs" @@ -363,12 +403,12 @@ msgstr "" "\n" " -M, --max-jobs=N permite no máximo N trabalhos de compilação" -#: guix/scripts/build.scm:448 guix/scripts/build.scm:455 +#: guix/scripts/build.scm:479 guix/scripts/build.scm:486 #, scheme-format msgid "not a number: '~a' option argument: ~a~%" msgstr "não é um número: argumento da opção \"~a\": ~a~%" -#: guix/scripts/build.scm:474 +#: guix/scripts/build.scm:505 msgid "" "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" @@ -376,7 +416,7 @@ msgstr "" "Uso: guix build [OPÇÃO]... PACOTE-OU-DERIVAÇÃO...\n" "Compila o PACOTE-OU-DERIVAÇÃO dado e returna seus caminhos de saída.\n" -#: guix/scripts/build.scm:476 +#: guix/scripts/build.scm:507 msgid "" "\n" " -e, --expression=EXPR build the package or derivation EXPR evaluates to" @@ -384,7 +424,7 @@ msgstr "" "\n" " -e, --expression=EXPR compila o pacote ou derivação que EXPR corresponder" -#: guix/scripts/build.scm:478 +#: guix/scripts/build.scm:509 msgid "" "\n" " -f, --file=FILE build the package or derivation that the code within\n" @@ -394,7 +434,7 @@ msgstr "" " -f, --file=ARQUIVO compila o pacote ou derivação que o código dentro\n" " de ARQUIVO avaliar" -#: guix/scripts/build.scm:481 +#: guix/scripts/build.scm:512 msgid "" "\n" " -S, --source build the packages' source derivations" @@ -402,7 +442,7 @@ msgstr "" "\n" " -S, --source compila as derivações de fontes do pacote" -#: guix/scripts/build.scm:483 +#: guix/scripts/build.scm:514 msgid "" "\n" " --sources[=TYPE] build source derivations; TYPE may optionally be one\n" @@ -412,7 +452,7 @@ msgstr "" " --sources[=TIPO] compila derivações de fonte; como opção, TIPO pode\n" " um entre \"package\", \"all\" (padrão) ou \"transitive\"" -#: guix/scripts/build.scm:486 guix/scripts/pack.scm:338 +#: guix/scripts/build.scm:517 guix/scripts/pack.scm:357 msgid "" "\n" " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" @@ -420,7 +460,7 @@ msgstr "" "\n" " -s, --system=SISTEMA tenta compilar para SISTEMA (ex.: \"i686-linux\")" -#: guix/scripts/build.scm:488 guix/scripts/pack.scm:340 +#: guix/scripts/build.scm:519 guix/scripts/pack.scm:359 msgid "" "\n" " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" @@ -428,7 +468,7 @@ msgstr "" "\n" " --target=TRIO compilação cruzada para TRIO (ex: \"armel-linux-gnu\")" -#: guix/scripts/build.scm:490 +#: guix/scripts/build.scm:521 msgid "" "\n" " -d, --derivations return the derivation paths of the given packages" @@ -436,7 +476,7 @@ msgstr "" "\n" " -d, --derivations retorna os caminhos de derivação dos pacotes dados" -#: guix/scripts/build.scm:492 +#: guix/scripts/build.scm:523 msgid "" "\n" " --check rebuild items to check for non-determinism issues" @@ -445,7 +485,7 @@ msgstr "" " --check recompila itens para verificar questões de\n" " não determinismo" -#: guix/scripts/build.scm:494 +#: guix/scripts/build.scm:525 msgid "" "\n" " --repair repair the specified items" @@ -453,7 +493,7 @@ msgstr "" "\n" " --repair conserta os itens especificados" -#: guix/scripts/build.scm:496 +#: guix/scripts/build.scm:527 msgid "" "\n" " -r, --root=FILE make FILE a symlink to the result, and register it\n" @@ -463,7 +503,7 @@ msgstr "" " -r, --root=ARQUIVO faz do ARQUIVO um link simbólico para o resultado\n" " e o registra, como um coletor de lixo" -#: guix/scripts/build.scm:499 +#: guix/scripts/build.scm:530 msgid "" "\n" " -q, --quiet do not show the build log" @@ -471,7 +511,7 @@ msgstr "" "\n" " -q, --quiet não mostra o log de compilação" -#: guix/scripts/build.scm:501 +#: guix/scripts/build.scm:532 msgid "" "\n" " --log-file return the log file names for the given derivations" @@ -480,16 +520,16 @@ msgstr "" " --log-file retorna o os nomes de arquivos de log para as\n" " derivações fornecidas" -#: guix/scripts/build.scm:508 guix/scripts/download.scm:83 -#: guix/scripts/package.scm:425 guix/scripts/gc.scm:74 +#: guix/scripts/build.scm:539 guix/scripts/download.scm:83 +#: guix/scripts/package.scm:435 guix/scripts/gc.scm:76 #: guix/scripts/hash.scm:59 guix/scripts/import.scm:92 -#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:110 -#: guix/scripts/substitute.scm:889 guix/scripts/system.scm:870 -#: guix/scripts/lint.scm:1090 guix/scripts/publish.scm:94 +#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:111 +#: guix/scripts/substitute.scm:879 guix/scripts/system.scm:970 +#: guix/scripts/lint.scm:1122 guix/scripts/publish.scm:94 #: guix/scripts/edit.scm:44 guix/scripts/size.scm:243 -#: guix/scripts/graph.scm:432 guix/scripts/challenge.scm:241 -#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:349 -#: guix/scripts/weather.scm:156 guix/scripts/container.scm:33 +#: guix/scripts/graph.scm:466 guix/scripts/challenge.scm:241 +#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:372 +#: guix/scripts/weather.scm:258 guix/scripts/container.scm:33 #: guix/scripts/container/exec.scm:43 msgid "" "\n" @@ -498,16 +538,16 @@ msgstr "" "\n" " -h, --help exibe esta ajuda e sai" -#: guix/scripts/build.scm:510 guix/scripts/download.scm:85 -#: guix/scripts/package.scm:427 guix/scripts/gc.scm:76 +#: guix/scripts/build.scm:541 guix/scripts/download.scm:85 +#: guix/scripts/package.scm:437 guix/scripts/gc.scm:78 #: guix/scripts/hash.scm:61 guix/scripts/import.scm:94 -#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:112 -#: guix/scripts/substitute.scm:891 guix/scripts/system.scm:872 -#: guix/scripts/lint.scm:1094 guix/scripts/publish.scm:96 +#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:113 +#: guix/scripts/substitute.scm:881 guix/scripts/system.scm:972 +#: guix/scripts/lint.scm:1126 guix/scripts/publish.scm:96 #: guix/scripts/edit.scm:46 guix/scripts/size.scm:245 -#: guix/scripts/graph.scm:434 guix/scripts/challenge.scm:243 -#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:351 -#: guix/scripts/weather.scm:158 guix/scripts/container.scm:35 +#: guix/scripts/graph.scm:468 guix/scripts/challenge.scm:243 +#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:374 +#: guix/scripts/weather.scm:260 guix/scripts/container.scm:35 #: guix/scripts/container/exec.scm:45 msgid "" "\n" @@ -516,7 +556,7 @@ msgstr "" "\n" " -V, --version exibe informações da versão e sai" -#: guix/scripts/build.scm:537 +#: guix/scripts/build.scm:568 #, scheme-format msgid "" "invalid argument: '~a' option argument: ~a, ~\n" @@ -525,22 +565,22 @@ msgstr "" "argumento inválido: argumento da opção \"~a\": ~a, ~\n" "deve ser um entre \"package\", \"all\" ou \"transitive\"~%" -#: guix/scripts/build.scm:590 +#: guix/scripts/build.scm:621 #, scheme-format msgid "~s: not something we can build~%" msgstr "~s: não é algo que podemos compilar~%" -#: guix/scripts/build.scm:644 +#: guix/scripts/build.scm:675 #, scheme-format msgid "~a: warning: package '~a' has no source~%" msgstr "~a: aviso: pacote \"~a\" não possui fontes~%" -#: guix/scripts/build.scm:678 +#: guix/scripts/build.scm:709 #, scheme-format msgid "no build log for '~a'~%" msgstr "nenhum log de compilação para \"~a\"~%" -#: guix/discovery.scm:88 +#: guix/discovery.scm:90 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "não foi possível acessar \"~a\": ~a~%" @@ -592,8 +632,8 @@ msgstr "" msgid "unsupported hash format: ~a~%" msgstr "sem suporte ao formato de hash: ~a~%" -#: guix/scripts/download.scm:138 guix/scripts/package.scm:906 -#: guix/scripts/publish.scm:846 +#: guix/scripts/download.scm:138 guix/scripts/package.scm:924 +#: guix/scripts/publish.scm:883 #, scheme-format msgid "~A: extraneous argument~%" msgstr "~A: argumento estranho~%" @@ -649,35 +689,35 @@ msgstr "não será removida a geração ~a, que é o atual~%" msgid "no matching generation~%" msgstr "nenhuma geração correspondente~%" -#: guix/scripts/package.scm:193 guix/scripts/package.scm:716 -#: guix/scripts/system.scm:558 +#: guix/scripts/package.scm:193 guix/scripts/package.scm:730 +#: guix/scripts/system.scm:573 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "sintaxe inválida: ~a~%" -#: guix/scripts/package.scm:219 +#: guix/scripts/package.scm:222 #, scheme-format msgid "nothing to be done~%" msgstr "nada para ser feito~%" -#: guix/scripts/package.scm:233 +#: guix/scripts/package.scm:236 #, scheme-format msgid "~a package in profile~%" msgid_plural "~a packages in profile~%" msgstr[0] "~a pacote no perfil~%" msgstr[1] "~a pacotes no perfil~%" -#: guix/scripts/package.scm:313 +#: guix/scripts/package.scm:320 #, scheme-format msgid "package '~a' no longer exists~%" msgstr "o pacote \"~a\" não existe mais~%" -#: guix/scripts/package.scm:351 +#: guix/scripts/package.scm:358 #, scheme-format msgid "The following environment variable definitions may be needed:~%" msgstr "As seguintes definições de variável de ambiente podem ser necessárias:~%" -#: guix/scripts/package.scm:366 +#: guix/scripts/package.scm:374 msgid "" "Usage: guix package [OPTION]...\n" "Install, remove, or upgrade packages in a single transaction.\n" @@ -685,7 +725,7 @@ msgstr "" "Uso: guix package [OPÇÃO]...\n" "Instala, remove ou atualiza pacotes em uma única transação.\n" -#: guix/scripts/package.scm:368 +#: guix/scripts/package.scm:376 msgid "" "\n" " -i, --install PACKAGE ...\n" @@ -695,7 +735,7 @@ msgstr "" " -i, --install PACOTE ...\n" " instala PACOTEs" -#: guix/scripts/package.scm:371 +#: guix/scripts/package.scm:379 msgid "" "\n" " -e, --install-from-expression=EXP\n" @@ -705,7 +745,7 @@ msgstr "" " -e, --install-from-expression=EXP\n" " instala o pacote que EXPR corresponder" -#: guix/scripts/package.scm:374 +#: guix/scripts/package.scm:382 msgid "" "\n" " -f, --install-from-file=FILE\n" @@ -717,7 +757,7 @@ msgstr "" " instala o pacote cujo código dentro do ARQUIVO\n" " corresponder" -#: guix/scripts/package.scm:378 +#: guix/scripts/package.scm:386 msgid "" "\n" " -r, --remove PACKAGE ...\n" @@ -727,7 +767,7 @@ msgstr "" " -r, --remove PACOTE ...\n" " remove PACOTEs" -#: guix/scripts/package.scm:381 +#: guix/scripts/package.scm:389 msgid "" "\n" " -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" @@ -736,7 +776,7 @@ msgstr "" " -u, --upgrade[=REGEXP] atualiza todos os pacotes instalados correspondendo\n" " à REGEXP" -#: guix/scripts/package.scm:383 +#: guix/scripts/package.scm:391 msgid "" "\n" " -m, --manifest=FILE create a new profile generation with the manifest\n" @@ -746,7 +786,7 @@ msgstr "" " -m, --manifest=ARQUIVO cria a geração de um novo perfil com o manifesto\n" " do ARQUIVO" -#: guix/scripts/package.scm:386 +#: guix/scripts/package.scm:394 msgid "" "\n" " --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP" @@ -754,7 +794,7 @@ msgstr "" "\n" " --do-not-upgrade[=REGEXP] não atualiza pacotes correspondente a REGEXP" -#: guix/scripts/package.scm:388 +#: guix/scripts/package.scm:396 msgid "" "\n" " --roll-back roll back to the previous generation" @@ -762,7 +802,7 @@ msgstr "" "\n" " --roll-back reverte para a geração anterior" -#: guix/scripts/package.scm:390 +#: guix/scripts/package.scm:398 msgid "" "\n" " --search-paths[=KIND]\n" @@ -772,7 +812,7 @@ msgstr "" " --search-paths[=TIPO]\n" " exibe definições necessárias de variável de ambiente" -#: guix/scripts/package.scm:393 +#: guix/scripts/package.scm:401 msgid "" "\n" " -l, --list-generations[=PATTERN]\n" @@ -782,7 +822,7 @@ msgstr "" " -l, --list-generations[=PADRÃO]\n" " lista criações correspondendo a PADRÃO" -#: guix/scripts/package.scm:396 +#: guix/scripts/package.scm:404 msgid "" "\n" " -d, --delete-generations[=PATTERN]\n" @@ -792,7 +832,7 @@ msgstr "" " -d, --delete-generations[=PADRÃO]\n" " exclui gerações correspondendo a PADRÃO" -#: guix/scripts/package.scm:399 +#: guix/scripts/package.scm:407 msgid "" "\n" " -S, --switch-generation=PATTERN\n" @@ -802,7 +842,7 @@ msgstr "" " -S, --switch-generations=PADRÃO\n" " alterna para a geração correspondendo a PADRÃO" -#: guix/scripts/package.scm:402 +#: guix/scripts/package.scm:410 msgid "" "\n" " -p, --profile=PROFILE use PROFILE instead of the user's default profile" @@ -810,7 +850,15 @@ msgstr "" "\n" " -p, --profile=PERFIL usa PERFIL em vez do perfil padrão do usuário" -#: guix/scripts/package.scm:405 +#: guix/scripts/package.scm:413 +msgid "" +"\n" +" --allow-collisions do not treat collisions in the profile as an error" +msgstr "" +"\n" +" --allow-collisions não trata colisões no perfil como um erro" + +#: guix/scripts/package.scm:415 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the profile" @@ -818,7 +866,7 @@ msgstr "" "\n" " --bootstrap usa a inicialização do Guile para compilar o perfil" -#: guix/scripts/package.scm:407 guix/scripts/pull.scm:98 +#: guix/scripts/package.scm:417 guix/scripts/pull.scm:99 msgid "" "\n" " --verbose produce verbose output" @@ -826,7 +874,7 @@ msgstr "" "\n" " --verbose produz uma saída mais detalhada" -#: guix/scripts/package.scm:410 +#: guix/scripts/package.scm:420 msgid "" "\n" " -s, --search=REGEXP search in synopsis and description using REGEXP" @@ -834,7 +882,7 @@ msgstr "" "\n" " -s, --search=REGEXP pesquisa na sinopse e descrição usando REGEXP" -#: guix/scripts/package.scm:412 +#: guix/scripts/package.scm:422 msgid "" "\n" " -I, --list-installed[=REGEXP]\n" @@ -844,7 +892,7 @@ msgstr "" " -I, --list-installed[=REGEXP]\n" " lista pacotes instalados correspondentes a REGEXP" -#: guix/scripts/package.scm:415 +#: guix/scripts/package.scm:425 msgid "" "\n" " -A, --list-available[=REGEXP]\n" @@ -854,7 +902,7 @@ msgstr "" " -A, --list-available[=REGEXP]\n" " lista pacotes disponíveis correspondentes a REGEXP" -#: guix/scripts/package.scm:418 +#: guix/scripts/package.scm:428 msgid "" "\n" " --show=PACKAGE show details about PACKAGE" @@ -862,33 +910,33 @@ msgstr "" "\n" " --show=PACOTE mostra detalhes sobre o PACOTE" -#: guix/scripts/package.scm:470 +#: guix/scripts/package.scm:480 #, scheme-format msgid "upgrade regexp '~a' looks like a command-line option~%" msgstr "a regexp de atualização \"~a\" se parece com uma opção de linha de comando~%" -#: guix/scripts/package.scm:473 +#: guix/scripts/package.scm:483 #, scheme-format msgid "is this intended?~%" msgstr "isso é intencional?~%" -#: guix/scripts/package.scm:518 +#: guix/scripts/package.scm:528 #, scheme-format msgid "~a: unsupported kind of search path~%" msgstr "~a: sem suporte ao tipo de caminho de pesquisa~%" # geração, criação? -#: guix/scripts/package.scm:815 +#: guix/scripts/package.scm:829 #, scheme-format msgid "cannot switch to generation '~a'~%" msgstr "não foi possível alternar para a geração \"~a\"~%" -#: guix/scripts/package.scm:831 +#: guix/scripts/package.scm:846 #, scheme-format msgid "would install new manifest from '~a' with ~d entries~%" msgstr "instalaria novo manifesto a partir de \"~a\" com entradas ~d~%" -#: guix/scripts/package.scm:833 +#: guix/scripts/package.scm:848 #, scheme-format msgid "installing new manifest from '~a' with ~d entries~%" msgstr "instalando novo manifesto a partir de \"~a\" com entradas ~d~%" @@ -977,7 +1025,15 @@ msgstr "" "\n" " --referrers lista as referências de CAMINHOS" -#: guix/scripts/gc.scm:65 +#: guix/scripts/gc.scm:64 +msgid "" +"\n" +" --derivers list the derivers of PATHS" +msgstr "" +"\n" +" --derivers lista os derivadores de CAMINHOS" + +#: guix/scripts/gc.scm:67 msgid "" "\n" " --verify[=OPTS] verify the integrity of the store; OPTS is a\n" @@ -990,7 +1046,7 @@ msgstr "" " \"repair\" e \"contents\"" # são "arquivos inalcançáveis", segundo 'info guix', sobre o 'gc' -#: guix/scripts/gc.scm:69 +#: guix/scripts/gc.scm:71 msgid "" "\n" " --list-failures list cached build failures" @@ -998,7 +1054,7 @@ msgstr "" "\n" " --list-failures lista falhas de compilação em cache" -#: guix/scripts/gc.scm:71 +#: guix/scripts/gc.scm:73 msgid "" "\n" " --clear-failures remove PATHS from the set of cached failures" @@ -1006,25 +1062,30 @@ msgstr "" "\n" " --clear-failures remove CAMINHOS do conjunto de falhas em cache" -#: guix/scripts/gc.scm:100 +#: guix/scripts/gc.scm:87 +#, scheme-format +msgid "~a: invalid '--verify' option~%" +msgstr "~a: opção \"--verify\" inválida~%" + +#: guix/scripts/gc.scm:117 #, scheme-format msgid "invalid amount of storage: ~a~%" msgstr "quantidade inválida de armazenamento: ~a~%" -#: guix/scripts/gc.scm:185 +#: guix/scripts/gc.scm:202 msgid "already ~h bytes available on ~a, nothing to do~%" msgstr "~h bytes já disponíveis em ~a, nada para fazer~%" -#: guix/scripts/gc.scm:188 +#: guix/scripts/gc.scm:205 msgid "freeing ~h bytes~%" msgstr "liberando ~h bytes~%" -#: guix/scripts/gc.scm:200 +#: guix/scripts/gc.scm:217 #, scheme-format msgid "extraneous arguments: ~{~a ~}~%" msgstr "argumentos estranhos: ~{~a ~}~%" -#: guix/scripts/gc.scm:220 guix/scripts/gc.scm:223 +#: guix/scripts/gc.scm:237 guix/scripts/gc.scm:240 msgid "freed ~h bytes~%" msgstr "~h bytes liberados~%" @@ -1058,13 +1119,13 @@ msgstr "" "\n" " -r, --recursive computa o hash no AQUIVO recursivamente" -#: guix/scripts/hash.scm:150 guix/ui.scm:326 guix/ui.scm:601 guix/ui.scm:654 +#: guix/scripts/hash.scm:150 guix/ui.scm:346 guix/ui.scm:656 guix/ui.scm:709 #, scheme-format msgid "~a~%" msgstr "~a~%" -#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1022 -#: guix/scripts/system.scm:1031 guix/scripts/system.scm:1038 +#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1138 +#: guix/scripts/system.scm:1147 guix/scripts/system.scm:1154 #, scheme-format msgid "wrong number of arguments~%" msgstr "número errado de argumentos~%" @@ -1183,7 +1244,7 @@ msgstr "" " export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n" "\n" -#: guix/scripts/pull.scm:96 +#: guix/scripts/pull.scm:97 msgid "" "Usage: guix pull [OPTION]...\n" "Download and deploy the latest version of Guix.\n" @@ -1191,7 +1252,7 @@ msgstr "" "Uso: guix pull [OPÇÃO]...\n" "Baixa e implanta a última versão do Guix.\n" -#: guix/scripts/pull.scm:100 +#: guix/scripts/pull.scm:101 msgid "" "\n" " --url=URL download from the Git repository at URL" @@ -1199,7 +1260,7 @@ msgstr "" "\n" " --url=URL baixa do repositório Git na URL" -#: guix/scripts/pull.scm:102 +#: guix/scripts/pull.scm:103 msgid "" "\n" " --commit=COMMIT download the specified COMMIT" @@ -1207,7 +1268,7 @@ msgstr "" "\n" " --commit=COMMIT baixa o COMMIT especificado" -#: guix/scripts/pull.scm:104 +#: guix/scripts/pull.scm:105 msgid "" "\n" " --branch=BRANCH download the tip of the specified BRANCH" @@ -1215,7 +1276,7 @@ msgstr "" "\n" " --branch=RAMO baixa a dica do RAMO especificado" -#: guix/scripts/pull.scm:106 +#: guix/scripts/pull.scm:107 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the new Guix" @@ -1223,46 +1284,46 @@ msgstr "" "\n" " --bootstrap usa inicialização do Guile para compilar o novo Guix" -#: guix/scripts/pull.scm:192 +#: guix/scripts/pull.scm:193 msgid "Guix already up to date\n" msgstr "Guix já está atualizado\n" -#: guix/scripts/pull.scm:197 +#: guix/scripts/pull.scm:198 #, scheme-format msgid "updated ~a successfully deployed under `~a'~%" msgstr "~a atualizado foi implantado com sucesso sob \"~a\"~%" -#: guix/scripts/pull.scm:200 +#: guix/scripts/pull.scm:201 #, scheme-format msgid "failed to update Guix, check the build log~%" msgstr "falha ao atualizar Guix; verifique o log de compilação~%" -#: guix/scripts/pull.scm:216 +#: guix/scripts/pull.scm:217 #, scheme-format msgid "cannot enforce use of the Let's Encrypt certificates~%" msgstr "não foi possível forçar o uso de certificados Let's Encrypt~%" -#: guix/scripts/pull.scm:218 +#: guix/scripts/pull.scm:219 #, scheme-format msgid "please upgrade Guile-Git~%" msgstr "por favor, atualize o Guile-Git~%" -#: guix/scripts/pull.scm:226 +#: guix/scripts/pull.scm:227 #, scheme-format msgid "Git error ~a~%" msgstr "erro no Git ~a~%" -#: guix/scripts/pull.scm:228 +#: guix/scripts/pull.scm:229 #, scheme-format msgid "Git error: ~a~%" msgstr "erro no Git: ~a~%" -#: guix/scripts/pull.scm:262 +#: guix/scripts/pull.scm:263 #, scheme-format msgid "Updating from Git repository at '~a'...~%" msgstr "Atualizando a partir do repositório Git \"~a\"...~%" -#: guix/scripts/pull.scm:271 +#: guix/scripts/pull.scm:272 #, scheme-format msgid "Building from Git commit ~a...~%" msgstr "Compilando a partir do commit Git ~a...~%" @@ -1287,92 +1348,92 @@ msgstr "enquanto obtinha ~a: servidor está um pouco lento~%" msgid "try `--no-substitutes' if the problem persists~%" msgstr "tente \"--no-substitutes\" se o problema persistir~%" -#: guix/scripts/substitute.scm:233 +#: guix/scripts/substitute.scm:225 #, scheme-format msgid "unsupported substitute URI scheme: ~a~%" msgstr "sem suporte ao esquema de URI de substituto: ~a~%" -#: guix/scripts/substitute.scm:268 +#: guix/scripts/substitute.scm:260 #, scheme-format msgid "while fetching '~a': ~a (~s)~%" msgstr "enquanto obtinha \"~a\": ~a (~s)~%" -#: guix/scripts/substitute.scm:273 +#: guix/scripts/substitute.scm:265 #, scheme-format msgid "ignoring substitute server at '~s'~%" msgstr "ignorando servidor substituto em \"~s\"~%" -#: guix/scripts/substitute.scm:323 +#: guix/scripts/substitute.scm:315 #, scheme-format msgid "signature version must be a number: ~s~%" msgstr "a versão de assinatura deve ser um número: ~s~%" -#: guix/scripts/substitute.scm:327 +#: guix/scripts/substitute.scm:319 #, scheme-format msgid "unsupported signature version: ~a~%" msgstr "sem suporte à versão da assinatura: ~a~%" -#: guix/scripts/substitute.scm:335 +#: guix/scripts/substitute.scm:327 #, scheme-format msgid "signature is not a valid s-expression: ~s~%" msgstr "a assinatura não é uma expressão-s válida: ~s~%" -#: guix/scripts/substitute.scm:339 +#: guix/scripts/substitute.scm:331 #, scheme-format msgid "invalid format of the signature field: ~a~%" msgstr "formato inválido do campo de assinatura: ~a~%" -#: guix/scripts/substitute.scm:374 +#: guix/scripts/substitute.scm:366 #, scheme-format msgid "invalid signature for '~a'~%" msgstr "assinatura inválida para \"~a\"~%" -#: guix/scripts/substitute.scm:376 +#: guix/scripts/substitute.scm:368 #, scheme-format msgid "hash mismatch for '~a'~%" msgstr "hash incompatível para \"~a\"~%" -#: guix/scripts/substitute.scm:378 +#: guix/scripts/substitute.scm:370 #, scheme-format msgid "'~a' is signed with an unauthorized key~%" msgstr "\"~a\" está assinado com uma chave não autorizada~%" -#: guix/scripts/substitute.scm:380 +#: guix/scripts/substitute.scm:372 #, scheme-format msgid "signature on '~a' is corrupt~%" msgstr "a assinatura em \"~a\" está corrompida~%" -#: guix/scripts/substitute.scm:465 +#: guix/scripts/substitute.scm:457 #, scheme-format msgid "'~a' does not name a store item~%" msgstr "\"~a\" não é o nome de um item do armazenamento~%" -#: guix/scripts/substitute.scm:629 +#: guix/scripts/substitute.scm:619 #, scheme-format msgid "updating list of substitutes from '~a'... ~5,1f%" msgstr "atualizando a lista de substitutos de \"~a\"... ~5,1f%" -#: guix/scripts/substitute.scm:693 +#: guix/scripts/substitute.scm:683 #, scheme-format msgid "~s: unsupported server URI scheme~%" msgstr "~s: sem suporte ao esquema de URI de servidor~%" -#: guix/scripts/substitute.scm:703 +#: guix/scripts/substitute.scm:693 #, scheme-format msgid "'~a' uses different store '~a'; ignoring it~%" msgstr "\"~a\" usa um armazenamento diferente \"~a\"; ignorando-o~%" -#: guix/scripts/substitute.scm:863 +#: guix/scripts/substitute.scm:853 #, scheme-format msgid "host name lookup error: ~a~%" msgstr "erro na busca pelo nome da máquina: ~a~%" -#: guix/scripts/substitute.scm:868 +#: guix/scripts/substitute.scm:858 #, scheme-format msgid "TLS error in procedure '~a': ~a~%" msgstr "erro TLS no procedimento \"~a\": ~a~%" -#: guix/scripts/substitute.scm:879 +#: guix/scripts/substitute.scm:869 msgid "" "Usage: guix substitute [OPTION]...\n" "Internal tool to substitute a pre-built binary to a local build.\n" @@ -1381,7 +1442,7 @@ msgstr "" "Ferramenta interna para substituir um binário pré-compilado para\n" "uma compilação local.\n" -#: guix/scripts/substitute.scm:881 +#: guix/scripts/substitute.scm:871 msgid "" "\n" " --query report on the availability of substitutes for the\n" @@ -1392,7 +1453,7 @@ msgstr "" " nomes de arquivos de armazenamento passados na\n" " entrada padrão" -#: guix/scripts/substitute.scm:884 +#: guix/scripts/substitute.scm:874 msgid "" "\n" " --substitute STORE-FILE DESTINATION\n" @@ -1404,26 +1465,26 @@ msgstr "" " baixa ARQUIVO-ARMAZENAMENTO e armazena-o como um\n" " Nar no arquivo DESTINO" -#: guix/scripts/substitute.scm:949 +#: guix/scripts/substitute.scm:939 #, scheme-format msgid "no valid substitute for '~a'~%" msgstr "nenhum substituto válido para \"~a\"~%" -#: guix/scripts/substitute.scm:956 +#: guix/scripts/substitute.scm:946 #, scheme-format msgid "Downloading ~a...~%" msgstr "Baixando ~a...~%" -#: guix/scripts/substitute.scm:1012 +#: guix/scripts/substitute.scm:1002 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" msgstr "ACL para importações de pacote parece não estar inicializado, substitutos podem estar indisponíveis\n" -#: guix/scripts/substitute.scm:1066 +#: guix/scripts/substitute.scm:1056 #, scheme-format msgid "~a: invalid URI~%" msgstr "~a: URI inválido~%" -#: guix/scripts/substitute.scm:1126 +#: guix/scripts/substitute.scm:1116 #, scheme-format msgid "~a: unrecognized options~%" msgstr "~a: opções desconhecidas~%" @@ -1462,152 +1523,172 @@ msgstr "" msgid "wrong arguments" msgstr "argumentos errados" -#: guix/scripts/system.scm:135 +#: guix/scripts/system.scm:141 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "falha ao registrar \"~a\" sob \"~a\"~%" -#: guix/scripts/system.scm:174 +#: guix/scripts/system.scm:152 +#, scheme-format +msgid "copying to '~a'..." +msgstr "copiando para \"~a\"..." + +#: guix/scripts/system.scm:187 #, scheme-format msgid "failed to install bootloader ~a~%" msgstr "falha ao instalar carregador de inicialização ~a~%" -#: guix/scripts/system.scm:194 +#: guix/scripts/system.scm:207 #, scheme-format msgid "initializing the current root file system~%" msgstr "inicialização do sistema de arquivos raiz atual~%" -#: guix/scripts/system.scm:208 +#: guix/scripts/system.scm:221 #, scheme-format msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" msgstr "execução como não \"root\", então o dono de \"~a\" pode estar incorreto!~%" -#: guix/scripts/system.scm:253 +#: guix/scripts/system.scm:266 #, scheme-format msgid "while talking to shepherd: ~a~%" msgstr "enquanto falava com o shepherd: ~a~%" -#: guix/scripts/system.scm:260 +#: guix/scripts/system.scm:273 #, scheme-format msgid "service '~a' could not be found~%" msgstr "o serviço \"~a\" não pôde ser localizado~%" -#: guix/scripts/system.scm:263 +#: guix/scripts/system.scm:276 #, scheme-format msgid "service '~a' does not have an action '~a'~%" msgstr "o serviço \"~a\" não possui uma ação \"~a\"~%" -#: guix/scripts/system.scm:267 +#: guix/scripts/system.scm:280 #, scheme-format msgid "exception caught while executing '~a' on service '~a':~%" msgstr "exceção encontrada ao executar \"~a\" no serviço \"~a\":~%" -#: guix/scripts/system.scm:275 +#: guix/scripts/system.scm:288 #, scheme-format msgid "something went wrong: ~s~%" msgstr "algo deu errado: ~s~%" -#: guix/scripts/system.scm:278 +#: guix/scripts/system.scm:291 #, scheme-format msgid "shepherd error~%" msgstr "erro do shepherd~%" -#: guix/scripts/system.scm:295 +#: guix/scripts/system.scm:308 #, scheme-format msgid "failed to obtain list of shepherd services~%" msgstr "falha ao obter lista de serviços do shepherd~%" -#: guix/scripts/system.scm:315 +#: guix/scripts/system.scm:328 #, scheme-format msgid "unloading service '~a'...~%" msgstr "descarregando serviço \"~a\"...~%" -#: guix/scripts/system.scm:323 +#: guix/scripts/system.scm:336 #, scheme-format msgid "loading new services:~{ ~a~}...~%" msgstr "carregando novos serviços:~{ ~a~}...~%" -#: guix/scripts/system.scm:347 +#: guix/scripts/system.scm:362 #, scheme-format msgid "activating system...~%" msgstr "ativando sistema...~%" # geração, criação? -#: guix/scripts/system.scm:423 +#: guix/scripts/system.scm:438 #, scheme-format msgid "cannot switch to system generation '~a'~%" msgstr "não foi possível alternar para a geração do sistema \"~a\"~%" -#: guix/scripts/system.scm:494 +#: guix/scripts/system.scm:509 msgid "the DAG of services" msgstr "o DAG de serviços" -#: guix/scripts/system.scm:507 +#: guix/scripts/system.scm:522 msgid "the dependency graph of shepherd services" msgstr "o gráfico de dependência de serviços do shepherd" -#: guix/scripts/system.scm:531 +#: guix/scripts/system.scm:546 #, scheme-format msgid " file name: ~a~%" msgstr " nome de arquivo: ~a~%" -#: guix/scripts/system.scm:532 +#: guix/scripts/system.scm:547 #, scheme-format msgid " canonical file name: ~a~%" msgstr " nome de arquivo canônico: ~a~%" #. TRANSLATORS: Please preserve the two-space indentation. -#: guix/scripts/system.scm:534 +#: guix/scripts/system.scm:549 #, scheme-format msgid " label: ~a~%" msgstr " rótulo: ~a~%" -#: guix/scripts/system.scm:535 +#: guix/scripts/system.scm:550 #, scheme-format msgid " bootloader: ~a~%" msgstr " carregador de inicialização: ~a~%" -#: guix/scripts/system.scm:536 +#: guix/scripts/system.scm:551 #, scheme-format msgid " root device: ~a~%" msgstr " dispositivo raiz: ~a~%" -#: guix/scripts/system.scm:540 +#: guix/scripts/system.scm:555 #, scheme-format msgid " kernel: ~a~%" msgstr " kernel: ~a~%" -#: guix/scripts/system.scm:600 +#: guix/scripts/system.scm:626 +#, scheme-format +msgid "~a: error: device '~a' not found: ~a~%" +msgstr "~a: erro: dispositivo \"~a\" não localizado: ~a~%" + +#: guix/scripts/system.scm:630 +#, scheme-format +msgid "" +"If '~a' is a file system\n" +"label, you need to add @code{(title 'label)} to your @code{file-system}\n" +"definition." +msgstr "" +"Se \"~a\" for um rótulo de sistema de arquivos,\n" +"você precisa adicionar @code{(title 'label)} à sua definição @code{file-system}" + +#: guix/scripts/system.scm:637 #, scheme-format msgid "~a: error: file system with label '~a' not found~%" msgstr "~a: erro: sistema de arquivos com rótulo \"~a\" não localizado~%" -#: guix/scripts/system.scm:606 +#: guix/scripts/system.scm:643 #, scheme-format msgid "~a: error: file system with UUID '~a' not found~%" msgstr "~a: erro: sistema de arquivos com UUID \"~a\" não localizado~%" -#: guix/scripts/system.scm:658 +#: guix/scripts/system.scm:741 #, scheme-format msgid "~a not found: 'guix pull' was never run~%" msgstr "~a não localizado: \"guix pull\" nunca foi executado~%" -#: guix/scripts/system.scm:659 +#: guix/scripts/system.scm:742 #, scheme-format msgid "Consider running 'guix pull' before 'reconfigure'.~%" msgstr "Considere executar \"guix pull\" antes de \"reconfigure\".~%" -#: guix/scripts/system.scm:660 +#: guix/scripts/system.scm:743 #, scheme-format msgid "Failing to do that may downgrade your system!~%" msgstr "Falhar em fazer isso pode fazer um downgrade de seu sistema!~%" -#: guix/scripts/system.scm:767 +#: guix/scripts/system.scm:860 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "inicializando sistema operacional sob \"~a\"...~%" -#: guix/scripts/system.scm:812 +#: guix/scripts/system.scm:905 msgid "" "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n" "Build the operating system declared in FILE according to ACTION.\n" @@ -1617,67 +1698,71 @@ msgstr "" "Compilação do sistema operacional declarado em ARQUIVO de acordo com AÇÃO.\n" "Algumas AÇÕES fornecem suporte adicional a ARGUMENTOS.\n" -#: guix/scripts/system.scm:816 guix/scripts/container.scm:28 +#: guix/scripts/system.scm:909 guix/scripts/container.scm:28 msgid "The valid values for ACTION are:\n" msgstr "Os valores válidos para AÇÃO são:\n" -#: guix/scripts/system.scm:818 +#: guix/scripts/system.scm:911 msgid " search search for existing service types\n" msgstr " search pesquisa por tipos de serviços existentes\n" -#: guix/scripts/system.scm:820 +#: guix/scripts/system.scm:913 msgid " reconfigure switch to a new operating system configuration\n" msgstr " reconfigure alterna para configuração de um novo sistema operacional\n" -#: guix/scripts/system.scm:822 +#: guix/scripts/system.scm:915 msgid " roll-back switch to the previous operating system configuration\n" msgstr " roll-back alterna para a configuração de sistema operacional anterior\n" -#: guix/scripts/system.scm:824 +#: guix/scripts/system.scm:917 msgid " switch-generation switch to an existing operating system configuration\n" msgstr " switch-generation alterna para uma configuração de sistema operacional existente\n" -#: guix/scripts/system.scm:826 +#: guix/scripts/system.scm:919 msgid " list-generations list the system generations\n" msgstr " list-generations lista as gerações do sistema\n" -#: guix/scripts/system.scm:828 +#: guix/scripts/system.scm:921 msgid " build build the operating system without installing anything\n" msgstr " build compila o sistema operacional sem instalador nada\n" -#: guix/scripts/system.scm:830 +#: guix/scripts/system.scm:923 msgid " container build a container that shares the host's store\n" msgstr "" " container compila um contêiner que compartilha o armazenamento\n" " da máquina\n" -#: guix/scripts/system.scm:832 +#: guix/scripts/system.scm:925 msgid " vm build a virtual machine image that shares the host's store\n" msgstr "" " vm compila uma imagem de máquina virtual que compartilha\n" " o armazenamento da máquina\n" -#: guix/scripts/system.scm:834 +#: guix/scripts/system.scm:927 msgid " vm-image build a freestanding virtual machine image\n" msgstr " vm-image compila uma imagem de máquina virtual independente\n" -#: guix/scripts/system.scm:836 +#: guix/scripts/system.scm:929 msgid " disk-image build a disk image, suitable for a USB stick\n" msgstr " disk-image compila uma imagem de disco, adequada para pendrive USB\n" -#: guix/scripts/system.scm:838 +#: guix/scripts/system.scm:931 +msgid " docker-image build a Docker image\n" +msgstr " docker-image compila uma imagem de Docker\n" + +#: guix/scripts/system.scm:933 msgid " init initialize a root file system to run GNU\n" msgstr " init inicializa um sistema de arquivos raiz para executar GNU\n" -#: guix/scripts/system.scm:840 +#: guix/scripts/system.scm:935 msgid " extension-graph emit the service extension graph in Dot format\n" msgstr " extension-graph emite o gráfico da extensão de serviço no formato Dot\n" -#: guix/scripts/system.scm:842 +#: guix/scripts/system.scm:937 msgid " shepherd-graph emit the graph of shepherd services in Dot format\n" msgstr " shepherd-graph emite o gráfico de serviços do shepherd no formato Dot\n" -#: guix/scripts/system.scm:846 +#: guix/scripts/system.scm:941 msgid "" "\n" " -d, --derivation return the derivation of the given system" @@ -1685,7 +1770,17 @@ msgstr "" "\n" " -d, --derivation retorna a derivação do sistema dado" -#: guix/scripts/system.scm:848 +#: guix/scripts/system.scm:943 +msgid "" +"\n" +" -e, --expression=EXPR consider the operating-system EXPR evaluates to\n" +" instead of reading FILE, when applicable" +msgstr "" +"\n" +" -e, --expression=EXPR considera operating-sistem para o qual EXPR avalia\n" +" em vez de ler ARQUIVO, quando aplicável" + +#: guix/scripts/system.scm:946 msgid "" "\n" " --on-error=STRATEGY\n" @@ -1695,7 +1790,7 @@ msgstr "" " --on-error=ESTRATÉGIA\n" " aplica ESTRATÉGIA ao ocorrer um erro ao ler ARQUIVO" -#: guix/scripts/system.scm:851 +#: guix/scripts/system.scm:949 msgid "" "\n" " --file-system-type=TYPE\n" @@ -1707,7 +1802,7 @@ msgstr "" " para \"disk-image\", produz um sistema de arquivos\n" " raiz do TIPO (um entre \"ext4\", \"iso9660\")" -#: guix/scripts/system.scm:855 +#: guix/scripts/system.scm:953 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -1715,7 +1810,7 @@ msgstr "" "\n" " --image-size=TAM para \"vm-image\", produz uma imagem de TAM" -#: guix/scripts/system.scm:857 +#: guix/scripts/system.scm:955 msgid "" "\n" " --no-bootloader for 'init', do not install a bootloader" @@ -1723,7 +1818,7 @@ msgstr "" "\n" " --no-bootloader para \"init\", não instala um carregador de inic." -#: guix/scripts/system.scm:859 +#: guix/scripts/system.scm:957 msgid "" "\n" " --share=SPEC for 'vm', share host file system according to SPEC" @@ -1732,7 +1827,7 @@ msgstr "" " --share=ESPEC para \"vm\", compartilha o sistema de arquivos do\n" " hospedeiro de acordo com ESPEC" -#: guix/scripts/system.scm:861 +#: guix/scripts/system.scm:959 msgid "" "\n" " -r, --root=FILE for 'vm', 'vm-image', 'disk-image', 'container',\n" @@ -1745,7 +1840,7 @@ msgstr "" " o resultado e o registra, como um coletor de lixo\n" " central" -#: guix/scripts/system.scm:865 +#: guix/scripts/system.scm:963 msgid "" "\n" " --expose=SPEC for 'vm', expose host file system according to SPEC" @@ -1754,7 +1849,7 @@ msgstr "" " --expose=ESPEC para \"vm\", expõe o sistema de arquivos do\n" " hospedeiro de acordo com ESPEC" -#: guix/scripts/system.scm:867 +#: guix/scripts/system.scm:965 msgid "" "\n" " --full-boot for 'vm', make a full boot sequence" @@ -1763,49 +1858,63 @@ msgstr "" " --full-boot para \"vm\", faz uma sequência completa de\n" " inicialização" -#: guix/scripts/system.scm:959 -#, scheme-format -msgid "no configuration file specified~%" -msgstr "nenhum arquivo de configuração especificado~%" +#: guix/scripts/system.scm:967 +msgid "" +"\n" +" --skip-checks skip file system and initrd module safety checks" +msgstr "" +"\n" +" --skip-checks ignora verificações de segurança do sistema de\n" +" arquivos e de módulo de initrd" -#: guix/scripts/system.scm:1057 +#: guix/scripts/system.scm:1066 +#, scheme-format +msgid "both file and expression cannot be specified~%" +msgstr "não podem ser especificados arquivo e expressão~%" + +#: guix/scripts/system.scm:1073 +#, scheme-format +msgid "no configuration specified~%" +msgstr "nenhuma configuração especificada~%" + +#: guix/scripts/system.scm:1173 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: ação desconhecida~%" -#: guix/scripts/system.scm:1072 +#: guix/scripts/system.scm:1189 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "número errado de argumentos para a ação \"~a\"~%" -#: guix/scripts/system.scm:1077 +#: guix/scripts/system.scm:1194 #, scheme-format msgid "guix system: missing command name~%" msgstr "guix system: faltando um nome de comando~%" -#: guix/scripts/system.scm:1079 +#: guix/scripts/system.scm:1196 #, scheme-format msgid "Try 'guix system --help' for more information.~%" msgstr "Tente \"guix system --help\" para mais informações.~%" -#: guix/scripts/system/search.scm:64 guix/ui.scm:1057 guix/ui.scm:1071 +#: guix/scripts/system/search.scm:64 guix/ui.scm:1112 guix/ui.scm:1126 msgid "unknown" msgstr "desconhecido" -#: guix/scripts/lint.scm:138 +#: guix/scripts/lint.scm:139 #, scheme-format msgid "Available checkers:~%" msgstr "Verificadores disponíveis:~%" -#: guix/scripts/lint.scm:162 +#: guix/scripts/lint.scm:163 msgid "description should not be empty" msgstr "a descrição deve não estar vazia" -#: guix/scripts/lint.scm:172 +#: guix/scripts/lint.scm:173 msgid "Texinfo markup in description is invalid" msgstr "a marcação Texinfo na descrição é inválida" -#: guix/scripts/lint.scm:182 +#: guix/scripts/lint.scm:183 #, scheme-format msgid "" "description should not contain ~\n" @@ -1816,15 +1925,15 @@ msgstr "" #. TRANSLATORS: '@code' is Texinfo markup and must be kept #. as is. -#: guix/scripts/lint.scm:195 +#: guix/scripts/lint.scm:196 msgid "use @code or similar ornament instead of quotes" msgstr "use @code ou ornamento similar em vez de aspas" -#: guix/scripts/lint.scm:202 +#: guix/scripts/lint.scm:203 msgid "description should start with an upper-case letter or digit" msgstr "a descrição deve iniciar com uma letra maiúscula ou dígito" -#: guix/scripts/lint.scm:218 +#: guix/scripts/lint.scm:219 #, scheme-format msgid "" "sentences in description should be followed ~\n" @@ -1833,256 +1942,261 @@ msgstr "" "sentenças nas descrição devem ser seguidas ~\n" "por dois espaços; possível infração~p em ~{~a~^, ~}" -#: guix/scripts/lint.scm:236 +#: guix/scripts/lint.scm:237 #, scheme-format msgid "invalid description: ~s" msgstr "a descrição inválida: ~s" -#: guix/scripts/lint.scm:281 +#: guix/scripts/lint.scm:282 #, scheme-format msgid "'~a' should probably be a native input" msgstr "\"~a\" provavelmente é uma entrada nativa" -#: guix/scripts/lint.scm:297 +#: guix/scripts/lint.scm:298 #, scheme-format msgid "'~a' should probably not be an input at all" msgstr "\"~a\" provavelmente deve não ser uma entrada" -#: guix/scripts/lint.scm:314 +#: guix/scripts/lint.scm:315 msgid "synopsis should not be empty" msgstr "a sinopse deve não estar vazia" -#: guix/scripts/lint.scm:322 +#: guix/scripts/lint.scm:323 msgid "no period allowed at the end of the synopsis" msgstr "nenhum ponto permitido ao final da sinopse" -#: guix/scripts/lint.scm:334 +#: guix/scripts/lint.scm:335 msgid "no article allowed at the beginning of the synopsis" msgstr "nenhum artigo permitido no início da sinopse" -#: guix/scripts/lint.scm:341 +#: guix/scripts/lint.scm:342 msgid "synopsis should be less than 80 characters long" msgstr "a sinopse deve ser menor que 80 caracteres" -#: guix/scripts/lint.scm:347 +#: guix/scripts/lint.scm:348 msgid "synopsis should start with an upper-case letter or digit" msgstr "a sinopse deve iniciar com uma letra maiúscula ou dígito" -#: guix/scripts/lint.scm:354 +#: guix/scripts/lint.scm:355 msgid "synopsis should not start with the package name" msgstr "a sinopse deve não iniciar com o nome do pacote" -#: guix/scripts/lint.scm:364 +#: guix/scripts/lint.scm:365 msgid "Texinfo markup in synopsis is invalid" msgstr "Marcação Texinfo na sinopse é inválida" -#: guix/scripts/lint.scm:383 +#: guix/scripts/lint.scm:384 #, scheme-format msgid "invalid synopsis: ~s" msgstr "sinopse inválida: ~s" -#: guix/scripts/lint.scm:502 +#: guix/scripts/lint.scm:503 #, scheme-format msgid "URI ~a returned suspiciously small file (~a bytes)" msgstr "a URI ~a retornou um arquivo suspeitosamente pequeno (~a bytes)" -#: guix/scripts/lint.scm:512 +#: guix/scripts/lint.scm:513 #, scheme-format msgid "permanent redirect from ~a to ~a" msgstr "redirecionamento permanente de ~a para ~a" -#: guix/scripts/lint.scm:519 +#: guix/scripts/lint.scm:520 #, scheme-format msgid "invalid permanent redirect from ~a" msgstr "redirecionamento permanente inválido de ~a" -#: guix/scripts/lint.scm:526 guix/scripts/lint.scm:538 +#: guix/scripts/lint.scm:527 guix/scripts/lint.scm:539 #, scheme-format msgid "URI ~a not reachable: ~a (~s)" msgstr "a URI ~a não é alcançável: ~a (~s)" -#: guix/scripts/lint.scm:545 +#: guix/scripts/lint.scm:546 #, scheme-format msgid "URI ~a domain not found: ~a" msgstr "o domínio da URI ~a não foi localizado: ~a" -#: guix/scripts/lint.scm:553 +#: guix/scripts/lint.scm:554 #, scheme-format msgid "URI ~a unreachable: ~a" msgstr "URI ~a inalcançável: ~a" -#: guix/scripts/lint.scm:562 +#: guix/scripts/lint.scm:563 #, scheme-format msgid "TLS certificate error: ~a" msgstr "erro de certificado TLS: ~a" -#: guix/scripts/lint.scm:583 +#: guix/scripts/lint.scm:584 msgid "invalid value for home page" msgstr "valor inválido para página inicial" -#: guix/scripts/lint.scm:586 +#: guix/scripts/lint.scm:587 #, scheme-format msgid "invalid home page URL: ~s" msgstr "URL de página inicial inválida: ~s" -#: guix/scripts/lint.scm:606 +#: guix/scripts/lint.scm:613 msgid "file names of patches should start with the package name" msgstr "nomes de arquivos de patches devem iniciar com o nome do pacote" -#: guix/scripts/lint.scm:644 +#: guix/scripts/lint.scm:629 +#, scheme-format +msgid "~a: file name is too long" +msgstr "~a: o nome de arquivo é longo demais" + +#: guix/scripts/lint.scm:670 #, scheme-format msgid "~a: ~a: proposed synopsis: ~s~%" msgstr "~a: ~a: sinopse proposta: ~s~%" -#: guix/scripts/lint.scm:657 +#: guix/scripts/lint.scm:683 #, scheme-format msgid "~a: ~a: proposed description:~% \"~a\"~%" msgstr "~a: ~a: descrição proposta:~% \"~a\"~%" -#: guix/scripts/lint.scm:699 +#: guix/scripts/lint.scm:725 msgid "all the source URIs are unreachable:" msgstr "todas as URIs fontes estão inalcançáveis:" -#: guix/scripts/lint.scm:721 +#: guix/scripts/lint.scm:747 msgid "the source file name should contain the package name" msgstr "o nome de arquivo fonte deve conter o nome do pacote" -#: guix/scripts/lint.scm:737 +#: guix/scripts/lint.scm:763 #, scheme-format msgid "URL should be 'mirror://~a/~a'" msgstr "a URL deve ser \"mirror://~a/~a\"" -#: guix/scripts/lint.scm:755 guix/scripts/lint.scm:759 +#: guix/scripts/lint.scm:781 guix/scripts/lint.scm:785 #, scheme-format msgid "failed to create derivation: ~a" msgstr "falha ao criar a derivação: ~a" -#: guix/scripts/lint.scm:773 +#: guix/scripts/lint.scm:799 #, scheme-format msgid "failed to create derivation: ~s~%" msgstr "falha ao criar a derivação: ~s~%" -#: guix/scripts/lint.scm:783 +#: guix/scripts/lint.scm:809 msgid "invalid license field" msgstr "campo de licença inválido" -#: guix/scripts/lint.scm:799 +#: guix/scripts/lint.scm:825 #, scheme-format msgid "~a: HTTP GET error for ~a: ~a (~s)~%" msgstr "~a: erro HTTP GET para ~a: ~a (~s)~%" -#: guix/scripts/lint.scm:809 +#: guix/scripts/lint.scm:835 #, scheme-format msgid "~a: host lookup failure: ~a~%" msgstr "~a: falha ao procurar o host: ~a~%" -#: guix/scripts/lint.scm:814 +#: guix/scripts/lint.scm:840 #, scheme-format msgid "~a: TLS certificate error: ~a" msgstr "~a: erro de certificado TLS: ~a" -#: guix/scripts/lint.scm:829 +#: guix/scripts/lint.scm:855 msgid "while retrieving CVE vulnerabilities" msgstr "ao obter vulnerabilidades CVE" -#: guix/scripts/lint.scm:866 +#: guix/scripts/lint.scm:898 #, scheme-format msgid "probably vulnerable to ~a" msgstr "provavelmente vulnerável a ~a" -#: guix/scripts/lint.scm:873 +#: guix/scripts/lint.scm:905 #, scheme-format msgid "while retrieving upstream info for '~a'" msgstr "ao obter informações do upstream para \"~a\"" -#: guix/scripts/lint.scm:881 +#: guix/scripts/lint.scm:913 #, scheme-format msgid "can be upgraded to ~a" msgstr "pode ser atualizado para ~a" -#: guix/scripts/lint.scm:896 +#: guix/scripts/lint.scm:928 #, scheme-format msgid "tabulation on line ~a, column ~a" msgstr "tabulação na linha ~a, coluna ~a" -#: guix/scripts/lint.scm:905 +#: guix/scripts/lint.scm:937 #, scheme-format msgid "trailing white space on line ~a" msgstr "espaço ao final da linha ~a" -#: guix/scripts/lint.scm:915 +#: guix/scripts/lint.scm:947 #, scheme-format msgid "line ~a is way too long (~a characters)" msgstr "a linha ~a está grande demais (~a caracteres)" -#: guix/scripts/lint.scm:926 +#: guix/scripts/lint.scm:958 #, scheme-format msgid "line ~a: parentheses feel lonely, move to the previous or next line" msgstr "linha ~a: parênteses está solitário, mova-o para a linha anterior ou a seguinte" -#: guix/scripts/lint.scm:996 +#: guix/scripts/lint.scm:1028 msgid "Validate package descriptions" msgstr "Valida descrições dos pacotes" -#: guix/scripts/lint.scm:1000 +#: guix/scripts/lint.scm:1032 msgid "Validate synopsis & description of GNU packages" msgstr "Valida sinopse & descrição de pacotes GNU" -#: guix/scripts/lint.scm:1004 +#: guix/scripts/lint.scm:1036 msgid "Identify inputs that should be native inputs" msgstr "Identifica entradas que devem ser nativas" -#: guix/scripts/lint.scm:1008 +#: guix/scripts/lint.scm:1040 msgid "Identify inputs that should be inputs at all" msgstr "Identifica entradas que devem ser entradas" -#: guix/scripts/lint.scm:1012 +#: guix/scripts/lint.scm:1044 msgid "Validate file names and availability of patches" msgstr "Valida nomes de arquivos e disponibilidade de patches" -#: guix/scripts/lint.scm:1016 +#: guix/scripts/lint.scm:1048 msgid "Validate home-page URLs" msgstr "Valida URLs de site" #. TRANSLATORS: is the name of a data type and must not be #. translated. -#: guix/scripts/lint.scm:1022 +#: guix/scripts/lint.scm:1054 msgid "Make sure the 'license' field is a or a list thereof" msgstr "Certifica que o campo \"license\" é um ou uma lista disto" -#: guix/scripts/lint.scm:1027 +#: guix/scripts/lint.scm:1059 msgid "Validate source URLs" msgstr "Valida URLs fonte" -#: guix/scripts/lint.scm:1031 +#: guix/scripts/lint.scm:1063 msgid "Suggest 'mirror://' URLs" msgstr "Sugere URLs \"mirror://\"" -#: guix/scripts/lint.scm:1035 +#: guix/scripts/lint.scm:1067 msgid "Validate file names of sources" msgstr "Valida nomes de arquivos dos fontes" -#: guix/scripts/lint.scm:1039 +#: guix/scripts/lint.scm:1071 msgid "Report failure to compile a package to a derivation" msgstr "Relata falha ao compilar um pacote para uma derivação" -#: guix/scripts/lint.scm:1043 +#: guix/scripts/lint.scm:1075 msgid "Validate package synopses" msgstr "Valida sinopses do pacotes" -#: guix/scripts/lint.scm:1047 +#: guix/scripts/lint.scm:1079 msgid "Check the Common Vulnerabilities and Exposures (CVE) database" msgstr "Verifica o banco de dados de Vulnerabilidades e Exposições Comuns (CVE)" -#: guix/scripts/lint.scm:1052 +#: guix/scripts/lint.scm:1084 msgid "Check the package for new upstream releases" msgstr "Verifica o pacote por novos lançamentos do upstream" -#: guix/scripts/lint.scm:1056 +#: guix/scripts/lint.scm:1088 msgid "Look for formatting issues in the source" msgstr "Procura por problemas de formatação no fonte" -#: guix/scripts/lint.scm:1084 +#: guix/scripts/lint.scm:1116 msgid "" "Usage: guix lint [OPTION]... [PACKAGE]...\n" "Run a set of checkers on the specified package; if none is specified,\n" @@ -2092,7 +2206,7 @@ msgstr "" "Executa uma série de verificadores no pacote especificado; se nenhum\n" "for especificado, executa-os em todos pacote.\n" -#: guix/scripts/lint.scm:1087 +#: guix/scripts/lint.scm:1119 msgid "" "\n" " -c, --checkers=CHECKER1,CHECKER2...\n" @@ -2102,7 +2216,7 @@ msgstr "" " -c, --checkers=CHECKER1,CHECKER2...\n" " executa apenas os verificadores especificados" -#: guix/scripts/lint.scm:1092 +#: guix/scripts/lint.scm:1124 msgid "" "\n" " -l, --list-checkers display the list of available lint checkers" @@ -2110,7 +2224,7 @@ msgstr "" "\n" " -l, --list-checkers exibe a lista de verificações lint disponíveis" -#: guix/scripts/lint.scm:1112 +#: guix/scripts/lint.scm:1144 #, scheme-format msgid "~a: invalid checker~%" msgstr "~a: verificador inválido~%" @@ -2235,17 +2349,17 @@ msgstr "suporte a zlib está faltando; compressão desabilitada~%" msgid "~a: invalid duration~%" msgstr "~a: duração inválida~%" -#: guix/scripts/publish.scm:832 +#: guix/scripts/publish.scm:869 #, scheme-format msgid "user '~a' not found: ~a~%" msgstr "usuário \"~a\" não localizado: ~a~%" -#: guix/scripts/publish.scm:873 +#: guix/scripts/publish.scm:910 #, scheme-format msgid "server running as root; consider using the '--user' option!~%" msgstr "servidor executado como root; considere usar a opção \"--user\"!~%" -#: guix/scripts/publish.scm:878 +#: guix/scripts/publish.scm:915 #, scheme-format msgid "publishing ~a on ~a, port ~d~%" msgstr "publicando ~a em ~a, porta ~d~%" @@ -2344,77 +2458,81 @@ msgstr "~a: chave de ordenação inválida~%" msgid "missing store item argument\n" msgstr "faltando argumento de item do armazenamento\n" -#: guix/scripts/graph.scm:84 +#: guix/scripts/graph.scm:87 #, scheme-format msgid "~a: invalid argument (package name expected)" msgstr "~a: argumento inválido (esperava-se nome de pacote)" -#: guix/scripts/graph.scm:95 +#: guix/scripts/graph.scm:98 msgid "the DAG of packages, excluding implicit inputs" msgstr "o DAG dos pacotes, excluindo entradas implícitas" -#: guix/scripts/graph.scm:121 +#: guix/scripts/graph.scm:124 msgid "the reverse DAG of packages" msgstr "o DAG reverso de pacotes" -#: guix/scripts/graph.scm:171 +#: guix/scripts/graph.scm:174 msgid "the DAG of packages, including implicit inputs" msgstr "o DAG dos pacotes, incluindo entradas implícitas" -#: guix/scripts/graph.scm:181 +#: guix/scripts/graph.scm:184 msgid "the DAG of packages and origins, including implicit inputs" msgstr "o DAG dos pacotes e origens, incluindo entradas implícitas" -#: guix/scripts/graph.scm:211 +#: guix/scripts/graph.scm:214 msgid "same as 'bag', but without the bootstrap nodes" msgstr "mesmo que \"bag\", mas sem o nós de inicialização" -#: guix/scripts/graph.scm:253 +#: guix/scripts/graph.scm:256 msgid "the DAG of derivations" msgstr "o DAG de derivações" -#: guix/scripts/graph.scm:265 +#: guix/scripts/graph.scm:268 msgid "unsupported argument for derivation graph" msgstr "sem suporte ao argumento para gráfico de derivação" -#: guix/scripts/graph.scm:291 +#: guix/scripts/graph.scm:294 msgid "unsupported argument for this type of graph" msgstr "sem suporte ao argumento para esse tipo de gráfico" -#: guix/scripts/graph.scm:304 +#: guix/scripts/graph.scm:307 #, scheme-format msgid "references for '~a' are not known~%" msgstr "referências para \"~a\" não são conhecidas~%" -#: guix/scripts/graph.scm:311 +#: guix/scripts/graph.scm:314 msgid "the DAG of run-time dependencies (store references)" msgstr "o DAG de dependências de tempo real (referências de armazenamento)" -#: guix/scripts/graph.scm:327 +#: guix/scripts/graph.scm:330 msgid "the DAG of referrers in the store" msgstr "o DAG de referências no armazenamento" -#: guix/scripts/graph.scm:354 +#: guix/scripts/graph.scm:360 +msgid "the graph of package modules" +msgstr "o gráfico dos módulos de pacote" + +#: guix/scripts/graph.scm:388 #, scheme-format msgid "~a: unknown node type~%" msgstr "~a: tipo de nó desconhecido~%" -#: guix/scripts/graph.scm:361 +#: guix/scripts/graph.scm:395 #, scheme-format msgid "~a: unknown backend~%" msgstr "~a: backend desconhecido~%" -#: guix/scripts/graph.scm:365 +#: guix/scripts/graph.scm:399 msgid "The available node types are:\n" msgstr "Os tipos de nós disponíveis são:\n" -#: guix/scripts/graph.scm:375 +#: guix/scripts/graph.scm:409 msgid "The available backend types are:\n" msgstr "Os tipos de backends disponíveis são:\n" #. TRANSLATORS: Here 'dot' is the name of a program; it must not be #. translated. -#: guix/scripts/graph.scm:419 +#: guix/scripts/graph.scm:453 msgid "" "Usage: guix graph PACKAGE...\n" "Emit a representation of the dependency graph of PACKAGE...\n" @@ -2422,7 +2540,7 @@ msgstr "" "Uso: guix graph PACOTE...\n" "Emite uma representação do gráfico de dependências do PACOTE...\n" -#: guix/scripts/graph.scm:421 +#: guix/scripts/graph.scm:455 msgid "" "\n" " -b, --backend=TYPE produce a graph with the given backend TYPE" @@ -2430,7 +2548,7 @@ msgstr "" "\n" " -b, --backend=TIPO produz um grafo com backend do TIPO" -#: guix/scripts/graph.scm:423 +#: guix/scripts/graph.scm:457 msgid "" "\n" " --list-backends list the available graph backends" @@ -2438,7 +2556,7 @@ msgstr "" "\n" " --list-backends lista os backends de gráficos disponíveis" -#: guix/scripts/graph.scm:425 +#: guix/scripts/graph.scm:459 msgid "" "\n" " -t, --type=TYPE represent nodes of the given TYPE" @@ -2446,7 +2564,7 @@ msgstr "" "\n" " -t, --type=TIPO representa nós do TIPO dado" -#: guix/scripts/graph.scm:427 +#: guix/scripts/graph.scm:461 msgid "" "\n" " --list-types list the available graph types" @@ -2454,7 +2572,7 @@ msgstr "" "\n" " --list-types lista os tipos de gráficos disponíveis" -#: guix/scripts/graph.scm:429 guix/scripts/pack.scm:336 +#: guix/scripts/graph.scm:463 guix/scripts/pack.scm:355 msgid "" "\n" " -e, --expression=EXPR consider the package EXPR evaluates to" @@ -2573,22 +2691,22 @@ msgstr "" "\n" " --from=MÁQUINA recebe ITENS da MÁQUINA" -#: guix/scripts/copy.scm:168 +#: guix/scripts/copy.scm:169 #, scheme-format msgid "use '--to' or '--from'~%" msgstr "use \"--to\" ou \"--from\"~%" -#: guix/scripts/pack.scm:76 +#: guix/scripts/pack.scm:85 #, scheme-format msgid "~a: compressor not found~%" msgstr "~a: compressor não encontrado~%" -#: guix/scripts/pack.scm:318 +#: guix/scripts/pack.scm:334 #, scheme-format msgid "~a: invalid symlink specification~%" msgstr "~a: especificação de link simbólico inválida~%" -#: guix/scripts/pack.scm:328 +#: guix/scripts/pack.scm:347 msgid "" "Usage: guix pack [OPTION]... PACKAGE...\n" "Create a bundle of PACKAGE.\n" @@ -2596,7 +2714,7 @@ msgstr "" "Uso: guix pack [OPÇÃO]... PACOTE...\n" "Cria um pacote de PACOTE.\n" -#: guix/scripts/pack.scm:334 +#: guix/scripts/pack.scm:353 msgid "" "\n" " -f, --format=FORMAT build a pack in the given FORMAT" @@ -2604,7 +2722,7 @@ msgstr "" "\n" " -f, --format=FORMATO compila um pacote no FORMATO dado" -#: guix/scripts/pack.scm:342 +#: guix/scripts/pack.scm:361 msgid "" "\n" " -C, --compression=TOOL compress using TOOL--e.g., \"lzip\"" @@ -2613,7 +2731,7 @@ msgstr "" " -C, --compression=FERRAMENTA\n" " comprime usando FERRAMENTA--ex. \"lzip\"" -#: guix/scripts/pack.scm:344 +#: guix/scripts/pack.scm:363 msgid "" "\n" " -S, --symlink=SPEC create symlinks to the profile according to SPEC" @@ -2621,7 +2739,15 @@ msgstr "" "\n" " -S, --symlink=ESPEC cria link simbólicos para o perfil conforme ESPEC" -#: guix/scripts/pack.scm:346 +#: guix/scripts/pack.scm:365 +msgid "" +"\n" +" -m, --manifest=FILE create a pack with the manifest from FILE" +msgstr "" +"\n" +" -m, --manifest=ARQUIVO cria um pacote com o manifesto do ARQUIVO" + +#: guix/scripts/pack.scm:367 msgid "" "\n" " --localstatedir include /var/guix in the resulting pack" @@ -2629,49 +2755,100 @@ msgstr "" "\n" " --localstatedir inclui /var/guix no pacote resultante" -#: guix/scripts/pack.scm:390 +#: guix/scripts/pack.scm:369 +msgid "" +"\n" +" --bootstrap use the bootstrap binaries to build the pack" +msgstr "" +"\n" +" --bootstrap usa os executáveis de inicialização para compilar\n" +" o pacote" + +#: guix/scripts/pack.scm:405 +#, scheme-format +msgid "both a manifest and a package list were given~%" +msgstr "foram especificados um manifesto e uma lista de pacote~%" + +#: guix/scripts/pack.scm:429 #, scheme-format msgid "~a: unknown pack format" msgstr "~a: formato de pacote desconhecido" -#: guix/scripts/weather.scm:74 +#: guix/scripts/weather.scm:72 msgid "computing ~h package derivations for ~a...~%" msgstr "computando ~h derivações de pacote para ~a...~%" -#: guix/scripts/weather.scm:110 +#: guix/scripts/weather.scm:161 msgid "looking for ~h store items on ~a...~%" msgstr "procurando por ~h itens de armazenamento em ~a…~%" -#: guix/scripts/weather.scm:120 +#: guix/scripts/weather.scm:173 msgid " ~2,1f% substitutes available (~h out of ~h)~%" msgstr " ~2,1f% substitutos disponíveis (~h de ~h)~%" -#: guix/scripts/weather.scm:126 +#: guix/scripts/weather.scm:179 #, scheme-format msgid " unknown substitute sizes~%" msgstr " tamanhos de substituto desconhecido~%" -#: guix/scripts/weather.scm:129 +#: guix/scripts/weather.scm:182 msgid " ~,1h MiB of nars (compressed)~%" msgstr " ~,1h MiB de nars (comprimidos)~%" -#: guix/scripts/weather.scm:130 +#: guix/scripts/weather.scm:183 msgid " at least ~,1h MiB of nars (compressed)~%" msgstr " pelo menos ~,1h MiB de nars (comprimidos)~%" -#: guix/scripts/weather.scm:132 +#: guix/scripts/weather.scm:185 msgid " ~,1h MiB on disk (uncompressed)~%" msgstr " ~,1h MiB no disco (comprimidos)~%" -#: guix/scripts/weather.scm:134 +#: guix/scripts/weather.scm:187 msgid " ~,3h seconds per request (~,1h seconds in total)~%" msgstr " ~,3h segundos por requisição (~,1h segundos no total)~%" -#: guix/scripts/weather.scm:136 +#: guix/scripts/weather.scm:189 msgid " ~,1h requests per second~%" msgstr " ~,1h requisições por segundo~%" -#: guix/scripts/weather.scm:145 +#: guix/scripts/weather.scm:195 +#, scheme-format +msgid " (continuous integration information unavailable)~%" +msgstr " (informações de integração contínua indisponíveis)~%" + +#: guix/scripts/weather.scm:198 +#, scheme-format +msgid " '~a' returned ~a (~s)~%" +msgstr " \"~a\" retornou ~a (~s)~%" + +#: guix/scripts/weather.scm:215 +msgid " ~,1f% (~h out of ~h) of the missing items are queued~%" +msgstr " ~,1f% (~h de ~h) dos itens faltando estão enfileirados~%" + +#: guix/scripts/weather.scm:221 +msgid " at least ~h queued builds~%" +msgstr " pelo menos ~h compilações enfileiradas~%" + +#: guix/scripts/weather.scm:222 +msgid " ~h queued builds~%" +msgstr " ~h compilações enfileiradas~%" + +#: guix/scripts/weather.scm:225 +#, scheme-format +msgid " ~a: ~a (~0,1f%)~%" +msgstr " ~a: ~a (~0,1f%)~%" + +#: guix/scripts/weather.scm:231 +#, scheme-format +msgid " build rate: ~1,2f builds per hour~%" +msgstr " taxa de compilação: ~1,2f compilações por hora~%" + +#: guix/scripts/weather.scm:235 +#, scheme-format +msgid " ~a: ~,2f builds per hour~%" +msgstr " ~a: ~,2f compilações por hora~%" + +#: guix/scripts/weather.scm:247 msgid "" "Usage: guix weather [OPTIONS]\n" "Report the availability of substitutes.\n" @@ -2679,7 +2856,7 @@ msgstr "" "Uso: guix weather [OPÇÕES]\n" "Relata a disponibilidade de substitutos.\n" -#: guix/scripts/weather.scm:147 +#: guix/scripts/weather.scm:249 msgid "" "\n" " --substitute-urls=URLS\n" @@ -2689,7 +2866,7 @@ msgstr "" " --substitute-urls=URLS\n" " verifica por substitutos disponíveis nas URLS" -#: guix/scripts/weather.scm:150 +#: guix/scripts/weather.scm:252 msgid "" "\n" " -m, --manifest=MANIFEST\n" @@ -2700,7 +2877,7 @@ msgstr "" " procura substitutos para os pacotes especificados\n" " no MANIFESTO" -#: guix/scripts/weather.scm:153 +#: guix/scripts/weather.scm:255 msgid "" "\n" " -s, --system=SYSTEM consider substitutes for SYSTEM--e.g., \"i686-linux\"" @@ -2708,28 +2885,28 @@ msgstr "" "\n" " -s, --system=SISTEMA considera substitutos para SISTEMA--ex.: \"i686-linux\"" -#: guix/scripts/weather.scm:177 +#: guix/scripts/weather.scm:279 #, scheme-format msgid "~a: invalid URL~%" msgstr "~a: URL inválido~%" -#: guix/gnu-maintenance.scm:567 +#: guix/gnu-maintenance.scm:570 msgid "Updater for GNU packages" msgstr "Atualizador para pacotes GNU" -#: guix/gnu-maintenance.scm:576 +#: guix/gnu-maintenance.scm:579 msgid "Updater for GNU packages only available via FTP" msgstr "Atualizador para pacotes GNU só disponíveis via FTP" -#: guix/gnu-maintenance.scm:585 +#: guix/gnu-maintenance.scm:588 msgid "Updater for KDE packages" msgstr "Atualizador para pacotes KDE" -#: guix/gnu-maintenance.scm:592 +#: guix/gnu-maintenance.scm:595 msgid "Updater for X.org packages" msgstr "Atualizador para pacotes X.org" -#: guix/gnu-maintenance.scm:599 +#: guix/gnu-maintenance.scm:602 msgid "Updater for packages hosted on kernel.org" msgstr "Atualizador para pacotes hospedados no kernel.org" @@ -2788,85 +2965,85 @@ msgstr "processo inexistente ~d~%" msgid "exec failed with status ~d~%" msgstr "execução falhou com status ~d~%" -#: guix/upstream.scm:249 +#: guix/upstream.scm:250 #, scheme-format msgid "signature verification failed for `~a'~%" msgstr "verificação de assinatura falhou para \"~a\"~%" -#: guix/upstream.scm:251 +#: guix/upstream.scm:252 #, scheme-format msgid "(could be because the public key is not in your keyring)~%" msgstr "(pode ser porque a chave pública não está no seu chaveiro)~%" -#: guix/upstream.scm:330 +#: guix/upstream.scm:337 #, scheme-format msgid "~a: could not locate source file" msgstr "~a: não foi possível localizar um arquivo fonte" -#: guix/upstream.scm:335 +#: guix/upstream.scm:342 #, scheme-format msgid "~a: ~a: no `version' field in source; skipping~%" msgstr "~a: ~a: sem o campo \"version\" no fonte; ignorando~%" -#: guix/ui.scm:159 +#: guix/ui.scm:161 #, scheme-format msgid "~a: unbound variable" msgstr "~a: variável não vinculada" -#: guix/ui.scm:235 +#: guix/ui.scm:253 msgid "entering debugger; type ',bt' for a backtrace\n" msgstr "entrando no depurador; digite \",bt\" para o \"backtrace\"\n" -#: guix/ui.scm:284 +#: guix/ui.scm:302 #, scheme-format msgid "hint: ~a~%" msgstr "dica: ~a~%" -#: guix/ui.scm:294 guix/ui.scm:342 guix/ui.scm:349 +#: guix/ui.scm:314 guix/ui.scm:362 guix/ui.scm:369 #, scheme-format msgid "failed to load '~a': ~a~%" msgstr "falha ao carregar \"~a\": ~a~%" -#: guix/ui.scm:301 +#: guix/ui.scm:321 #, scheme-format msgid "~amissing closing parenthesis~%" msgstr "~afaltando parêntese de fechamento~%" -#: guix/ui.scm:306 guix/ui.scm:322 guix/ui.scm:596 +#: guix/ui.scm:326 guix/ui.scm:342 guix/ui.scm:642 #, scheme-format msgid "~a: error: ~a~%" msgstr "~a: erro: ~a~%" -#: guix/ui.scm:314 +#: guix/ui.scm:334 msgid "Did you forget a @code{use-modules} form?" msgstr "Você se esqueceu de uma forma @code{use-modules}?" -#: guix/ui.scm:316 +#: guix/ui.scm:336 #, scheme-format -msgid "Try adding @code{(use-modules ~a)}." -msgstr "Tente adicionar @code{(use-modules ~a)}." +msgid "Did you forget @code{(use-modules ~a)}?" +msgstr "Você se esqueceu de @code{(use-modules ~a)}?" -#: guix/ui.scm:329 guix/ui.scm:657 +#: guix/ui.scm:349 guix/ui.scm:712 #, scheme-format msgid "exception thrown: ~s~%" msgstr "excepção lançada: ~s~%" -#: guix/ui.scm:333 guix/ui.scm:355 +#: guix/ui.scm:353 guix/ui.scm:375 #, scheme-format msgid "failed to load '~a':~%" msgstr "falha ao carregar \"~a\":~%" -#: guix/ui.scm:345 +#: guix/ui.scm:365 #, scheme-format msgid "~a: warning: ~a~%" msgstr "~a: aviso: ~a~%" -#: guix/ui.scm:352 +#: guix/ui.scm:372 #, scheme-format msgid "failed to load '~a': exception thrown: ~s~%" msgstr "falha ao carregar \"~a\": exceção lançada: ~s~%" -#: guix/ui.scm:364 +#: guix/ui.scm:384 #, scheme-format msgid "failed to install locale: ~a~%" msgstr "falha ao instalar localidade: ~a~%" @@ -2874,15 +3051,15 @@ msgstr "falha ao instalar localidade: ~a~%" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. */ -#: guix/ui.scm:394 +#: guix/ui.scm:414 msgid "(C)" msgstr "(C)" -#: guix/ui.scm:395 +#: guix/ui.scm:415 msgid "the Guix authors\n" msgstr "os autores do Guix\n" -#: guix/ui.scm:396 +#: guix/ui.scm:416 msgid "" "License GPLv3+: GNU GPL version 3 or later \n" "This is free software: you are free to change and redistribute it.\n" @@ -2896,7 +3073,7 @@ msgstr "" #. package. Please add another line saying "Report translation bugs to #. ...\n" with the address for translation bugs (typically your translation #. team's web or email address). -#: guix/ui.scm:408 +#: guix/ui.scm:428 #, scheme-format msgid "" "\n" @@ -2906,7 +3083,7 @@ msgstr "" "Relate erros para: ~a.\n" "Relate erros de tradução para: ldpbr-translation@lists.sourceforge.net." -#: guix/ui.scm:410 +#: guix/ui.scm:430 #, scheme-format msgid "" "\n" @@ -2915,7 +3092,7 @@ msgstr "" "\n" "Site do ~a: <~a>" -#: guix/ui.scm:412 +#: guix/ui.scm:432 msgid "" "\n" "General help using GNU software: " @@ -2923,131 +3100,149 @@ msgstr "" "\n" "Ajuda em geral usando softwares GNU: " -#: guix/ui.scm:457 +#: guix/ui.scm:477 #, scheme-format msgid "'~a' is not a valid regular expression: ~a~%" msgstr "\"~a\" não é uma expressão regular válida: ~a~%" -#: guix/ui.scm:463 +#: guix/ui.scm:483 #, scheme-format msgid "~a: invalid number~%" msgstr "~a: número inválido~%" -#: guix/ui.scm:480 +#: guix/ui.scm:500 #, scheme-format msgid "invalid number: ~a~%" msgstr "número inválido: ~a~%" -#: guix/ui.scm:503 +#: guix/ui.scm:523 #, scheme-format msgid "unknown unit: ~a~%" msgstr "unidade desconhecida: ~a~%" -#: guix/ui.scm:520 +#: guix/ui.scm:538 +#, scheme-format +msgid "" +"You cannot have two different versions\n" +"or variants of @code{~a} in the same profile." +msgstr "" +"Você não pode ter duas versões diferentes\n" +"ou variantes de @code{~a} no mesmo perfil." + +#: guix/ui.scm:541 +#, scheme-format +msgid "" +"Try upgrading both @code{~a} and @code{~a},\n" +"or remove one of them from the profile." +msgstr "" +"Tente atualizar ambos @code{~a} e @code{~a},\n" +"ou remover um deles do perfil." + +#: guix/ui.scm:560 #, scheme-format msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" msgstr "~a:~a:~a: o pacote \"~a\" tem uma entrada inválida: ~s~%" -#: guix/ui.scm:527 +#: guix/ui.scm:567 #, scheme-format msgid "~a: ~a: build system `~a' does not support cross builds~%" msgstr "~a: ~a: o sistema de compilação de \"~a\" não oferece suporte a compilações cruzadas~%" -#: guix/ui.scm:533 +#: guix/ui.scm:573 #, scheme-format msgid "~s: invalid G-expression input~%" msgstr "~s: entrada de expressão G inválida~%" -#: guix/ui.scm:536 +#: guix/ui.scm:576 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "o perfil \"~a\" não existe~%" -#: guix/ui.scm:539 +#: guix/ui.scm:579 #, scheme-format msgid "generation ~a of profile '~a' does not exist~%" msgstr "a geração ~a do perfil \"~a\" não existe~%" -#: guix/ui.scm:548 +#: guix/ui.scm:588 #, scheme-format msgid " ... propagated from ~a@~a~%" msgstr " ... propagado de ~a@~a~%" -#: guix/ui.scm:553 +#: guix/ui.scm:598 #, scheme-format -msgid "profile contains conflicting entries for ~a:~a~%" -msgstr "o perfil contém entradas conflitantes para ~a:~a~%" +msgid "profile contains conflicting entries for ~a~a~%" +msgstr "o perfil contém entradas conflitantes para ~a~a~%" -#: guix/ui.scm:556 +#: guix/ui.scm:601 #, scheme-format -msgid " first entry: ~a@~a:~a ~a~%" -msgstr " primeira entrada: ~a@~a:~a ~a~%" +msgid " first entry: ~a@~a~a ~a~%" +msgstr " primeira entrada: ~a@~a~a ~a~%" -#: guix/ui.scm:562 +#: guix/ui.scm:607 #, scheme-format -msgid " second entry: ~a@~a:~a ~a~%" -msgstr " segunda entrada: ~a@~a:~a ~a~%" +msgid " second entry: ~a@~a~a ~a~%" +msgstr " segunda entrada: ~a@~a~a ~a~%" -#: guix/ui.scm:573 +#: guix/ui.scm:619 #, scheme-format msgid "corrupt input while restoring '~a' from ~s~%" msgstr "entrada corrompida ao restaurar \"~a\" de ~s~%" -#: guix/ui.scm:575 +#: guix/ui.scm:621 #, scheme-format msgid "corrupt input while restoring archive from ~s~%" msgstr "entrada corrompida ao restaurar um pacote de ~s~%" -#: guix/ui.scm:578 +#: guix/ui.scm:624 #, scheme-format msgid "failed to connect to `~a': ~a~%" msgstr "falha ao conectar em \"~a\": ~a~%" -#: guix/ui.scm:583 +#: guix/ui.scm:629 #, scheme-format msgid "build failed: ~a~%" msgstr "compilação falhou: ~a~%" -#: guix/ui.scm:586 +#: guix/ui.scm:632 #, scheme-format msgid "reference to invalid output '~a' of derivation '~a'~%" msgstr "referência a uma saída inválida \"~a\" da derivação \"~a\"~%" -#: guix/ui.scm:590 +#: guix/ui.scm:636 #, scheme-format msgid "file '~a' could not be found in these directories:~{ ~a~}~%" msgstr "o arquivo \"~a\" não pôde ser localizado nesses diretórios:~{ ~a~}~%" -#: guix/ui.scm:607 +#: guix/ui.scm:662 #, scheme-format msgid "~a: ~a~%" msgstr "~a: ~a~%" -#: guix/ui.scm:642 +#: guix/ui.scm:697 #, scheme-format msgid "failed to read expression ~s: ~s~%" msgstr "falha ao ler a expressão ~s: ~s~%" -#: guix/ui.scm:648 +#: guix/ui.scm:703 #, scheme-format msgid "failed to evaluate expression '~a':~%" msgstr "falha ao avaliar a expressão \"~a\":~%" -#: guix/ui.scm:651 +#: guix/ui.scm:706 #, scheme-format msgid "syntax error: ~a~%" msgstr "erro de sintaxe: ~a~%" -#: guix/ui.scm:669 +#: guix/ui.scm:724 #, scheme-format msgid "expression ~s does not evaluate to a package~%" msgstr "a expressão ~s não corresponde a um pacote~%" -#: guix/ui.scm:688 +#: guix/ui.scm:743 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%" msgstr "pelo menos ~,1h MB necessário, mas apenas ~,1h MB disponível em ~a~%" -#: guix/ui.scm:756 +#: guix/ui.scm:811 #, scheme-format msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" @@ -3056,18 +3251,18 @@ msgstr[1] "~:[As seguintes derivações seriam compiladas:~%~{ ~a~%~}~;~]" #. TRANSLATORS: "MB" is for "megabyte"; it should be #. translated to the corresponding abbreviation. -#: guix/ui.scm:764 +#: guix/ui.scm:819 msgid "~:[~,1h MB would be downloaded:~%~{ ~a~%~}~;~]" msgstr "~:[~,1h MB seria baixado:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:769 +#: guix/ui.scm:824 #, scheme-format msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[O seguinte arquivo seria baixado:~%~{ ~a~%~}~;~]" msgstr[1] "~:[Os seguintes arquivos seriam baixados:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:776 +#: guix/ui.scm:831 #, scheme-format msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" @@ -3076,78 +3271,78 @@ msgstr[1] "~:[As seguintes derivações serão compiladas:~%~{ ~a~%~}~;~]" #. TRANSLATORS: "MB" is for "megabyte"; it should be #. translated to the corresponding abbreviation. -#: guix/ui.scm:784 +#: guix/ui.scm:839 msgid "~:[~,1h MB will be downloaded:~%~{ ~a~%~}~;~]" msgstr "~:[~,1h MB será baixado:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:789 +#: guix/ui.scm:844 #, scheme-format msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" msgstr[0] "~:[O seguinte arquivo será baixado:~%~{ ~a~%~}~;~]" msgstr[1] "~:[Os seguintes arquivos serão baixados:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:849 +#: guix/ui.scm:904 #, scheme-format msgid "The following package would be removed:~%~{~a~%~}~%" msgid_plural "The following packages would be removed:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote seria removido:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes seriam removidos:~%~{~a~%~}~%" -#: guix/ui.scm:854 +#: guix/ui.scm:909 #, scheme-format msgid "The following package will be removed:~%~{~a~%~}~%" msgid_plural "The following packages will be removed:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote será removido:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes serão removidos:~%~{~a~%~}~%" -#: guix/ui.scm:867 +#: guix/ui.scm:922 #, scheme-format msgid "The following package would be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote sofreria um downgrade:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes sofreriam um downgrade:~%~{~a~%~}~%" -#: guix/ui.scm:872 +#: guix/ui.scm:927 #, scheme-format msgid "The following package will be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote sofrerá um downgrade:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes sofrerão um downgrade:~%~{~a~%~}~%" -#: guix/ui.scm:885 +#: guix/ui.scm:940 #, scheme-format msgid "The following package would be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote seria atualizado:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes seriam atualizados:~%~{~a~%~}~%" -#: guix/ui.scm:890 +#: guix/ui.scm:945 #, scheme-format msgid "The following package will be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote será atualizado:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes serão atualizados:~%~{~a~%~}~%" -#: guix/ui.scm:901 +#: guix/ui.scm:956 #, scheme-format msgid "The following package would be installed:~%~{~a~%~}~%" msgid_plural "The following packages would be installed:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote seria instalado:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes seriam instalados:~%~{~a~%~}~%" -#: guix/ui.scm:906 +#: guix/ui.scm:961 #, scheme-format msgid "The following package will be installed:~%~{~a~%~}~%" msgid_plural "The following packages will be installed:~%~{~a~%~}~%" msgstr[0] "O seguinte pacote será instalado:~%~{~a~%~}~%" msgstr[1] "Os seguintes pacotes serão instalados:~%~{~a~%~}~%" -#: guix/ui.scm:923 +#: guix/ui.scm:978 msgid "" msgstr "" -#: guix/ui.scm:1285 +#: guix/ui.scm:1340 #, scheme-format msgid "Generation ~a\t~a" msgstr "Geração ~a\t~a" @@ -3155,28 +3350,28 @@ msgstr "Geração ~a\t~a" #. TRANSLATORS: The word "current" here is an adjective for #. "Generation", as in "current generation". Use the appropriate #. gender where applicable. -#: guix/ui.scm:1295 +#: guix/ui.scm:1350 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(atual)~%" # geração, criação? -#: guix/ui.scm:1338 +#: guix/ui.scm:1393 #, scheme-format msgid "switched from generation ~a to ~a~%" msgstr "trocado da geração ~a para ~a~%" -#: guix/ui.scm:1354 +#: guix/ui.scm:1409 #, scheme-format msgid "deleting ~a~%" msgstr "excluindo ~a~%" -#: guix/ui.scm:1385 +#: guix/ui.scm:1440 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Tente \"guix --help\" para mais informações.~%" -#: guix/ui.scm:1413 +#: guix/ui.scm:1468 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -3184,31 +3379,31 @@ msgstr "" "Uso: guix COMANDO ARGUMENTOS...\n" "Executa COMANDO com ARGUMENTOS.\n" -#: guix/ui.scm:1416 +#: guix/ui.scm:1471 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "COMANDO deve ser um dos subcomandos listados abaixo:\n" -#: guix/ui.scm:1436 +#: guix/ui.scm:1491 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: comando não encontrado~%" -#: guix/ui.scm:1466 +#: guix/ui.scm:1521 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: faltando um nome de comando~%" -#: guix/ui.scm:1474 +#: guix/ui.scm:1529 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: opção \"~a\" desconhecida~%" -#: guix/http-client.scm:269 +#: guix/http-client.scm:117 #, scheme-format msgid "following redirection to `~a'...~%" msgstr "seguindo redirecionamento para \"~a\"...~%" -#: guix/http-client.scm:281 +#: guix/http-client.scm:129 #, scheme-format msgid "~a: HTTP download failed: ~a (~s)" msgstr "~a: download HTTP falhou: ~a (~s)" @@ -3263,118 +3458,125 @@ msgstr "guix-daemon -- realiza compilações de derivação e acessos a armazena msgid "This program is a daemon meant to run in the background. It serves requests sent over a Unix-domain socket. It accesses the store, and builds derivations on behalf of its clients." msgstr "Esse programa é um daemon feito para executar em segundo plano. Ele atende a requisições enviadas por um soquete. Ele acessa o armazenamento e compila derivações em nome de seus clientes." -#: nix/nix-daemon/guix-daemon.cc:94 +#: nix/nix-daemon/guix-daemon.cc:95 msgid "SYSTEM" msgstr "SISTEMA" -#: nix/nix-daemon/guix-daemon.cc:95 +#: nix/nix-daemon/guix-daemon.cc:96 msgid "assume SYSTEM as the current system type" msgstr "presume SISTEMA como o tipo de sistema atual" -#: nix/nix-daemon/guix-daemon.cc:96 nix/nix-daemon/guix-daemon.cc:99 +#: nix/nix-daemon/guix-daemon.cc:97 nix/nix-daemon/guix-daemon.cc:100 msgid "N" msgstr "N" -#: nix/nix-daemon/guix-daemon.cc:97 +#: nix/nix-daemon/guix-daemon.cc:98 msgid "use N CPU cores to build each derivation; 0 means as many as available" msgstr "usa N núcleos de CPU para compilar cada derivação; 0 significa todos disponíveis" -#: nix/nix-daemon/guix-daemon.cc:100 +#: nix/nix-daemon/guix-daemon.cc:101 msgid "allow at most N build jobs" msgstr "permite no máximo N trabalhos de compilação" -#: nix/nix-daemon/guix-daemon.cc:101 nix/nix-daemon/guix-daemon.cc:103 +#: nix/nix-daemon/guix-daemon.cc:102 nix/nix-daemon/guix-daemon.cc:104 msgid "SECONDS" msgstr "SEGUNDOS" -#: nix/nix-daemon/guix-daemon.cc:102 +#: nix/nix-daemon/guix-daemon.cc:103 msgid "mark builds as failed after SECONDS of activity" msgstr "marca compilações como falha após SEGUNDOS de atividade" -#: nix/nix-daemon/guix-daemon.cc:104 +#: nix/nix-daemon/guix-daemon.cc:105 msgid "mark builds as failed after SECONDS of silence" msgstr "marca compilações como falha após SEGUNDOS de silêncio" -#: nix/nix-daemon/guix-daemon.cc:106 +#: nix/nix-daemon/guix-daemon.cc:107 msgid "disable chroot builds" msgstr "desabilita compilações em chroot" -#: nix/nix-daemon/guix-daemon.cc:107 +#: nix/nix-daemon/guix-daemon.cc:108 msgid "DIR" msgstr "DIR" -#: nix/nix-daemon/guix-daemon.cc:108 +#: nix/nix-daemon/guix-daemon.cc:109 msgid "add DIR to the build chroot" msgstr "adiciona DIR ao chroot de compilação" -#: nix/nix-daemon/guix-daemon.cc:109 +#: nix/nix-daemon/guix-daemon.cc:110 msgid "GROUP" msgstr "GRUPO" -#: nix/nix-daemon/guix-daemon.cc:110 +#: nix/nix-daemon/guix-daemon.cc:111 msgid "perform builds as a user of GROUP" msgstr "realiza compilações como um usuário de GRUPO" -#: nix/nix-daemon/guix-daemon.cc:112 +#: nix/nix-daemon/guix-daemon.cc:113 msgid "do not use substitutes" msgstr "não usa substitutos" -#: nix/nix-daemon/guix-daemon.cc:113 +#: nix/nix-daemon/guix-daemon.cc:114 msgid "URLS" msgstr "URLS" -#: nix/nix-daemon/guix-daemon.cc:114 +#: nix/nix-daemon/guix-daemon.cc:115 msgid "use URLS as the default list of substitute providers" msgstr "usa URLS como lista padrão de fornecedores de substituto" -#: nix/nix-daemon/guix-daemon.cc:116 +#: nix/nix-daemon/guix-daemon.cc:117 msgid "do not use the 'build hook'" msgstr "não usa o \"hook de compilação\"" -#: nix/nix-daemon/guix-daemon.cc:118 +#: nix/nix-daemon/guix-daemon.cc:119 msgid "cache build failures" msgstr "armazena em cache as falhas de compilação" -#: nix/nix-daemon/guix-daemon.cc:120 +#: nix/nix-daemon/guix-daemon.cc:121 msgid "build each derivation N times in a row" msgstr "compila cada derivação N vezes de uma vez" -#: nix/nix-daemon/guix-daemon.cc:122 +#: nix/nix-daemon/guix-daemon.cc:123 msgid "do not keep build logs" msgstr "não mantém logs de compilação" -#: nix/nix-daemon/guix-daemon.cc:124 +#: nix/nix-daemon/guix-daemon.cc:126 msgid "disable compression of the build logs" msgstr "desabilita compressão de logs de compilação" -#: nix/nix-daemon/guix-daemon.cc:129 +#: nix/nix-daemon/guix-daemon.cc:128 +msgid "use the specified compression type for build logs" +msgstr "usa o tipo de compressão especificado para logs de compilação" + +#: nix/nix-daemon/guix-daemon.cc:133 msgid "disable automatic file \"deduplication\" in the store" msgstr "desabilita \"deduplicação\" automática de arquivo no armazenamento" -#: nix/nix-daemon/guix-daemon.cc:139 +#: nix/nix-daemon/guix-daemon.cc:143 msgid "impersonate Linux 2.6" msgstr "personifica Linux 2.6" -#: nix/nix-daemon/guix-daemon.cc:143 +#: nix/nix-daemon/guix-daemon.cc:147 msgid "tell whether the GC must keep outputs of live derivations" msgstr "diz se o GC deve manter as saídas das derivações vivas" -#: nix/nix-daemon/guix-daemon.cc:146 +#: nix/nix-daemon/guix-daemon.cc:150 msgid "tell whether the GC must keep derivations corresponding to live outputs" msgstr "diz se o GC deve manter as derivações correspondentes às saídas vivas" -#: nix/nix-daemon/guix-daemon.cc:149 +#: nix/nix-daemon/guix-daemon.cc:153 msgid "SOCKET" msgstr "SOQUETE" -#: nix/nix-daemon/guix-daemon.cc:150 +#: nix/nix-daemon/guix-daemon.cc:154 msgid "listen for connections on SOCKET" msgstr "ouve conexões no SOQUETE" -#: nix/nix-daemon/guix-daemon.cc:152 +#: nix/nix-daemon/guix-daemon.cc:156 msgid "produce debugging output" msgstr "produz saída de depuração" +#~ msgid "Try adding @code{(use-modules ~a)}." +#~ msgstr "Tente adicionar @code{(use-modules ~a)}." + #~ msgid "deprecated NAME-VERSION syntax; use NAME@VERSION instead~%" #~ msgstr "sintaxe NOME-VERSÃO obsoleta; em vez disso, use NOME@VERSÃO~%" @@ -3387,9 +3589,6 @@ msgstr "produz saída de depuração" #~ msgid "tarball did not produce a single source directory" #~ msgstr "tarball não produziu um diretório fonte" -#~ msgid "unpacking '~a'...~%" -#~ msgstr "desempacotando \"~a\"...~%" - #~ msgid "failed to unpack source code" #~ msgstr "falha ao desempacotar o código fonte" diff --git a/scripts/guix.in b/scripts/guix.in index d1c12eae5c..0a3ab1f64d 100644 --- a/scripts/guix.in +++ b/scripts/guix.in @@ -23,25 +23,13 @@ ;; IMPORTANT: We must avoid loading any modules from Guix here, ;; because we need to adjust the guile load paths first. ;; It's okay to import modules from core Guile though. -(use-modules (srfi srfi-26)) (define-syntax-rule (push! elt v) (set! v (cons elt v))) (define (augment-load-paths!) ;; Add installed modules to load-path. (push! "@guilemoduledir@" %load-path) - (push! "@guileobjectdir@" %load-compiled-path) - - ;; Add modules fetched by 'guix pull' to load-path. - (let ((updates-dir (and=> (or (getenv "XDG_CONFIG_HOME") - (and=> (getenv "HOME") - (cut string-append <> "/.config"))) - (cut string-append <> "/guix/latest")))) - (when (and=> updates-dir file-exists?) - ;; XXX: Currently 'guix pull' puts both .scm and .go files in - ;; UPDATES-DIR. - (push! updates-dir %load-path) - (push! updates-dir %load-compiled-path)))) + (push! "@guileobjectdir@" %load-compiled-path)) (define* (main #:optional (args (command-line))) (unless (getenv "GUIX_UNINSTALLED") diff --git a/tests/gexp.scm b/tests/gexp.scm index 3c8b4624da..a560adfc5c 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -23,6 +23,7 @@ #:use-module (guix grafts) #:use-module (guix derivations) #:use-module (guix packages) + #:use-module (guix build-system trivial) #:use-module (guix tests) #:use-module ((guix build utils) #:select (with-directory-excursion)) #:use-module ((guix utils) #:select (call-with-temporary-directory)) @@ -66,6 +67,27 @@ (run-with-store %store exp #:guile-for-build (%guile-for-build)))) +(define %extension-package + ;; Example of a package to use when testing 'with-extensions'. + (dummy-package "extension" + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (string-append (assoc-ref %outputs "out") + "/share/guile/site/" + (effective-version)))) + (mkdir-p out) + (call-with-output-file (string-append out "/hg2g.scm") + (lambda (port) + (write '(define-module (hg2g) + #:export (the-answer)) + port) + (write '(define the-answer 42) port))))))))) + (test-begin "gexp") @@ -739,6 +761,54 @@ (built-derivations (list drv)) (return (= 42 (call-with-input-file out read)))))) +(test-equal "gexp-extensions & ungexp" + (list sed grep) + ((@@ (guix gexp) gexp-extensions) + #~(foo #$(with-extensions (list grep) #~+) + #+(with-extensions (list sed) #~-)))) + +(test-equal "gexp-extensions & ungexp-splicing" + (list grep sed) + ((@@ (guix gexp) gexp-extensions) + #~(foo #$@(list (with-extensions (list grep) #~+) + (with-imported-modules '((foo)) + (with-extensions (list sed) #~-)))))) + +(test-equal "gexp-extensions and literal Scheme object" + '() + ((@@ (guix gexp) gexp-extensions) #t)) + +(test-assertm "gexp->derivation & with-extensions" + ;; Create a fake Guile extension and make sure it is accessible both to the + ;; imported modules and to the derivation build script. + (mlet* %store-monad + ((extension -> %extension-package) + (module -> (scheme-file "x" #~( ;; splice! + (define-module (foo) + #:use-module (hg2g) + #:export (multiply)) + + (define (multiply x) + (* the-answer x))) + #:splice? #t)) + (build -> (with-extensions (list extension) + (with-imported-modules `((guix build utils) + ((foo) => ,module)) + #~(begin + (use-modules (guix build utils) + (hg2g) (foo)) + (call-with-output-file #$output + (lambda (port) + (write (list the-answer (multiply 2)) + port))))))) + (drv (gexp->derivation "thingie" build + ;; %BOOTSTRAP-GUILE is 2.0. + #:effective-version "2.0")) + (out -> (derivation->output-path drv))) + (mbegin %store-monad + (built-derivations (list drv)) + (return (equal? '(42 84) (call-with-input-file out read)))))) + (test-assertm "gexp->derivation #:references-graphs" (mlet* %store-monad ((one (text-file "one" (random-text))) @@ -948,6 +1018,22 @@ (return (and (zero? (close-pipe pipe)) (string=? text str)))))))))) +(test-assertm "program-file & with-extensions" + (let* ((exp (with-extensions (list %extension-package) + (gexp (begin + (use-modules (hg2g)) + (display the-answer))))) + (file (program-file "program" exp + #:guile %bootstrap-guile))) + (mlet* %store-monad ((drv (lower-object file)) + (out -> (derivation->output-path drv))) + (mbegin %store-monad + (built-derivations (list drv)) + (let* ((pipe (open-input-pipe out)) + (str (get-string-all pipe))) + (return (and (zero? (close-pipe pipe)) + (= 42 (string->number str))))))))) + (test-assertm "scheme-file" (let* ((text (plain-file "foo" "Hello, world!")) (scheme (scheme-file "bar" #~(list "foo" #$text)))) diff --git a/tests/graph.scm b/tests/graph.scm index 5faa19298a..4799d3bd0c 100644 --- a/tests/graph.scm +++ b/tests/graph.scm @@ -134,7 +134,7 @@ edges." (map (lambda (destination) (list "p-0.drv" (string-append - (package-full-name destination) + (package-full-name destination "-") ".drv"))) implicit))))))) @@ -293,7 +293,7 @@ edges." (run-with-store %store (let ((packages (fold-packages cons '()))) (mlet %store-monad ((edges (node-edges %package-node-type packages))) - (return (and (null? (edges sed)) + (return (and (null? (edges hello)) (lset= eq? (edges guile-2.0) (match (package-direct-inputs guile-2.0) diff --git a/tests/guix-build.sh b/tests/guix-build.sh index b84723fa43..92e7299321 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès +# Copyright © 2012, 2013, 2014, 2016, 2017, 2018 Ludovic Courtès # # This file is part of GNU Guix. # @@ -138,6 +138,25 @@ test `guix build -d --sources=transitive foo \ | grep -e 'foo\.tar\.gz' -e 'bar\.tar\.gz' -e 'bar\.dat' \ | wc -l` -eq 3 + +# Unbound variables. +cat > "$module_dir/foo.scm"< "$module_dir/err" || true +grep "unbound" "$module_dir/err" # actual error +grep "forget.*(gnu packages base)" "$module_dir/err" # hint +rm -f "$module_dir"/* + # Should all return valid log files. drv="`guix build -d -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'`" out="`guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'`" diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh index 1b63b957be..917d52451c 100644 --- a/tests/guix-pack.sh +++ b/tests/guix-pack.sh @@ -35,18 +35,23 @@ export GUIX_BUILD_OPTIONS # Build a tarball with no compression. guix pack --compression=none --bootstrap guile-bootstrap -# Build a tarball (with compression). -guix pack --bootstrap guile-bootstrap +# Build a tarball (with compression). Check that '-e' works as well. +out1="`guix pack --bootstrap guile-bootstrap`" +out2="`guix pack --bootstrap -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`" +test -n "$out1" +test "$out1" = "$out2" # Build a tarball with a symlink. the_pack="`guix pack --bootstrap -S /opt/gnu/bin=bin guile-bootstrap`" -# Try to extract it. +# Try to extract it. Note: we cannot test whether /opt/gnu/bin/guile itself +# exists because /opt/gnu/bin may be an absolute symlink to a store item that +# has been GC'd. test_directory="`mktemp -d`" trap 'rm -rf "$test_directory"' EXIT cd "$test_directory" tar -xf "$the_pack" -test -x opt/gnu/bin/guile +test -L opt/gnu/bin is_available () { # Use the "type" shell builtin to see if the program is on PATH. @@ -81,3 +86,14 @@ guix pack --dry-run --bootstrap -f docker -S /opt/gnu=/ guile-bootstrap # Build a tarball pack of cross-compiled software. Use coreutils because # guile-bootstrap is not intended to be cross-compiled. guix pack --dry-run --bootstrap --target=arm-unknown-linux-gnueabihf coreutils + +# Likewise, 'guix pack -R' requires a full-blown toolchain (because +# 'glibc-bootstrap' lacks 'libc.a'), hence '--dry-run'. +guix pack -R --dry-run --bootstrap -S /mybin=bin guile-bootstrap + +# Make sure package transformation options are honored. +mkdir -p "$test_directory" +drv1="`guix pack -n guile 2>&1 | grep pack.*\.drv`" +drv2="`guix pack -n --with-source=guile=$test_directory guile 2>&1 | grep pack.*\.drv`" +test -n "$drv1" +test "$drv1" != "$drv2" diff --git a/tests/guix-package.sh b/tests/guix-package.sh index aa5eaa66e7..3b3fa35cd8 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -60,12 +60,12 @@ test -L "$profile" && test -L "$profile-1-link" ! test -f "$profile-2-link" test -f "$profile/bin/guile" -# Collisions are properly flagged (in this case, 'python-wrapper' propagates -# python@3, which conflicts with python@2.) -if guix package --bootstrap -n -p "$profile" -i python@2 python-wrapper +# Collisions are properly flagged (in this case, 'g-wrap' propagates +# guile@2.2, which conflicts with guile@2.0.) +if guix package --bootstrap -n -p "$profile" -i g-wrap guile@2.0 then false; else true; fi -guix package --bootstrap -n -p "$profile" -i python@2 python-wrapper \ +guix package --bootstrap -n -p "$profile" -i g-wrap guile@2.0 \ --allow-collisions # No search path env. var. here. diff --git a/tests/guix-system.sh b/tests/guix-system.sh index ff9114ab74..36ba5fbd5f 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -111,8 +111,7 @@ cat > "$tmpfile" <. - grep "$tmpfile:[49]:[0-9]\+: GRUB-config.*[Uu]nbound variable" "$errorfile" + grep "$tmpfile:[49]:[0-9]\+:.*GRUB-config.*[Uu]nbound variable" "$errorfile" else - grep "$tmpfile:9:[0-9]\+: GRUB-config.*[Uu]nbound variable" "$errorfile" + grep "$tmpfile:9:[0-9]\+:.*GRUB-config.*[Uu]nbound variable" "$errorfile" fi fi @@ -140,8 +139,7 @@ OS_BASE=' (bootloader grub-bootloader) (device "/dev/sdX"))) (file-systems (cons (file-system - (device "root") - (title (string->symbol "label")) + (device (file-system-label "root")) (mount-point "/") (type "ext4")) %base-file-systems)) @@ -213,8 +211,7 @@ make_user_config () (bootloader grub-bootloader) (device "/dev/sdX"))) (file-systems (cons (file-system - (device "root") - (title 'label) + (device (file-system-label "root")) (mount-point "/") (type "ext4")) %base-file-systems)) diff --git a/tests/pack.scm b/tests/pack.scm index 3bce715075..d4596f863a 100644 --- a/tests/pack.scm +++ b/tests/pack.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2018 Ludovic Courtès +;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,20 +62,20 @@ #:symlinks '(("/bin/Guile" -> "bin/guile")) #:compressor %gzip-compressor - #:tar %tar-bootstrap)) + #:archiver %tar-bootstrap)) (check (gexp->derivation "check-tarball" - #~(let ((guile (string-append "." #$profile "/bin"))) + #~(let ((bin (string-append "." #$profile "/bin"))) (setenv "PATH" (string-append #$%tar-bootstrap "/bin")) (system* "tar" "xvf" #$tarball) (mkdir #$output) (exit - (and (file-exists? (string-append guile "/guile")) + (and (file-exists? (string-append bin "/guile")) (string=? (string-append #$%bootstrap-guile "/bin") - (readlink guile)) - (string=? (string-append (string-drop guile 1) - "/guile") + (readlink bin)) + (string=? (string-append ".." #$profile + "/bin/guile") (readlink "bin/Guile")))))))) (built-derivations (list check)))) diff --git a/tests/packages.scm b/tests/packages.scm index 9e19c3992e..65ccb14889 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -407,18 +407,23 @@ (%current-system))))) (arguments `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) #:builder - (let ((tar (assoc-ref %build-inputs "tar")) - (xz (assoc-ref %build-inputs "xz")) - (source (assoc-ref %build-inputs "source"))) - (and (zero? (system* tar "xvf" source - "--use-compress-program" xz)) - (string=? "guile" (readlink "bin/guile-rocks")) - (file-exists? "bin/scripts/compile.scm") - (let ((out (assoc-ref %outputs "out"))) - (call-with-output-file out - (lambda (p) - (display "OK" p)))))))))) + (begin + (use-modules (guix build utils)) + (let ((tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (source (assoc-ref %build-inputs "source"))) + (invoke tar "xvf" source + "--use-compress-program" xz) + (unless (and (string=? "guile" (readlink "bin/guile-rocks")) + (file-exists? "bin/scripts/compile.scm")) + (error "the snippet apparently failed")) + (let ((out (assoc-ref %outputs "out"))) + (call-with-output-file out + (lambda (p) + (display "OK" p)))) + #t)))))) (drv (package-derivation %store package)) (out (derivation->output-path drv))) (and (build-derivations %store (list (pk 'snippet-drv drv))) @@ -486,7 +491,8 @@ (mkdir %output) (call-with-output-file (string-append %output "/test") (lambda (p) - (display '(hello guix) p)))))))) + (display '(hello guix) p))) + #t))))) (d (package-derivation %store p))) (and (build-derivations %store (list d)) (let ((p (pk 'drv d (derivation->output-path d)))) @@ -500,8 +506,10 @@ (source #f) (arguments `(#:guile ,%bootstrap-guile - #:builder (copy-file (assoc-ref %build-inputs "input") - %output))) + #:builder (begin + (copy-file (assoc-ref %build-inputs "input") + %output) + #t))) (inputs `(("input" ,i))))) (d (package-derivation %store p))) (and (build-derivations %store (list d)) @@ -516,8 +524,10 @@ (source i) (arguments `(#:guile ,%bootstrap-guile - #:builder (copy-file (assoc-ref %build-inputs "source") - %output))))) + #:builder (begin + (copy-file (assoc-ref %build-inputs "source") + %output) + #t))))) (d (package-derivation %store p))) (and (build-derivations %store (list d)) (let ((p (derivation->output-path d))) @@ -530,11 +540,14 @@ (source #f) (arguments `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) #:builder - (let ((out (assoc-ref %outputs "out")) - (bash (assoc-ref %build-inputs "bash"))) - (zero? (system* bash "-c" - (format #f "echo hello > ~a" out)))))) + (begin + (use-modules (guix build utils)) + (let ((out (assoc-ref %outputs "out")) + (bash (assoc-ref %build-inputs "bash"))) + (invoke bash "-c" + (format #f "echo hello > ~a" out)))))) (inputs `(("bash" ,(search-bootstrap-binary "bash" (%current-system))))))) (d (package-derivation %store p))) @@ -554,7 +567,8 @@ (mkdir %output) ;; The reference to itself isn't allowed so building it ;; should fail. - (symlink %output (string-append %output "/self"))))))) + (symlink %output (string-append %output "/self")) + #t))))) (d (package-derivation %store p))) (guard (c ((nix-protocol-error? c) #t)) (build-derivations %store (list d)) @@ -766,7 +780,9 @@ (inherit p1r) (name "p1") (replacement p1r) (arguments `(#:guile ,%bootstrap-guile - #:builder (mkdir (assoc-ref %outputs "out")))))) + #:builder (begin + (mkdir (assoc-ref %outputs "out")) + #t))))) (p2r (dummy-package "P2" (build-system trivial-build-system) (inputs `(("p1" ,p1))) @@ -786,7 +802,8 @@ (mkdir out) (chdir out) (symlink (assoc-ref %build-inputs "p1") - "p1")))))) + "p1") + #t))))) (p3 (dummy-package "p3" (build-system trivial-build-system) (inputs `(("p2" ,p2))) @@ -796,7 +813,8 @@ (mkdir out) (chdir out) (symlink (assoc-ref %build-inputs "p2") - "p2"))))))) + "p2") + #t)))))) (lset= equal? (package-grafts %store p3) (list (graft @@ -941,6 +959,21 @@ ((("x" dep)) (eq? dep findutils))))))))) +(test-equal "package-patched-vulnerabilities" + '(("CVE-2015-1234") + ("CVE-2016-1234" "CVE-2018-4567") + ()) + (let ((p1 (dummy-package "pi" + (source (dummy-origin + (patches (list "/a/b/pi-CVE-2015-1234.patch")))))) + (p2 (dummy-package "pi" + (source (dummy-origin + (patches (list + "/a/b/pi-CVE-2016-1234-CVE-2018-4567.patch")))))) + (p3 (dummy-package "pi" (source (dummy-origin))))) + (map package-patched-vulnerabilities + (list p1 p2 p3)))) + (test-eq "fold-packages" hello (fold-packages (lambda (p r) (if (string=? (package-name p) "hello") @@ -990,7 +1023,8 @@ (call-with-output-file (string-append out "/xml/bar/baz/catalog.xml") (lambda (port) - (display "xml? wat?!" port))))))) + (display "xml? wat?!" port))) + #t)))) (synopsis #f) (description #f) (home-page #f) (license #f))) (p2 (package @@ -1001,7 +1035,9 @@ (build-system trivial-build-system) (arguments `(#:guile ,%bootstrap-guile - #:builder (mkdir (assoc-ref %outputs "out")))) + #:builder (begin + (mkdir (assoc-ref %outputs "out")) + #t))) (native-search-paths (package-native-search-paths libxml2)) (synopsis #f) (description #f) (home-page #f) (license #f))) @@ -1043,7 +1079,9 @@ (build-system trivial-build-system) (arguments `(#:guile ,%bootstrap-guile - #:builder (mkdir (assoc-ref %outputs "out")))) + #:builder (begin + (mkdir (assoc-ref %outputs "out")) + #t))) (native-search-paths (package-native-search-paths git)))) (prof1 (run-with-store %store (profile-derivation diff --git a/tests/profiles.scm b/tests/profiles.scm index 92eb08cb9e..3a59a0cc4f 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -223,6 +223,52 @@ (string=? (dirname (readlink bindir)) (derivation->output-path guile)))))) +(test-assertm "profile-derivation relative symlinks, one entry" + (mlet* %store-monad + ((entry -> (package->manifest-entry %bootstrap-guile)) + (guile (package->derivation %bootstrap-guile)) + (drv (profile-derivation (manifest (list entry)) + #:relative-symlinks? #t + #:hooks '() + #:locales? #f)) + (profile -> (derivation->output-path drv)) + (bindir -> (string-append profile "/bin")) + (_ (built-derivations (list drv)))) + (return (and (file-exists? (string-append bindir "/guile")) + (string=? (readlink bindir) + (string-append "../" + (basename + (derivation->output-path guile)) + "/bin")))))) + +(unless (network-reachable?) (test-skip 1)) +(test-assertm "profile-derivation relative symlinks, two entries" + (mlet* %store-monad + ((gnu-make-boot0 -> (@@ (gnu packages commencement) gnu-make-boot0)) + (manifest -> (packages->manifest + (list %bootstrap-guile gnu-make-boot0))) + (guile (package->derivation %bootstrap-guile)) + (make (package->derivation gnu-make-boot0)) + (drv (profile-derivation manifest + #:relative-symlinks? #t + #:hooks '() + #:locales? #f)) + (profile -> (derivation->output-path drv)) + (bindir -> (string-append profile "/bin")) + (_ (built-derivations (list drv)))) + (return (and (file-exists? (string-append bindir "/guile")) + (file-exists? (string-append bindir "/make")) + (string=? (readlink (string-append bindir "/guile")) + (string-append "../../" + (basename + (derivation->output-path guile)) + "/bin/guile")) + (string=? (readlink (string-append bindir "/make")) + (string-append "../../" + (basename + (derivation->output-path make)) + "/bin/make")))))) + (test-assertm "profile-derivation, inputs" (mlet* %store-monad ((entry -> (package->manifest-entry packages:glibc "debug")) @@ -242,8 +288,8 @@ #:hooks '() #:locales? #t #:target target))) - (define (find-input name) - (let ((name (string-append name ".drv"))) + (define (find-input package) + (let ((name (string-append (package-full-name package "-") ".drv"))) (any (lambda (input) (let ((input (derivation-input-path input))) (and (string-suffix? name input) input))) @@ -252,12 +298,11 @@ ;; The inputs for grep and sed should be cross-build derivations, but that ;; for the glibc-utf8-locales should be a native build. (return (and (string=? (derivation-system drv) (%current-system)) - (string=? (find-input (package-full-name packages:grep)) + (string=? (find-input packages:grep) (derivation-file-name grep)) - (string=? (find-input (package-full-name packages:sed)) + (string=? (find-input packages:sed) (derivation-file-name sed)) - (string=? (find-input - (package-full-name packages:glibc-utf8-locales)) + (string=? (find-input packages:glibc-utf8-locales) (derivation-file-name locales)))))) (test-assert "package->manifest-entry defaults to \"out\"" @@ -453,7 +498,8 @@ (mkdir (string-append out "/etc")) (call-with-output-file (string-append out "/etc/foo") (lambda (port) - (display "foo!" port)))))))) + (display "foo!" port))) + #t))))) (entry -> (package->manifest-entry thing)) (drv (profile-derivation (manifest (list entry)) #:hooks '() @@ -482,7 +528,8 @@ (symlink "foo" (string-append out "/etc")) (call-with-output-file (string-append out "/etc/bar") (lambda (port) - (display "foo!" port)))))))) + (display "foo!" port))) + #t))))) (entry -> (package->manifest-entry thing)) (drv (profile-derivation (manifest (list entry)) #:hooks '() diff --git a/tests/records.scm b/tests/records.scm index d6d27bb96a..80e08a9a5f 100644 --- a/tests/records.scm +++ b/tests/records.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -288,6 +288,34 @@ (and (string-match "extra.*initializer.*baz" message) (eq? proc 'foo))))) +(test-assert "ABI checks" + (let ((module (test-module))) + (eval '(begin + (define-record-type* foo make-foo + foo? + (bar foo-bar (default 42))) + + (define (make-me-a-record) (foo))) + module) + (unless (eval '(foo? (make-me-a-record)) module) + (error "what?" (eval '(make-me-a-record) module))) + + ;; Redefine with an additional field. + (eval '(define-record-type* foo make-foo + foo? + (baz foo-baz) + (bar foo-bar (default 42))) + module) + + ;; Now 'make-me-a-record' is out of sync because it does an + ;; 'allocate-struct' that corresponds to the previous definition of . + (catch 'record-abi-mismatch-error + (lambda () + (eval '(foo? (make-me-a-record)) module) + #f) + (lambda (key rtd . _) + (eq? rtd (eval ' module)))))) + (test-equal "recutils->alist" '((("Name" . "foo") ("Version" . "0.1") diff --git a/tests/store-database.scm b/tests/store-database.scm new file mode 100644 index 0000000000..1348a75c26 --- /dev/null +++ b/tests/store-database.scm @@ -0,0 +1,54 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017, 2018 Ludovic Courtès +;;; +;;; 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 (test-store-database) + #:use-module (guix tests) + #:use-module ((guix store) #:hide (register-path)) + #:use-module (guix store database) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-64)) + +;; Test the (guix store database) module. + +(define %store + (open-connection-for-tests)) + + +(test-begin "store-database") + +(test-assert "register-path" + (let ((file (string-append (%store-prefix) "/" (make-string 32 #\f) + "-fake"))) + (when (valid-path? %store file) + (delete-paths %store (list file))) + (false-if-exception (delete-file file)) + + (let ((ref (add-text-to-store %store "ref-of-fake" (random-text))) + (drv (string-append file ".drv"))) + (call-with-output-file file + (cut display "This is a fake store item.\n" <>)) + (register-path file + #:references (list ref) + #:deriver drv) + + (and (valid-path? %store file) + (equal? (references %store file) (list ref)) + (null? (valid-derivers %store file)) + (null? (referrers %store file)))))) + +(test-end "store-database") diff --git a/tests/store-deduplication.scm b/tests/store-deduplication.scm new file mode 100644 index 0000000000..04817a193a --- /dev/null +++ b/tests/store-deduplication.scm @@ -0,0 +1,64 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; 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 (test-store-deduplication) + #:use-module (guix tests) + #:use-module (guix store deduplication) + #:use-module (guix hash) + #:use-module ((guix utils) #:select (call-with-temporary-directory)) + #:use-module (guix build utils) + #:use-module (rnrs bytevectors) + #:use-module (ice-9 binary-ports) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-64)) + +(test-begin "store-deduplication") + +(test-equal "deduplicate" + (cons* #t #f ;inode comparisons + 2 (make-list 5 6)) ;'nlink' values + + (call-with-temporary-directory + (lambda (store) + (let ((data (string->utf8 "Hello, world!")) + (identical (map (lambda (n) + (string-append store "/" (number->string n))) + (iota 5))) + (unique (string-append store "/unique"))) + (for-each (lambda (file) + (call-with-output-file file + (lambda (port) + (put-bytevector port data)))) + identical) + (call-with-output-file unique + (lambda (port) + (put-bytevector port (string->utf8 "This is unique.")))) + + (for-each (lambda (file) + (deduplicate file (sha256 data) #:store store)) + identical) + (deduplicate unique (nar-sha256 unique) #:store store) + + ;; (system (string-append "ls -lRia " store)) + (cons* (apply = (map (compose stat:ino stat) identical)) + (= (stat:ino (stat unique)) + (stat:ino (stat (car identical)))) + (stat:nlink (stat unique)) + (map (compose stat:nlink stat) identical)))))) + +(test-end "store-deduplication") diff --git a/tests/system.scm b/tests/system.scm index 6a7f45c59c..7d55da7174 100644 --- a/tests/system.scm +++ b/tests/system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016, 2018 Ludovic Courtès ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. @@ -27,8 +27,7 @@ (define %root-fs (file-system - (device "my-root") - (title 'label) + (device (file-system-label "my-root")) (mount-point "/") (type "ext4"))) @@ -114,7 +113,6 @@ (inherit %os-with-mapped-device) (file-systems (cons (file-system (device "/dev/mapper/my-luks-device") - (title 'device) (mount-point "/") (type "ext4")) %base-file-systems))))) diff --git a/tests/union.scm b/tests/union.scm index aa95cae001..5a6a4033fc 100644 --- a/tests/union.scm +++ b/tests/union.scm @@ -184,4 +184,22 @@ (file-is-directory? "bin") (eq? 'symlink (stat:type (lstat "bin/guile")))))))) +(letrec-syntax ((test-relative-file-name + (syntax-rules (=>) + ((_ (reference file => expected) rest ...) + (begin + (test-equal (string-append "relative-file-name " + reference " " file) + expected + (relative-file-name reference file)) + (test-relative-file-name rest ...))) + ((_) + #t)))) + (test-relative-file-name + ("/a/b" "/a/c/d" => "../c/d") + ("/a/b" "/a/b" => "") + ("/a/b" "/a" => "..") + ("/a/b" "/a/b/c/d" => "c/d") + ("/a/b/c" "/a/d/e/f" => "../../d/e/f"))) + (test-end) diff --git a/tests/utils.scm b/tests/utils.scm index 035886dd16..3015b21b23 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2016 Mathieu Lirzin ;;; @@ -72,6 +72,12 @@ (test-assert "guile-version>? 10.5" (not (guile-version>? "10.5"))) +(test-assert "version-prefix?" + (and (version-prefix? "4.1" "4.1.2") + (version-prefix? "4.1" "4.1") + (not (version-prefix? "4.1" "4.16.2")) + (not (version-prefix? "4.1" "4")))) + (test-equal "string-tokenize*" '(("foo") ("foo" "bar" "baz") diff --git a/tests/uuid.scm b/tests/uuid.scm index 91a3482490..260614f079 100644 --- a/tests/uuid.scm +++ b/tests/uuid.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2017 Ludovic Courtès +;;; Copyright © 2015, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,6 +57,13 @@ "1234-ABCD" (uuid->string (uuid "1234-abcd" 'fat32))) +(test-assert "uuid, dynamic value" + (let* ((good "4dab5feb-d176-45de-b287-9b0a6e4c01cb") + (bad (string-drop good 3))) + (and (uuid? (uuid good)) + (string=? good (uuid->string (uuid good))) + (not (uuid bad))))) + (test-assert "uuid=?" (and (uuid=? (uuid-bytevector (uuid "1234-abcd" 'fat32)) (uuid "1234-abcd" 'fat32))