diff options
283 files changed, 29395 insertions, 4011 deletions
diff --git a/.mailmap b/.mailmap index 9c10b84684..8ff87ed24d 100644 --- a/.mailmap +++ b/.mailmap @@ -33,7 +33,7 @@ Joshua Grant <tadni@riseup.net> <gzg@riseup.net> Joshua Grant <tadni@riseup.net> <jgrant@parenthetical.io> Joshua Grant <tadni@riseup.net> <tadnimi@gmail.com> Joshua Grant <tadni@riseup.net> <youlysses@riseup.net> -Kei Kebreau <kei@openmailbox.org> +Kei Kebreau <kei@openmailbox.org> <kkebreau@posteo.net> Leo Famulari <leo@famulari.name> <lfamular@gmail.com> Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr> Marek Benc <dusxmt@gmx.com> <merkur32@gmail.com> diff --git a/Makefile.am b/Makefile.am index 661f9d6453..b6b7af3eb7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,7 @@ # Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> # Copyright © 2017 Leo Famulari <leo@famulari.name> # Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +# Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> # # This file is part of GNU Guix. # @@ -79,6 +80,7 @@ MODULES = \ guix/build-system/dub.scm \ guix/build-system/emacs.scm \ guix/build-system/font.scm \ + guix/build-system/meson.scm \ guix/build-system/minify.scm \ guix/build-system/asdf.scm \ guix/build-system/glib-or-gtk.scm \ @@ -106,6 +108,7 @@ MODULES = \ guix/build/cmake-build-system.scm \ guix/build/dub-build-system.scm \ guix/build/emacs-build-system.scm \ + guix/build/meson-build-system.scm \ guix/build/minify-build-system.scm \ guix/build/font-build-system.scm \ guix/build/asdf-build-system.scm \ @@ -141,6 +144,7 @@ MODULES = \ guix/build/make-bootstrap.scm \ guix/search-paths.scm \ guix/packages.scm \ + guix/import/print.scm \ guix/import/utils.scm \ guix/import/gnu.scm \ guix/import/snix.scm \ @@ -164,12 +168,14 @@ MODULES = \ guix/scripts/authenticate.scm \ guix/scripts/refresh.scm \ guix/scripts/system.scm \ + guix/scripts/system/search.scm \ guix/scripts/lint.scm \ guix/scripts/challenge.scm \ guix/scripts/import/cran.scm \ guix/scripts/import/gnu.scm \ guix/scripts/import/nix.scm \ guix/scripts/import/hackage.scm \ + guix/scripts/import/json.scm \ guix/scripts/import/elpa.scm \ guix/scripts/import/texlive.scm \ guix/scripts/environment.scm \ @@ -191,6 +197,7 @@ MODULES += \ guix/import/crate.scm \ guix/import/gem.scm \ guix/import/github.scm \ + guix/import/gnome.scm \ guix/import/json.scm \ guix/import/pypi.scm \ guix/import/stackage.scm \ @@ -223,8 +230,8 @@ 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.12-i686.conf \ - gnu/packages/aux-files/linux-libre/4.12-x86_64.conf \ + gnu/packages/aux-files/linux-libre/4.13-i686.conf \ + gnu/packages/aux-files/linux-libre/4.13-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.9-i686.conf \ gnu/packages/aux-files/linux-libre/4.9-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.4-i686.conf \ @@ -271,6 +278,7 @@ SCM_TESTS = \ tests/hash.scm \ tests/pk-crypto.scm \ tests/pki.scm \ + tests/print.scm \ tests/sets.scm \ tests/modules.scm \ tests/gnu-maintenance.scm \ @@ -312,6 +320,7 @@ SCM_TESTS = \ tests/workers.scm \ tests/zlib.scm \ tests/file-systems.scm \ + tests/uuid.scm \ tests/system.scm \ tests/services.scm \ tests/scripts-build.scm \ @@ -702,6 +711,15 @@ hydra-jobs.scm: $(GOBJECTS) "$(top_srcdir)/build-aux/hydra/gnu-system.scm" > "$@.tmp" $(AM_V_at)mv "$@.tmp" "$@" +# Compute the Cuirass jobs and write them in the target file. +cuirass-jobs.scm: $(GOBJECTS) + $(AM_V_at)$(MKDIR_P) "`dirname "$@"`" + $(AM_V_GEN)$(top_builddir)/pre-inst-env "$(GUILE)" \ + "$(top_srcdir)/build-aux/hydra/evaluate.scm" \ + "$(top_srcdir)/build-aux/cuirass/gnu-system.scm" \ + cuirass > "$@.tmp" + $(AM_V_at)mv "$@.tmp" "$@" + .PHONY: gen-ChangeLog gen-AUTHORS gen-tarball-version .PHONY: assert-no-store-file-names assert-binaries-available .PHONY: assert-final-inputs-self-contained diff --git a/README b/README index 4921f255da..18e685672d 100644 --- a/README +++ b/README @@ -1,42 +1,42 @@ -*- mode: org -*- -[[http://www.gnu.org/software/guix/][GNU Guix]] (IPA: /ɡiːks/) is a purely functional package manager, and -associated free software distribution, for the [[http://www.gnu.org/gnu/gnu.html][GNU system]]. In addition +[[https://www.gnu.org/software/guix/][GNU Guix]] (IPA: /ɡiːks/) is a purely functional package manager, and +associated free software distribution, for the [[https://www.gnu.org/gnu/gnu.html][GNU system]]. In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. -It provides [[http://www.gnu.org/software/guile/][Guile]] Scheme APIs, including a high-level embedded +It provides [[https://www.gnu.org/software/guile/][Guile]] Scheme APIs, including a high-level embedded domain-specific languages (EDSLs) to describe how packages are to be built and composed. A user-land free software distribution for GNU/Linux comes as part of Guix. -Guix is based on the [[http://nixos.org/nix/][Nix]] package manager. +Guix is based on the [[https://nixos.org/nix/][Nix]] package manager. * Requirements GNU Guix currently depends on the following packages: - - [[http://gnu.org/software/guile/][GNU Guile 2.2.x or 2.0.x]], version 2.0.9 or later - - [[http://gnupg.org/][GNU libgcrypt]] - - [[http://www.gnu.org/software/make/][GNU Make]] - - optionally [[http://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command - - optionally [[http://www.gnutls.org][GnuTLS]] compiled with guile support enabled, for HTTPS support + - [[https://gnu.org/software/guile/][GNU Guile 2.2.x or 2.0.x]], version 2.0.9 or later + - [[https://gnupg.org/][GNU libgcrypt]] + - [[https://www.gnu.org/software/make/][GNU Make]] + - optionally [[https://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command + - optionally [[https://www.gnutls.org][GnuTLS]] compiled with guile support enabled, for HTTPS support in the 'guix download' command. Note that 'guix import pypi' requires this functionality. Unless `--disable-daemon' was passed, the following packages are needed: - - [[http://sqlite.org/][SQLite 3]] + - [[https://sqlite.org/][SQLite 3]] - [[http://www.bzip.org][libbz2]] - - [[http://gcc.gnu.org][GCC's g++]] + - [[https://gcc.gnu.org][GCC's g++]] When `--disable-daemon' was passed, you instead need the following: - - [[http://nixos.org/nix/][Nix]] + - [[https://nixos.org/nix/][Nix]] * Installation @@ -44,7 +44,7 @@ See the manual for the installation instructions, either by running info -f doc/guix.info "Installation" -or by checking the [[http://www.gnu.org/software/guix/manual/guix.html#Installation][web copy of the manual]]. +or by checking the [[https://www.gnu.org/software/guix/manual/guix.html#Installation][web copy of the manual]]. For information on installation from a Git checkout, please see the section "Building from Git" in the manual. @@ -109,7 +109,7 @@ Join #guix on irc.freenode.net. * Guix & Nix -GNU Guix is based on [[http://nixos.org/nix/][the Nix package manager]]. It implements the same +GNU Guix is based on [[https://nixos.org/nix/][the Nix package manager]]. It implements the same package deployment paradigm, and in fact it reuses some of its code. Yet, different engineering decisions were made for Guix, as described below. @@ -132,7 +132,7 @@ the store. Guix produces such derivations, which are then interpreted by the daemon to perform the build. Thus, Guix derivations can use derivations produced by Nix (and vice versa). -With Nix and the [[http://nixos.org/nixpkgs][Nixpkgs]] distribution, package composition happens at +With Nix and the [[https://nixos.org/nixpkgs][Nixpkgs]] distribution, package composition happens at the Nix language level, but builders are usually written in Bash. Conversely, Guix encourages the use of Scheme for both package composition and builders. Likewise, the core functionality of Nix is @@ -141,13 +141,13 @@ but exposes all the API as Scheme. * Related software - - [[http://nixos.org][Nix, Nixpkgs, and NixOS]], functional package manager and associated + - [[https://nixos.org][Nix, Nixpkgs, and NixOS]], functional package manager and associated software distribution, are the inspiration of Guix - - [[http://www.gnu.org/software/stow/][GNU Stow]] builds around the idea of one directory per prefix, and a + - [[https://www.gnu.org/software/stow/][GNU Stow]] builds around the idea of one directory per prefix, and a symlink tree to create user environments - - [[http://www.pvv.ntnu.no/~arnej/store/storedoc_6.html][STORE]] shares the same idea + - [[https://www.pvv.ntnu.no/~arnej/store/storedoc_6.html][STORE]] shares the same idea - [[https://live.gnome.org/OSTree/][GNOME's OSTree]] allows bootable system images to be built from a specified set of packages - - The [[http://www.gnu.org/s/gsrc/][GNU Source Release Collection]] (GSRC) is a user-land software + - The [[https://www.gnu.org/s/gsrc/][GNU Source Release Collection]] (GSRC) is a user-land software distribution; unlike Guix, it relies on core tools available on the host system diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm index 147bb80196..fe25c5d065 100644 --- a/build-aux/compile-all.scm +++ b/build-aux/compile-all.scm @@ -27,7 +27,8 @@ ;; FIXME: 'format' is missing because it reports "non-literal format ;; strings" due to the fact that we use 'G_' instead of '_'. We'll need ;; help from Guile to solve this. - '(unsupported-warning unbound-variable arity-mismatch)) + '(unsupported-warning unbound-variable arity-mismatch + macro-use-before-definition)) ;new in 2.2 (define host (getenv "host")) diff --git a/build-aux/cuirass/gnu-system.scm b/build-aux/cuirass/gnu-system.scm new file mode 100644 index 0000000000..c88267b9d8 --- /dev/null +++ b/build-aux/cuirass/gnu-system.scm @@ -0,0 +1,47 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +;;; +;;; This file defines build jobs for the Cuirass continuation integration +;;; tool. +;;; + +(include-from-path "build-aux/hydra/gnu-system.scm") + +(use-modules ((guix licenses) + #:select (license? license-name license-uri license-comment))) + +(define (cuirass-jobs store arguments) + "Return Cuirass jobs." + (map hydra-job->cuirass-job (hydra-jobs store arguments))) + +(define (hydra-job->cuirass-job hydra-job) + (let ((name (car hydra-job)) + (job ((cdr hydra-job)))) + (lambda _ (acons #:job-name (symbol->string name) + (map symbol-alist-entry->keyword-alist-entry job))))) + +(define (symbol-alist-entry->keyword-alist-entry entry) + (cons (symbol->keyword (car entry)) (entry->sexp-entry (cdr entry)))) + +(define (entry->sexp-entry o) + (match o + ((? license?) `((name . (license-name o)) + (uri . ,(license-uri o)) + (comment . ,(license-comment o)))) + (_ o))) diff --git a/build-aux/hydra/evaluate.scm b/build-aux/hydra/evaluate.scm index cc6a4b9492..604022abcf 100644 --- a/build-aux/hydra/evaluate.scm +++ b/build-aux/hydra/evaluate.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -70,7 +71,7 @@ Otherwise return THING." ;; Without further ado... (match (command-line) - ((command file) + ((command file cuirass? ...) ;; Load FILE, a Scheme file that defines Hydra jobs. (let ((port (current-output-port))) (save-module-excursion @@ -96,7 +97,11 @@ Otherwise return THING." ;; Call the entry point of FILE and print the resulting job sexp. (pretty-print - (match ((module-ref %user-module 'hydra-jobs) store '()) + (match ((module-ref %user-module + (if (equal? cuirass? "cuirass") + 'cuirass-jobs + 'hydra-jobs)) + store '()) (((names . thunks) ...) (map (lambda (job thunk) (format (current-error-port) "evaluating '~a'... " job) @@ -107,8 +112,8 @@ Otherwise return THING." names thunks))) port)))) ((command _ ...) - (format (current-error-port) "Usage: ~a FILE -Evaluate the Hydra jobs defined in FILE.~%" + (format (current-error-port) "Usage: ~a FILE [cuirass] +Evaluate the Hydra or Cuirass jobs defined in FILE.~%" command) (exit 1))) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 73bd566f7c..146d929f9b 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -270,6 +271,8 @@ valid." (define subset (match (assoc-ref arguments 'subset) ("core" 'core) ; only build core packages + ("hello" 'hello) ; only build hello + (((? string?) (? string?) ...) 'list) ; only build selected list of packages (_ 'all))) ; build everything (define (cross-jobs system) @@ -340,6 +343,22 @@ valid." package system)) %core-packages) (cross-jobs system))) + ((hello) + ;; Build hello package only. + (if (string=? system (%current-system)) + (let ((hello (specification->package "hello"))) + (list (package-job store (job-name hello) hello system))) + '())) + ((list) + ;; Build selected list of packages only. + (if (string=? system (%current-system)) + (let* ((names (assoc-ref arguments 'subset)) + (packages (map specification->package names))) + (map (lambda (package) + (package-job store (job-name package) + package system)) + packages)) + '())) (else (error "unknown subset" subset)))) %hydra-supported-systems))) diff --git a/configure.ac b/configure.ac index 9ad7598f8b..5120df53fd 100644 --- a/configure.ac +++ b/configure.ac @@ -52,7 +52,7 @@ AC_MSG_CHECKING([for the store directory]) AC_MSG_RESULT([$storedir]) AC_ARG_ENABLE([daemon], - [AS_HELP_STRING([--disable-daemon], [build the Nix daemon (C++)])], + [AS_HELP_STRING([--disable-daemon], [do not build the Nix daemon (C++)])], [guix_build_daemon="$enableval"], [guix_build_daemon="yes"]) diff --git a/doc/contributing.texi b/doc/contributing.texi index 00edd47710..1b1875fa0c 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -298,11 +298,7 @@ This mailing list is backed by a Debbugs instance accessible at of submissions. Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is -the tracking number. When sending a patch series, please first send one -message to @email{guix-patches@@gnu.org}, and then send subsequent -patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they are kept -together. See @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs -documentation}, for more information. +the tracking number (@pxref{Sending a Patch Series}). Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for @@ -434,7 +430,25 @@ Please follow our code formatting rules, possibly running the 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. 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. +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 indentation which could potentially break the +patches. + +When a bug is resolved, please close the thread by sending an email to +@email{@var{NNN}-done@@debbugs.gnu.org}. + +@unnumberedsubsec Sending a Patch Series +@anchor{Sending a Patch Series} +@cindex patch series +@cindex @code{git send-email} +@cindex @code{git-send-email} + +When sending a patch series (e.g., using @code{git send-email}), please +first send one message to @email{guix-patches@@gnu.org}, and then send +subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure +they are kept together. See +@uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation} +for more information. +@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html diff --git a/doc/guix.texi b/doc/guix.texi index e8b4d5e082..c57c0bab63 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -27,7 +27,7 @@ Copyright @copyright{} 2016 Chris Marusich@* Copyright @copyright{} 2016, 2017 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016 ng0@* -Copyright @copyright{} 2016 Jan Nieuwenhuizen@* +Copyright @copyright{} 2016, 2017 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017 Clément Lassieur@* @@ -38,7 +38,9 @@ Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017 Marius Bakke@* -Copyright @copyright{} 2017 Hartmut Goebel +Copyright @copyright{} 2017 Hartmut Goebel@* +Copyright @copyright{} 2017 Maxim Cournoyer@* +Copyright @copyright{} 2017 Tobias Geerinckx-Rice Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -2141,6 +2143,8 @@ your system has unpatched security vulnerabilities. @cindex security @cindex digital signatures @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 @@ -2189,9 +2193,29 @@ The following files would be downloaded: This indicates that substitutes from @code{hydra.gnu.org} are usable and will be downloaded, when possible, for future builds. -Guix ignores substitutes that are not signed, or that are not signed by -one of the keys listed in the ACL. It also detects and raises an error -when attempting to use a substitute that has been tampered with. +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. + +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: + +@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). @vindex http_proxy Substitutes are downloaded over HTTP or HTTPS. @@ -3787,6 +3811,61 @@ need to be copied into place. It copies font files to standard locations in the output directory. @end defvr +@defvr {Scheme Variable} meson-build-system +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. + +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. + +This build system is an extension of @var{gnu-build-system}, but with the +following phases changed to some specific for Meson: + +@table @code + +@item configure +The phase runs @code{meson} with the flags specified in +@code{#:configure-flags}. The flag @code{--build-type} is always set to +@code{plain} unless something else is specified in @code{#:build-type}. + +@item build +The phase runs @code{ninja} to build the package in parallel by default, but +this can be changed with @code{#:parallel-build?}. + +@item check +The phase runs @code{ninja} with the target specified in @code{#:test-target}, +which is @code{"test"} by default. + +@item install +The phase runs @code{ninja install} and can not be changed. +@end table + +Apart from that, the build system also adds the following phases: + +@table @code + +@item fix-runpath +This phase tries to locate the local directories in the package being build, +which has libraries that some of the binaries need. If any are found, they will +be added to the programs @code{RUNPATH}. It is needed because +@code{meson-for-build} keeps the @code{RUNPATH} of binaries and libraries from +when they are build, but often that is not the @code{RUNPATH} we want. +Therefor it is also shrinked to the minimum needed by the program. + +@item glib-or-gtk-wrap +This phase is the phase provided by @code{glib-or-gtk-build-system}, and it +is not enabled by default. It can be enabled with @code{#:glib-or-gtk?}. + +@item glib-or-gtk-compile-schemas +This phase is the phase provided by @code{glib-or-gtk-build-system}, and it +is not enabled by default. It can be enabled with @code{#:glib-or-gtk?}. +@end table +@end defvr + Lastly, for packages that do not need anything as sophisticated, a ``trivial'' build system is provided. It is trivial in the sense that it provides basically no support: it does not pull any implicit inputs, @@ -5820,6 +5899,56 @@ CTAN while fetching the sources from the directory guix import texlive --archive=generic ifxetex @end example +@item json +@cindex JSON, import +Import package metadata from a local JSON file@footnote{This +functionality requires Guile-JSON to be installed. +@xref{Requirements}.}. Consider the following example package +definition in JSON format: + +@example +@{ + "name": "hello", + "version": "2.10", + "source": "mirror://gnu/hello/hello-2.10.tar.gz", + "build-system": "gnu", + "home-page": "https://www.gnu.org/software/hello/", + "synopsis": "Hello, GNU world: An example GNU package", + "description": "GNU Hello prints a greeting.", + "license": "GPL-3.0+", + "native-inputs": ["gcc@@6"] +@} +@end example + +The field names are the same as for the @code{<package>} record +(@xref{Defining Packages}). References to other packages are provided +as JSON lists of quoted package specification strings such as +@code{guile} or @code{guile@@2.0}. + +The importer also supports a more explicit source definition using the +common fields for @code{<origin>} records: + +@example +@{ + @dots{} + "source": @{ + "method": "url-fetch", + "uri": "mirror://gnu/hello/hello-2.10.tar.gz", + "sha256": @{ + "base32": "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i" + @} + @} + @dots{} +@} +@end example + +The command below reads metadata from the JSON file @code{hello.json} +and outputs a package expression: + +@example +guix import json hello.json +@end example + @item nix Import metadata from a local copy of the source of the @uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This @@ -6381,10 +6510,10 @@ Use substitute information from @var{urls}. Sort lines according to @var{key}, one of the following options: @table @code -@item closure -the total size of the item's closure (the default); @item self -the size of each item. +the size of each item (the default); +@item closure +the total size of the item's closure. @end table @item --map-file=@var{file} @@ -7851,7 +7980,12 @@ Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently GuixSD only supports ext4 and btrfs file systems. In particular, code that reads partition UUIDs and labels only works for these file system -types.}. +types.}. For the ESP, if you have one and assuming it is +@file{/dev/sda2}, run: + +@example +mkfs.fat -F32 /dev/sda2 +@end example Preferably, assign partitions a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File @@ -8162,8 +8296,9 @@ environment variable---in addition to the per-user profiles 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 tcpdump to those, taken from the @code{(gnu -packages admin)} module (@pxref{Package Modules}). The +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: @@ -9879,7 +10014,7 @@ with the default settings, for commonly encountered log files. (operating-system ;; @dots{} - (services (cons* (mcron-service) + (services (cons* (service mcron-service-type) (service rottlog-service-type) %base-services))) @end lisp @@ -10010,6 +10145,9 @@ 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 service is part of @code{%desktop-services} (@pxref{Desktop +Services}). @end defvr @deftp {Data Type} network-manager-configuration @@ -10037,6 +10175,11 @@ then update @code{resolv.conf} to point to the local nameserver. NetworkManager will not modify @code{resolv.conf}. @end table +@item @code{vpn-plugins} (default: @code{'()}) +This is the list of available plugins for virtual private networks +(VPNs). An example of this is the @code{network-manager-openvpn} +package, which allows NetworkManager to manage VPNs @i{via} OpenVPN. + @end table @end deftp @@ -10242,6 +10385,75 @@ In addition, @var{extra-settings} specifies a string to append to the configuration file. @end deffn +The @code{(gnu services rsync)} module provides the following services: + +You might want an rsync daemon if you have files that you want available +so anyone (or just yourself) can download existing files or upload new +files. + +@deffn {Scheme Variable} rsync-service-type +This is the type for the @uref{https://rsync.samba.org, rsync} rsync daemon, +@command{rsync-configuration} record as in this example: + +@example +(service rsync-service-type) +@end example + +See below for details about @code{rsync-configuration}. +@end deffn + +@deftp {Data Type} rsync-configuration +Data type representing the configuration for @code{rsync-service}. + +@table @asis +@item @code{package} (default: @var{rsync}) +@code{rsync} package to use. + +@item @code{port-number} (default: @code{873}) +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. + +@item @code{pid-file} (default: @code{"/var/run/rsyncd/rsyncd.pid"}) +Name of the file where @command{rsync} writes its PID. + +@item @code{lock-file} (default: @code{"/var/run/rsyncd/rsyncd.lock"}) +Name of the file where @command{rsync} writes its lock file. + +@item @code{log-file} (default: @code{"/var/log/rsyncd.log"}) +Name of the file where @command{rsync} writes its log file. + +@item @code{use-chroot?} (default: @var{#t}) +Whether to use chroot for @command{rsync} shared directory. + +@item @code{share-path} (default: @file{/srv/rsync}) +Location of the @command{rsync} shared directory. + +@item @code{share-comment} (default: @code{"Rsync share"}) +Comment of the @command{rsync} shared directory. + +@item @code{read-only?} (default: @var{#f}) +Read-write permissions to shared directory. + +@item @code{timeout} (default: @code{300}) +I/O timeout in seconds. + +@item @code{user} (default: @var{"root"}) +Owner of the @code{rsync} process. + +@item @code{group} (default: @var{"root"}) +Group of the @code{rsync} process. + +@item @code{uid} (default: @var{"rsyncd"}) +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}. + +@item @code{gid} (default: @var{"rsyncd"}) +Group name or group ID that will be used when accessing the module. + +@end table +@end deftp + Furthermore, @code{(gnu services ssh)} provides the following services. @cindex SSH @cindex SSH server @@ -11573,7 +11785,7 @@ adds or adjusts services for a typical ``desktop'' setup. In particular, it adds a graphical login manager (@pxref{X Window, @code{slim-service}}), screen lockers, a network management tool -(@pxref{Networking Services, @code{wicd-service}}), energy and color +(@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 @@ -11654,7 +11866,7 @@ and policy files. For example, to allow avahi-daemon to use the system bus, @deffn {Scheme Procedure} elogind-service [#:config @var{config}] Return a service that runs the @code{elogind} login and -seat management daemon. @uref{https://github.com/andywingo/elogind, +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, reboot the system, and other tasks. @@ -11815,9 +12027,13 @@ location databases. See web site} for more information. @end deffn -@deffn {Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] -Return a service that runs the @command{bluetoothd} daemon, which manages -all the Bluetooth devices and provides a number of D-Bus interfaces. +@deffn {Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @ + [@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 +powered automatically at boot, which can be useful when using a +bluetooth keyboard or mouse. Users need to be in the @code{lp} group to access the D-Bus service. @end deffn @@ -14028,7 +14244,7 @@ A simple example configuration is given below. @example (service nginx-service-type (nginx-configuration - (server-list + (server-blocks (list (nginx-server-configuration (server-name '("www.example.com")) (root "/srv/http/www.example.com") @@ -14047,7 +14263,8 @@ blocks, as in this example: (https-port #f) (ssl-certificate #f) (ssl-certificate-key #f) - (root "/srv/http/extra-website")))) + (root "/srv/http/extra-website") + (try-files (list "$uri" "$uri/index.html"))))) @end example @end deffn @@ -14076,7 +14293,7 @@ The directory to which NGinx will write log files. The directory in which NGinx will create a pid file, and write temporary files. -@item @code{server-list} (default: @code{'()}) +@item @code{server-blocks} (default: @code{'()}) A list of @dfn{server blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-server-configuration>}. @@ -14087,7 +14304,7 @@ HTTPS. @example (service nginx-service-type (nginx-configuration - (server-list + (server-blocks (list (nginx-server-configuration (server-name '("www.example.com")) (root "/srv/http/www.example.com") @@ -14096,12 +14313,12 @@ HTTPS. (ssl-certificate-key #f)))))) @end example -@item @code{upstream-list} (default: @code{'()}) +@item @code{upstream-blocks} (default: @code{'()}) A list of @dfn{upstream blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-upstream-configuration>}. -Configuring upstreams through the @code{upstream-list} can be useful +Configuring upstreams through the @code{upstream-blocks} can be useful when combined with @code{locations} in the @code{<nginx-server-configuration>} records. The following example creates a server configuration with one location configuration, that @@ -14112,7 +14329,7 @@ requests with two servers. (service nginx-service-type (nginx-configuration - (server-list + (server-blocks (list (nginx-server-configuration (server-name '("www.example.com")) (root "/srv/http/www.example.com") @@ -14124,20 +14341,19 @@ requests with two servers. (nginx-location-configuration (uri "/path1") (body '("proxy_pass http://server-proxy;")))))))) - (upstream-list + (upstream-blocks (list (nginx-upstream-configuration (name "server-proxy") (servers (list "server1.example.com" "server2.example.com"))))))) @end example -@item @code{config-file} (default: @code{#f}) -If the @var{config-file} is provided, this will be used, rather than +@item @code{file} (default: @code{#f}) +If a configuration @var{file} is provided, this will be used, rather than generating a configuration file from the provided @code{log-directory}, -@code{run-directory}, @code{server-list} and @code{upstream-list}. For -proper operation, these arguments should match what is in -@var{config-file} to ensure that the directories are created when the -service is activated. +@code{run-directory}, @code{server-blocks} and @code{upstream-blocks}. For +proper operation, these arguments should match what is in @var{file} to ensure +that the directories are created when the service is activated. This can be useful if you have an existing configuration file, or it's not possible to do what is required through the other parts of the @@ -14179,6 +14395,10 @@ server block. Index files to look for when clients ask for a directory. If it cannot be found, Nginx will send the list of files in the directory. +@item @code{try-files} (default: @code{'()}) +A list of files whose existence is checked in the specified order. +@code{nginx} will use the first file it finds to process the request. + @item @code{ssl-certificate} (default: @code{"/etc/nginx/cert.pem"}) Where to find the certificate for secure connections. Set it to @code{#f} if you don't have a certificate or you don't want to use HTTPS. @@ -15202,20 +15422,13 @@ packages, as prescribed in the @file{gnu-system.scm} example spec: (let ((spec #~((#:name . "guix") (#:url . "git://git.savannah.gnu.org/guix.git") (#:load-path . ".") - - ;; Here we must provide an absolute file name. - ;; We take jobs from one of the examples provided - ;; by Cuirass. - (#:file . #$(file-append - cuirass - "/tests/gnu-system.scm")) - - (#:proc . hydra-jobs) + (#:file . "build-aux/cuirass/gnu-system.scm") + (#:proc . cuirass-jobs) (#:arguments (subset . "hello")) (#:branch . "master")))) (service cuirass-service-type (cuirass-configuration - (specifications #~(list #$spec))))) + (specifications #~(list '#$spec))))) @end example While information related to build jobs is located directly in the @@ -15246,9 +15459,13 @@ Cuirass jobs. Location of sqlite database which contains the build results and previously added specifications. -@item @code{port} (default: @code{8080}) +@item @code{port} (default: @code{8081}) Port number used by the HTTP server. +@item --listen=@var{host} +Listen on the network interface for @var{host}. The default is to +accept connections from localhost. + @item @code{specifications} (default: @code{#~'()}) A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications, where a specification is an association list @@ -15844,9 +16061,6 @@ The directory to scan for music files. @item @code{playlist-dir} (default: @code{"~/.mpd/playlists"}) The directory to store playlists. -@item @code{pid-file} (default: @code{"/var/run/mpd.pid"}) -The file mpd wil store its PID. This must be an absolute path. - @item @code{port} (default: @code{"6600"}) The port to run mpd on. @@ -17363,6 +17577,42 @@ operating system is instantiated. Currently the following values are supported: @table @code +@item search +Display available service type definitions that match the given regular +expressions, sorted by relevance: + +@example +$ guix system search console font +name: console-fonts +location: gnu/services/base.scm:729:2 +extends: shepherd-root +description: Install the given fonts on the specified ttys (fonts are ++ per virtual console on GNU/Linux). The value of this service is a list ++ of tty/font pairs like: ++ ++ '(("tty1" . "LatGrkCyr-8x16")) +relevance: 20 + +name: mingetty +location: gnu/services/base.scm:1048:2 +extends: shepherd-root +description: Provide console login using the `mingetty' program. +relevance: 2 + +name: login +location: gnu/services/base.scm:775:2 +extends: pam +description: Provide a console log-in service as specified by its ++ configuration value, a `login-configuration' object. +relevance: 2 + +@dots{} +@end example + +As for @command{guix package --search}, the result is written in +@code{recutils} format, which makes it easy to filter the output +(@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual}). + @item reconfigure Build the operating system described in @var{file}, activate it, and switch to it@footnote{This action (and the related actions @@ -17992,6 +18242,12 @@ Udev extensions are composed into a list of rules, but the udev service value is itself a @code{<udev-configuration>} record. So here, we extend that record by appending the list of rules it contains to the list of contributed rules. + +@item description +This is a string giving an overview of the service type. The string can +contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}). The +@command{guix system search} command searches these strings and displays +them (@pxref{Invoking guix system}). @end table There can be only one instance of an extensible service type such as diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index a9f0875f36..96e53c5c2b 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -30,7 +30,7 @@ #:use-module (gnu artwork) #:use-module (gnu system) #:use-module (gnu bootloader) - #:use-module (gnu system file-systems) + #:use-module (gnu system uuid) #:autoload (gnu packages bootloaders) (grub) #:autoload (gnu packages compression) (gzip) #:autoload (gnu packages gtk) (guile-cairo guile-rsvg) @@ -300,7 +300,7 @@ code." (match device ;; Preferably refer to DEVICE by its UUID or label. This is more ;; efficient and less ambiguous, see <http://bugs.gnu.org/22281>. - ((? bytevector? uuid) + ((? uuid? uuid) (format #f "search --fs-uuid --set ~a" (uuid->string device))) ((? string? label) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 203fbdfffb..32885f1d2e 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -19,6 +19,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu build file-systems) + #:use-module (gnu system uuid) #:use-module (guix build utils) #:use-module (guix build bournish) #:use-module (guix build syscalls) @@ -26,8 +27,6 @@ #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:use-module (ice-9 rdelim) - #:use-module (ice-9 format) - #:use-module (ice-9 regex) #:use-module (system foreign) #:autoload (system repl repl) (start-repl) #:use-module (srfi srfi-1) @@ -41,15 +40,6 @@ find-partition-by-luks-uuid canonicalize-device-spec - uuid->string - string->uuid - string->iso9660-uuid - string->ext2-uuid - string->ext3-uuid - string->ext4-uuid - string->btrfs-uuid - iso9660-uuid->string - bind-mount mount-flags->bit-mask @@ -95,20 +85,6 @@ takes a bytevector and returns #t when it's a valid superblock." (and (magic? block) block))))))))) -(define (sub-bytevector bv start size) - "Return a copy of the SIZE bytes of BV starting from offset START." - (let ((result (make-bytevector size))) - (bytevector-copy! bv start result 0 size) - result)) - -(define (latin1->string bv terminator) - "Return a string of BV, a latin1 bytevector, or #f. TERMINATOR is a predicate -that takes a number and returns #t when a termination character is found." - (let ((bytes (take-while (negate terminator) (bytevector->u8-list bv)))) - (if (null? bytes) - #f - (list->string (map integer->char bytes))))) - (define null-terminated-latin1->string (cut latin1->string <> zero?)) @@ -196,10 +172,6 @@ if DEVICE does not contain a btrfs file system." ;; <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-107.pdf>. -(define-syntax %fat32-endianness - ;; Endianness of fat file systems. - (identifier-syntax (endianness little))) - (define (fat32-superblock? sblock) "Return #t when SBLOCK is a fat32 superblock." (bytevector=? (sub-bytevector sblock 82 8) @@ -214,12 +186,6 @@ if DEVICE does not contain a btrfs file system." "Return the Volume ID of a fat superblock SBLOCK as a 4-byte bytevector." (sub-bytevector sblock 67 4)) -(define (fat32-uuid->string uuid) - "Convert fat32 UUID, a 4-byte bytevector, to its string representation." - (let ((high (bytevector-uint-ref uuid 0 %fat32-endianness 2)) - (low (bytevector-uint-ref uuid 2 %fat32-endianness 2))) - (format #f "~:@(~x-~x~)" low high))) - (define (fat32-superblock-volume-name sblock) "Return the volume name of SBLOCK as a string of at most 11 characters, or #f if SBLOCK has no volume name. The volume name is a latin1 string. @@ -241,27 +207,6 @@ Trailing spaces are trimmed." ;; <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-119.pdf>. -(define %iso9660-uuid-rx - ;; Y m d H M S ss - (make-regexp "^([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})$")) - -(define (string->iso9660-uuid str) - "Parse STR as a ISO9660 UUID (which is really a timestamp - see /dev/disk/by-uuid). -Return its contents as a 16-byte bytevector. Return #f if STR is not a valid -ISO9660 UUID representation." - (and=> (regexp-exec %iso9660-uuid-rx str) - (lambda (match) - (letrec-syntax ((match-numerals - (syntax-rules () - ((_ index (name rest ...) body) - (let ((name (match:substring match index))) - (match-numerals (+ 1 index) (rest ...) body))) - ((_ index () body) - body)))) - (match-numerals 1 (year month day hour minute second hundredths) - (string->utf8 (string-append year month day - hour minute second hundredths))))))) - (define (iso9660-superblock? sblock) "Return #t when SBLOCK is an iso9660 volume descriptor." (bytevector=? (sub-bytevector sblock 1 6) @@ -308,20 +253,6 @@ SBLOCK as a bytevector. If that's not set, returns the creation time." modification-time))) (sub-bytevector time 0 16))) ; strips GMT offset. -(define (iso9660-uuid->string uuid) - "Given an UUID bytevector, return its timestamp string." - (define (digits->string bytes) - (latin1->string bytes (lambda (c) #f))) - (let* ((year (sub-bytevector uuid 0 4)) - (month (sub-bytevector uuid 4 2)) - (day (sub-bytevector uuid 6 2)) - (hour (sub-bytevector uuid 8 2)) - (minute (sub-bytevector uuid 10 2)) - (second (sub-bytevector uuid 12 2)) - (hundredths (sub-bytevector uuid 14 2)) - (parts (list year month day hour minute second hundredths))) - (string-append (string-join (map digits->string parts) "-")))) - (define (iso9660-superblock-volume-name sblock) "Return the volume name of SBLOCK as a string. The volume name is an ASCII string. Trailing spaces are trimmed." @@ -509,65 +440,6 @@ were found." (find-partition luks-partition-uuid-predicate)) -;;; -;;; UUIDs. -;;; - -(define-syntax %network-byte-order - (identifier-syntax (endianness big))) - -(define (uuid->string uuid) - "Convert UUID, a 16-byte bytevector, to its string representation, something -like \"6b700d61-5550-48a1-874c-a3d86998990e\"." - ;; See <https://tools.ietf.org/html/rfc4122>. - (let ((time-low (bytevector-uint-ref uuid 0 %network-byte-order 4)) - (time-mid (bytevector-uint-ref uuid 4 %network-byte-order 2)) - (time-hi (bytevector-uint-ref uuid 6 %network-byte-order 2)) - (clock-seq (bytevector-uint-ref uuid 8 %network-byte-order 2)) - (node (bytevector-uint-ref uuid 10 %network-byte-order 6))) - (format #f "~8,'0x-~4,'0x-~4,'0x-~4,'0x-~12,'0x" - time-low time-mid time-hi clock-seq node))) - -(define %uuid-rx - ;; The regexp of a UUID. - (make-regexp "^([[:xdigit:]]{8})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{12})$")) - -(define (string->uuid str) - "Parse STR as a DCE UUID (see <https://tools.ietf.org/html/rfc4122>) and -return its contents as a 16-byte bytevector. Return #f if STR is not a valid -UUID representation." - (and=> (regexp-exec %uuid-rx str) - (lambda (match) - (letrec-syntax ((hex->number - (syntax-rules () - ((_ index) - (string->number (match:substring match index) - 16)))) - (put! - (syntax-rules () - ((_ bv index (number len) rest ...) - (begin - (bytevector-uint-set! bv index number - (endianness big) len) - (put! bv (+ index len) rest ...))) - ((_ bv index) - bv)))) - (let ((time-low (hex->number 1)) - (time-mid (hex->number 2)) - (time-hi (hex->number 3)) - (clock-seq (hex->number 4)) - (node (hex->number 5)) - (uuid (make-bytevector 16))) - (put! uuid 0 - (time-low 4) (time-mid 2) (time-hi 2) - (clock-seq 2) (node 6))))))) - -(define string->ext2-uuid string->uuid) -(define string->ext3-uuid string->uuid) -(define string->ext4-uuid string->uuid) -(define string->btrfs-uuid string->uuid) - - (define* (canonicalize-device-spec spec #:optional (title 'any)) "Return the device name corresponding to SPEC. TITLE is a symbol, one of the following: diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index f35f0fbca1..7554a710a0 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -165,13 +165,14 @@ QEMU monitor and to the guest's backdoor REPL." (newline repl) (read repl)))) -(define* (wait-for-file file marionette #:key (timeout 10)) - "Wait until FILE exists in MARIONETTE; 'read' its content and return it. If +(define* (wait-for-file file marionette + #:key (timeout 10) (read 'read)) + "Wait until FILE exists in MARIONETTE; READ its content and return it. If FILE has not shown up after TIMEOUT seconds, raise an error." (match (marionette-eval `(let loop ((i ,timeout)) (cond ((file-exists? ,file) - (cons 'success (call-with-input-file ,file read))) + (cons 'success (call-with-input-file ,file ,read))) ((> i 0) (sleep 1) (loop (- i 1))) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 727494ad93..7537f81509 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -26,7 +26,7 @@ #:use-module (guix build syscalls) #:use-module (gnu build linux-boot) #:use-module (gnu build install) - #:use-module (gnu build file-systems) + #:use-module (gnu system uuid) #:use-module (guix records) #:use-module ((guix combinators) #:select (fold2)) #:use-module (ice-9 format) @@ -163,6 +163,7 @@ the #:references-graphs parameter of 'derivation'." (size partition-size) (file-system partition-file-system (default "ext4")) (label partition-label (default #f)) + (uuid partition-uuid (default #f)) (flags partition-flags (default '())) (initializer partition-initializer (default (const #t)))) @@ -236,22 +237,26 @@ actual /dev name based on DEVICE." (define MS_BIND 4096) ; <sys/mounts.h> again! (define* (create-ext-file-system partition type - #:key label) + #:key label uuid) "Create an ext-family filesystem of TYPE on PARTITION. If LABEL is true, -use that as the volume name." +use that as the volume name. If UUID is true, use it as the partition UUID." (format #t "creating ~a partition...\n" type) (unless (zero? (apply system* (string-append "mkfs." type) "-F" partition - (if label - `("-L" ,label) - '()))) + `(,@(if label + `("-L" ,label) + '()) + ,@(if uuid + `("-U" ,(uuid->string uuid)) + '())))) (error "failed to create partition"))) (define* (create-fat-file-system partition - #:key label) + #:key label uuid) "Create a FAT filesystem on PARTITION. The number of File Allocation Tables will be determined based on filesystem size. If LABEL is true, use that as the volume name." + ;; FIXME: UUID is ignored! (format #t "creating FAT partition...\n") (unless (zero? (apply system* "mkfs.fat" partition (if label @@ -260,13 +265,13 @@ volume name." (error "failed to create FAT partition"))) (define* (format-partition partition type - #:key label) + #:key label uuid) "Create a file system TYPE on PARTITION. If LABEL is true, use that as the volume name." (cond ((string-prefix? "ext" type) - (create-ext-file-system partition type #:label label)) + (create-ext-file-system partition type #:label label #:uuid uuid)) ((or (string-prefix? "fat" type) (string= "vfat" type)) - (create-fat-file-system partition #:label label)) + (create-fat-file-system partition #:label label #:uuid uuid)) (else (error "Unsupported file system.")))) (define (initialize-partition partition) @@ -275,7 +280,8 @@ it, run its initializer, and unmount it." (let ((target "/fs")) (format-partition (partition-device partition) (partition-file-system partition) - #:label (partition-label partition)) + #:label (partition-label partition) + #:uuid (partition-uuid partition)) (mkdir-p target) (mount (partition-device partition) target (partition-file-system partition)) @@ -366,32 +372,40 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (error "failed to create GRUB EFI image")))) (define* (make-iso9660-image grub config-file os-drv target - #:key (volume-id "GuixSD_image") (volume-uuid #f)) + #:key (volume-id "GuixSD_image") (volume-uuid #f) + register-closures? (closures '())) "Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as GRUB configuration and OS-DRV as the stuff in it." - (let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue"))) + (let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue")) + (target-store (string-append "/tmp/root" (%store-directory)))) (mkdir-p "/tmp/root/var/run") (mkdir-p "/tmp/root/run") + (mkdir-p "/tmp/root/mnt") + + (mkdir-p target-store) + (mount (%store-directory) target-store "" MS_BIND) + + (when register-closures? + (display "registering closures...\n") + (for-each (lambda (closure) + (register-closure + "/tmp/root" + (string-append "/xchg/" closure) + ;; XXX: Using deduplication causes cross device link errors. + #:deduplicate? #f)) + closures)) + (unless (zero? (apply system* `(,grub-mkrescue "-o" ,target ,(string-append "boot/grub/grub.cfg=" config-file) ,(string-append "gnu/store=" os-drv "/..") "var=/tmp/root/var" "run=/tmp/root/run" + ;; /mnt is used as part of the installation + ;; process, as the mount point for the target + ;; filesystem, so create it. + "mnt=/tmp/root/mnt" "--" - ;; Store two copies of the headers. - ;; The resulting ISO-9660 image has a DOS MBR and - ;; one protective partition (with type 0xCD). - ;; Because GuixSD only uses actual partitions - ;; rather than what /proc/partitions returns, work - ;; around it by storing the primary volume - ;; descriptor twice, once where it should be and - ;; once in the partition. - ;; Allegedly, otherwise, many other GNU tools - ;; (automounters etc) would also be confused by - ;; the extra partition so it makes sense to - ;; store two copies in any case. - "-boot_image" "any" "partition_offset=16" "-volid" ,(string-upcase volume-id) ,@(if volume-uuid `("-volume_date" "uuid" diff --git a/gnu/local.mk b/gnu/local.mk index 34ceccb78e..e2b9a69b8f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -4,7 +4,7 @@ # Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> # Copyright © 2013, 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> # Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> -# Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> +# Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net> # Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org> # Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> # Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> @@ -88,6 +88,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/chez.scm \ %D%/packages/ci.scm \ %D%/packages/cmake.scm \ + %D%/packages/cobol.scm \ %D%/packages/code.scm \ %D%/packages/commencement.scm \ %D%/packages/compression.scm \ @@ -139,6 +140,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/enlightenment.scm \ %D%/packages/entr.scm \ %D%/packages/erlang.scm \ + %D%/packages/fabric-management.scm \ %D%/packages/fcitx.scm \ %D%/packages/figlet.scm \ %D%/packages/file.scm \ @@ -363,6 +365,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/shells.scm \ %D%/packages/shellutils.scm \ %D%/packages/simh.scm \ + %D%/packages/simulation.scm \ %D%/packages/skarnet.scm \ %D%/packages/skribilo.scm \ %D%/packages/slang.scm \ @@ -449,6 +452,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/shepherd.scm \ %D%/services/herd.scm \ %D%/services/pm.scm \ + %D%/services/rsync.scm \ %D%/services/sddm.scm \ %D%/services/spice.scm \ %D%/services/ssh.scm \ @@ -468,6 +472,7 @@ GNU_SYSTEM_MODULES = \ %D%/system/nss.scm \ %D%/system/pam.scm \ %D%/system/shadow.scm \ + %D%/system/uuid.scm \ %D%/system/vm.scm \ \ %D%/build/activation.scm \ @@ -487,12 +492,14 @@ GNU_SYSTEM_MODULES = \ %D%/tests/audio.scm \ %D%/tests/base.scm \ %D%/tests/databases.scm \ + %D%/tests/desktop.scm \ %D%/tests/dict.scm \ %D%/tests/nfs.scm \ %D%/tests/install.scm \ %D%/tests/mail.scm \ %D%/tests/messaging.scm \ %D%/tests/networking.scm \ + %D%/tests/rsync.scm \ %D%/tests/ssh.scm \ %D%/tests/virtualization.scm \ %D%/tests/web.scm @@ -534,9 +541,9 @@ dist_patch_DATA = \ %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/bluez-CVE-2017-1000250.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ - %D%/packages/patches/calibre-drop-unrar.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-use-packaged-feedparser.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ @@ -566,7 +573,6 @@ dist_patch_DATA = \ %D%/packages/patches/crawl-upgrade-saves.patch \ %D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/crossmap-allow-system-pysam.patch \ - %D%/packages/patches/csound-header-ordering.patch \ %D%/packages/patches/clucene-contribs-lib.patch \ %D%/packages/patches/curl-bounds-check.patch \ %D%/packages/patches/cursynth-wave-rand.patch \ @@ -581,7 +587,6 @@ dist_patch_DATA = \ %D%/packages/patches/doc++-segfault-fix.patch \ %D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ - %D%/packages/patches/e2fsprogs-32bit-quota-warnings.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-disable-failing-tests.patch \ %D%/packages/patches/einstein-build.patch \ @@ -602,13 +607,15 @@ 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/file-CVE-2017-1000249.patch \ %D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-gnulib-multi-core.patch \ %D%/packages/patches/findutils-test-xargs.patch \ %D%/packages/patches/flint-ldconfig.patch \ %D%/packages/patches/fltk-shared-lib-defines.patch \ %D%/packages/patches/fltk-xfont-on-demand.patch \ - %D%/packages/patches/fontforge-svg-modtime.patch \ + %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ + %D%/packages/patches/foomatic-filters-CVE-2015-8560.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 \ @@ -630,7 +637,6 @@ dist_patch_DATA = \ %D%/packages/patches/gcr-disable-failing-tests.patch \ %D%/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch \ %D%/packages/patches/gdk-pixbuf-list-dir.patch \ - %D%/packages/patches/gd-CVE-2017-7890.patch \ %D%/packages/patches/gd-fix-gd2-read-test.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-freetype-test-failure.patch \ @@ -673,9 +679,14 @@ dist_patch_DATA = \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ + %D%/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-12935.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-12936.patch \ %D%/packages/patches/graphicsmagick-CVE-2017-12937.patch \ + %D%/packages/patches/graphicsmagick-CVE-2017-13775.patch \ + %D%/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch \ + %D%/packages/patches/graphicsmagick-CVE-2017-14042.patch \ + %D%/packages/patches/graphicsmagick-CVE-2017-14165.patch \ %D%/packages/patches/graphite2-ffloat-store.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/groff-source-date-epoch.patch \ @@ -711,6 +722,7 @@ dist_patch_DATA = \ %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/httpd-CVE-2017-9798.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 \ @@ -750,6 +762,7 @@ dist_patch_DATA = \ %D%/packages/patches/liba52-link-with-libm.patch \ %D%/packages/patches/liba52-set-soname.patch \ %D%/packages/patches/liba52-use-mtune-not-mcpu.patch \ + %D%/packages/patches/libarchive-CVE-2017-14166.patch \ %D%/packages/patches/libbase-fix-includes.patch \ %D%/packages/patches/libbase-use-own-logging.patch \ %D%/packages/patches/libbonobo-activation-test-race.patch \ @@ -795,14 +808,12 @@ dist_patch_DATA = \ %D%/packages/patches/libtirpc-CVE-2017-8779.patch \ %D%/packages/patches/libtorrent-rasterbar-boost-compat.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ - %D%/packages/patches/libunwind-CVE-2015-3239.patch \ %D%/packages/patches/libunistring-gnulib-multi-core.patch \ %D%/packages/patches/libusb-0.1-disable-tests.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/libzip-CVE-2017-12858.patch \ %D%/packages/patches/lierolibre-check-unaligned-access.patch \ %D%/packages/patches/lierolibre-is-free-software.patch \ %D%/packages/patches/lierolibre-newer-libconfig.patch \ @@ -835,9 +846,8 @@ dist_patch_DATA = \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \ %D%/packages/patches/mesa-skip-disk-cache-test.patch \ %D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch \ - %D%/packages/patches/metabat-remove-compilation-date.patch \ + %D%/packages/patches/meson-for-build-rpath.patch \ %D%/packages/patches/metabat-fix-compilation.patch \ - %D%/packages/patches/metabat-fix-boost-issue.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \ %D%/packages/patches/mpc123-initialize-ao.patch \ @@ -848,7 +858,6 @@ 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/multiqc-fix-git-subprocess-error.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ @@ -862,9 +871,9 @@ dist_patch_DATA = \ %D%/packages/patches/netsurf-y2038-tests.patch \ %D%/packages/patches/netsurf-longer-test-timeout.patch \ %D%/packages/patches/newsbeuter-CVE-2017-12904.patch \ + %D%/packages/patches/newsbeuter-CVE-2017-14500.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ninja-zero-mtime.patch \ - %D%/packages/patches/node-9077.patch \ %D%/packages/patches/nss-increase-test-timeout.patch \ %D%/packages/patches/nss-pkgconfig.patch \ %D%/packages/patches/nvi-assume-preserve-path.patch \ @@ -875,11 +884,18 @@ dist_patch_DATA = \ %D%/packages/patches/ocaml-CVE-2015-8869.patch \ %D%/packages/patches/ocaml-Add-a-.file-directive.patch \ %D%/packages/patches/ocaml-findlib-make-install.patch \ + %D%/packages/patches/ocaml-graph-honor-source-date-epoch.patch \ %D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/openscenegraph-ffmpeg3.patch \ %D%/packages/patches/openexr-missing-samples.patch \ + %D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openjpeg-CVE-2017-12982.patch \ + %D%/packages/patches/openjpeg-CVE-2017-14040.patch \ + %D%/packages/patches/openjpeg-CVE-2017-14041.patch \ + %D%/packages/patches/openjpeg-CVE-2017-14151.patch \ + %D%/packages/patches/openjpeg-CVE-2017-14152.patch \ + %D%/packages/patches/openjpeg-CVE-2017-14164.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ %D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openssl-runpath.patch \ @@ -953,6 +969,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-genshi-fix-tests-on-python-3.5.patch \ %D%/packages/patches/python-genshi-isstring-helper.patch \ %D%/packages/patches/python-genshi-stripping-of-unsafe-script-tags.patch \ + %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \ %D%/packages/patches/python-parse-too-many-fields.patch \ %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ %D%/packages/patches/python-statsmodels-fix-tests.patch \ @@ -967,18 +984,8 @@ dist_patch_DATA = \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \ - %D%/packages/patches/qemu-CVE-2017-7493.patch \ - %D%/packages/patches/qemu-CVE-2017-8112.patch \ - %D%/packages/patches/qemu-CVE-2017-8309.patch \ - %D%/packages/patches/qemu-CVE-2017-8379.patch \ - %D%/packages/patches/qemu-CVE-2017-8380.patch \ - %D%/packages/patches/qemu-CVE-2017-9524.patch \ - %D%/packages/patches/qemu-CVE-2017-10664.patch \ - %D%/packages/patches/qemu-CVE-2017-10806.patch \ - %D%/packages/patches/qemu-CVE-2017-10911.patch \ - %D%/packages/patches/qemu-CVE-2017-11334.patch \ - %D%/packages/patches/qemu-CVE-2017-11434.patch \ - %D%/packages/patches/qemu-CVE-2017-12809.patch \ + %D%/packages/patches/qemu-CVE-2017-13711.patch \ + %D%/packages/patches/qemu-CVE-2017-14167.patch \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/quagga-reproducible-build.patch \ diff --git a/gnu/packages.scm b/gnu/packages.scm index 5629061788..b4ac6661ca 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -140,17 +140,19 @@ for system '~a'") directory)) %load-path))) -(define (fold-packages proc init) - "Call (PROC PACKAGE RESULT) for each available package, using INIT as -the initial value of RESULT. It is guaranteed to never traverse the -same package twice." +(define* (fold-packages proc init + #:optional + (modules (all-modules (%package-module-path)))) + "Call (PROC PACKAGE RESULT) for each available package defined in one of +MODULES, using INIT as the initial value of RESULT. It is guaranteed to never +traverse the same package twice." (fold-module-public-variables (lambda (object result) (if (and (package? object) (not (hidden-package? object))) (proc object result) result)) init - (all-modules (%package-module-path)))) + modules)) (define find-packages-by-name (let ((packages (delay diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm index 0795808768..78cb64a2d7 100644 --- a/gnu/packages/accessibility.scm +++ b/gnu/packages/accessibility.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz> +;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,8 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) #:use-module (gnu packages xml) @@ -29,7 +32,8 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages libusb)) (define-public florence (package @@ -76,3 +80,42 @@ available to help to click.") ;; The documentation is under FDL1.2, but we do not install the ;; documentation. (license license:gpl2+))) + +(define-public footswitch + (let ((commit "7cb0a9333a150c27c7e4746ee827765d244e567a")) + (package + (name "footswitch") + (version (git-version "0.1" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rgerganov/footswitch") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mg1vr4a9vls5y435w7wdnr1vb5059gy60lvrdfjgzhd2wwf47iw")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("hidapi" ,hidapi))) + (arguments + `(#:tests? #f ; no tests + #:make-flags (list "CC=gcc") + #:phases (modify-phases %standard-phases + (delete 'configure) + ;; Install target in the Makefile does not work for Guix + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") + "/bin"))) + (mkdir-p bin) + (install-file "footswitch" bin) + #t)))))) + (home-page "https://github.com/rgerganov/footswitch") + (synopsis "Command line utility for PCsensor foot switch") + (description + "Command line utility for programming foot switches sold by PCsensor. +It works for both single pedal devices and three pedal devices. All supported +devices have vendorId:productId = 0c45:7403 or 0c45:7404.") + (license license:expat)))) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ea71de6f57..8e98174f47 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -661,14 +661,14 @@ network statistics collection, security monitoring, network debugging, etc.") (define-public tcpdump (package (name "tcpdump") - (version "4.9.1") + (version "4.9.2") (source (origin (method url-fetch) (uri (string-append "http://www.tcpdump.org/release/tcpdump-" version ".tar.gz")) (sha256 (base32 - "1wyqbg7bkmgqyslf1ns0xx9fcqi66hvcfm9nf77rl15jvvs8qi7r")))) + "0ygy0layzqaj838r5xd613iraz09wlfgpyh7pc6cwclql8v3b2vr")))) (build-system gnu-build-system) (inputs `(("libpcap" ,libpcap) ("openssl" ,openssl))) @@ -818,7 +818,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.8.20p2") + (version "1.8.21p2") (source (origin (method url-fetch) (uri @@ -828,7 +828,7 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "1na5likm1srnd1g5sjx7b0543sczw0yppacyqsazfdg9b48awhmx")) + "0s33szq6q59v5s377l4v6ybsdy7pfq6sz7y364j4x09ssdn79ibl")) (modules '((guix build utils))) (snippet '(delete-file-recursively "lib/zlib")))) @@ -871,7 +871,8 @@ system administrator.") "$(TMPDIR)/dummy") (("\\$\\(DESTDIR\\)\\$\\(vardir\\)") ;; Don't try to create /var/db/sudo. - "$(TMPDIR)/dummy"))))) + "$(TMPDIR)/dummy")) + #t))) ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but ;; the chroot's /etc/passwd doesn't have it. Turn off the tests. diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index 0864aa6490..fa4555ede6 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darringon <jmd@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,3 +70,26 @@ a mobile phone with CCD. The capacity of QR Code is up to 7000 digits or 4000 characters, and is highly robust.") (license license:lgpl2.1+) (home-page "https://fukuchi.org/works/qrencode"))) + +(define-public libdmtx + (package + (name "libdmtx") + (version "0.7.4") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/libdmtx/" name "/" version "/" + name "-" version ".tar.bz2")) + (sha256 + (base32 "0xnxx075ycy58n92yfda2z9zgd41h3d4ik5d9l197lzsqim5hb5n")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://libdmtx.sourceforge.net/") + (synopsis "Library for reading and writing Data Matrix 2D barcodes") + (description "libdmtx is open source software for reading and writing Data +Matrix 2D barcodes on Linux and Unix. At its core libdmtx is a shared +library, allowing C/C++ programs to use its capabilities without restrictions +or overhead.") + (license license:bsd-3))) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 74ef7dc285..e4f30a5791 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -133,7 +133,7 @@ solve the shortest vector problem.") (define-public pari-gp (package (name "pari-gp") - (version "2.9.2") + (version "2.9.3") (source (origin (method url-fetch) (uri (string-append @@ -141,7 +141,7 @@ solve the shortest vector problem.") version ".tar.gz")) (sha256 (base32 - "0zi08qz9nk17wwdna4xb2vp3i3mh5sgv1y8wqbf0j2sfryxlr8ls")))) + "0qqal1lpggd6dvs19svnz0dil86xk0xkcj5s3b7104ibkmvjfsp7")))) (build-system gnu-build-system) (native-inputs `(("texlive" ,texlive-tiny))) (inputs `(("gmp" ,gmp) diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 132013b57a..a1f5bd1820 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -64,7 +64,7 @@ in FITS files.") (define-public wcslib (package (name "wcslib") - (version "5.16") + (version "5.17") (source (origin (method url-fetch) @@ -72,7 +72,7 @@ in FITS files.") "ftp://ftp.atnf.csiro.au/pub/software/wcslib/" name "-" version ".tar.bz2")) (sha256 - (base32 "1vwrzkznpig2q40m11j12hsfqvsjz8z44l66pz5fkh6fy461w0zd")))) + (base32 "0v23x1fw01arhmqdrzfd9n593mjglhzfyx4793v065z0dg4bb72w")))) (inputs `(("cfitsio" ,cfitsio))) (build-system gnu-build-system) @@ -83,7 +83,7 @@ in FITS files.") (substitute* "makedefs.in" (("/bin/sh") "sh")) #t))))) - (home-page "http://www.atnf.csiro.au/people/mcalabre/WCS") + (home-page "https://www.atnf.csiro.au/people/mcalabre/WCS") (synopsis "Library which implements the FITS WCS standard") (description "The FITS \"World Coordinate System\" (WCS) standard defines keywords and usage that provide for the description of astronomical coordinate @@ -93,7 +93,7 @@ systems in a FITS image header.") (define-public gnuastro (package (name "gnuastro") - (version "0.3") + (version "0.4") (source (origin (method url-fetch) @@ -101,7 +101,7 @@ systems in a FITS image header.") version ".tar.gz")) (sha256 (base32 - "109xjwbs36gbkx5sd5yzf6ailfcldc5d28vl1n19z0ylfzww4nwa")))) + "1n30zz4kg89ic5h30b7nrxp0bk0ls2m3xnfi81mja56bxxwpihrs")))) (inputs `(("cfitsio" ,cfitsio) ("gsl" ,gsl) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 62b526b10d..95a5fdd7c8 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -328,7 +328,7 @@ engineers, musicians, soundtrack editors and composers.") #:phases (modify-phases %standard-phases ;; FFmpeg is only detected if autoreconf runs. - (add-before 'configure 'autoreconf + (add-after 'unpack 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))) ;; The test suite is not "well exercised" according to the developers, @@ -568,23 +568,17 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.") (define-public csound (package (name "csound") - (version "6.05") + (version "6.09.1") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/csound/csound6/Csound" - version "/Csound" version ".tar.gz")) + "https://github.com/csound/csound/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd")) - (patches (search-patches "csound-header-ordering.patch")))) + "0f67vyy3r29hn26qkkcwnizrnzzy8p7gmg3say5q3wjhxns3b5yl")))) (build-system cmake-build-system) - (arguments - ;; Work around this error on x86_64 with libc 2.22+: - ;; libmvec.so.1: error adding symbols: DSO missing from command line - (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system))) - '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec")) - '())) (inputs `(("alsa-lib" ,alsa-lib) ("boost" ,boost) @@ -1084,7 +1078,7 @@ PS, and DAB+.") (native-inputs `(("llvm" ,llvm-with-rtti) ("which" ,which) - ("xxd" ,vim) + ("xxd" ,xxd) ("ctags" ,emacs-minimal) ; for ctags ("pkg-config" ,pkg-config))) (inputs @@ -1136,7 +1130,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") (define-public guitarix (package (name "guitarix") - (version "0.35.5") + (version "0.35.6") (source (origin (method url-fetch) (uri (string-append @@ -1144,7 +1138,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") version ".tar.xz")) (sha256 (base32 - "00pfb6qa3jfa6qaql7isnb8srfdfmk362ygslh7y0qkm36qasmh4")))) + "0ffvfnvhj6vz73zsrpi88hs69ys4zskm847zf825dl2r39n9nn41")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no "check" target @@ -1979,8 +1973,8 @@ tempo and pitch of an audio recording independently of one another.") (arguments `(#:tests? #f ;no "check" target #:phases (modify-phases %standard-phases - (add-before - 'configure 'autoconf + (add-after + 'unpack 'autoconf (lambda _ (zero? (system* "autoreconf" "-vfi")))) (add-before 'build 'fix-makefile @@ -2906,3 +2900,29 @@ code, used in @code{libtoxcore}.") 06.10 RPE-LTP lossy speech compression algorithm.") (home-page "http://quut.com/gsm/") (license (license:non-copyleft "file://COPYRIGHT")))) + +(define-public python-pyalsaaudio + (package + (name "python-pyalsaaudio") + (version "0.8.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "pyalsaaudio" version)) + (sha256 + (base32 + "1180ypn9596rq4b7y7dyv627j1q0fqilmkkrckclnzsdakdgis44")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ; tests require access to ALSA devices. + (inputs + `(("alsa-lib" ,alsa-lib))) + (home-page "http://larsimmisch.github.io/pyalsaaudio/") + (synopsis "ALSA wrappers for Python") + (description + "This package contains wrappers for accessing the ALSA API from Python. +It is currently fairly complete for PCM devices, and has some support for +mixers.") + (license license:psfl))) + +(define-public python2-pyalsaaudio + (package-with-python2 python-pyalsaaudio)) diff --git a/gnu/packages/aux-files/linux-libre/4.12-i686.conf b/gnu/packages/aux-files/linux-libre/4.13-i686.conf index 384764f841..4a56afa864 100644 --- a/gnu/packages/aux-files/linux-libre/4.12-i686.conf +++ b/gnu/packages/aux-files/linux-libre/4.13-i686.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.12.0-gnu Kernel Configuration +# Linux/x86 4.13.0-gnu Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -84,7 +84,9 @@ CONFIG_AUDIT_TREE=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -93,6 +95,7 @@ CONFIG_GENERIC_MSI_IRQ_DOMAIN=y # CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y @@ -134,7 +137,6 @@ CONFIG_TREE_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y -# CONFIG_TREE_RCU_TRACE is not set CONFIG_BUILD_BIN2C=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 @@ -237,6 +239,7 @@ CONFIG_SLUB_DEBUG=y # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set +CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_SYSTEM_DATA_VERIFICATION is not set @@ -268,6 +271,7 @@ CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y @@ -277,6 +281,7 @@ CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y @@ -292,11 +297,13 @@ CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set # CONFIG_GCC_PLUGIN_STRUCTLEAK is not set +# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set CONFIG_HAVE_CC_STACKPROTECTOR=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set # CONFIG_CC_STACKPROTECTOR_REGULAR is not set CONFIG_CC_STACKPROTECTOR_STRONG=y +CONFIG_THIN_ARCHIVES=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y @@ -320,6 +327,7 @@ 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 @@ -522,6 +530,7 @@ CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y # CONFIG_X86_ANCIENT_MCE is not set CONFIG_X86_MCE_THRESHOLD=y +# CONFIG_X86_MCE_INJECT is not set CONFIG_X86_THERMAL_VECTOR=y # @@ -568,6 +577,7 @@ CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_STATIC=y CONFIG_HAVE_MEMBLOCK=y 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 @@ -590,6 +600,7 @@ 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 @@ -609,6 +620,7 @@ CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set CONFIG_IDLE_PAGE_TRACKING=y CONFIG_FRAME_VECTOR=y +# CONFIG_PERCPU_STATS is not set CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=y CONFIG_HIGHPTE=y @@ -832,6 +844,7 @@ CONFIG_PCI_STUB=m CONFIG_XEN_PCIDEV_FRONTEND=m CONFIG_HT_IRQ=y CONFIG_PCI_ATS=y +CONFIG_PCI_LOCKLESS_CONFIG=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y @@ -943,6 +956,7 @@ CONFIG_PACKET=y CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m +CONFIG_TLS=m CONFIG_XFRM=y CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=m @@ -1451,10 +1465,11 @@ CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=m CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_KSZ=y +CONFIG_NET_DSA_TAG_LAN9303=y +CONFIG_NET_DSA_TAG_MTK=y CONFIG_NET_DSA_TAG_TRAILER=y CONFIG_NET_DSA_TAG_QCA=y -CONFIG_NET_DSA_TAG_MTK=y -CONFIG_NET_DSA_TAG_LAN9303=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y @@ -1972,6 +1987,10 @@ CONFIG_MTD_CMDLINE_PARTS=m CONFIG_MTD_AR7_PARTS=m # +# Partition parsers +# + +# # User Modules And Translation Layers # CONFIG_MTD_BLKDEVS=m @@ -2046,6 +2065,7 @@ CONFIG_MTD_DATAFLASH=m # CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set CONFIG_MTD_DATAFLASH_OTP=y CONFIG_MTD_M25P80=m +CONFIG_MTD_MCHP23K256=m CONFIG_MTD_SST25L=m CONFIG_MTD_SLRAM=m CONFIG_MTD_PHRAM=m @@ -2080,8 +2100,6 @@ CONFIG_MTD_NAND_CAFE=m CONFIG_MTD_NAND_CS553X=m CONFIG_MTD_NAND_NANDSIM=m CONFIG_MTD_NAND_PLATFORM=m -CONFIG_MTD_NAND_HISI504=m -CONFIG_MTD_NAND_MTK=m CONFIG_MTD_ONENAND=m CONFIG_MTD_ONENAND_VERIFY_WRITE=y CONFIG_MTD_ONENAND_GENERIC=m @@ -2189,7 +2207,6 @@ CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_RSXX=m CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=m -# CONFIG_BLK_DEV_NVME_SCSI is not set CONFIG_NVME_FABRICS=m CONFIG_NVME_RDMA=m CONFIG_NVME_FC=m @@ -2299,6 +2316,7 @@ 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_HAVE_IDE=y # CONFIG_IDE is not set @@ -2616,6 +2634,7 @@ CONFIG_DM_VERITY=m CONFIG_DM_SWITCH=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_INTEGRITY=m +CONFIG_DM_ZONED=m CONFIG_TARGET_CORE=m CONFIG_TCM_IBLOCK=m CONFIG_TCM_FILEIO=m @@ -2739,17 +2758,19 @@ CONFIG_CAIF_VIRTIO=m # # Distributed Switch Architecture drivers # -CONFIG_NET_DSA_MV88E6060=m CONFIG_B53=m CONFIG_B53_SPI_DRIVER=m CONFIG_B53_MDIO_DRIVER=m CONFIG_B53_MMAP_DRIVER=m CONFIG_B53_SRAB_DRIVER=m +# CONFIG_NET_DSA_LOOP is not set +CONFIG_NET_DSA_MT7530=m +CONFIG_NET_DSA_MV88E6060=m +CONFIG_MICROCHIP_KSZ=m +CONFIG_MICROCHIP_KSZ_SPI_DRIVER=m CONFIG_NET_DSA_MV88E6XXX=m CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y CONFIG_NET_DSA_QCA8K=m -# CONFIG_NET_DSA_LOOP is not set -CONFIG_NET_DSA_MT7530=m CONFIG_NET_DSA_SMSC_LAN9303=m CONFIG_NET_DSA_SMSC_LAN9303_I2C=m CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m @@ -2795,6 +2816,7 @@ CONFIG_NET_VENDOR_AURORA=y CONFIG_AURORA_NB8800=m CONFIG_NET_CADENCE=y CONFIG_MACB=m +CONFIG_MACB_USE_HWSTAMP=y CONFIG_MACB_PCI=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m @@ -2892,6 +2914,7 @@ CONFIG_MLX4_EN_DCB=y CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX5_CORE=m +# CONFIG_MLX5_FPGA is not set CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_EN_DCB=y # CONFIG_MLX5_CORE_IPOIB is not set @@ -2905,6 +2928,7 @@ CONFIG_MLXSW_SWITCHX2=m CONFIG_MLXSW_SPECTRUM=m CONFIG_MLXSW_SPECTRUM_DCB=y CONFIG_MLXSW_MINIMAL=m +CONFIG_MLXFW=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m CONFIG_KS8851=m @@ -2922,6 +2946,7 @@ CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_NETRONOME=y CONFIG_NFP=m +# CONFIG_NFP_APP_FLOWER is not set # CONFIG_NFP_DEBUG is not set CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=m @@ -3029,6 +3054,7 @@ CONFIG_SKFP=m # CONFIG_HIPPI is not set CONFIG_NET_SB1000=m CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y CONFIG_MDIO_BITBANG=m CONFIG_MDIO_GPIO=m CONFIG_PHYLIB=y @@ -3046,6 +3072,7 @@ CONFIG_BCM87XX_PHY=m CONFIG_BCM_NET_PHYLIB=m CONFIG_BROADCOM_PHY=m CONFIG_CICADA_PHY=m +CONFIG_CORTINA_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_DP83848_PHY=m CONFIG_DP83867_PHY=m @@ -3055,6 +3082,7 @@ CONFIG_INTEL_XWAY_PHY=m CONFIG_LSI_ET1011C_PHY=m CONFIG_LXT_PHY=m CONFIG_MARVELL_PHY=m +CONFIG_MARVELL_10G_PHY=m CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m CONFIG_MICROSEMI_PHY=m @@ -3173,6 +3201,7 @@ CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210_TRACING=y CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m +CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_DEBUG is not set CONFIG_ATH10K_DEBUGFS=y CONFIG_ATH10K_TRACING=y @@ -3377,6 +3406,9 @@ CONFIG_WLAN_VENDOR_ZYDAS=y CONFIG_USB_ZD1201=m CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set +CONFIG_WLAN_VENDOR_QUANTENNA=y +CONFIG_QTNFMAC=m +CONFIG_QTNFMAC_PEARL_PCIE=m CONFIG_PCMCIA_RAYCS=m CONFIG_PCMCIA_WL3501=m CONFIG_MAC80211_HWSIM=m @@ -3607,6 +3639,7 @@ CONFIG_KEYBOARD_ADP5589=m CONFIG_KEYBOARD_ATKBD=y CONFIG_KEYBOARD_QT1070=m CONFIG_KEYBOARD_QT2160=m +CONFIG_KEYBOARD_DLINK_DIR685=m CONFIG_KEYBOARD_LKKBD=m CONFIG_KEYBOARD_GPIO=m CONFIG_KEYBOARD_GPIO_POLLED=m @@ -3785,6 +3818,7 @@ CONFIG_TOUCHSCREEN_RM_TS=m CONFIG_TOUCHSCREEN_SILEAD=m CONFIG_TOUCHSCREEN_SIS_I2C=m CONFIG_TOUCHSCREEN_ST1232=m +CONFIG_TOUCHSCREEN_STMFTS=m CONFIG_TOUCHSCREEN_SUR40=m CONFIG_TOUCHSCREEN_SURFACE3_SPI=m CONFIG_TOUCHSCREEN_SX8654=m @@ -3994,6 +4028,7 @@ CONFIG_HVC_XEN=y CONFIG_HVC_XEN_FRONTEND=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_DMI_DECODE=y # CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m @@ -4112,8 +4147,9 @@ CONFIG_I2C_SCMI=m # I2C system bus drivers (mostly embedded / system-on-chip) # CONFIG_I2C_CBUS_GPIO=m -CONFIG_I2C_DESIGNWARE_CORE=m -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_CORE=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +# CONFIG_I2C_DESIGNWARE_SLAVE is not set CONFIG_I2C_DESIGNWARE_PCI=m CONFIG_I2C_DESIGNWARE_BAYTRAIL=y CONFIG_I2C_EG20T=m @@ -4185,6 +4221,7 @@ CONFIG_SPI_ZYNQMP_GQSPI=m CONFIG_SPI_SPIDEV=m # CONFIG_SPI_LOOPBACK_TEST is not set CONFIG_SPI_TLE62X0=m +# CONFIG_SPI_SLAVE is not set CONFIG_SPMI=m CONFIG_HSI=m CONFIG_HSI_BOARDINFO=y @@ -4197,10 +4234,6 @@ CONFIG_HSI_BOARDINFO=y # HSI clients # CONFIG_HSI_CHAR=m - -# -# PPS support -# CONFIG_PPS=m # CONFIG_PPS_DEBUG is not set @@ -4236,12 +4269,14 @@ CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AMD=y +CONFIG_PINCTRL_MCP23S08=m CONFIG_PINCTRL_SX150X=y CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_MERRIFIELD=m CONFIG_PINCTRL_INTEL=m CONFIG_PINCTRL_BROXTON=m +CONFIG_PINCTRL_CANNONLAKE=m CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_GPIOLIB=y @@ -4334,10 +4369,7 @@ CONFIG_GPIO_RDC321X=m CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MC33880=m CONFIG_GPIO_PISOSR=m - -# -# SPI or I2C GPIO expanders -# +CONFIG_GPIO_XRA1403=m # # USB GPIO expanders @@ -4396,6 +4428,7 @@ CONFIG_BATTERY_SBS=m CONFIG_CHARGER_SBS=m CONFIG_BATTERY_BQ27XXX=m CONFIG_BATTERY_BQ27XXX_I2C=m +# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set CONFIG_BATTERY_DA9030=m CONFIG_BATTERY_DA9052=m CONFIG_CHARGER_DA9150=m @@ -4418,6 +4451,7 @@ CONFIG_CHARGER_LP8727=m CONFIG_CHARGER_LP8788=m CONFIG_CHARGER_GPIO=m CONFIG_CHARGER_MANAGER=y +CONFIG_CHARGER_LTC3651=m CONFIG_CHARGER_MAX14577=m CONFIG_CHARGER_MAX77693=m CONFIG_CHARGER_MAX8997=m @@ -4543,6 +4577,7 @@ CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_IR35221=m CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_LTC2978_REGULATOR=y @@ -4641,6 +4676,7 @@ CONFIG_GENERIC_ADC_THERMAL=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y CONFIG_WATCHDOG_SYSFS=y # @@ -4798,6 +4834,7 @@ CONFIG_LPC_ICH=m CONFIG_LPC_SCH=m CONFIG_INTEL_SOC_PMIC=y CONFIG_INTEL_SOC_PMIC_BXTWC=m +CONFIG_INTEL_SOC_PMIC_CHTWC=m CONFIG_MFD_INTEL_LPSS=m CONFIG_MFD_INTEL_LPSS_ACPI=m CONFIG_MFD_INTEL_LPSS_PCI=m @@ -4991,6 +5028,7 @@ CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_TUNER=m CONFIG_V4L2_MEM2MEM_DEV=m CONFIG_V4L2_FLASH_LED_CLASS=m +CONFIG_V4L2_FWNODE=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m @@ -5312,6 +5350,7 @@ CONFIG_VIDEO_VIVID_MAX_DEVS=64 CONFIG_VIDEO_VIM2M=m CONFIG_DVB_PLATFORM_DRIVERS=y CONFIG_CEC_PLATFORM_DRIVERS=y +CONFIG_SDR_PLATFORM_DRIVERS=y # # Supported MMC/SDIO adapters @@ -5468,6 +5507,10 @@ CONFIG_VIDEO_UPD64083=m CONFIG_VIDEO_SAA6752HS=m # +# SDR tuner chips +# + +# # Miscellaneous helper chips # CONFIG_VIDEO_M52790=m @@ -5744,6 +5787,7 @@ CONFIG_DRM_I915_USERPTR=y # CONFIG_DRM_I915_WERROR is not set # CONFIG_DRM_I915_DEBUG is not set # CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set +# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set # CONFIG_DRM_I915_SELFTEST is not set # CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set # CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set @@ -5767,6 +5811,7 @@ CONFIG_DRM_PANEL=y # Display Panels # CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges @@ -5972,20 +6017,17 @@ 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_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m 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_SEQUENCER_OSS is not set CONFIG_SND_HRTIMER=m -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 CONFIG_SND_SUPPORT_OLD_API=y @@ -5995,14 +6037,19 @@ CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y -CONFIG_SND_RAWMIDI_SEQ=m -CONFIG_SND_OPL3_LIB_SEQ=m -CONFIG_SND_OPL4_LIB_SEQ=m -CONFIG_SND_SBAWE_SEQ=m -CONFIG_SND_EMU10K1_SEQ=m +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_SEQ_VIRMIDI=m CONFIG_SND_MPU401_UART=m CONFIG_SND_OPL3_LIB=m CONFIG_SND_OPL4_LIB=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_OPL4_LIB_SEQ=m CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y @@ -6050,6 +6097,7 @@ CONFIG_SND_MIRO=m CONFIG_SND_SB8=m CONFIG_SND_SB16=m CONFIG_SND_SBAWE=m +CONFIG_SND_SBAWE_SEQ=m CONFIG_SND_SB16_CSP=y CONFIG_SND_SSCAPE=m CONFIG_SND_WAVEFRONT=m @@ -6095,6 +6143,7 @@ CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGODJX=m CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1_SEQ=m CONFIG_SND_EMU10K1X=m CONFIG_SND_ENS1370=m CONFIG_SND_ENS1371=m @@ -6236,11 +6285,18 @@ 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_BYT_CHT_DA7213_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_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_SKYLAKE=m CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m + +# +# STMicroelectronics STM32 SOC audio support +# CONFIG_SND_SOC_XTFPGA_I2S=m CONFIG_ZX_TDM=m CONFIG_SND_SOC_I2C_AND_SPI=m @@ -6288,6 +6344,7 @@ CONFIG_SND_SOC_DIO2125=m CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_HDMI_CODEC=m CONFIG_SND_SOC_ES7134=m +CONFIG_SND_SOC_ES8316=m CONFIG_SND_SOC_ES8328=m CONFIG_SND_SOC_ES8328_I2C=m CONFIG_SND_SOC_ES8328_SPI=m @@ -6315,11 +6372,13 @@ CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RL6347A=m CONFIG_SND_SOC_RT286=m CONFIG_SND_SOC_RT298=m +CONFIG_SND_SOC_RT5514=m CONFIG_SND_SOC_RT5616=m CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m CONFIG_SND_SOC_RT5651=m +CONFIG_SND_SOC_RT5663=m CONFIG_SND_SOC_RT5670=m CONFIG_SND_SOC_RT5677=m CONFIG_SND_SOC_RT5677_SPI=m @@ -6370,6 +6429,7 @@ CONFIG_SND_SOC_WM8962=m CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_ZX_AUD96P22=m CONFIG_SND_SOC_NAU8540=m CONFIG_SND_SOC_NAU8810=m CONFIG_SND_SOC_NAU8824=m @@ -6379,6 +6439,7 @@ CONFIG_SND_SIMPLE_CARD_UTILS=m CONFIG_SND_SIMPLE_CARD=m CONFIG_SND_X86=y CONFIG_HDMI_LPE_AUDIO=m +CONFIG_SND_SYNTH_EMUX=m CONFIG_AC97_BUS=m # @@ -6427,6 +6488,7 @@ CONFIG_HID_UCLOGIC=m CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_ICADE=m +CONFIG_HID_ITE=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m CONFIG_HID_LCPOWER=m @@ -6459,6 +6521,7 @@ CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PICOLCD_CIR=y CONFIG_HID_PLANTRONICS=m CONFIG_HID_PRIMAX=m +CONFIG_HID_RETRODE=m CONFIG_HID_ROCCAT=m CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m @@ -6752,7 +6815,6 @@ CONFIG_USB_HSIC_USB3503=m CONFIG_USB_HSIC_USB4604=m CONFIG_USB_LINK_LAYER_TEST=m CONFIG_USB_CHAOSKEY=m -CONFIG_UCSI=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m @@ -6805,6 +6867,7 @@ 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 @@ -6836,6 +6899,7 @@ 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 @@ -6845,6 +6909,7 @@ CONFIG_USB_CONFIGFS_F_PRINTER=y CONFIG_USB_ZERO=m CONFIG_USB_AUDIO=m CONFIG_GADGET_UAC1=y +# CONFIG_GADGET_UAC1_LEGACY is not set CONFIG_USB_ETH=m CONFIG_USB_ETH_RNDIS=y CONFIG_USB_ETH_EEM=y @@ -6873,6 +6938,8 @@ CONFIG_USB_G_WEBCAM=m # USB Power Delivery and Type-C drivers # CONFIG_TYPEC=m +CONFIG_TYPEC_UCSI=m +CONFIG_UCSI_ACPI=m CONFIG_USB_LED_TRIG=y CONFIG_USB_ULPI_BUS=m CONFIG_UWB=m @@ -6883,7 +6950,6 @@ CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m # CONFIG_MMC_TEST is not set @@ -7065,6 +7131,7 @@ 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 @@ -7143,6 +7210,7 @@ CONFIG_RTC_I2C_AND_SPI=y # SPI and I2C RTC drivers # CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_DS3232_HWMON=y CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_RV3029C2=m CONFIG_RTC_DRV_RV3029_HWMON=y @@ -7184,6 +7252,7 @@ CONFIG_RTC_DRV_AB3100=m # # on-CPU RTC drivers # +CONFIG_RTC_DRV_FTRTC010=m CONFIG_RTC_DRV_PCAP=m CONFIG_RTC_DRV_MC13XXX=m CONFIG_RTC_DRV_MT6397=m @@ -7518,7 +7587,6 @@ CONFIG_AD5933=m # # Light sensors # -CONFIG_SENSORS_ISL29028=m CONFIG_TSL2x7x=m # @@ -7644,6 +7712,7 @@ CONFIG_KS7010=m CONFIG_TYPEC_TCPM=m CONFIG_TYPEC_TCPCI=m CONFIG_TYPEC_FUSB302=m +CONFIG_DRM_VBOXVIDEO=m CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m @@ -7657,7 +7726,6 @@ CONFIG_DELL_WMI_LED=m CONFIG_DELL_SMO8800=m CONFIG_DELL_RBTN=m CONFIG_FUJITSU_LAPTOP=m -# CONFIG_FUJITSU_LAPTOP_DEBUG is not set CONFIG_FUJITSU_TABLET=m CONFIG_AMILO_RFKILL=m CONFIG_TC1100_WMI=m @@ -7686,7 +7754,9 @@ CONFIG_ASUS_NB_WMI=m CONFIG_EEEPC_WMI=m CONFIG_ASUS_WIRELESS=m CONFIG_ACPI_WMI=m +CONFIG_WMI_BMOF=m CONFIG_MSI_WMI=m +CONFIG_PEAQ_WMI=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m CONFIG_TOSHIBA_BT_RFKILL=m @@ -7694,6 +7764,7 @@ CONFIG_TOSHIBA_HAPS=m CONFIG_TOSHIBA_WMI=m CONFIG_ACPI_CMPC=m CONFIG_INTEL_CHT_INT33FE=m +CONFIG_INTEL_INT0002_VGPIO=m CONFIG_INTEL_HID_EVENT=m CONFIG_INTEL_VBTN=m CONFIG_INTEL_SCU_IPC=y @@ -7724,6 +7795,7 @@ CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m CONFIG_CROS_EC_CHARDEV=m CONFIG_CROS_EC_LPC=m +# CONFIG_CROS_EC_LPC_MEC is not set CONFIG_CROS_EC_PROTO=y CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CLKDEV_LOOKUP=y @@ -7744,10 +7816,7 @@ CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set - -# -# Hardware Spinlock drivers -# +CONFIG_HWSPINLOCK=m # # Clock Source drivers @@ -7786,6 +7855,9 @@ CONFIG_REMOTEPROC=m # # Rpmsg drivers # +CONFIG_RPMSG=m +# CONFIG_RPMSG_CHAR is not set +CONFIG_RPMSG_QCOM_GLINK_RPM=m # # SOC (System On Chip) specific Drivers @@ -7800,7 +7872,6 @@ CONFIG_REMOTEPROC=m # # CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y -# CONFIG_SOC_ZTE is not set CONFIG_PM_DEVFREQ=y # @@ -7826,13 +7897,13 @@ CONFIG_EXTCON_ARIZONA=m CONFIG_EXTCON_AXP288=m CONFIG_EXTCON_GPIO=m CONFIG_EXTCON_INTEL_INT3496=m +CONFIG_EXTCON_INTEL_CHT_WC=m CONFIG_EXTCON_MAX14577=m CONFIG_EXTCON_MAX3355=m CONFIG_EXTCON_MAX77693=m CONFIG_EXTCON_MAX77843=m CONFIG_EXTCON_MAX8997=m CONFIG_EXTCON_PALMAS=m -CONFIG_EXTCON_QCOM_SPMI_MISC=m CONFIG_EXTCON_RT8973A=m CONFIG_EXTCON_SM5502=m CONFIG_EXTCON_USB_GPIO=m @@ -7923,7 +7994,9 @@ CONFIG_QCOM_SPMI_IADC=m CONFIG_QCOM_SPMI_VADC=m CONFIG_TI_ADC081C=m CONFIG_TI_ADC0832=m +CONFIG_TI_ADC084S021=m CONFIG_TI_ADC12138=m +CONFIG_TI_ADC108S102=m CONFIG_TI_ADC128S052=m CONFIG_TI_ADC161S626=m CONFIG_TI_ADS1015=m @@ -8097,6 +8170,7 @@ CONFIG_CM36651=m CONFIG_IIO_CROS_EC_LIGHT_PROX=m CONFIG_GP2AP020A00F=m CONFIG_SENSORS_ISL29018=m +CONFIG_SENSORS_ISL29028=m CONFIG_ISL29125=m CONFIG_HID_SENSOR_ALS=m CONFIG_HID_SENSOR_PROX=m @@ -8138,6 +8212,10 @@ CONFIG_SENSORS_HMC5843_I2C=m CONFIG_SENSORS_HMC5843_SPI=m # +# Multiplexers +# + +# # Inclinometer sensors # CONFIG_HID_SENSOR_INCLINOMETER_3D=m @@ -8217,6 +8295,7 @@ CONFIG_TMP007=m CONFIG_TSYS01=m CONFIG_TSYS02D=m CONFIG_NTB=m +CONFIG_NTB_IDT=m CONFIG_NTB_PINGPONG=m CONFIG_NTB_TOOL=m CONFIG_NTB_PERF=m @@ -8258,6 +8337,7 @@ CONFIG_SERIAL_IPOCTAL=m CONFIG_RESET_CONTROLLER=y # CONFIG_RESET_ATH79 is not set # CONFIG_RESET_BERLIN is not set +# CONFIG_RESET_GEMINI is not set # CONFIG_RESET_IMX7 is not set # CONFIG_RESET_LPC18XX is not set # CONFIG_RESET_MESON is not set @@ -8265,7 +8345,7 @@ CONFIG_RESET_CONTROLLER=y # CONFIG_RESET_SOCFPGA is not set # CONFIG_RESET_STM32 is not set # CONFIG_RESET_SUNXI is not set -CONFIG_TI_SYSCON_RESET=m +CONFIG_RESET_TI_SYSCON=m # CONFIG_RESET_ZYNQ is not set # CONFIG_RESET_TEGRA_BPMP is not set CONFIG_FMC=m @@ -8278,15 +8358,16 @@ CONFIG_FMC_CHARDEV=m # PHY Subsystem # CONFIG_GENERIC_PHY=y +CONFIG_BCM_KONA_USB2_PHY=m CONFIG_PHY_PXA_28NM_HSIC=m CONFIG_PHY_PXA_28NM_USB2=m -CONFIG_BCM_KONA_USB2_PHY=m +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_QCOM_USB_HS=m -CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_TUSB1210=m CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m @@ -8298,7 +8379,6 @@ CONFIG_MCB_LPC=m # Performance monitor support # CONFIG_RAS=y -# CONFIG_MCE_AMD_INJ is not set CONFIG_THUNDERBOLT=m # @@ -8313,7 +8393,7 @@ CONFIG_ND_BTT=m CONFIG_BTT=y CONFIG_DAX=y CONFIG_DEV_DAX=m -CONFIG_NVMEM=m +CONFIG_NVMEM=y CONFIG_STM=m CONFIG_STM_DUMMY=m CONFIG_STM_SOURCE_CONSOLE=m @@ -8367,7 +8447,8 @@ CONFIG_EFI_RUNTIME_MAP=y # CONFIG_EFI_FAKE_MEMMAP is not set CONFIG_EFI_RUNTIME_WRAPPERS=y CONFIG_EFI_BOOTLOADER_CONTROL=m -# CONFIG_EFI_CAPSULE_LOADER is not set +CONFIG_EFI_CAPSULE_LOADER=y +CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y # CONFIG_EFI_TEST is not set CONFIG_APPLE_PROPERTIES=y CONFIG_UEFI_CPER=y @@ -8459,6 +8540,7 @@ CONFIG_FUSE_FS=y CONFIG_CUSE=m CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_REDIRECT_DIR is not set +# CONFIG_OVERLAY_FS_INDEX is not set # # Caches @@ -8646,8 +8728,8 @@ 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_SMB2=y CONFIG_CIFS_SMB311=y CONFIG_CIFS_FSCACHE=y CONFIG_NCP_FS=m @@ -8788,6 +8870,8 @@ CONFIG_HAVE_ARCH_KMEMCHECK=y # Debug Lockups and Hangs # CONFIG_LOCKUP_DETECTOR=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HARDLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 @@ -8822,6 +8906,7 @@ CONFIG_SCHED_STACK_END_CHECK=y CONFIG_LOCK_TORTURE_TEST=m CONFIG_WW_MUTEX_SELFTEST=m CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_LIST is not set @@ -8834,7 +8919,6 @@ CONFIG_DEBUG_BUGVERBOSE=y # RCU Debugging # # CONFIG_PROVE_RCU is not set -# CONFIG_SPARSE_RCU_POINTER is not set CONFIG_TORTURE_TEST=m # CONFIG_RCU_PERF_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set @@ -8897,7 +8981,7 @@ CONFIG_MMIOTRACE=y # CONFIG_TRACEPOINT_BENCHMARK is not set # CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_RING_BUFFER_STARTUP_TEST is not set -# CONFIG_TRACE_ENUM_MAP_FILE is not set +# CONFIG_TRACE_EVAL_MAP_FILE is not set CONFIG_TRACING_EVENTS_GPIO=y # @@ -8928,10 +9012,12 @@ CONFIG_TEST_LKM=m CONFIG_TEST_USER_COPY=m CONFIG_TEST_BPF=m CONFIG_TEST_FIRMWARE=m +# CONFIG_TEST_SYSCTL is not set CONFIG_TEST_UDELAY=m CONFIG_MEMTEST=y CONFIG_TEST_STATIC_KEYS=m # CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_TEST_KMOD is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y CONFIG_KGDB=y @@ -8994,6 +9080,7 @@ CONFIG_SECURITY=y CONFIG_SECURITY_WRITABLE_HOOKS=y CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_INFINIBAND is not set CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_PATH=y CONFIG_INTEL_TXT=y @@ -9001,6 +9088,7 @@ CONFIG_LSM_MMAP_MIN_ADDR=0 CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HARDENED_USERCOPY=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=y @@ -9040,12 +9128,11 @@ CONFIG_IMA_NG_TEMPLATE=y CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng" CONFIG_IMA_DEFAULT_HASH_SHA1=y # CONFIG_IMA_DEFAULT_HASH_SHA256 is not set -# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set -# CONFIG_IMA_DEFAULT_HASH_WP512 is not set CONFIG_IMA_DEFAULT_HASH="sha1" # CONFIG_IMA_WRITE_POLICY is not set # CONFIG_IMA_READ_POLICY is not set CONFIG_IMA_APPRAISE=y +CONFIG_IMA_APPRAISE_BOOTPARAM=y CONFIG_IMA_TRUSTED_KEYRING=y CONFIG_IMA_BLACKLIST_KEYRING=y # CONFIG_IMA_LOAD_X509 is not set @@ -9295,6 +9382,7 @@ 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 diff --git a/gnu/packages/aux-files/linux-libre/4.12-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.13-x86_64.conf index 2613eb6222..35a6a91b4f 100644 --- a/gnu/packages/aux-files/linux-libre/4.12-x86_64.conf +++ b/gnu/packages/aux-files/linux-libre/4.13-x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.12.0-gnu Kernel Configuration +# Linux/x86 4.13.0-gnu Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -87,7 +87,9 @@ CONFIG_AUDIT_TREE=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -96,6 +98,7 @@ CONFIG_GENERIC_MSI_IRQ_DOMAIN=y # CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y @@ -139,7 +142,6 @@ CONFIG_TREE_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y -# CONFIG_TREE_RCU_TRACE is not set CONFIG_BUILD_BIN2C=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=18 @@ -246,6 +248,7 @@ CONFIG_SLUB_DEBUG=y # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set +CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_SYSTEM_DATA_VERIFICATION is not set @@ -277,6 +280,7 @@ CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y @@ -286,6 +290,7 @@ CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y @@ -302,11 +307,13 @@ CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set # CONFIG_GCC_PLUGIN_STRUCTLEAK is not set +# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set CONFIG_HAVE_CC_STACKPROTECTOR=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set # CONFIG_CC_STACKPROTECTOR_REGULAR is not set CONFIG_CC_STACKPROTECTOR_STRONG=y +CONFIG_THIN_ARCHIVES=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y @@ -339,6 +346,7 @@ 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 @@ -517,6 +525,7 @@ CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y +# CONFIG_X86_MCE_INJECT is not set CONFIG_X86_THERMAL_VECTOR=y # @@ -563,9 +572,9 @@ CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK=y CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_HAVE_GENERIC_GUP=y CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y -CONFIG_MOVABLE_NODE=y CONFIG_HAVE_BOOTMEM_INFO_NODE=y CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_SPARSE=y @@ -589,6 +598,8 @@ CONFIG_HWPOISON_INJECT=m CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_ARCH_WANTS_THP_SWAP=y +CONFIG_THP_SWAP=y CONFIG_TRANSPARENT_HUGE_PAGECACHE=y CONFIG_CLEANCACHE=y CONFIG_FRONTSWAP=y @@ -608,10 +619,12 @@ CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set CONFIG_IDLE_PAGE_TRACKING=y +CONFIG_ARCH_HAS_ZONE_DEVICE=y CONFIG_ZONE_DEVICE=y CONFIG_FRAME_VECTOR=y CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y CONFIG_ARCH_HAS_PKEYS=y +# CONFIG_PERCPU_STATS is not set CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y @@ -824,6 +837,7 @@ CONFIG_PCI_STUB=m CONFIG_XEN_PCIDEV_FRONTEND=m CONFIG_HT_IRQ=y CONFIG_PCI_ATS=y +CONFIG_PCI_LOCKLESS_CONFIG=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y @@ -927,6 +941,7 @@ CONFIG_PACKET=y CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m +CONFIG_TLS=m CONFIG_XFRM=y CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=m @@ -1435,10 +1450,11 @@ CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=m CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_KSZ=y +CONFIG_NET_DSA_TAG_LAN9303=y +CONFIG_NET_DSA_TAG_MTK=y CONFIG_NET_DSA_TAG_TRAILER=y CONFIG_NET_DSA_TAG_QCA=y -CONFIG_NET_DSA_TAG_MTK=y -CONFIG_NET_DSA_TAG_LAN9303=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y @@ -1947,6 +1963,10 @@ CONFIG_MTD_CMDLINE_PARTS=m CONFIG_MTD_AR7_PARTS=m # +# Partition parsers +# + +# # User Modules And Translation Layers # CONFIG_MTD_BLKDEVS=m @@ -2020,6 +2040,7 @@ CONFIG_MTD_DATAFLASH=m # CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set CONFIG_MTD_DATAFLASH_OTP=y CONFIG_MTD_M25P80=m +CONFIG_MTD_MCHP23K256=m CONFIG_MTD_SST25L=m CONFIG_MTD_SLRAM=m CONFIG_MTD_PHRAM=m @@ -2053,8 +2074,6 @@ CONFIG_MTD_NAND_DOCG4=m CONFIG_MTD_NAND_CAFE=m CONFIG_MTD_NAND_NANDSIM=m CONFIG_MTD_NAND_PLATFORM=m -CONFIG_MTD_NAND_HISI504=m -CONFIG_MTD_NAND_MTK=m CONFIG_MTD_ONENAND=m CONFIG_MTD_ONENAND_VERIFY_WRITE=y CONFIG_MTD_ONENAND_GENERIC=m @@ -2159,7 +2178,6 @@ CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_RSXX=m CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=m -# CONFIG_BLK_DEV_NVME_SCSI is not set CONFIG_NVME_FABRICS=m CONFIG_NVME_RDMA=m CONFIG_NVME_FC=m @@ -2276,6 +2294,7 @@ 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_HAVE_IDE=y # CONFIG_IDE is not set @@ -2575,6 +2594,7 @@ CONFIG_DM_VERITY=m CONFIG_DM_SWITCH=m CONFIG_DM_LOG_WRITES=m CONFIG_DM_INTEGRITY=m +CONFIG_DM_ZONED=m CONFIG_TARGET_CORE=m CONFIG_TCM_IBLOCK=m CONFIG_TCM_FILEIO=m @@ -2697,17 +2717,19 @@ CONFIG_CAIF_VIRTIO=m # # Distributed Switch Architecture drivers # -CONFIG_NET_DSA_MV88E6060=m CONFIG_B53=m CONFIG_B53_SPI_DRIVER=m CONFIG_B53_MDIO_DRIVER=m CONFIG_B53_MMAP_DRIVER=m CONFIG_B53_SRAB_DRIVER=m +# CONFIG_NET_DSA_LOOP is not set +CONFIG_NET_DSA_MT7530=m +CONFIG_NET_DSA_MV88E6060=m +CONFIG_MICROCHIP_KSZ=m +CONFIG_MICROCHIP_KSZ_SPI_DRIVER=m CONFIG_NET_DSA_MV88E6XXX=m CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y CONFIG_NET_DSA_QCA8K=m -# CONFIG_NET_DSA_LOOP is not set -CONFIG_NET_DSA_MT7530=m CONFIG_NET_DSA_SMSC_LAN9303=m CONFIG_NET_DSA_SMSC_LAN9303_I2C=m CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m @@ -2750,6 +2772,7 @@ CONFIG_NET_VENDOR_AURORA=y CONFIG_AURORA_NB8800=m CONFIG_NET_CADENCE=y CONFIG_MACB=m +CONFIG_MACB_USE_HWSTAMP=y CONFIG_MACB_PCI=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m @@ -2851,6 +2874,7 @@ CONFIG_MLX4_EN_DCB=y CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX5_CORE=m +# CONFIG_MLX5_FPGA is not set CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_EN_DCB=y # CONFIG_MLX5_CORE_IPOIB is not set @@ -2864,6 +2888,7 @@ CONFIG_MLXSW_SWITCHX2=m CONFIG_MLXSW_SPECTRUM=m CONFIG_MLXSW_SPECTRUM_DCB=y CONFIG_MLXSW_MINIMAL=m +CONFIG_MLXFW=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m CONFIG_KS8851=m @@ -2882,6 +2907,7 @@ CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_NETRONOME=y CONFIG_NFP=m +# CONFIG_NFP_APP_FLOWER is not set # CONFIG_NFP_DEBUG is not set CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=m @@ -2985,6 +3011,7 @@ CONFIG_SKFP=m # CONFIG_HIPPI is not set CONFIG_NET_SB1000=m CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y CONFIG_MDIO_BITBANG=m CONFIG_MDIO_CAVIUM=m CONFIG_MDIO_GPIO=m @@ -3004,6 +3031,7 @@ CONFIG_BCM87XX_PHY=m CONFIG_BCM_NET_PHYLIB=m CONFIG_BROADCOM_PHY=m CONFIG_CICADA_PHY=m +CONFIG_CORTINA_PHY=m CONFIG_DAVICOM_PHY=m CONFIG_DP83848_PHY=m CONFIG_DP83867_PHY=m @@ -3013,6 +3041,7 @@ CONFIG_INTEL_XWAY_PHY=m CONFIG_LSI_ET1011C_PHY=m CONFIG_LXT_PHY=m CONFIG_MARVELL_PHY=m +CONFIG_MARVELL_10G_PHY=m CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m CONFIG_MICROSEMI_PHY=m @@ -3131,6 +3160,7 @@ CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210_TRACING=y CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m +CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_DEBUG is not set CONFIG_ATH10K_DEBUGFS=y CONFIG_ATH10K_TRACING=y @@ -3335,6 +3365,9 @@ CONFIG_WLAN_VENDOR_ZYDAS=y CONFIG_USB_ZD1201=m CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set +CONFIG_WLAN_VENDOR_QUANTENNA=y +CONFIG_QTNFMAC=m +CONFIG_QTNFMAC_PEARL_PCIE=m CONFIG_PCMCIA_RAYCS=m CONFIG_PCMCIA_WL3501=m CONFIG_MAC80211_HWSIM=m @@ -3547,6 +3580,7 @@ CONFIG_KEYBOARD_ADP5589=m CONFIG_KEYBOARD_ATKBD=y CONFIG_KEYBOARD_QT1070=m CONFIG_KEYBOARD_QT2160=m +CONFIG_KEYBOARD_DLINK_DIR685=m CONFIG_KEYBOARD_LKKBD=m CONFIG_KEYBOARD_GPIO=m CONFIG_KEYBOARD_GPIO_POLLED=m @@ -3721,6 +3755,7 @@ CONFIG_TOUCHSCREEN_RM_TS=m CONFIG_TOUCHSCREEN_SILEAD=m CONFIG_TOUCHSCREEN_SIS_I2C=m CONFIG_TOUCHSCREEN_ST1232=m +CONFIG_TOUCHSCREEN_STMFTS=m CONFIG_TOUCHSCREEN_SUR40=m CONFIG_TOUCHSCREEN_SURFACE3_SPI=m CONFIG_TOUCHSCREEN_SX8654=m @@ -3922,6 +3957,7 @@ CONFIG_HVC_XEN=y CONFIG_HVC_XEN_FRONTEND=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_DMI_DECODE=y # CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m @@ -4034,8 +4070,9 @@ CONFIG_I2C_SCMI=m # I2C system bus drivers (mostly embedded / system-on-chip) # CONFIG_I2C_CBUS_GPIO=m -CONFIG_I2C_DESIGNWARE_CORE=m -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_CORE=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +# CONFIG_I2C_DESIGNWARE_SLAVE is not set CONFIG_I2C_DESIGNWARE_PCI=m CONFIG_I2C_DESIGNWARE_BAYTRAIL=y CONFIG_I2C_EMEV2=m @@ -4104,6 +4141,7 @@ CONFIG_SPI_ZYNQMP_GQSPI=m CONFIG_SPI_SPIDEV=m # CONFIG_SPI_LOOPBACK_TEST is not set CONFIG_SPI_TLE62X0=m +# CONFIG_SPI_SLAVE is not set CONFIG_SPMI=m CONFIG_HSI=m CONFIG_HSI_BOARDINFO=y @@ -4116,10 +4154,6 @@ CONFIG_HSI_BOARDINFO=y # HSI clients # CONFIG_HSI_CHAR=m - -# -# PPS support -# CONFIG_PPS=m # CONFIG_PPS_DEBUG is not set @@ -4154,11 +4188,13 @@ CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AMD=y +CONFIG_PINCTRL_MCP23S08=m CONFIG_PINCTRL_SX150X=y CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m CONFIG_PINCTRL_BROXTON=m +CONFIG_PINCTRL_CANNONLAKE=m CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_GPIOLIB=y @@ -4244,10 +4280,7 @@ CONFIG_GPIO_RDC321X=m CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MC33880=m CONFIG_GPIO_PISOSR=m - -# -# SPI or I2C GPIO expanders -# +CONFIG_GPIO_XRA1403=m # # USB GPIO expanders @@ -4306,6 +4339,7 @@ CONFIG_BATTERY_SBS=m CONFIG_CHARGER_SBS=m CONFIG_BATTERY_BQ27XXX=m CONFIG_BATTERY_BQ27XXX_I2C=m +# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set CONFIG_BATTERY_DA9030=m CONFIG_BATTERY_DA9052=m CONFIG_CHARGER_DA9150=m @@ -4328,6 +4362,7 @@ CONFIG_CHARGER_LP8727=m CONFIG_CHARGER_LP8788=m CONFIG_CHARGER_GPIO=m CONFIG_CHARGER_MANAGER=y +CONFIG_CHARGER_LTC3651=m CONFIG_CHARGER_MAX14577=m CONFIG_CHARGER_MAX77693=m CONFIG_CHARGER_MAX8997=m @@ -4453,6 +4488,7 @@ CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_IR35221=m CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_LTC2978_REGULATOR=y @@ -4551,6 +4587,7 @@ CONFIG_GENERIC_ADC_THERMAL=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y CONFIG_WATCHDOG_SYSFS=y # @@ -4694,6 +4731,7 @@ CONFIG_LPC_ICH=m CONFIG_LPC_SCH=m CONFIG_INTEL_SOC_PMIC=y CONFIG_INTEL_SOC_PMIC_BXTWC=m +CONFIG_INTEL_SOC_PMIC_CHTWC=m CONFIG_MFD_INTEL_LPSS=m CONFIG_MFD_INTEL_LPSS_ACPI=m CONFIG_MFD_INTEL_LPSS_PCI=m @@ -4885,6 +4923,7 @@ CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_TUNER=m CONFIG_V4L2_MEM2MEM_DEV=m CONFIG_V4L2_FLASH_LED_CLASS=m +CONFIG_V4L2_FWNODE=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m @@ -5206,6 +5245,7 @@ CONFIG_VIDEO_VIVID_MAX_DEVS=64 CONFIG_VIDEO_VIM2M=m CONFIG_DVB_PLATFORM_DRIVERS=y CONFIG_CEC_PLATFORM_DRIVERS=y +CONFIG_SDR_PLATFORM_DRIVERS=y # # Supported MMC/SDIO adapters @@ -5347,6 +5387,10 @@ CONFIG_VIDEO_UPD64083=m CONFIG_VIDEO_SAA6752HS=m # +# SDR tuner chips +# + +# # Miscellaneous helper chips # CONFIG_VIDEO_M52790=m @@ -5618,6 +5662,7 @@ CONFIG_DRM_I915_USERPTR=y # CONFIG_DRM_I915_WERROR is not set # CONFIG_DRM_I915_DEBUG is not set # CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set +# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set # CONFIG_DRM_I915_SELFTEST is not set # CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set # CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set @@ -5640,6 +5685,7 @@ CONFIG_DRM_PANEL=y # Display Panels # CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges @@ -5839,20 +5885,17 @@ 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_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m 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_SEQUENCER_OSS is not set CONFIG_SND_HRTIMER=m -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 CONFIG_SND_SUPPORT_OLD_API=y @@ -5862,13 +5905,18 @@ CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y -CONFIG_SND_RAWMIDI_SEQ=m -CONFIG_SND_OPL3_LIB_SEQ=m -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set +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_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 @@ -5918,6 +5966,7 @@ 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 @@ -6046,11 +6095,18 @@ 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_BYT_CHT_DA7213_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_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_SKYLAKE=m CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m + +# +# STMicroelectronics STM32 SOC audio support +# CONFIG_SND_SOC_XTFPGA_I2S=m CONFIG_ZX_TDM=m CONFIG_SND_SOC_I2C_AND_SPI=m @@ -6098,6 +6154,7 @@ CONFIG_SND_SOC_DIO2125=m CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_HDMI_CODEC=m CONFIG_SND_SOC_ES7134=m +CONFIG_SND_SOC_ES8316=m CONFIG_SND_SOC_ES8328=m CONFIG_SND_SOC_ES8328_I2C=m CONFIG_SND_SOC_ES8328_SPI=m @@ -6125,11 +6182,13 @@ CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RL6347A=m CONFIG_SND_SOC_RT286=m CONFIG_SND_SOC_RT298=m +CONFIG_SND_SOC_RT5514=m CONFIG_SND_SOC_RT5616=m CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m CONFIG_SND_SOC_RT5651=m +CONFIG_SND_SOC_RT5663=m CONFIG_SND_SOC_RT5670=m CONFIG_SND_SOC_RT5677=m CONFIG_SND_SOC_RT5677_SPI=m @@ -6179,6 +6238,7 @@ CONFIG_SND_SOC_WM8962=m CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_ZX_AUD96P22=m CONFIG_SND_SOC_NAU8540=m CONFIG_SND_SOC_NAU8810=m CONFIG_SND_SOC_NAU8824=m @@ -6236,6 +6296,7 @@ CONFIG_HID_UCLOGIC=m CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_ICADE=m +CONFIG_HID_ITE=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m CONFIG_HID_LCPOWER=m @@ -6268,6 +6329,7 @@ CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PICOLCD_CIR=y CONFIG_HID_PLANTRONICS=m CONFIG_HID_PRIMAX=m +CONFIG_HID_RETRODE=m CONFIG_HID_ROCCAT=m CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m @@ -6566,7 +6628,6 @@ CONFIG_USB_HSIC_USB3503=m CONFIG_USB_HSIC_USB4604=m CONFIG_USB_LINK_LAYER_TEST=m CONFIG_USB_CHAOSKEY=m -CONFIG_UCSI=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m @@ -6619,6 +6680,7 @@ 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 @@ -6650,6 +6712,7 @@ 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 @@ -6659,6 +6722,7 @@ CONFIG_USB_CONFIGFS_F_PRINTER=y CONFIG_USB_ZERO=m CONFIG_USB_AUDIO=m CONFIG_GADGET_UAC1=y +# CONFIG_GADGET_UAC1_LEGACY is not set CONFIG_USB_ETH=m CONFIG_USB_ETH_RNDIS=y CONFIG_USB_ETH_EEM=y @@ -6687,6 +6751,8 @@ CONFIG_USB_G_WEBCAM=m # USB Power Delivery and Type-C drivers # CONFIG_TYPEC=m +CONFIG_TYPEC_UCSI=m +CONFIG_UCSI_ACPI=m CONFIG_USB_LED_TRIG=y CONFIG_USB_ULPI_BUS=m CONFIG_UWB=m @@ -6697,7 +6763,6 @@ CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m # CONFIG_MMC_TEST is not set @@ -6885,6 +6950,7 @@ 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 @@ -6963,6 +7029,7 @@ CONFIG_RTC_I2C_AND_SPI=y # SPI and I2C RTC drivers # CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_DS3232_HWMON=y CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_RV3029C2=m CONFIG_RTC_DRV_RV3029_HWMON=y @@ -7003,6 +7070,7 @@ CONFIG_RTC_DRV_AB3100=m # # on-CPU RTC drivers # +CONFIG_RTC_DRV_FTRTC010=m CONFIG_RTC_DRV_PCAP=m CONFIG_RTC_DRV_MC13XXX=m CONFIG_RTC_DRV_MT6397=m @@ -7339,7 +7407,6 @@ CONFIG_AD5933=m # # Light sensors # -CONFIG_SENSORS_ISL29028=m CONFIG_TSL2x7x=m # @@ -7467,6 +7534,7 @@ CONFIG_KS7010=m CONFIG_TYPEC_TCPM=m CONFIG_TYPEC_TCPCI=m CONFIG_TYPEC_FUSB302=m +CONFIG_DRM_VBOXVIDEO=m CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m @@ -7480,7 +7548,6 @@ CONFIG_DELL_WMI_LED=m CONFIG_DELL_SMO8800=m CONFIG_DELL_RBTN=m CONFIG_FUJITSU_LAPTOP=m -# CONFIG_FUJITSU_LAPTOP_DEBUG is not set CONFIG_FUJITSU_TABLET=m CONFIG_AMILO_RFKILL=m CONFIG_HP_ACCEL=m @@ -7508,7 +7575,9 @@ CONFIG_ASUS_NB_WMI=m CONFIG_EEEPC_WMI=m CONFIG_ASUS_WIRELESS=m CONFIG_ACPI_WMI=m +CONFIG_WMI_BMOF=m CONFIG_MSI_WMI=m +CONFIG_PEAQ_WMI=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m CONFIG_TOSHIBA_BT_RFKILL=m @@ -7516,6 +7585,7 @@ CONFIG_TOSHIBA_HAPS=m CONFIG_TOSHIBA_WMI=m CONFIG_ACPI_CMPC=m CONFIG_INTEL_CHT_INT33FE=m +CONFIG_INTEL_INT0002_VGPIO=m CONFIG_INTEL_HID_EVENT=m CONFIG_INTEL_VBTN=m CONFIG_INTEL_IPS=m @@ -7545,6 +7615,7 @@ CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m CONFIG_CROS_EC_CHARDEV=m CONFIG_CROS_EC_LPC=m +# CONFIG_CROS_EC_LPC_MEC is not set CONFIG_CROS_EC_PROTO=y CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CLKDEV_LOOKUP=y @@ -7565,10 +7636,7 @@ CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set - -# -# Hardware Spinlock drivers -# +CONFIG_HWSPINLOCK=m # # Clock Source drivers @@ -7608,6 +7676,9 @@ CONFIG_REMOTEPROC=m # # Rpmsg drivers # +CONFIG_RPMSG=m +# CONFIG_RPMSG_CHAR is not set +CONFIG_RPMSG_QCOM_GLINK_RPM=m # # SOC (System On Chip) specific Drivers @@ -7622,7 +7693,6 @@ CONFIG_REMOTEPROC=m # # CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y -# CONFIG_SOC_ZTE is not set CONFIG_PM_DEVFREQ=y # @@ -7648,13 +7718,13 @@ CONFIG_EXTCON_ARIZONA=m CONFIG_EXTCON_AXP288=m CONFIG_EXTCON_GPIO=m CONFIG_EXTCON_INTEL_INT3496=m +CONFIG_EXTCON_INTEL_CHT_WC=m CONFIG_EXTCON_MAX14577=m CONFIG_EXTCON_MAX3355=m CONFIG_EXTCON_MAX77693=m CONFIG_EXTCON_MAX77843=m CONFIG_EXTCON_MAX8997=m CONFIG_EXTCON_PALMAS=m -CONFIG_EXTCON_QCOM_SPMI_MISC=m CONFIG_EXTCON_RT8973A=m CONFIG_EXTCON_SM5502=m CONFIG_EXTCON_USB_GPIO=m @@ -7745,7 +7815,9 @@ CONFIG_QCOM_SPMI_IADC=m CONFIG_QCOM_SPMI_VADC=m CONFIG_TI_ADC081C=m CONFIG_TI_ADC0832=m +CONFIG_TI_ADC084S021=m CONFIG_TI_ADC12138=m +CONFIG_TI_ADC108S102=m CONFIG_TI_ADC128S052=m CONFIG_TI_ADC161S626=m CONFIG_TI_ADS1015=m @@ -7918,6 +7990,7 @@ CONFIG_CM36651=m CONFIG_IIO_CROS_EC_LIGHT_PROX=m CONFIG_GP2AP020A00F=m CONFIG_SENSORS_ISL29018=m +CONFIG_SENSORS_ISL29028=m CONFIG_ISL29125=m CONFIG_HID_SENSOR_ALS=m CONFIG_HID_SENSOR_PROX=m @@ -7959,6 +8032,10 @@ CONFIG_SENSORS_HMC5843_I2C=m CONFIG_SENSORS_HMC5843_SPI=m # +# Multiplexers +# + +# # Inclinometer sensors # CONFIG_HID_SENSOR_INCLINOMETER_3D=m @@ -8039,6 +8116,7 @@ CONFIG_TSYS01=m CONFIG_TSYS02D=m CONFIG_NTB=m CONFIG_NTB_AMD=m +CONFIG_NTB_IDT=m CONFIG_NTB_INTEL=m CONFIG_NTB_PINGPONG=m CONFIG_NTB_TOOL=m @@ -8081,6 +8159,7 @@ CONFIG_SERIAL_IPOCTAL=m CONFIG_RESET_CONTROLLER=y # CONFIG_RESET_ATH79 is not set # CONFIG_RESET_BERLIN is not set +# CONFIG_RESET_GEMINI is not set # CONFIG_RESET_IMX7 is not set # CONFIG_RESET_LPC18XX is not set # CONFIG_RESET_MESON is not set @@ -8088,7 +8167,7 @@ CONFIG_RESET_CONTROLLER=y # CONFIG_RESET_SOCFPGA is not set # CONFIG_RESET_STM32 is not set # CONFIG_RESET_SUNXI is not set -CONFIG_TI_SYSCON_RESET=m +CONFIG_RESET_TI_SYSCON=m # CONFIG_RESET_ZYNQ is not set # CONFIG_RESET_TEGRA_BPMP is not set CONFIG_FMC=m @@ -8101,15 +8180,16 @@ CONFIG_FMC_CHARDEV=m # PHY Subsystem # CONFIG_GENERIC_PHY=y +CONFIG_BCM_KONA_USB2_PHY=m CONFIG_PHY_PXA_28NM_HSIC=m CONFIG_PHY_PXA_28NM_USB2=m -CONFIG_BCM_KONA_USB2_PHY=m +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_QCOM_USB_HS=m -CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_TUSB1210=m CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m @@ -8121,7 +8201,6 @@ CONFIG_MCB_LPC=m # Performance monitor support # CONFIG_RAS=y -# CONFIG_MCE_AMD_INJ is not set # CONFIG_RAS_CEC is not set CONFIG_THUNDERBOLT=m @@ -8141,7 +8220,7 @@ CONFIG_NVDIMM_DAX=y CONFIG_DAX=y CONFIG_DEV_DAX=m CONFIG_DEV_DAX_PMEM=m -CONFIG_NVMEM=m +CONFIG_NVMEM=y CONFIG_STM=m CONFIG_STM_DUMMY=m CONFIG_STM_SOURCE_CONSOLE=m @@ -8289,6 +8368,7 @@ CONFIG_FUSE_FS=y CONFIG_CUSE=m CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_REDIRECT_DIR is not set +# CONFIG_OVERLAY_FS_INDEX is not set # # Caches @@ -8477,8 +8557,8 @@ 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_SMB2=y CONFIG_CIFS_SMB311=y CONFIG_CIFS_FSCACHE=y CONFIG_NCP_FS=m @@ -8623,6 +8703,9 @@ CONFIG_ARCH_HAS_KCOV=y # Debug Lockups and Hangs # CONFIG_LOCKUP_DETECTOR=y +CONFIG_SOFTLOCKUP_DETECTOR=y +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 @@ -8657,6 +8740,7 @@ CONFIG_SCHED_STACK_END_CHECK=y CONFIG_LOCK_TORTURE_TEST=m CONFIG_WW_MUTEX_SELFTEST=m CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_LIST is not set @@ -8669,7 +8753,6 @@ CONFIG_DEBUG_BUGVERBOSE=y # RCU Debugging # # CONFIG_PROVE_RCU is not set -# CONFIG_SPARSE_RCU_POINTER is not set CONFIG_TORTURE_TEST=m # CONFIG_RCU_PERF_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set @@ -8732,7 +8815,7 @@ CONFIG_MMIOTRACE=y # CONFIG_TRACEPOINT_BENCHMARK is not set # CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_RING_BUFFER_STARTUP_TEST is not set -# CONFIG_TRACE_ENUM_MAP_FILE is not set +# CONFIG_TRACE_EVAL_MAP_FILE is not set CONFIG_TRACING_EVENTS_GPIO=y # @@ -8763,10 +8846,12 @@ CONFIG_TEST_LKM=m CONFIG_TEST_USER_COPY=m CONFIG_TEST_BPF=m CONFIG_TEST_FIRMWARE=m +# CONFIG_TEST_SYSCTL is not set CONFIG_TEST_UDELAY=m CONFIG_MEMTEST=y CONFIG_TEST_STATIC_KEYS=m # CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_TEST_KMOD is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y CONFIG_KGDB=y @@ -8831,6 +8916,7 @@ CONFIG_SECURITY=y CONFIG_SECURITY_WRITABLE_HOOKS=y CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_INFINIBAND is not set CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_PATH=y CONFIG_INTEL_TXT=y @@ -8838,6 +8924,7 @@ CONFIG_LSM_MMAP_MIN_ADDR=0 CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HARDENED_USERCOPY=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=y @@ -8878,11 +8965,11 @@ CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng" CONFIG_IMA_DEFAULT_HASH_SHA1=y # CONFIG_IMA_DEFAULT_HASH_SHA256 is not set # CONFIG_IMA_DEFAULT_HASH_SHA512 is not set -# CONFIG_IMA_DEFAULT_HASH_WP512 is not set CONFIG_IMA_DEFAULT_HASH="sha1" # CONFIG_IMA_WRITE_POLICY is not set # CONFIG_IMA_READ_POLICY is not set CONFIG_IMA_APPRAISE=y +CONFIG_IMA_APPRAISE_BOOTPARAM=y CONFIG_IMA_TRUSTED_KEYRING=y CONFIG_IMA_BLACKLIST_KEYRING=y # CONFIG_IMA_LOAD_X509 is not set @@ -9087,6 +9174,8 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m +CONFIG_CRYPTO_DEV_NITROX=m +CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_CHELSIO=m CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y @@ -9153,6 +9242,7 @@ 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 @@ -9225,6 +9315,7 @@ 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_ARCH_HAS_MMIO_FLUSH=y CONFIG_SBITMAP=y CONFIG_PARMAN=m diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index aaa0428041..ecb7cd19a8 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -157,7 +157,7 @@ C++.") (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) (native-inputs `(("unzip" ,unzip) - ("vim" ,vim))) ; for xxd + ("xxd" ,xxd))) (home-page "http://microscheme.org/") (synopsis "Scheme subset for Atmel microcontrollers") (description diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 157b6a7cc5..006d00ef0c 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -184,6 +184,7 @@ backups (called chunks) to allow easy burning to CD/DVD.") (define-public libarchive (package (name "libarchive") + (replacement libarchive-3.3.2) (version "3.3.1") (source (origin @@ -239,19 +240,19 @@ archive. In particular, note that there is currently no built-in support for random access nor for in-place modification.") (license license:bsd-2))) -(define libarchive-3.3.1 +(define libarchive-3.3.2 (package (inherit libarchive) - (name "libarchive") - (version "3.3.1") + (version "3.3.2") (source (origin (method url-fetch) (uri (string-append "http://libarchive.org/downloads/libarchive-" version ".tar.gz")) + (patches (search-patches "libarchive-CVE-2017-14166.patch")) (sha256 (base32 - "1rr40hxlm9vy5z2zb5w7pyfkgd1a4s061qapm83s19accb8mpji9")))))) + "1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd")))))) (define-public rdup (package diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 7147baeb0a..e0f2844bce 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -392,6 +392,7 @@ change. GNU make offers many powerful extensions over the standard utility.") (define-public binutils (package + (replacement binutils/fixed) (name "binutils") (version "2.28") (source (origin @@ -433,6 +434,19 @@ included.") (license gpl3+) (home-page "https://www.gnu.org/software/binutils/"))) +(define binutils/fixed + (package + (inherit binutils) + ;; 2.28.1 is two characters longer than 2.28, so grafting fails due to + ;; mismatched lengths of filenames, so we have to force it to the same length. + (version "2281") + (source + (origin (inherit (package-source binutils)) + (uri "mirror://gnu/binutils/binutils-2.28.1.tar.bz2") + (sha256 + (base32 + "1sj234nd05cdgga1r36zalvvdkvpfbr12g5mir2n8i1dwsdrj939")))))) + (define* (make-ld-wrapper name #:key (target (const #f)) binutils diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 790a238579..ca47227826 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> @@ -78,6 +78,16 @@ C or C++ programs, though that is not its primary goal.") (license (x11-style (string-append home-page "license.txt"))))) +(define-public libgc/back-pointers + (package + (inherit libgc) + (name "libgc-back-pointers") + (arguments + `(#:make-flags + (list "CPPFLAGS=-DKEEP_BACK_PTRS=1") + ,@(package-arguments libgc))) + (synopsis "The BDW garbage collector, with back-pointer tracking"))) + (define-public libatomic-ops (package (name "libatomic-ops") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index c5157046ab..5e98aea91f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3450,7 +3450,7 @@ sequences).") (("^#include \"kseq\\.h\"") "#include \"htslib/kseq.h\"")) #t)) - (add-before 'configure 'autoconf + (add-after 'fix-includes 'autoconf (lambda _ (zero? (system* "autoconf"))))))) (native-inputs `(("autoconf" ,autoconf) @@ -3475,7 +3475,7 @@ form of assemblies or reads.") (define-public metabat (package (name "metabat") - (version "2.11.2") + (version "2.12.1") (source (origin (method url-fetch) @@ -3484,10 +3484,8 @@ form of assemblies or reads.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0rws9r1ziv6way8cf49jg8bzj7x2131kfqkhj8byf0z5hnrq3bwv")) - (patches (search-patches "metabat-remove-compilation-date.patch" - "metabat-fix-compilation.patch" - "metabat-fix-boost-issue.patch")))) + "1hmvdalz3zj5sqqklg0l4npjdv37cv2hsdi1al9iby2ndxjs1b73")) + (patches (search-patches "metabat-fix-compilation.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -4065,7 +4063,7 @@ predicts the locations of structural units in the sequences.") (define-public proteinortho (package (name "proteinortho") - (version "5.16") + (version "5.16b") (source (origin (method url-fetch) @@ -4075,7 +4073,7 @@ predicts the locations of structural units in the sequences.") version "_src.tar.gz")) (sha256 (base32 - "0z4f5cg0cs8ai62hfvp4q6w66q2phcc55nhs4xj5cyhxxivjv2ai")))) + "1wl0dawpssqwfjvr651r4wlww8hhjin8nba6xh71ks7sbypx886j")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -4751,6 +4749,13 @@ simultaneously.") #:tests? #f ; no "check" target #:phases (modify-phases %standard-phases + (add-before 'configure 'set-perl-search-path + (lambda _ + ;; Work around "dotless @INC" build failure. + (setenv "PERL5LIB" + (string-append (getcwd) "/setup:" + (getenv "PERL5LIB"))) + #t)) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -5056,6 +5061,13 @@ sequence itself can be retrieved from these databases.") "/lib32"))) #:phases (modify-phases %standard-phases + (add-before 'configure 'set-perl-search-path + (lambda _ + ;; Work around "dotless @INC" build failure. + (setenv "PERL5LIB" + (string-append (getcwd) "/setup:" + (getenv "PERL5LIB"))) + #t)) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) ;; The build system expects a directory containing the sources and @@ -5396,7 +5408,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.") #t)) (delete 'configure)))) (native-inputs - `(("vim" ,vim))) ; for xxd + `(("xxd" ,xxd))) (inputs `(("htslib" ,htslib) ("zlib" ,zlib))) @@ -5654,18 +5666,17 @@ information as possible.") (define-public r-vegan (package (name "r-vegan") - (version "2.4-3") + (version "2.4-4") (source (origin (method url-fetch) (uri (cran-uri "vegan" version)) (sha256 (base32 - "15zcxfix2d854897k1lr0sfmj2n00339nlsppcr3zrb238lb2mi5")))) + "1n57dzv2aid6iqd9fkqik401sidqanhzsawyak94qbiyh6dbd1x9")))) (build-system r-build-system) (native-inputs - `(("gfortran" ,gfortran) - ("r-knitr" ,r-knitr))) + `(("gfortran" ,gfortran))) (propagated-inputs `(("r-cluster" ,r-cluster) ("r-lattice" ,r-lattice) @@ -6126,10 +6137,33 @@ data. It is derived from the UCSC hg19 genome and based on the \"knownGene\" track. The database is exposed as a @code{TxDb} object.") (license license:artistic2.0))) +(define-public r-sparql + (package + (name "r-sparql") + (version "1.16") + (source (origin + (method url-fetch) + (uri (cran-uri "SPARQL" version)) + (sha256 + (base32 + "0gak1q06yyhdmcxb2n3v0h9gr1vqd0viqji52wpw211qp6r6dcrc")))) + (properties `((upstream-name . "SPARQL"))) + (build-system r-build-system) + (propagated-inputs + `(("r-rcurl" ,r-rcurl) + ("r-xml" ,r-xml))) + (home-page "http://cran.r-project.org/web/packages/SPARQL") + (synopsis "SPARQL client for R") + (description "This package provides an interface to use SPARQL to pose +SELECT or UPDATE queries to an end-point.") + ;; The only license indication is found in the DESCRIPTION file, + ;; which states GPL-3. So we cannot assume GPLv3+. + (license license:gpl3))) + (define-public vsearch (package (name "vsearch") - (version "2.4.3") + (version "2.4.4") (source (origin (method url-fetch) @@ -6139,7 +6173,7 @@ track. The database is exposed as a @code{TxDb} object.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hc110ycqpa54nr6x173qg7190hk08qp7yz7zzqxlsypqnpc5zzp")) + "1d8a4gjwaqdv57krlr80x18mg5py1bbdiqs5m0jdn38filc9z40k")) (patches (search-patches "vsearch-unbundle-cityhash.patch")) (snippet '(begin @@ -6153,8 +6187,8 @@ track. The database is exposed as a @code{TxDb} object.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'autogen - (lambda _ (zero? (system* "autoreconf" "-vif"))))))) + (add-after 'unpack 'autogen + (lambda _ (zero? (system* "autoreconf" "-vif"))))))) (inputs `(("zlib" ,zlib) ("bzip2" ,bzip2) @@ -6433,13 +6467,13 @@ also known as views, in a controlled vocabulary.") (define-public r-bookdown (package (name "r-bookdown") - (version "0.4") + (version "0.5") (source (origin (method url-fetch) (uri (cran-uri "bookdown" version)) (sha256 (base32 - "1fp1k7hivrb7s2dwgrsqy9s7xg6pk9hczhrc149y1dwh901j6qvv")))) + "0zm63kr4f4kja4qpwkzl119zzyciqj7ihajfqgfjpgb4dzaiycxp")))) (build-system r-build-system) (propagated-inputs `(("r-htmltools" ,r-htmltools) @@ -7109,13 +7143,13 @@ samples.") (define-public r-genomicalignments (package (name "r-genomicalignments") - (version "1.12.1") + (version "1.12.2") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicAlignments" version)) (sha256 (base32 - "127690sys4i5q3l4vxnjg4xg8q19qlw2258vgs5d1156w9ypp04h")))) + "03ysxi9fdd3bcfj05iaysya9knn2aa2irwpypb5srg0xwv92bdb9")))) (properties `((upstream-name . "GenomicAlignments"))) (build-system r-build-system) @@ -7990,7 +8024,7 @@ paired-end data.") (define-public r-rcas (package (name "r-rcas") - (version "1.1.1") + (version "1.3.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/BIMSBbioinfo/RCAS/archive/v" @@ -7998,7 +8032,7 @@ paired-end data.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1hd0r66556bxbdd82ksjklq7nfli36l4k6y88ic7kkg9873wa1nw")))) + "1qgc7vi6fpzl440yg7jhiycg5q336kd4pxqzx10yx2zcq3bq3msg")))) (build-system r-build-system) (native-inputs `(("r-knitr" ,r-knitr) @@ -8019,6 +8053,7 @@ paired-end data.") ("r-bsgenome-dmelanogaster-ucsc-dm3" ,r-bsgenome-dmelanogaster-ucsc-dm3) ("r-topgo" ,r-topgo) ("r-dt" ,r-dt) + ("r-pbapply" ,r-pbapply) ("r-plotly" ,r-plotly) ("r-plotrix" ,r-plotrix) ("r-motifrg" ,r-motifrg) @@ -8032,7 +8067,7 @@ paired-end data.") intuitive reports and publication-ready graphics. This package provides the R library implementing most of the pipeline's features.") (home-page "https://github.com/BIMSBbioinfo/RCAS") - (license license:expat))) + (license license:artistic2.0))) (define-public rcas-web (package @@ -8370,14 +8405,14 @@ used by @code{ensembldb}, @code{Organism.dplyr}, and other packages.") AC_DEFINE([PLD_png], [1], [Define to 1 if PNG support is available]) AM_CONDITIONAL(AMPNG, true)")) #t)) - (add-after 'unpack 'disable-update-check + (add-after 'fix-checks 'disable-update-check (lambda _ ;; At build time there is no connection to the Internet, so ;; looking for updates will not work. (substitute* "Makefile.am" (("\\$\\(bindir\\)/embossupdate") "")) #t)) - (add-before 'configure 'autogen + (add-after 'disable-update-check 'autogen (lambda _ (zero? (system* "autoreconf" "-vif"))))))) (inputs `(("perl" ,perl) @@ -8575,25 +8610,24 @@ replacement for strverscmp.") (define-public multiqc (package (name "multiqc") - (version "0.9") + (version "1.2") (source (origin (method url-fetch) (uri (pypi-uri "multiqc" version)) (sha256 (base32 - "12gs1jw2jrxrij529rnl5kaqxfcqn15yzcsggxkfhdx634ml0cny")) - (patches (search-patches "multiqc-fix-git-subprocess-error.patch")))) + "032svgym67k2ds7wp0cxzv79gi30yrdl45zbqn74lni3dk04qm33")))) (build-system python-build-system) - (arguments - ;; Tests are to be introduced in the next version, see - ;; https://github.com/ewels/MultiQC/issues/376 - `(#:tests? #f)) (propagated-inputs `(("python-jinja2" ,python-jinja2) ("python-simplejson" ,python-simplejson) ("python-pyyaml" ,python-pyyaml) ("python-click" ,python-click) + ("python-spectra" ,python-spectra) + ("python-requests" ,python-requests) + ("python-markdown" ,python-markdown) + ("python-lzstring" ,python-lzstring) ("python-matplotlib" ,python-matplotlib) ("python-numpy" ,python-numpy) ;; MultQC checks for the presence of nose at runtime. @@ -8830,14 +8864,14 @@ trait.") (define-public r-maldiquant (package (name "r-maldiquant") - (version "1.16.2") + (version "1.16.4") (source (origin (method url-fetch) (uri (cran-uri "MALDIquant" version)) (sha256 (base32 - "0z5srzsfgsgi4bssr4chls4ry6d18y2g9143znqmraylppwrrqzr")))) + "1pmhsfvd45a44xdiml4zx3zd5fhygqyziqvygahkk9yibnyhv4cv")))) (properties `((upstream-name . "MALDIquant"))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/MALDIquant") @@ -9443,7 +9477,7 @@ problems in genomics, brain imaging, astrophysics, and data mining.") (substitute-keyword-arguments (package-arguments htslib) ((#:phases phases) `(modify-phases ,phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-vif")))))))) (native-inputs diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index f66d0bb3f4..613537a5d1 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -395,3 +395,72 @@ also initializes the boards (RAM etc).") (define-public u-boot-odroid-c2 (make-u-boot-package "odroid-c2" "aarch64-linux-gnu")) + +(define-public os-prober + (package + (name "os-prober") + (version "1.76") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://debian/pool/main/o/os-prober/os-prober_" + version ".tar.xz")) + (sha256 + (base32 + "1vb45i76bqivlghrq7m3n07qfmmq4wxrkplqx8gywj011rhq19fk")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 regex) ; for string-match + (srfi srfi-26)) ; for cut + #:make-flags (list "CC=gcc") + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* (find-files ".") + (("/usr") (assoc-ref outputs "out"))) + (substitute* (find-files "." "50mounted-tests$") + (("mkdir") "mkdir -p")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (define (find-files-non-recursive directory) + (find-files directory + (lambda (file stat) + (string-match (string-append "^" directory "/[^/]*$") + file)) + #:directories? #t)) + + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (share (string-append out "/share"))) + (for-each (cut install-file <> bin) + (list "linux-boot-prober" "os-prober")) + (install-file "newns" (string-append lib "/os-prober")) + (install-file "common.sh" (string-append share "/os-prober")) + (install-file "os-probes/mounted/powerpc/20macosx" + (string-append lib "/os-probes/mounted")) + (for-each + (lambda (directory) + (for-each + (lambda (file) + (let ((destination (string-append lib "/" directory + "/" (basename file)))) + (mkdir-p (dirname destination)) + (copy-recursively file destination))) + (append (find-files-non-recursive (string-append directory "/common")) + (find-files-non-recursive (string-append directory "/x86"))))) + (list "os-probes" "os-probes/mounted" "os-probes/init" + "linux-boot-probes" "linux-boot-probes/mounted")) + #t)))))) + (home-page "https://joeyh.name/code/os-prober") + (synopsis "Detect other operating systems") + (description "os-prober probes disks on the system for other operating +systems so that they can be added to the bootloader. It also works out how to +boot existing GNU/Linux systems and detects what distribution is installed in +order to add a suitable bootloader menu entry.") + (license license:gpl2+))) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 353c9c8efb..c535f52400 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -70,7 +70,7 @@ makes a few sacrifices to acquire fast full and incremental build times.") (define-public meson (package (name "meson") - (version "0.41.1") + (version "0.42.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -78,9 +78,10 @@ makes a few sacrifices to acquire fast full and incremental build times.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "12ygjh1dxi8z06nl704rfb6zj0m2zjqp279nymfgzfgy5zq032d4")))) + "0vyp9rkymzzzilhnf04ryszslyp9a0y0wf4agyijd4w5lcnqlcbc")))) (build-system python-build-system) (inputs `(("ninja", ninja))) + (propagated-inputs `(("python" ,python))) (home-page "https://mesonbuild.com/") (synopsis "Build system designed to be fast and user-friendly") (description @@ -92,6 +93,24 @@ files}, are written in a custom domain-specific language (DSL) that resembles Python.") (license license:asl2.0))) +(define-public meson-for-build + (package + (inherit meson) + (name "meson-for-build") + (version "0.42.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mesonbuild/meson/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vyp9rkymzzzilhnf04ryszslyp9a0y0wf4agyijd4w5lcnqlcbc")) + (patches (search-patches "meson-for-build-rpath.patch")))) + + ;; People should probably install "meson", not "meson-for-build". + (properties `((hidden? . #t))))) + (define-public premake4 (package (name "premake") diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 74601871cc..9a3aab33ab 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -1,8 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com> ;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at> ;;; @@ -55,9 +55,8 @@ (arguments '(#:tests? #f ; test suite appears broken #:configure-flags - (list (string-append "-DCMAKE_INSTALL_RPATH=" - (assoc-ref %outputs "out") "/lib:" - (assoc-ref %outputs "out") "/lib64")) + (list (string-append "-DCMAKE_INSTALL_LIBDIR=" + (assoc-ref %outputs "out") "/lib")) #:phases (modify-phases %standard-phases (add-before 'configure 'patch-paths diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 704e8ad36d..2f708f0c0b 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -147,14 +147,14 @@ libcdio.") (define-public xorriso (package (name "xorriso") - (version "1.4.6") + (version "1.4.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/xorriso/xorriso-" version ".tar.gz")) (sha256 (base32 - "112p0ghwzxrcjbsir1n2jxhq103ckrw93wzvd55qqvzfgs674vsj")))) + "10c44yr3dpmwxa7rf23mwfsy1bahny3jpcg9ig0xjv090jg0d0pc")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index 31ffa54d87..6c2ea4c6ec 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -74,7 +74,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.32") + (version "3.33") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -85,7 +85,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "0dfkgvah0ji8b8lpxyy2w0b3lyz5ldmryii4z7j2bfwnrj0z7iim")))) + "1r44qa4j7sri50mxxbnrpm6fxprwrhv76whi7bfq73j06syxmw4q")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 008dfc1ccd..fcfedb99aa 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -7,7 +7,8 @@ ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> -;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> +;;; Copyright © 2017 ng0 <ng0@infotropique.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -270,3 +271,26 @@ normally do not detect. The goal is to detect only real errors in the code discovery, death tests, assertions, parameterized tests and XML test report generation.") (license bsd-3))) + +(define-public cpputest + (package + (name "cpputest") + (version "3.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/cpputest/cpputest/releases/download/v" + version "/cpputest-" version ".tar.gz")) + (sha256 + (base32 + "0mk48xd3klyqi7wf3f4wn4zqxxzmvrhhl32r25jzrixzl72wq7f8")))) + (build-system gnu-build-system) + (native-inputs + `(("googletest" ,googletest))) + (home-page "https://cpputest.github.io/") + (synopsis "Unit testing and mocking framework for C/C++") + (description + "CppUTest is a C/C++ based unit xUnit test framework. It is written in +C++ but is used in C and C++ projects and frequently used in embedded systems +but it works for any C/C++ project.") + (license bsd-3))) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index d936c8fa10..2a22f222d3 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -187,8 +187,8 @@ their dependencies.") (license l:gpl3+)))) (define-public cuirass - (let ((commit "6f85bc04f31ae5853ceaa0bb3e1dedfe8412a189") - (revision "7")) + (let ((commit "9cfea9fe2e3ca6a3d1b832a6ec217426ec973c93") + (revision "10")) (package (name "cuirass") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -200,7 +200,7 @@ their dependencies.") (file-name (string-append name "-" version)) (sha256 (base32 - "1dglsa23z21m1s70420ar73qmg39fvdvwlz9xjz6lfp5s9mgzx15")))) + "177klidmsw12kjk9dzawc0bqcwqlplgx45m87qpgjfx3cnk28i2b")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) @@ -216,7 +216,12 @@ their dependencies.") (substitute* "Makefile.am" (("tests/repo.scm \\\\") "\\")) #t)) - (add-before 'configure 'bootstrap + (add-after 'disable-repo-tests 'patch-/bin/sh + (lambda _ + (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) @@ -263,6 +268,17 @@ their dependencies.") ("automake" ,automake) ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) + (native-search-paths + ;; For HTTPS access, Cuirass itself honors these variables, with the + ;; same semantics as Git and OpenSSL (respectively). + (list (search-path-specification + (variable "GIT_SSL_CAINFO") + (file-type 'regular) + (separator #f) ;single entry + (files '("etc/ssl/certs/ca-certificates.crt"))) + (search-path-specification + (variable "SSL_CERT_DIR") + (files '("etc/ssl/certs"))))) (synopsis "Continuous integration system") (description "Cuirass is a continuous integration tool using GNU Guix. It is diff --git a/gnu/packages/cobol.scm b/gnu/packages/cobol.scm new file mode 100644 index 0000000000..f8f35928a7 --- /dev/null +++ b/gnu/packages/cobol.scm @@ -0,0 +1,59 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages cobol) + #:use-module (gnu packages) + #:use-module (guix build-system gnu) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (gnu packages databases) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses)) + +(define-public gnucobol + (package + (name "gnucobol") + (version "2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/gnucobol/gnucobol-" + version ".tar.xz")) + (sha256 + (base32 + "1814s1n95xax2dz938cf4fkcp0q94nkj1gjbdblbzpk9q92zq66w")))) + (arguments + '(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib")))) + (inputs + `(("bdb" ,bdb) + ("gmp" ,gmp) + ("ncurses" ,ncurses))) + (build-system gnu-build-system) + (home-page "https://savannah.gnu.org/projects/gnucobol/") + (synopsis "A modern COBOL compiler") + (description "GnuCOBOL is a free, modern COBOL compiler. GnuCOBOL +implements a substantial part of the COBOL 85, COBOL 2002 and COBOL 2014 +standards and X/Open COBOL, as well as many extensions included in other +COBOL compilers (IBM COBOL, MicroFocus COBOL, ACUCOBOL-GT and others). +GnuCOBOL translates COBOL into C and compiles the translated code using +a native C compiler.") + (license gpl3+))) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index fa9e19db7d..6e04739f62 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -193,16 +193,16 @@ COCOMO model or user-provided parameters.") (define-public cloc (package (name "cloc") - (version "1.72") + (version "1.74") (source (origin (method url-fetch) (uri (string-append - "https://github.com/AlDanial/cloc/releases/download/v" version + "https://github.com/AlDanial/cloc/releases/download/" version "/cloc-" version ".tar.gz")) (sha256 (base32 - "1gl7bxb4bi6pms0zzl133pzpfypvz57hk2cw7yf6rvs8b48kilnz")))) + "0rq5xfiln1wlv3yr9mg18ax4gskbss786iqaf0v45iv6awyl5b2m")))) (build-system gnu-build-system) (inputs `(("coreutils" ,coreutils) @@ -241,7 +241,7 @@ of source code in many programming languages. Given two versions of a code base, cloc can compute differences in blank, comment, and source lines. cloc contains code from David Wheeler's SLOCCount. Compared to SLOCCount, -cloc can handle a greater variety of programming langauges.") +cloc can handle a greater variety of programming languages.") (license license:gpl2+))) (define-public the-silver-searcher diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 318a2795b1..23939157ec 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -112,8 +113,7 @@ (define file-boot0 (package-with-bootstrap-guile - (package-with-explicit-inputs (package - (inherit file) + (package-with-explicit-inputs (package/inherit file (name "file-boot0")) `(("make" ,gnu-make-boot0) ,@%bootstrap-inputs) @@ -140,7 +140,7 @@ (define binutils-boot0 (package-with-bootstrap-guile - (package (inherit binutils) + (package/inherit binutils (name "binutils-cross-boot0") (arguments `(#:guile ,%bootstrap-guile @@ -681,7 +681,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (define binutils-final (package-with-bootstrap-guile - (package (inherit binutils) + (package/inherit binutils (arguments `(#:guile ,%bootstrap-guile #:implicit-inputs? #f diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index cd9ed7cccf..f3fe5e8de1 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 David Craven <david@craven.ch> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net> ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> @@ -114,7 +114,7 @@ in compression.") (modify-phases %standard-phases (add-after 'unpack 'enter-source (lambda _ (chdir "contrib/minizip") #t)) - (add-before 'configure 'autoreconf + (add-after 'enter-source 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vif"))))))) (native-inputs @@ -767,6 +767,28 @@ the LZ4 frame format.") (define-public python2-lz4 (package-with-python2 python-lz4)) +(define-public python-lzstring + (package + (name "python-lzstring") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "lzstring" version)) + (sha256 + (base32 + "1d3ck454y41mii0gcjabpmp2skb7n0f9zk232gycqdv8z2jxakfm")))) + (build-system python-build-system) + (propagated-inputs + `(("python-future" ,python-future))) + (home-page "https://github.com/gkovacs/lz-string-python") + (synopsis "String compression") + (description "Lz-string is a string compressor library for Python.") + (license license:expat))) + +(define-public python2-lzstring + (package-with-python2 python-lzstring)) + (define-public squashfs-tools (package (name "squashfs-tools") @@ -963,7 +985,7 @@ respectively, based on the reference implementation from Google.") (modify-phases %standard-phases (add-after 'unpack 'enter-build-directory (lambda _ (chdir "xdelta3"))) - (add-before 'configure 'autoconf + (add-after 'enter-build-directory 'autoconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (home-page "http://xdelta.com") (synopsis "Delta encoder for binary files") @@ -1529,22 +1551,24 @@ manipulate, read, and write Zip archive files.") (define-public libzip (package (name "libzip") - (version "1.2.0") + (version "1.3.0") (source (origin (method url-fetch) (uri (string-append - "https://nih.at/libzip/libzip-" version ".tar.gz")) - (patches (search-patches "libzip-CVE-2017-12858.patch")) + "https://nih.at/libzip/libzip-" version ".tar.xz")) (sha256 (base32 - "17vxj2ffsxwh8lkc6801ppmwj15jp8q58rin76znxfbx88789ybc")))) + "0wykw0q9dwdzx0gssi2dpgckx9ggr2spzc1amjnff6wi6kz6x4xa")))) (arguments - `(#:phases + '(#:phases (modify-phases %standard-phases - (add-before 'configure 'patch-perl + (add-after 'build 'remove-failing-tests + ;; These tests are known to fail on 32-bit architectures. + ;; see thread: https://nih.at/listarchive/libzip-discuss/msg00713.html (lambda _ - (substitute* "regress/runtest.in" - (("/usr/bin/env perl") (which "perl")))))))) + (substitute* "regress/Makefile" + (("encryption-nonrandom") "#encryption-nonrandom")) + #t))))) (native-inputs `(("perl" ,perl))) (inputs diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index da192553a5..5ad9fd33bc 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -45,12 +45,12 @@ '(#:phases ;; build scripts not in root of archive (modify-phases %standard-phases - (add-before 'configure 'pre-configure + (add-after 'unpack 'pre-configure (lambda _ (chdir "Project/GNU/Library"))) - (add-before 'configure 'autogen + (add-after 'pre-configure 'autogen (lambda _ - (zero? (system* "./autogen.sh"))))))) + (zero? (system* "sh" "autogen.sh"))))))) (home-page "https://github.com/MediaArea/ZenLib") (synopsis "C++ utility library") (description "ZenLib is a C++ utility library. It includes classes for handling diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index bb7576352f..e00a8a4ba2 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -23,6 +23,7 @@ #:use-module (guix utils) #:use-module (guix build-system r) #:use-module (gnu packages gcc) + #:use-module (gnu packages machine-learning) #:use-module (gnu packages maths) #:use-module (gnu packages perl) #:use-module (gnu packages statistics) @@ -91,13 +92,13 @@ error stream.") (define-public r-rcpp (package (name "r-rcpp") - (version "0.12.12") + (version "0.12.13") (source (origin (method url-fetch) (uri (cran-uri "Rcpp" version)) (sha256 - (base32 "1byyqvlgb2p46p1gv243k73rk69fa8pa4l5m5asmckag2pkb2glz")))) + (base32 "1bm84yc48475plgsnnbvzi6nzkixpnfw8ry86ax63f9g524asw55")))) (build-system r-build-system) (home-page "http://www.rcpp.org") (synopsis "Seamless R and C++ integration") @@ -202,14 +203,14 @@ on (non-orthogonal) variable vectors in scatterplots and biplots.") (define-public r-shape (package (name "r-shape") - (version "1.4.2") + (version "1.4.3") (source (origin (method url-fetch) (uri (cran-uri "shape" version)) (sha256 (base32 - "0yk3cmsa57svcvbnm21pyr0s0qbhnllka8nmsg4yb41frjlqph66")))) + "1v9xp60p813rnx41vchkh32qmcb4z2zp9l7r1a8a6f8aqylnq3vj")))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/shape") (synopsis "Functions for plotting graphical shapes") @@ -241,14 +242,14 @@ validation and filtering on the values, making options invisible or private.") (define-public r-circlize (package (name "r-circlize") - (version "0.4.0") + (version "0.4.1") (source (origin (method url-fetch) (uri (cran-uri "circlize" version)) (sha256 (base32 - "0p1zx1aawkblz48kzzfn5w1k3lbwv9wrk1k5gcfjrr2b4sz1pp5b")))) + "1w7i3jgxgq510axglzmw54ma9kq7k4c86i9ccndz10mrwc51fji0")))) (build-system r-build-system) (propagated-inputs `(("r-colorspace" ,r-colorspace) @@ -271,14 +272,14 @@ patterns behind multiple dimensional data.") (define-public r-powerlaw (package (name "r-powerlaw") - (version "0.70.0") + (version "0.70.1") (source (origin (method url-fetch) (uri (cran-uri "poweRlaw" version)) (sha256 (base32 - "1p2la3hslxq2xa8jkwvci6zcpn47cvyr9xqd5agp1riwwp2xw5gh")))) + "04sr0nhdd1v915m0zf5gasznzgi08ykcy20kkwdw0l5mvvdbic8m")))) (properties `((upstream-name . "poweRlaw"))) (build-system r-build-system) (propagated-inputs @@ -459,14 +460,14 @@ quantities.") (define-public r-reshape (package (name "r-reshape") - (version "0.8.6") + (version "0.8.7") (source (origin (method url-fetch) (uri (cran-uri "reshape" version)) (sha256 (base32 - "1f1ngalc22knhdm9djv1m6abnjqpv1frdzxfkpakhph2l67bk7fq")))) + "14ir3w4bb3bsz8jsak27nj7kpn227pdgr9653gjq5wc93rywi9ig")))) (build-system r-build-system) (propagated-inputs `(("r-plyr" ,r-plyr) @@ -505,14 +506,14 @@ package also provides a C++ API, that works with or without Rcpp.") (define-public r-ggally (package (name "r-ggally") - (version "1.3.0") + (version "1.3.2") (source (origin (method url-fetch) (uri (cran-uri "GGally" version)) (sha256 (base32 - "12ddab0nd0f9c7bb6cx3c22mliyvc8xsxv26aqz3cvfbla8crp3b")))) + "02px7j28wzbhcgcwm2m0pxb6g7s5zvphl64ix55pkvag4m2ky57l")))) (properties `((upstream-name . "GGally"))) (build-system r-build-system) (propagated-inputs @@ -556,14 +557,14 @@ most popular ones.") (define-public r-sp (package (name "r-sp") - (version "1.2-4") + (version "1.2-5") (source (origin (method url-fetch) (uri (cran-uri "sp" version)) (sha256 (base32 - "0crba3j00mb2xv2yk60rpa57gn97xq4ql3a6p9cjzqjxzv2cknk2")))) + "09yydnacp33yx0kn537k96fjlbf75fjafqfknpa5gvci4l888bqd")))) (build-system r-build-system) (propagated-inputs `(("r-lattice" ,r-lattice))) @@ -623,14 +624,14 @@ quantile mixture from L-moments and trimmed L-moments.") (define-public r-distillery (package (name "r-distillery") - (version "1.0-2") + (version "1.0-4") (source (origin (method url-fetch) (uri (cran-uri "distillery" version)) (sha256 (base32 - "12m4cacvc18fd3aayc8iih5q6bwsmvf29b55fwp7vs8wp1h8nd8c")))) + "1m0pgmlvk7bsb6q3kxagnq422babk61sf73naavac68v8x2q8fix")))) (build-system r-build-system) (home-page "http://www.ral.ucar.edu/staff/ericg") (synopsis "Functions for confidence intervals and object information") @@ -851,14 +852,14 @@ data). Weighted versions of MLE, MME and QME are available.") (define-public r-energy (package (name "r-energy") - (version "1.7-0") + (version "1.7-2") (source (origin (method url-fetch) (uri (cran-uri "energy" version)) (sha256 (base32 - "1g4hqi6mgsnd1w4q7dd2m40ljh2jdmvad91ksbq9fscnrqpvji1x")))) + "19c7bgjnm4ggf7w5mk64c5shkma3sa9wc8x117iqv7pk1bvvyy3p")))) (build-system r-build-system) (propagated-inputs `(("r-boot" ,r-boot) @@ -904,14 +905,14 @@ George Marsaglia are included.") (define-public r-ksamples (package (name "r-ksamples") - (version "1.2-6") + (version "1.2-7") (source (origin (method url-fetch) (uri (cran-uri "kSamples" version)) (sha256 (base32 - "1pbam0zqq44slpxdgl2s2fsfdgl7i0pgm8bzlvnm0fy0na24bgdj")))) + "0f19rjngk0lg6s8c6h5l55qpxp8sl4vxj3kpi05cizzncny9b9bj")))) (properties `((upstream-name . "kSamples"))) (build-system r-build-system) (propagated-inputs @@ -928,3 +929,291 @@ sampling from populations, given the observed tie pattern. Except for Steel's test and the JT test it also combines these tests across several blocks of samples.") (license license:gpl2+))) + +(define-public r-cvst + (package + (name "r-cvst") + (version "0.2-1") + (source + (origin + (method url-fetch) + (uri (cran-uri "CVST" version)) + (sha256 + (base32 + "17xacyi8cf37rr2xswx96qy7pwkaqq394awdlswykz3qlyzx4zx2")))) + (properties `((upstream-name . "CVST"))) + (build-system r-build-system) + (propagated-inputs + `(("r-kernlab" ,r-kernlab) + ("r-matrix" ,r-matrix))) + (home-page "http://cran.r-project.org/web/packages/CVST") + (synopsis "Fast cross-validation via sequential testing") + (description + "This package implements the fast cross-validation via sequential +testing (CVST) procedure. CVST is an improved cross-validation procedure +which uses non-parametric testing coupled with sequential analysis to +determine the best parameter set on linearly increasing subsets of the data. +Additionally to the CVST the package contains an implementation of the +ordinary k-fold cross-validation with a flexible and powerful set of helper +objects and methods to handle the overall model selection process. The +implementations of the Cochran's Q test with permutations and the sequential +testing framework of Wald are generic and can therefore also be used in other +contexts.") + (license license:gpl2+))) + +(define-public r-lava + (package + (name "r-lava") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "lava" version)) + (sha256 + (base32 + "1vcm04h9i39gmf2prl5d4j4il4gs6skzr6y2fvl1vn4hklna87f4")))) + (build-system r-build-system) + (propagated-inputs + `(("r-numderiv" ,r-numderiv) + ("r-survival" ,r-survival))) + (home-page "https://github.com/kkholst/lava") + (synopsis "Latent variable models") + (description + "This package provides tools for the estimation and simulation of latent +variable models.") + (license license:gpl3))) + +(define-public r-drr + (package + (name "r-drr") + (version "0.0.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "DRR" version)) + (sha256 + (base32 + "1scfwp6ry6apxzqjclsmn2frxp9qfw6zxsxn5w0j0q3sz42hz1h2")))) + (properties `((upstream-name . "DRR"))) + (build-system r-build-system) + (propagated-inputs + `(("r-cvst" ,r-cvst) + ("r-kernlab" ,r-kernlab) + ("r-matrix" ,r-matrix))) + (home-page "http://cran.r-project.org/web/packages/DRR") + (synopsis "Dimensionality reduction via regression") + (description + "This package provides an implementation of dimensionality reduction via +regression using Kernel Ridge Regression.") + (license license:gpl3))) + +(define-public r-prodlim + (package + (name "r-prodlim") + (version "1.6.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "prodlim" version)) + (sha256 + (base32 + "0m51rkivx1zr6whdqwj66jpnkmp4385m06kkha3dp8qqf4jna9iz")))) + (build-system r-build-system) + (propagated-inputs + `(("r-kernsmooth" ,r-kernsmooth) + ("r-lava" ,r-lava) + ("r-rcpp" ,r-rcpp) + ("r-survival" ,r-survival))) + (home-page "http://cran.r-project.org/web/packages/prodlim") + (synopsis "Product-limit estimation for censored event history analysis") + (description + "This package provides a fast and user-friendly implementation of +nonparametric estimators for censored event history (survival) analysis with +the Kaplan-Meier and Aalen-Johansen methods.") + (license license:gpl2+))) + +(define-public r-dimred + (package + (name "r-dimred") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "dimRed" version)) + (sha256 + (base32 + "0fasca5fsbrxdwv30hch7vb9snb844l7l8p5fjf239dq45xfy37v")))) + (properties `((upstream-name . "dimRed"))) + (build-system r-build-system) + (propagated-inputs `(("r-drr" ,r-drr))) + (home-page "https://github.com/gdkrmr/dimRed") + (synopsis "Framework for dimensionality reduction") + (description + "This package provides a collection of dimensionality reduction +techniques from R packages and provides a common interface for calling the +methods.") + (license license:gpl3))) + +(define-public r-timedate + (package + (name "r-timedate") + (version "3012.100") + (source + (origin + (method url-fetch) + (uri (cran-uri "timeDate" version)) + (sha256 + (base32 + "0cn4h23y2y2bbg62qgm79xx4cvfla5xbpmi9hbdvkvpmm5yfyqk2")))) + (properties `((upstream-name . "timeDate"))) + (build-system r-build-system) + (home-page "https://www.rmetrics.org") + (synopsis "Chronological and calendar objects") + (description + "This package provides an environment for teaching \"Financial +Engineering and Computational Finance\" and for managing chronological and +calendar objects.") + (license license:gpl2+))) + +(define-public r-ddalpha + (package + (name "r-ddalpha") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "ddalpha" version)) + (sha256 + (base32 + "0pczw9543y7f92m7gyk7rxcjn8vsjaldc5vl0r56ywip9i374zbh")))) + (build-system r-build-system) + (propagated-inputs + `(("r-bh" ,r-bh) + ("r-class" ,r-class) + ("r-mass" ,r-mass) + ("r-rcpp" ,r-rcpp) + ("r-robustbase" ,r-robustbase) + ("r-sfsmisc" ,r-sfsmisc))) + (native-inputs + `(("gfortran" ,gfortran))) + (home-page "http://cran.r-project.org/web/packages/ddalpha") + (synopsis "Depth-Based classification and calculation of data depth") + (description + "This package contains procedures for depth-based supervised learning, +which are entirely non-parametric, in particular the DDalpha-procedure (Lange, +Mosler and Mozharovskyi, 2014). The training data sample is transformed by a +statistical depth function to a compact low-dimensional space, where the final +classification is done. It also offers an extension to functional data and +routines for calculating certain notions of statistical depth functions. 50 +multivariate and 5 functional classification problems are included.") + (license license:gpl2))) + +(define-public r-gower + (package + (name "r-gower") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "gower" version)) + (sha256 + (base32 + "1mbrj1lam3jfbby2j32shmmj5cn09zx3rkxbamq7q8sdg39b54gb")))) + (build-system r-build-system) + (native-inputs + `(("r-knitr" ,r-knitr))) + (home-page "https://github.com/markvanderloo/gower") + (synopsis "Gower's distance") + (description + "This package provides tools to compute Gower's distance (or similarity) +coefficient between records, and to compute the top-n matches between records. +Core algorithms are executed in parallel on systems supporting OpenMP.") + (license license:gpl3))) + +(define-public r-rcpproll + (package + (name "r-rcpproll") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "RcppRoll" version)) + (sha256 + (base32 + "19xzvxym8zbighndygkq4imfwc0abh4hqyq3qrr8aakyd096iisi")))) + (properties `((upstream-name . "RcppRoll"))) + (build-system r-build-system) + (propagated-inputs + `(("r-rcpp" ,r-rcpp))) + (home-page "http://cran.r-project.org/web/packages/RcppRoll") + (synopsis "Efficient rolling and windowed operations") + (description + "This package provides fast and efficient routines for common rolling / +windowed operations. Routines for the efficient computation of windowed mean, +median, sum, product, minimum, maximum, standard deviation and variance are +provided.") + (license license:gpl2+))) + +(define-public r-ipred + (package + (name "r-ipred") + (version "0.9-6") + (source + (origin + (method url-fetch) + (uri (cran-uri "ipred" version)) + (sha256 + (base32 + "1vrw1pqcpnc04x1r2h9grdfm6bivs358sww5gg90jwlvxcw69lxq")))) + (build-system r-build-system) + (propagated-inputs + `(("r-class" ,r-class) + ("r-mass" ,r-mass) + ("r-nnet" ,r-nnet) + ("r-prodlim" ,r-prodlim) + ("r-rpart" ,r-rpart) + ("r-survival" ,r-survival))) + (home-page "http://cran.r-project.org/web/packages/ipred") + (synopsis "Improved predictors") + (description + "This package provides improved predictive models by indirect +classification and bagging for classification, regression and survival +problems as well as resampling based estimators of prediction error.") + (license license:gpl2+))) + +(define-public r-recipes + (package + (name "r-recipes") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "recipes" version)) + (sha256 + (base32 + "0rydk403qihxmcv3zz323r3ywk4g1v7ibvj452rxhm0z22sqk9kb")))) + (build-system r-build-system) + (propagated-inputs + `(("r-ddalpha" ,r-ddalpha) + ("r-dimred" ,r-dimred) + ("r-dplyr" ,r-dplyr) + ("r-gower" ,r-gower) + ("r-ipred" ,r-ipred) + ("r-lubridate" ,r-lubridate) + ("r-magrittr" ,r-magrittr) + ("r-purrr" ,r-purrr) + ("r-rcpproll" ,r-rcpproll) + ("r-rlang" ,r-rlang) + ("r-tibble" ,r-tibble) + ("r-tidyselect" ,r-tidyselect) + ("r-timedate" ,r-timedate))) + (home-page "https://github.com/topepo/recipes") + (synopsis "Preprocessing tools to create design matrices") + (description + "Recipes is an extensible framework to create and preprocess design +matrices. Recipes consist of one or more data manipulation and analysis +\"steps\". Statistical parameters for the steps can be estimated from an +initial data set and then applied to other data sets. The resulting design +matrices can then be used as inputs into statistical or machine learning +models.") + (license license:gpl2))) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 0a05a10698..9c657cd1f6 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -58,25 +58,56 @@ (define-public libsodium (package (name "libsodium") - (version "1.0.13") + (version "1.0.14") (source (origin (method url-fetch) (uri (list (string-append - "http://download.libsodium.org/libsodium/" + "https://download.libsodium.org/libsodium/" "releases/libsodium-" version ".tar.gz") (string-append "https://download.libsodium.org/libsodium/" "releases/old/libsodium-" version ".tar.gz"))) (sha256 (base32 - "1z93wfg4k5svg8yck6cgdr6ysj91kbpn03nyzwxanncy3b5sq4ww")))) + "1rvylybhxyn6ap3hrcingsl737zrqg12l7r91ns93j7xjz889z1w")))) (build-system gnu-build-system) (synopsis "Portable NaCl-based crypto library") (description "Sodium is a new easy-to-use high-speed software library for network communication, encryption, decryption, signatures, etc.") (license license:isc) - (home-page "http://libsodium.org"))) + (home-page "https://libsodium.org"))) + +(define-public libmd + (package + (name "libmd") + (version "0.0.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://archive.hadrons.org/software/libmd/libmd-" + version + ".tar.xz")) + (sha256 + (base32 + "121s73pgbqsnmy6xblbrkj9y44c5zzzpf2hcmh6zvcvg4dk26gzx")))) + (build-system gnu-build-system) + (synopsis "Message Digest functions from BSD systems") + (description + "The currently provided message digest algorithms are: +@itemize +@item MD2 +@item MD4 +@item MD5 +@item RIPEMD-160 +@item SHA-1 +@item SHA-2 (SHA-256, SHA-384 and SHA-512) +@end itemize") + (license (list license:bsd-3 + license:bsd-2 + license:isc + license:public-domain)) + (home-page "https://www.hadrons.org/software/libmd/"))) (define-public signify (package @@ -161,7 +192,7 @@ OpenBSD tool of the same name.") (arguments `(#:configure-flags '("--disable-tools" "--disable-python") #:phases (modify-phases %standard-phases - (add-before 'configure 'autoconf + (add-after 'unpack 'autoconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (home-page "https://github.com/savoirfairelinux/opendht/") diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index aba8ce7eb1..cef586f763 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> @@ -27,10 +27,14 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages compression) + #:use-module (gnu packages groff) #:use-module (gnu packages libusb) - #:use-module (gnu packages autotools) + #:use-module (gnu packages perl) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages scanner) #:use-module (gnu packages image) @@ -445,3 +449,119 @@ device-specific programs to convert and print many types of files.") ;; TODO: Make hp-setup find python-dbus. ("python-dbus" ,python-dbus))) (native-inputs `(("pkg-config" ,pkg-config))))) + +(define-public foomatic-filters + (package + (name "foomatic-filters") + (version "4.0.12") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.openprinting.org/download/foomatic/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "17w26r15094j4fqifa7f7i7jad4gsy9zdlq69kffrykcw31qx3q8")) + (patches + (search-patches "foomatic-filters-CVE-2015-8327.patch" + "foomatic-filters-CVE-2015-8560.patch")))) + (build-system gnu-build-system) + (home-page + "https://wiki.linuxfoundation.org/openprinting/database/foomatic") + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config))) + (inputs + `(("dbus" ,dbus) + ("a2ps" ,a2ps))) + (arguments + '( ;; Specify the installation directories. + #:configure-flags (list (string-append "ac_cv_path_CUPS_BACKENDS=" + (assoc-ref %outputs "out") + "/lib/cups/backend") + (string-append "ac_cv_path_CUPS_FILTERS=" + (assoc-ref %outputs "out") + "/lib/cups/filter") + (string-append "ac_cv_path_PPR_INTERFACES=" + (assoc-ref %outputs "out") + "/lib/ppr/interfaces") + (string-append "ac_cv_path_PPR_LIB=" + (assoc-ref %outputs "out") + "/lib/ppr/lib") + + ;; For some reason these are misdiagnosed. + "ac_cv_func_malloc_0_nonnull=yes" + "ac_cv_func_realloc_0_nonnull=yes") + #:test-target "tests")) + (synopsis "Convert PostScript to the printer's native format") + (description + "This package contains filter scripts used by the printer spoolers to +convert the incoming PostScript data into the printer's native format using a +printer/driver specific, but spooler-independent PPD file.") + (license license:gpl2+))) + +(define-public foo2zjs + (package + ;; The tarball is called "foo2zjs", but the web page talks about + ;; "foo2xqx". Go figure! + (name "foo2zjs") + (version "201709") + (source (origin + (method url-fetch) + ;; XXX: This is an unversioned URL! + (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz") + (sha256 + (base32 + "0amjj3jr6s6h7crzxyx11v31sj0blz7k5c2vycz4gn8cxlmk3c7w")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* (find-files "." "^Makefile$") + ;; Set the installation directory. + (("^PREFIX[[:blank:]]*=.*$") + (string-append "PREFIX = " + (assoc-ref outputs "out") + "\n")) + (("^UDEVBIN[[:blank:]]*=.*$") + "UDEVBIN = $(PREFIX)/bin\n") + ;; Don't try to chown/chgrp the installed files. + (("-oroot") + "") + (("-glp") + "") + ;; Placate the dependency checks. + (("/usr/include/stdio.h") + "/etc/passwd") + (("/usr/") + "$(PREFIX)/") + ;; Ensure fixed timestamps in man pages. + (("^MODTIME[[:blank:]]*=.*$") + "MODTIME = echo Thu Jan 01 01:00:00 1970\n")) + #t)) + (add-after 'install 'remove-pdf + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove 'manual.pdf' which is (1) useless (it's a + ;; concatenation of man pages), and (2) not + ;; bit-reproducible due to <https://bugs.gnu.org/27593>. + (let ((out (assoc-ref outputs "out"))) + (for-each delete-file + (find-files out "^manual\\.pdf$")) + #t)))) + #:parallel-build? #f ;broken makefile + #:tests? #f ;no tests + #:make-flags '("CC=gcc"))) + (inputs + `(("ghostscript" ,ghostscript) + ("foomatic-filters" ,foomatic-filters))) ;for 'foomatic-rip' + (native-inputs + `(("bc" ,bc) + ("groff" ,groff))) + (home-page "http://foo2xqx.rkkda.com/") + (synopsis "Printer driver for XQX stream protocol") + (description + "This package provides a printer driver notably for the ZJS and XQX +protocols, which cover printers made by Konica, HP (LaserJet), Oki, Samsung, +and more. See @file{README} for details.") + (license license:gpl2+))) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 37890a91fc..20981dced1 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> +;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> @@ -18,6 +18,7 @@ ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> +;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,6 +53,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) + #:use-module (gnu packages time) #:use-module (gnu packages jemalloc) #:use-module (gnu packages language) #:use-module (gnu packages libevent) @@ -66,6 +68,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) + #:use-module (gnu packages ruby) #:use-module (gnu packages tcl) #:use-module (gnu packages tls) #:use-module (gnu packages xml) @@ -75,6 +78,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system ruby) #:use-module (guix build-system cmake) #:use-module (guix utils) #:use-module (srfi srfi-26) @@ -115,9 +119,9 @@ (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'generate-configure + (add-after 'unpack 'generate-configure (lambda _ - (zero? (system* "./autogen.sh"))))))) + (zero? (system* "sh" "autogen.sh"))))))) ;; http://www.4store.org has been down for a while now. (home-page "https://github.com/garlik/4store") (synopsis "Clustered RDF storage and query engine") @@ -254,6 +258,45 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") "--enable-cxx")))) %standard-phases))))) +(define-public es-dump-restore + (package + (name "es-dump-restore") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "es_dump_restore" version)) + (sha256 + (base32 + "020yk7f1hw48clmf5501z3xv9shsdchyymcv0y2cci2c1xvr1mim")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f ;; No testsuite. + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-bin-es_dump_restore + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/es_dump_restore") + `("GEM_PATH" ":" prefix (,(string-append + (getenv "GEM_PATH") + ":" + (getenv "GEM_HOME"))))) + #t))))) + (propagated-inputs + `(("ruby-httpclient" ,ruby-httpclient) + ("ruby-multi-json" ,ruby-multi-json) + ("ruby-progress_bar" ,ruby-progress_bar) + ("ruby-rubyzip" ,ruby-rubyzip) + ("ruby-thor" ,ruby-thor))) + (synopsis "Utility for dumping and restoring ElasticSearch indexes") + (description + "This package provides a utility for dumping the contents of an +ElasticSearch index to a compressed file and restoring the dumpfile back to an +ElasticSearch server") + (home-page "https://github.com/patientslikeme/es_dump_restore") + (license license:expat))) + (define-public leveldb (package (name "leveldb") @@ -371,12 +414,7 @@ applications.") (for-each delete-file (find-files (string-append out "/bin") "_embedded$")) - #t)))) - ;; On aarch64 the test suite runs out of memory and fails. - ,@(if (string-prefix? "aarch64-linux" - (or (%current-target-system) (%current-system))) - '(#:tests? #f) - '()))) + #t)))))) (native-inputs `(("bison" ,bison) ("perl" ,perl))) @@ -474,14 +512,14 @@ as a drop-in replacement of MySQL.") (define-public postgresql (package (name "postgresql") - (version "9.6.4") + (version "9.6.5") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "04yffrrmn85k25n3nq389aa9c1j8mkimrf889kayl772h9nv2fib")))) + "0k3ls2x182jz6djjiqj9kycddabdl2gk1y1ajq1vipnxwfki5nh6")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-uuid=e2fs") @@ -1568,7 +1606,7 @@ for ODBC.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'autoreconf + (add-after 'unpack 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (home-page "http://mdbtools.sourceforge.net/") @@ -1626,3 +1664,56 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.") (define-public python2-lmdb (package-with-python2 python-lmdb)) + +(define-public python-orator + (package + (name "python-orator") + (version "0.9.7") + (source (origin + (method url-fetch) + (uri (pypi-uri "orator" version)) + (sha256 + (base32 + "14r58z64fdp76ixnvmi4lni762b405ynmsx6chr1qihs3yl9zn6c")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'loosen-dependencies + ;; Tests are not actually run since they are not included with the + ;; distributed package, but dependencies are checked. + (lambda _ + (substitute* "setup.py" + ((",<.*'") "'") + (("flexmock==0.9.7") "flexmock") + ;; The pytest-mock package is out of date, so we remove minimum + ;; version requirement. + (("pytest-mock.*'") "pytest-mock'")) + #t))))) + (native-inputs + `(("python-pytest-mock" ,python-pytest-mock) + ("python-pytest" ,python-pytest-3.0) + ("python-flexmock" ,python-flexmock))) + (propagated-inputs + `(("python-backpack" ,python-backpack) + ("python-blinker" ,python-blinker) + ("python-cleo" ,python-cleo) + ("python-faker" ,python-faker) + ("python-inflection" ,python-inflection) + ("python-lazy-object-proxy" ,python-lazy-object-proxy) + ("python-pendulum" ,python-pendulum) + ("python-pyaml" ,python-pyaml) + ("python-pygments" ,python-pygments) + ("python-simplejson" ,python-simplejson) + ("python-six" ,python-six) + ("python-wrapt" ,python-wrapt))) + (home-page "https://orator-orm.com/") + (synopsis "ActiveRecord ORM for Python") + (description + "Orator provides a simple ActiveRecord-like Object Relational Mapping +implementation for Python.") + (license license:expat) + (properties `((python2-variant . ,(delay python2-orator)))))) + +(define-public python2-orator + (package-with-python2 (strip-python2-variant python-orator))) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 86cfaa64b1..6c466977d2 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -55,13 +55,13 @@ clients.") (define-public vdirsyncer (package (name "vdirsyncer") - (version "0.16.1") + (version "0.16.2") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "0pnsb9h4r0hhmqhzx9nbrd7jawir9ysrh3wrrkhzi0ssarmxyp67")))) + "19xqzxcgmpm2z56l2d4a1n4sqmhrnzfwx3d9avfzgldwyhlrz0da")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 0fc1f513ba..43bfd9e514 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -319,7 +319,7 @@ down the road.") (add-before 'configure 'repack-make (lambda _ (zero? (system* "tar" "cJf" "./make.tar.xz" ,make-dir)))) - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-vfi")))))))) (home-page "https://github.com/losalamos/stress-make") diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 030fabfa58..d19f8e873e 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> +;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +31,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages docbook) @@ -214,7 +216,7 @@ to recover data more efficiently by only reading the necessary blocks.") `(#:make-flags (list (string-append "PREFIX=" %output) "CC=gcc"))) (native-inputs - `(("xxd" ,vim))) ; for tests + `(("xxd" ,xxd))) ; for tests (home-page "https://github.com/dosfstools/dosfstools") (synopsis "Utilities for making and checking MS-DOS FAT file systems") (description @@ -344,7 +346,7 @@ and can dramatically shorten the lifespan of the drive if left unchecked.") (native-inputs `(("intltool" ,intltool) ("pkg-config" ,pkg-config))) - (home-page "https://sourceforge.net/projects/gparted/") + (home-page "https://gparted.org/") (synopsis "Partition editor to graphically manage disk partitions") (description "GParted is a GNOME partition editor for creating, reorganizing, and deleting disk partitions. It uses libparted from the parted @@ -353,6 +355,25 @@ permit managing file systems not included in libparted.") ;; The home page says GPLv2, but the source code says GPLv2+. (license license:gpl2+))) +(define-public pydf + (package + (name "pydf") + (version "12") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pydf" version)) + (sha256 + (base32 + "0f8ly8xyp93i2hm9c0qjqd4y86nz73axw2f09z01mszwmg1sfivz")))) + (build-system python-build-system) + (home-page "http://kassiopeia.juls.savba.sk/~garabik/software/pydf/") + (synopsis "Colourised @command{df} clone") + (description "All-singing, all-dancing, fully colourised @command{df} clone +written in Python. It displays the amount of disk space available on the +mounted filesystems, using different colours for different types of file +systems. Output format is completely customizable.") + (license license:public-domain))) (define-public f3 (package diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 869d6239ef..9f8d7b8250 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -132,23 +132,24 @@ Qt-style API for Wayland clients.") (define-public sddm (package (name "sddm") - (version "0.14.0") + (version "0.15.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/sddm/sddm" "/releases/download/v" version "/" - "sddm-" version ".tar.xz")) + "sddm-" version ".tar.gz")) (sha256 (base32 - "0y3pn8g2qj7q20zkmbasrfsj925lfzizk63sfrvzf84bc5c84d3y")))) + "0x1igkjm3k8q26xbmg0qah1fc2pn2sfc675w0xg42x7ncrdiw8d4")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) ("pkg-config" ,pkg-config) ("qttools" ,qttools))) (inputs - `(("glib" ,glib) + `(("elogind" ,elogind) + ("glib" ,glib) ("libxcb" ,libxcb) ("libxkbcommon" ,libxkbcommon) ("linux-pam" ,linux-pam) @@ -163,6 +164,8 @@ Qt-style API for Wayland clients.") ;; Option added by enable wayland greeters PR "-DENABLE_WAYLAND=ON" "-DENABLE_PAM=ON" + ;; Both flags are required for elogind support. + "-DNO_SYSTEMD=ON" "-DUSE_ELOGIND=ON" "-DCONFIG_FILE=/etc/sddm.conf" ;; Set path to /etc/login.defs ;; Alternatively use -DUID_MIN and -DUID_MAX @@ -180,6 +183,11 @@ Qt-style API for Wayland clients.") (guix build qt-utils)) #:phases (modify-phases %standard-phases + (add-after 'unpack 'embed-loginctl-reference + (lambda _ + (substitute* "CMakeLists.txt" + (("/usr/bin/loginctl") (which "loginctl"))) + #t)) (add-after 'install 'wrap-programs (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 356586e1bc..c70c074938 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -31,13 +31,13 @@ (define-public python-django (package (name "python-django") - (version "1.10.7") + (version "1.10.8") (source (origin (method url-fetch) (uri (pypi-uri "Django" version)) (sha256 (base32 - "1f5hnn2dzfr5szk4yc47bs4kk2nmrayjcvgpqi2s4l13pjfpfgar")))) + "1fwqqh2zbcy9dy0lnvk338s11llnnfz2k56bf84w0wv56ayq7vyl")))) (build-system python-build-system) (arguments '(#:phases diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm index e739df3772..10cdbf31a8 100644 --- a/gnu/packages/djvu.scm +++ b/gnu/packages/djvu.scm @@ -34,6 +34,14 @@ (base32 "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6")))) (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'reproducible + (lambda _ + ;; Ensure there are no timestamps in .svgz files. + (substitute* "desktopfiles/Makefile.in" + (("gzip") "gzip -n")) + #t))))) (home-page "http://djvu.sourceforge.net/") (synopsis "Implementation of DjVu, the document format") (description "DjVuLibre is an implementation of DjVu, diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index afae4596bd..e0a3f5dc58 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -181,7 +181,7 @@ high-volume and high-reliability applications. The name BIND stands for (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'autoreconf + (add-after 'unpack 'autoreconf (lambda _ ;; Re-generate build files due to unbundling ltdl. ;; TODO: Prevent generating new libltdl and building it. @@ -229,7 +229,7 @@ servers is included, and an up-to-date version is available at #:tests? #f #:phases (modify-phases %standard-phases - (add-before 'configure 'create-configure + (add-after 'unpack 'create-configure (lambda _ (zero? (system* "make" "configure"))))))) (native-inputs @@ -483,14 +483,14 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "2.5.3") + (version "2.5.5") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" name "-" version ".tar.xz")) (sha256 (base32 - "13lxxnnw0v7s0q648grz87bwlfwjh5sfbj1qax7jdklalqqy52np")) + "1bwv2a290inkjb5x9a9sahls39rgaqyq9dwfrk1ilmzy9nmls87f")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 5d3d6f170b..9c5ca74d73 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> -;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm index d5e177f0ce..68637ea6cd 100644 --- a/gnu/packages/dunst.scm +++ b/gnu/packages/dunst.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Alex Kost <alezost@gmail.com> +;;; Copyright © 2015, 2017 Alex Kost <alezost@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,15 +32,16 @@ (define-public dunst (package (name "dunst") - (version "1.1.0") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append - "http://knopwob.org/public/dunst-release/dunst-" - version ".tar.bz2")) + "https://github.com/dunst-project/dunst/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0w3hilzwanwsp4q6dxbdj6l0mvpg4fq02wf8isll8kmbx9kz2ay7")))) + "1bf5fmmj79wlwi8wzir3rd8czyrxfx16w8q7c957123yz1g5ph53")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no check target @@ -55,15 +56,15 @@ (inputs `(("dbus" ,dbus) ("glib" ,glib) + ("gtk" ,gtk+-2) ("cairo" ,cairo) ("pango" ,pango) ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxft" ,libxft) ("libxscrnsaver" ,libxscrnsaver) ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) ("libxdg-basedir" ,libxdg-basedir))) - (home-page "http://knopwob.org/dunst") + (home-page "https://dunst-project.org/") (synopsis "Customizable and lightweight notification daemon") (description "Dunst is a highly configurable and minimalistic notification daemon. diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 38abf47c87..4bcaa0abfe 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -72,7 +72,7 @@ (define-public calibre (package (name "calibre") - (version "3.0.0") + (version "3.6.0") (source (origin (method url-fetch) @@ -81,21 +81,19 @@ version ".tar.xz")) (sha256 (base32 - "1zhk7bvgr973dd18x4wp48kzai29qqqi5qcy72sxc4wcbk2sbnkw")) + "0vp2nds4b5xbchsh1rpc1q7093gd26dnw7mgbnax97dcchvlc4sc")) ;; Remove non-free or doubtful code, see ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "src/calibre/ebooks/markdown") - (delete-file-recursively "src/unrar") (delete-file "src/odf/thumbnail.py") (delete-file-recursively "resources/fonts/liberation") (substitute* (find-files "." "\\.py") (("calibre\\.ebooks\\.markdown") "markdown")) #t)) - (patches (search-patches "calibre-drop-unrar.patch" - "calibre-use-packaged-feedparser.patch" + (patches (search-patches "calibre-use-packaged-feedparser.patch" "calibre-no-updates-dialog.patch")))) (build-system python-build-system) (native-inputs @@ -129,6 +127,7 @@ ("python2-dbus" ,python2-dbus) ("python2-dnspython" ,python2-dnspython) ("python2-feedparser" ,python2-feedparser) + ("python2-html5-parser" ,python2-html5-parser) ("python2-lxml" ,python2-lxml) ("python2-markdown" ,python2-markdown) ("python2-mechanize" ,python2-mechanize) @@ -140,6 +139,9 @@ ("python2-pyqt" ,python2-pyqt) ("python2-sip" ,python2-sip) ("python2-regex" ,python2-regex) + ;; python2-unrardll is needed for decompressing RAR files. + ;; A program called 'pdf2html' is needed for reading PDF books + ;; in the web interface. ("sqlite" ,sqlite))) (arguments `(#:python ,python-2 diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index 8a9f625dc5..91209376cd 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -242,9 +242,10 @@ format support.") `(("boost" ,boost) ("glib" ,glib) ("glibmm" ,glibmm) - ("qt" ,qt) ("libsigrok" ,libsigrok) - ("libsigrokdecode" ,libsigrokdecode))) + ("libsigrokdecode" ,libsigrokdecode) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) (build-system cmake-build-system) (home-page "http://www.sigrok.org/wiki/PulseView") (synopsis "Qt based logic analyzer, oscilloscope and MSO GUI for sigrok") diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index fb92da6a6d..5d1090fb7e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com> ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org> -;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> +;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com> @@ -22,12 +22,13 @@ ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com> -;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com> ;;; Copyright © 2017 Feng Shu <tumashu@163.com> ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com> +;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -58,6 +59,7 @@ #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages audio) + #:use-module (gnu packages bash) #:use-module (gnu packages code) #:use-module (gnu packages guile) #:use-module (gnu packages gtk) @@ -101,14 +103,14 @@ (define-public emacs (package (name "emacs") - (version "25.2") + (version "25.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/emacs/emacs-" version ".tar.xz")) (sha256 (base32 - "1ykkq0xl28ljdg61bm6gzy04ww86ajms98gix72qg6cpr6a53dar")) + "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5")) (patches (search-patches "emacs-exec-path.patch" "emacs-fix-scheme-indent-function.patch" "emacs-source-date-epoch.patch")) @@ -839,6 +841,7 @@ provides an optional IDE-like error list.") (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) + (flac (assoc-ref inputs "flac")) (vorbis (assoc-ref inputs "vorbis-tools")) (alsa (assoc-ref inputs "alsa-utils")) (mpg321 (assoc-ref inputs "mpg321")) @@ -861,6 +864,9 @@ provides an optional IDE-like error list.") (substitute* "emms-player-simple.el" (("\"ogg123\"") (string-append "\"" vorbis "/bin/ogg123\""))) + (substitute* "emms-player-simple.el" + (("\"mpg321\"") + (string-append "\"" mpg321 "/bin/mpg321\""))) (emacs-substitute-variables "emms-info-ogginfo.el" ("emms-info-ogginfo-program-name" (string-append vorbis "/bin/ogginfo"))) @@ -870,6 +876,11 @@ provides an optional IDE-like error list.") (emacs-substitute-variables "emms-info-mp3info.el" ("emms-info-mp3info-program-name" (string-append mp3info "/bin/mp3info"))) + (emacs-substitute-variables "emms-info-metaflac.el" + ("emms-info-metaflac-program-name" + (string-append flac "/bin/metaflac"))) + (emacs-substitute-variables "emms-source-file.el" + ("emms-source-file-gnu-find" (which "find"))) (substitute* "emms-volume-amixer.el" (("\"amixer\"") (string-append "\"" alsa "/bin/amixer\""))) @@ -895,6 +906,7 @@ provides an optional IDE-like error list.") (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils) ("texinfo" ,texinfo))) (inputs `(("alsa-utils" ,alsa-utils) + ("flac" ,flac) ;for metaflac ("vorbis-tools" ,vorbis-tools) ("mpg321" ,mpg321) ("taglib" ,taglib) @@ -1192,6 +1204,26 @@ Using emacs-direnv means that programs started from Emacs will use the environment set through Direnv.") (license license:gpl3+))) +(define-public emacs-go-mode + (package + (name "emacs-go-mode") + (version "1.5.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/dominikh/go-mode.el/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm")))) + (build-system emacs-build-system) + (home-page "https://github.com/dominikh/go-mode.el") + (synopsis "Go mode for Emacs") + (description + "This package provides go-mode, an Emacs mode for working with software +written in the Go programming language.") + (license license:bsd-3))) + (define-public emacs-google-maps (package (name "emacs-google-maps") @@ -1244,10 +1276,32 @@ Maps directly inside Emacs.") single buffer.") (license license:gpl3+))) +(define-public emacs-tablist + (package + (name "emacs-tablist") + (version "0.70") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/politza/tablist/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c")))) + (build-system emacs-build-system) + (home-page "https://github.com/politza/tablist") + (synopsis "Extension for @code{tabulated-list-mode}") + (description "Tablist is the Emacs package that provides several +additional features to @code{tabulated-list-mode}: it adds marks, +filters, new key bindings and faces. It can be enabled by +@code{tablist-mode} or @code{tablist-minor-mode} commands.") + (license license:gpl3+))) + (define-public emacs-pdf-tools (package (name "emacs-pdf-tools") - (version "0.70") + (version "0.80") (source (origin (method url-fetch) (uri (string-append @@ -1256,7 +1310,7 @@ single buffer.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1m0api6wiawswyk46bdsyk6r5rg3b86a4paar6nassm6x6c6vr77")))) + "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests @@ -1272,7 +1326,7 @@ single buffer.") ;; Build server side using 'gnu-build-system'. (add-after 'unpack 'enter-server-dir (lambda _ (chdir "server") #t)) - (add-before 'configure 'autogen + (add-after 'enter-server-dir 'autogen (lambda _ (zero? (system* "bash" "autogen.sh")))) @@ -1305,6 +1359,7 @@ single buffer.") ("glib" ,glib) ("libpng" ,libpng) ("zlib" ,zlib))) + (propagated-inputs `(("tablist" ,emacs-tablist))) (synopsis "Emacs support library for PDF files") (description "PDF Tools is, among other things, a replacement of DocView for PDF @@ -1366,7 +1421,7 @@ type, for example: packages, buffers, files, etc.") (define-public emacs-guix (package (name "emacs-guix") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/alezost/guix.el" @@ -1374,7 +1429,7 @@ type, for example: packages, buffers, files, etc.") "/emacs-guix-" version ".tar.gz")) (sha256 (base32 - "0bffxlaq4w9yijl9prnfm26fisr2rd1whjg1yzvri1zl6zh9s0lk")))) + "0mjb2yb454389ds2kr5rkjkl21r78z4c0f88ivf4g471yzg279mc")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1470,6 +1525,25 @@ work with Emacs 24 and 25.") a command.") (license license:gpl3+))) +(define-public emacs-olivetti + (package + (name "emacs-olivetti") + (version "1.5.7") + (source (origin + (method url-fetch) + (uri (string-append + "https://stable.melpa.org/packages/olivetti-" + version ".el")) + (sha256 + (base32 + "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj")))) + (build-system emacs-build-system) + (home-page "https://github.com/rnkn/olivetti") + (synopsis "Emacs minor mode for a nice writing environment") + (description "This package provides an Emacs minor mode that puts writing +in the center.") + (license license:gpl3+))) + (define-public emacs-undo-tree (package (name "emacs-undo-tree") @@ -1628,6 +1702,36 @@ display and behaviour is easily customisable.") of files under Git version control from within Emacs.") (license license:gpl3+))) +(define-public emacs-minitest + (package + (name "emacs-minitest") + (version "0.8.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/arthurnn/minitest-emacs/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1dsb7kzvs1x6g4sgqmq73jqacb7wzm0wfkiq5m9dqdzq8mppgiqs")))) + (build-system emacs-build-system) + (arguments + '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include) + #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f))) + (home-page "https://github.com/arthurnn/minitest-emacs") + (synopsis "Emacs minitest mode") + (description + "The minitest mode provides commands to run the tests for the current +file or line, as well as rerunning the previous tests, or all the tests for a +project. + +This package also includes relevant snippets for yasnippet.") + (license license:expat))) + (define-public emacs-el-mock (package (name "emacs-el-mock") @@ -1916,6 +2020,7 @@ serve files and directory listings.") (propagated-inputs `(("emacs-simple-httpd" ,emacs-simple-httpd) ("emacs-js2-mode" ,emacs-js2-mode))) + (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$"))) (home-page "https://github.com/skeeto/skewer-mode") (synopsis "Live web development in Emacs") (description @@ -1967,6 +2072,31 @@ tables.") mode-line.") (license license:gpl2+))) +(define-public emacs-rspec + (package + (name "emacs-rspec") + (version "1.11") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/pezra/rspec-mode/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw")))) + (build-system emacs-build-system) + (home-page "https://github.com/pezra/rspec-mode") + (synopsis "Provides a rspec mode for working with RSpec") + (description + "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to +verify the spec associated with the current buffer, or entire project, as well +as moving between the spec files, and coresponding code files. + +Also included are keybindings for spec files and Dired buffers, as well as +snippets for yasnippet.") + (license license:gpl3+))) + (define-public emacs-smart-mode-line (package (name "emacs-smart-mode-line") @@ -1991,6 +2121,29 @@ read from small to large monitors by using colors, a prefix feature, and smart truncation.") (license license:gpl2+))) +(define-public emacs-sr-speedbar + (package + (name "emacs-sr-speedbar") + (version "20140914.2339") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/emacsorphanage/sr-speedbar/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "15xwwc6kgvmk4wdhx1j8w6m6ivxvc94028ppgdpa2m51a8c9vjm9")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/SrSpeedbar") + (synopsis "Same frame Emacs @code{speedbar}") + (description + "This Emacs package allows you to show @code{M-x speedbar} in the +same frame (in an extra window). You can customize the initial width of +the speedbar window.") + (license license:gpl3+))) + (define-public emacs-shell-switcher (package (name "emacs-shell-switcher") @@ -2416,6 +2569,27 @@ insertion mode. When enabled all keys are implicitly prefixed with @samp{C-} (among other helpful shortcuts).") (license license:gpl3+)))) +(define-public emacs-jinja2-mode + (package + (name "emacs-jinja2-mode") + (version "0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn")))) + (build-system emacs-build-system) + (home-page "https://github.com/paradoxxxzero/jinja2-mode") + (synopsis "Major mode for jinja2") + (description + "Emacs major mode for jinja2 with: syntax highlighting, +sgml/html integration, and indentation (working with sgml).") + (license license:gpl3+))) + (define-public emacs-rfcview (package (name "emacs-rfcview") @@ -2603,6 +2777,48 @@ transparent background. If you load it from a GUI, it will default to a dark background.") (license license:gpl3+))) +(define-public emacs-2048-game + (package + (name "emacs-2048-game") + (version "20151026.1233") + (source + (origin + (method url-fetch) + (uri (string-append "https://melpa.org/packages/2048-game-" + version ".el")) + (sha256 + (base32 + "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd")))) + (build-system emacs-build-system) + (home-page "https://bitbucket.org/zck/2048.el") + (synopsis "Implementation of the game 2048 in Emacs Lisp") + (description + "This program is an implementation of 2048 for Emacs. +The goal of this game is to create a tile with value 2048. The size of the +board and goal value can be customized.") + (license license:gpl3+))) + +(define-public emacs-base16-theme + (package + (name "emacs-base16-theme") + (version "2.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://stable.melpa.org/packages/base16-theme-" + version ".tar")) + (sha256 + (base32 + "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj")))) + (build-system emacs-build-system) + (home-page "https://github.com/belak/base16-emacs") + (synopsis "Base16 color themes for Emacs") + (description + "Base16 provides carefully chosen syntax highlighting and a default set +of sixteen colors suitable for a wide range of applications. Base16 is not a +single theme but a set of guidelines with numerous implementations.") + (license license:expat))) + (define-public emacs-smartparens (package (name "emacs-smartparens") @@ -3116,22 +3332,25 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.") "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; There is no test suite. - #:make-flags (list (string-append "PREFIX=" %output) - (string-append "LISPDIR=" %output - "/share/emacs/site-lisp/guix.d/ess")) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'more-shebang-patching - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Makeconf" - (("SHELL = /bin/sh") - (string-append "SHELL = " (which "sh")))))) - ;; FIXME: the texlive-union insists on regenerating fonts. It stores - ;; them in HOME, so it needs to be writeable. - (add-before 'build 'set-HOME - (lambda _ (setenv "HOME" "/tmp") #t))))) + (let ((base-directory "/share/emacs/site-lisp/guix.d/ess")) + `(#:tests? #f ; There is no test suite. + #:make-flags (list (string-append "PREFIX=" %output) + (string-append "ETCDIR=" %output "/" + ,base-directory "/etc") + (string-append "LISPDIR=" %output "/" + ,base-directory)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'more-shebang-patching + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makeconf" + (("SHELL = /bin/sh") + (string-append "SHELL = " (which "sh")))))) + ;; FIXME: the texlive-union insists on regenerating fonts. It stores + ;; them in HOME, so it needs to be writeable. + (add-before 'build 'set-HOME + (lambda _ (setenv "HOME" "/tmp") #t)))))) (inputs `(("emacs" ,emacs-minimal) ("r-minimal" ,r-minimal))) @@ -3196,7 +3415,7 @@ strings, and code folding.") (define-public emacs-markdown-mode (package (name "emacs-markdown-mode") - (version "2.2") + (version "2.3") (source (origin (method url-fetch) (uri (string-append "https://raw.githubusercontent.com/jrblevin" @@ -3205,7 +3424,7 @@ strings, and code folding.") (file-name (string-append "markdown-mode-" version ".el")) (sha256 (base32 - "04isd2sdnms9acpmkd6n7b7y7j0x2kank2kry0zwbxs3bwdavgav")))) + "152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi")))) (build-system emacs-build-system) (home-page "http://jblevins.org/projects/markdown-mode/") (synopsis "Emacs Major mode for Markdown files") @@ -3334,7 +3553,7 @@ names, e.g. #0000ff is displayed in white with a blue background.") (define-public emacs-visual-fill-column (package (name "emacs-visual-fill-column") - (version "1.7") + (version "1.11") (source (origin (method url-fetch) (uri (string-append "https://codeload.github.com/joostkremers/" @@ -3342,7 +3561,7 @@ names, e.g. #0000ff is displayed in white with a blue background.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "12vn7kdq2mpz9hgibbn1vhpf23lcm7c26k3fkz8nidhygwl5x5lq")))) + "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh")))) (build-system emacs-build-system) (home-page "https://github.com/joostkremers/visual-fill-column") (synopsis "Fill-column for visual-line-mode") @@ -3355,6 +3574,31 @@ wrapping lines at the window edge, which is the standard behaviour of window edge.") (license license:gpl3+))) +(define-public emacs-writeroom + (package + (name "emacs-writeroom") + (version "3.7") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/joostkremers/writeroom-mode/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-visual-fill-column" ,emacs-visual-fill-column))) + (home-page "https://github.com/joostkremers/writeroom-mode") + (synopsis "Distraction-free writing for Emacs") + (description + "This package defines a minor mode for distraction-free writing. Some of +the default effects include entering fullscreen, deleting other windows of the +current frame, disabling the mode line, and adding margins to the buffer that +restrict the text width to 80 characters.") + (license license:bsd-3))) + (define-public emacs-ido-completing-read+ (package (name "emacs-ido-completing-read+") @@ -3447,6 +3691,27 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (home-page "http://web-mode.org/") (license license:gpl3+))) +(define-public emacs-wgrep + (package + (name "emacs-wgrep") + (version "2.1.10") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/mhayashi1120/Emacs-wgrep/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1")))) + (build-system emacs-build-system) + (home-page "https://github.com/mhayashi1120/Emacs-wgrep") + (synopsis "Edit a grep buffer and apply those changes to the files") + (description + "Emacs wgrep allows you to edit a grep buffer and apply those changes to +the file buffer.") + (license license:gpl3+))) + (define-public emacs-helm (package (name "emacs-helm") @@ -3528,7 +3793,7 @@ for search-based navigation of buffers.") (define-public emacs-cider (package (name "emacs-cider") - (version "0.12.0") + (version "0.15.0") (source (origin (method url-fetch) (uri (string-append @@ -3537,8 +3802,11 @@ for search-based navigation of buffers.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00qzbfjy3w6bcnki7gw0clmi0cc5yqjdrcyhgv4ymijjs79h9p5s")))) + "0j7qjcslh8mnxrr2m8qrscyq9ry240j5jd9dysbvih126lxisf12")))) (build-system emacs-build-system) + (arguments + '(#:exclude ; Don't exclude 'cider-test.el'. + '("^\\.dir-locals\\.el$" "^test/"))) (propagated-inputs `(("emacs-clojure-mode" ,emacs-clojure-mode) ("emacs-spinner" ,emacs-spinner) @@ -3561,30 +3829,32 @@ CIDER).") (license license:gpl3+))) (define-public emacs-lua-mode - (package - (name "emacs-lua-mode") - (version "20151025") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/immerrr/lua-mode/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0sbhfny5ib65cnx6xcy6h9bbw27mw034s8m9cca00bhxqaqi6p4v")))) - (build-system emacs-build-system) - (home-page "https://github.com/immerrr/lua-mode/") - (synopsis "Major mode for lua") - (description - "This Emacs package provides a mode for @uref{https://www.lua.org/, + (let ((commit "652e299cb967fccca827dda381d61a9c144d97de") + (revision "1")) + (package + (name "emacs-lua-mode") + (version (string-append "20151025." revision "-" (string-take commit 9))) + (home-page "https://github.com/immerrr/lua-mode/") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (string-append name "-" version ".checkout")) + (sha256 + (base32 + "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9")))) + (build-system emacs-build-system) + (synopsis "Major mode for lua") + (description + "This Emacs package provides a mode for @uref{https://www.lua.org/, Lua programing language}.") - (license license:gpl2+))) + (license license:gpl2+)))) (define-public emacs-ebuild-mode (package (name "emacs-ebuild-mode") - (version "1.30") + (version "1.37") (source (origin (method url-fetch) (uri (string-append @@ -3593,7 +3863,7 @@ Lua programing language}.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0vp7lq1kvmh1b2bms2x1kf2k76dy9m02d7cirkxpiglwaxa0h9vz")))) + "07dzrdjjczkxdfdgi60h4jjkvzi4p0k9rij2wpfp8s03ay3qldpp")))) (build-system emacs-build-system) (home-page "https://devmanual.gentoo.org") (synopsis "Major modes for Gentoo package files") @@ -3716,14 +3986,14 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "20170622") + (version "20170917") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "0922lcbr2r7bkswljqzbm5y3ny1n67qfrmf7h7z9hsw2wy0505dp")))) + "0qyis5ph3h99zn9kx7sgraddz41c1cf6yjkwi4im6ikwxk9x8cgc")))) (build-system emacs-build-system) (home-page "http://orgmode.org/") (synopsis "Outline-based notes management and organizer") @@ -3760,7 +4030,7 @@ Flx has support for ido (interactively do things) through flx-ido.") (define-public emacs-cyberpunk-theme (package (name "emacs-cyberpunk-theme") - (version "1.18") + (version "1.19") (source (origin (method url-fetch) @@ -3768,7 +4038,7 @@ Flx has support for ido (interactively do things) through flx-ido.") "archive/" version ".tar.gz")) (sha256 (base32 - "0pxzbw0qjxgkhhs3gn3k9qy41kl1a4pfzbw83dk24l4b3nxd24wg")) + "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv")) (file-name (string-append name "-" version ".tar.gz")))) (build-system emacs-build-system) (home-page "https://github.com/n3mo/cyberpunk-theme.el") @@ -4621,6 +4891,97 @@ the same - CDLaTeX focuses on speediness for inserting LaTeX constructs.") (license license:gpl3+))) +(define-public emacs-cnfonts + (package + (name "emacs-cnfonts") + (version "0.9.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/tumashu/cnfonts/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4")))) + (build-system emacs-build-system) + (home-page "https://github.com/tumashu/cnfonts") + (synopsis "Emacs Chinese fonts setup tool") + (description "cnfonts is a Chinese fonts setup tool, allowing for easy +configuration of Chinese fonts.") + (license license:gpl2+))) + +(define-public emacs-pos-tip + (package + (name "emacs-pos-tip") + (version "0.4.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/pitkali/pos-tip/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r")))) + (build-system emacs-build-system) + ;; The following functions and variables needed by emacs-pos-tip are + ;; not included in emacs-minimal: + ;; x-display-pixel-width, x-display-pixel-height, x-show-tip + (arguments `(#:emacs ,emacs)) + (home-page "https://github.com/pitkali/pos-tip") + (synopsis "Show tooltip at point") + (description "The standard library tooltip.el provides a function for +displaying a tooltip at the mouse position. However, locating a tooltip at an +arbitrary buffer position in a window is not easy. Pos-tip provides such a +function to be used by other frontend programs.") + (license license:gpl2+))) + +(define-public emacs-pyim-basedict + (package + (name "emacs-pyim-basedict") + (version "0.3.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/tumashu/pyim-basedict/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n")))) + (build-system emacs-build-system) + (home-page "https://github.com/tumashu/pyim-basedict") + (synopsis "Input method dictionary of pyim") + (description "Pyim-basedict is the default pinyin input method dictionary, +containing words from the rime project.") + (license license:gpl2+))) + +(define-public emacs-pyim + (package + (name "emacs-pyim") + (version "1.6.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/tumashu/pyim/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-async" ,emacs-async) + ("emacs-exwm" ,emacs-pyim-basedict) + ("emacs-popup" ,emacs-popup) + ("emacs-pos-tip" ,emacs-pos-tip))) + (home-page "https://github.com/tumashu/pyim") + (synopsis "Chinese input method") + (description "Chinese input method which supports quanpin, shuangpin, wubi +and cangjie.") + (license license:gpl2+))) + (define-public emacs-xelb (package (name "emacs-xelb") @@ -5363,3 +5724,149 @@ enables you to easily define search engines, bind them to keybindings, and query them from the comfort of your editor.") (home-page "https://github.com/hrs/engine-mode") (license license:gpl3+))) + +(define-public emacs-prop-menu + (package + (name "emacs-prop-menu") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://stable.melpa.org/packages/prop-menu-" + version ".el")) + (sha256 + (base32 + "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr")))) + (build-system emacs-build-system) + (home-page + "https://github.com/david-christiansen/prop-menu-el") + (synopsis + "Create and display a context menu based on text and overlay properties") + (description + "This is a library for computing context menus based on text +properties and overlays. The intended use is to have tools that +annotate source code and others that use these annotations, without +requiring a direct coupling between them, but maintaining +discoverability. + +Major modes that wish to use this library should first define an +appropriate value for @code{prop-menu-item-functions}. Then, they should +bind @code{prop-menu-by-completing-read} to an appropriate +key. Optionally, a mouse pop-up can be added by binding +@code{prop-menu-show-menu} to a mouse event.") + (license license:gpl3+))) + +(define-public emacs-idris-mode + (package + (name "emacs-idris-mode") + (version "0.9.19") + (source + (origin + (method url-fetch) + (uri (string-append + "http://stable.melpa.org/packages/idris-mode-" + version ".tar")) + (sha256 + (base32 + "0ld4kfwnyyhlsnj5f6cbn4is4mpxdqalk2aifkw02r00mbr9n294")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-prop-menu" ,emacs-prop-menu))) + (home-page + "https://github.com/idris-hackers/idris-mode") + (synopsis "Major mode for editing Idris code") + (description + "This is an Emacs mode for editing Idris code. It requires the latest +version of Idris, and some features may rely on the latest Git version of +Idris.") + (license license:gpl3+))) + +(define-public emacs-browse-at-remote + (let ((commit "b5cff7971ca8bbb966e3acd9b7e5c4c007f94215") + (revision "1")) + (package + (name "emacs-browse-at-remote") + (version (string-append "0.9.0-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rmuslimov/browse-at-remote.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "16ms9703m15dfxg6ap4mdw7msf8z5rzsdhba51dwivfpjxg7n52c")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-f" ,emacs-f) + ("emacs-s" ,emacs-s))) + (native-inputs + `(("ert-runner" ,ert-runner))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'check + (lambda _ + (zero? (system* "ert-runner"))))))) + (home-page "https://github.com/rmuslimov/browse-at-remote") + (synopsis "Open github/gitlab/bitbucket/stash page from Emacs") + (description + "This Emacs package allows you to open a target page on +github/gitlab (or bitbucket) by calling @code{browse-at-remote} command. +It supports dired buffers and opens them in tree mode at destination.") + (license license:gpl3+)))) + +(define-public emacs-tiny + (package + (name "emacs-tiny") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar")) + (sha256 + (base32 + "1nhg8375qdn457wj0xmfaj72s87xbabk2w1nl6q7rjvwxv08yyn7")))) + (build-system emacs-build-system) + (home-page "https://github.com/abo-abo/tiny") + (synopsis "Quickly generate linear ranges in Emacs") + (description + "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}. +It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp +proficiency is an advantage, since you can transform your numeric range with +an elisp expression.") + (license license:gpl3+))) + +(define-public emacs-bash-completion + (package + (name "emacs-bash-completion") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/szermatt/emacs-bash-completion/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj")))) + (inputs `(("bash" ,bash))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (emacs-substitute-variables "bash-completion.el" + ("bash-completion-prog" (string-append bash "/bin/bash")))) + #t))))) + (home-page "https://github.com/szermatt/emacs-bash-completion") + (synopsis "BASH completion for the shell buffer") + (description + "@code{bash-completion} defines dynamic completion hooks for shell-mode +and shell-command prompts that are based on bash completion.") + (license license:gpl2+))) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 5e51fe2d01..91c600353a 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org> +;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; ;;; This file is part of GNU Guix. @@ -290,8 +290,8 @@ languages are C and C++.") (define-public libjaylink ;; No release tarballs available. - (let ((commit "faa2a433fdd3de211728f3da5921133214af9dd3") - (revision "1")) + (let ((commit "699b7001d34a79c8e7064503dde1bede786fd7f0") + (revision "2")) (package (name "libjaylink") (version (string-append "0.1.0-" revision "." @@ -304,7 +304,7 @@ languages are C and C++.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "02crr56csz8whq3q4mrmdzzgwp5b0qvxm0fb18drclc3zj44yxl2")))) + "034872d44myycnzn67v5b8ixrgmg8sk32aqalvm5x7108w2byww1")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -316,7 +316,7 @@ languages are C and C++.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'autoreconf + (add-after 'unpack 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (home-page "http://repo.or.cz/w/libjaylink.git") @@ -355,59 +355,66 @@ language.") (license license:bsd-2))) (define-public openocd - ;; FIXME: Use tarball release after nrf52 patch is merged. - (let ((commit "674141e8a7a6413cb803d90c2a20150260015f81") - (revision "1")) - (package - (name "openocd") - (version (string-append "0.9.0-" revision "." - (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.code.sf.net/p/openocd/code.git") - (commit commit))) - (sha256 - (base32 - "1i86jp0wawq78d73z8hp7q1pn7lmlvhjjr19f7299h4w40a5jf8j")) - (file-name (string-append name "-" version "-checkout")) - (patches - (search-patches "openocd-nrf52.patch")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) - (inputs - `(("hidapi" ,hidapi) - ("jimtcl" ,jimtcl) - ("libftdi" ,libftdi) - ("libjaylink" ,libjaylink) - ("libusb-compat" ,libusb-compat))) - (arguments - '(#:configure-flags - (append (list "--disable-werror" - "--disable-internal-jimtcl" - "--disable-internal-libjaylink") - (map (lambda (programmer) - (string-append "--enable-" programmer)) - '("amtjtagaccel" "armjtagew" "buspirate" "ftdi" - "gw16012" "jlink" "oocd_trace" "opendous" "osbdm" - "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi" - "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink" - "usbprog" "vsllink" "usb-blaster-2" "usb_blaster" - "presto" "openjtag"))) - #:phases - (modify-phases %standard-phases - (add-before 'configure 'autoreconf - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) - (home-page "http://openocd.org") - (synopsis "On-Chip Debugger") - (description "OpenOCD provides on-chip programming and debugging support + (package + (name "openocd") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/openocd/openocd/" + version "/openocd-" version ".tar.gz")) + (sha256 + (base32 + "09p57y3c2spqx4vjjlz1ljm1lcd0j9q8g76ywxqgn3yc34wv18zd")) + ;; FIXME: Remove after nrf52 patch is merged. + (patches + (search-patches "openocd-nrf52.patch")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("hidapi" ,hidapi) + ("jimtcl" ,jimtcl) + ("libftdi" ,libftdi) + ("libjaylink" ,libjaylink) + ("libusb-compat" ,libusb-compat))) + (arguments + '(#:configure-flags + (append (list "--disable-werror" + "--enable-sysfsgpio" + "--disable-internal-jimtcl" + "--disable-internal-libjaylink") + (map (lambda (programmer) + (string-append "--enable-" programmer)) + '("amtjtagaccel" "armjtagew" "buspirate" "ftdi" + "gw16012" "jlink" "opendous" "osbdm" + "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi" + "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink" + "usbprog" "vsllink" "usb-blaster-2" "usb_blaster" + "presto" "openjtag"))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'autoreconf + (lambda _ + (zero? (system* "autoreconf" "-vfi")))) + (add-after 'autoreconf 'change-udev-group + (lambda _ + (substitute* "contrib/60-openocd.rules" + (("plugdev") "dialout")) + #t)) + (add-after 'install 'install-udev-rules + (lambda* (#:key outputs #:allow-other-keys) + (install-file "contrib/60-openocd.rules" + (string-append + (assoc-ref outputs "out") + "/lib/udev/rules.d/"))))))) + (home-page "http://openocd.org") + (synopsis "On-Chip Debugger") + (description "OpenOCD provides on-chip programming and debugging support with a layered architecture of JTAG interface and TAP support.") - (license license:gpl2+)))) + (license license:gpl2+))) ;; The commits for all propeller tools are the latest versions as published ;; here: https://github.com/dbetz/propeller-gcc diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index c4afe5ff95..5492f1c629 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -61,6 +61,7 @@ #:use-module (gnu packages m4) #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -485,16 +486,16 @@ ready for production.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure '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"))))))) + (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) @@ -1128,3 +1129,52 @@ hexadecimal editor able to open disk files, but later support for analyzing binaries, disassembling code, debugging programs, attaching to remote gdb servers, ...") (license license:lgpl3))) + +(define-public asco + (package + (name "asco") + (version "0.4.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/asco/asco/" version "/ASCO-" + version ".tar.gz")) + (sha256 + (base32 + "119rbc2dc8xzwxvykgji0v0nrzvymjmlizr1bc2mihspj686kxsl")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags '("all" "asco-mpi") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((coreutils (assoc-ref inputs "coreutils-minimal"))) + (substitute* '("errfunc.c" "asco.c") + (("cp ") + (string-append coreutils "/bin/cp ")) + (("nice") + (string-append coreutils "/bin/nice"))) + (substitute* "Makefile" + (("<FULL_PATH_TO_MPICH>/bin/mpicc") (which "mpicc"))) + #t))) + (replace 'install ; no install target + (lambda* (#:key outputs #:allow-other-keys) + (for-each (lambda (file) + (install-file file (string-append + (assoc-ref outputs "out") + "/bin"))) + '("asco" "asco-mpi" "asco-test" + "tools/alter/alter" "tools/log/log")) + #t))))) + (native-inputs + `(("mpi" ,openmpi))) + (inputs + `(("coreutils-minimal" ,coreutils-minimal))) + (home-page "http://asco.sourceforge.net/") + (synopsis "SPICE circuit optimizer") + (description + "ASCO brings circuit optimization capabilities to existing SPICE simulators using a +high-performance parallel differential evolution (DE) optimization algorithm.") + (license license:gpl2+))) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 56e6bed97b..e1265cfcf7 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -59,7 +59,7 @@ (define-public efl (package (name "efl") - (version "1.20.2") + (version "1.20.4") (source (origin (method url-fetch) (uri (string-append @@ -67,7 +67,7 @@ version ".tar.xz")) (sha256 (base32 - "0zll6k4xbbdsxqg53g8jddgv889g5m1xh20i03iz5a52y2bcnh55")))) + "1jxha61gsil6hs9zb72zsyh3gmdipvfnlc9v3palb2bm0b23aq9i")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -149,6 +149,16 @@ "--enable-drm") #:phases (modify-phases %standard-phases + ;; If we don't hardcode the location of libcurl.so then we + ;; have to wrap the outputs of efl's dependencies in curl. + (add-after 'unpack 'hardcode-libcurl-location + (lambda* (#:key inputs #:allow-other-keys) + (let* ((curl (assoc-ref inputs "curl")) + (lib (string-append curl "/lib/"))) + (substitute* "src/lib/ecore_con/ecore_con_url_curl.c" + (("libcurl.so.?" libcurl) ; libcurl.so.[45] + (string-append lib libcurl))) + #t))) (add-after 'unpack 'set-home-directory ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2 (lambda _ (setenv "HOME" "/tmp") #t))))) @@ -165,7 +175,7 @@ removable devices or support for multimedia.") (define-public terminology (package (name "terminology") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri @@ -173,7 +183,7 @@ removable devices or support for multimedia.") "terminology/terminology-" version ".tar.xz")) (sha256 (base32 - "13rl1k22yf8qrpzdm5nh6ij641fibadr2ww1r7rnz7mbhzj3d4gb")) + "05ncxvzb9rzkyjvd95hzn8lswqdwr8cix6rd54nqn9559jibh4ns")) (modules '((guix build utils))) ;; Remove the bundled fonts. ;; TODO: Remove bundled lz4. diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index a400e712d5..cf4d7a5955 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -143,7 +143,7 @@ (add-before 'configure 'set-erl-top (lambda _ (setenv "ERL_TOP" (getcwd)))) - (add-before 'configure 'autoconf + (add-after 'patch-source-env 'autoconf (lambda _ (zero? (system* "./otp_build" "autoconf")))) (add-after 'install 'patch-erl ;; This only works after install. diff --git a/gnu/packages/fabric-management.scm b/gnu/packages/fabric-management.scm new file mode 100644 index 0000000000..76ef9eef2e --- /dev/null +++ b/gnu/packages/fabric-management.scm @@ -0,0 +1,173 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Dave Love <fx@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages fabric-management) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages bison) + #:use-module (gnu packages flex) + #:use-module (gnu packages glib) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages linux) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages swig) + #:use-module (gnu packages tcl)) + +;; Fixme: Done for the library, but needs support for running the daemon +;; (shepherd definition). +;; We should probably have a lib output, but that currently generates +;; a cycle. +(define-public opensm + (package + (name "opensm") + (version "3.3.20") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.openfabrics.org/downloads/management/opensm-" + version ".tar.gz")) + (sha256 (base32 "162sg1w7kgy8ayl8a4dcbrfacmnfy2lr9a2yjyq0k65rmd378zg1")))) + (build-system gnu-build-system) + (native-inputs + `(("flex" ,flex) + ("bison" ,bison))) + (inputs + `(("rdma-core" ,rdma-core))) + (arguments + `(#:configure-flags '("--disable-static") + #:phases + (modify-phases %standard-phases + (add-after 'install 'doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((base (assoc-ref outputs "out")) + (doc (string-append base "/share/doc/" + ,name "-" ,version))) + (for-each (lambda (file) + (install-file file doc)) + (append (list "AUTHORS" "COPYING" "ChangeLog") + (find-files "doc"))) + #t)))))) + (home-page "https://www.openfabrics.org/") + (synopsis "OpenIB InfiniBand Subnet Manager and management utilities") + (description "\ +OpenSM is the OpenIB project's Subnet Manager for Infiniband networks. +The subnet manager is run as a system daemon on one of the machines in +the infiniband fabric to manage the fabric's routing state. This package +also contains various tools for diagnosing and testing Infiniband networks +that can be used from any machine and do not need to be run on a machine +running the opensm daemon.") + (license (list gpl2 bsd-2)))) + +(define-public infiniband-diags + (package + (name "infiniband-diags") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/linux-rdma/infiniband-diags/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1ns9sjwvxnklhi47d6k5x8kxdk1n7f5362y45xwxqmr7gwfvpmwa")))) + (build-system gnu-build-system) + (inputs + `(("rdma-core" ,rdma-core) + ("opensm" ,opensm) + ("glib" ,glib))) + (outputs '("out" "lib")) + (native-inputs + ;; FIXME: needs rst2man for man pages + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("perl" ,perl) + ("pkg-config" ,pkg-config))) + (arguments + '(#:configure-flags + (list (string-append "CPPFLAGS=-I" (assoc-ref %build-inputs "opensm") + "/include/infiniband") + (string-append "--with-perl-installdir=" (assoc-ref %outputs "lib") + "/lib/perl5/vendor_perl") + "--disable-static") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'autotools + (lambda _ + (zero? (system "./autogen.sh")))) + (add-after 'install 'licence + (lambda _ + (let ((doc (string-append (assoc-ref %outputs "lib") "/share/doc"))) + (mkdir-p doc) + (install-file "COPYING" doc)))) + (add-after 'install-file 'move-perl + ;; Avoid perl in lib closure + (lambda _ + (let ((perlout (string-append (assoc-ref %outputs "out") "/lib")) + (perlin (string-append (assoc-ref %outputs "lib") + "/lib/perl5"))) + (mkdir-p perlout) + (rename-file perlin perlout) + #t)))))) + (home-page "https://github.com/linux-rdma/infiniband-diags") + (synopsis "Infiniband diagnotic tools") + (description "This is a set of command-line utilities to help configure, +debug, and maintain Infiniband (IB) fabrics. + +In addition to the utilities, a sub-library, @file{libibnetdisc}, is provided +to scan an entire IB fabric and return data structures representing it. The +interface to this library is not guaranteed to be stable.") + (license (list gpl2 bsd-2)))) ; dual + +(define-public ibutils + (package + (name "ibutils") + (version "1.5.7-0.2.gbd7e502") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.openfabrics.org/downloads/ibutils/ibutils-" + version ".tar.gz")) + (sha256 + (base32 "00x7v6cf8l5y6g9xwh1sg738ch42fhv19msx0h0090nhr0bv98v7")))) + (build-system gnu-build-system) + (inputs `(("graphviz" ,graphviz) + ("tcl" ,tcl) + ("tk" ,tk) + ("infiniband-diags" ,infiniband-diags) + ("rdma-core" ,rdma-core) + ("opensm" ,opensm) + ("perl" ,perl))) + (native-inputs `(("swig" ,swig))) + (arguments + `(#:configure-flags + (list (string-append "--with-osm=" (assoc-ref %build-inputs "opensm")) + (string-append "--with-tk-lib=" (assoc-ref %build-inputs "tk") "/lib") + "--disable-static"))) + (synopsis "InfiniBand network utilities") + (description "These command-line utilities allow for diagnosing and +testing InfiniBand networks.") + (home-page "https://www.openfabrics.org/downloads/ibutils/") + (license bsd-2))) diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm index 9085ecfeac..63aa3fac49 100644 --- a/gnu/packages/file.scm +++ b/gnu/packages/file.scm @@ -50,4 +50,3 @@ extensions to tell you the type of a file, but looks at the actual contents of the file.") (license bsd-2) (home-page "https://www.darwinsys.com/file/"))) - diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 748b59c9e1..9e346a6625 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -1,9 +1,10 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> +;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,11 +30,16 @@ #:use-module (guix build-system python) #:use-module (gnu packages base) #:use-module (gnu packages boost) + #:use-module (gnu packages check) #:use-module (gnu packages databases) + #:use-module (gnu packages documentation) + #:use-module (gnu packages dns) #:use-module (gnu packages emacs) + #:use-module (gnu packages graphviz) #:use-module (gnu packages groff) #:use-module (gnu packages libedit) #:use-module (gnu packages libevent) + #:use-module (gnu packages libunwind) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pkg-config) @@ -44,12 +50,14 @@ #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages upnp) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) #:use-module (gnu packages gnuzilla)) (define-public bitcoin-core (package (name "bitcoin-core") - (version "0.14.2") + (version "0.15.0.1") (source (origin (method url-fetch) (uri @@ -57,12 +65,13 @@ version "/bitcoin-" version ".tar.gz")) (sha256 (base32 - "1jp8vdc25gs46gj1d9mraqa1xnampffpa7mdy0fw80xca77fbi0s")))) + "16si3skhm6jhw1pkniv2b9y1kkdhjmhj392palphir0qc1srwzmm")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python) ; for the tests - ("util-linux" ,util-linux))) ; provides the hexdump command for tests + ("util-linux" ,util-linux) ; provides the hexdump command for tests + ("qttools" ,qttools))) (inputs `(("bdb" ,bdb-5.3) ; with 6.2.23, there is an error: ambiguous overload ("boost" ,boost) @@ -70,8 +79,7 @@ ("miniupnpc" ,miniupnpc) ("openssl" ,openssl) ("protobuf" ,protobuf) - ;; TODO Build with the modular Qt. - ("qt" ,qt))) + ("qtbase" ,qtbase))) (arguments `(#:configure-flags (list @@ -79,7 +87,16 @@ "--with-incompatible-bdb" ;; Boost is not found unless specified manually. (string-append "--with-boost=" - (assoc-ref %build-inputs "boost"))) + (assoc-ref %build-inputs "boost")) + ;; XXX: The configure script looks up Qt paths by + ;; `pkg-config --variable=host_bins Qt5Core`, which fails to pick + ;; up executables residing in 'qttools', so we specify them here. + (string-append "ac_cv_path_LRELEASE=" + (assoc-ref %build-inputs "qttools") + "/bin/lrelease") + (string-append "ac_cv_path_LUPDATE=" + (assoc-ref %build-inputs "qttools") + "/bin/lupdate")) #:phases (modify-phases %standard-phases (add-before 'check 'set-home @@ -246,7 +263,7 @@ do so.") (define-public electrum (package (name "electrum") - (version "2.7.12") + (version "2.9.3") (source (origin (method url-fetch) @@ -255,7 +272,7 @@ do so.") version ".tar.gz")) (sha256 (base32 - "0vxdfl208if7mdsnva1jg37bnay2dsz3ww157aqwcv1j6512fi1n")) + "0d0fzb653g7b8ka3x90nl21md4g3n1fv11czdxpdq3s9yr6js6f2")) (modules '((guix build utils))) (snippet '(begin @@ -264,7 +281,8 @@ do so.") #t)))) (build-system python-build-system) (inputs - `(("python-slowaes" ,python2-slowaes) + `(("python-pyaes" ,python2-pyaes) + ("python-pysocks" ,python2-pysocks) ("python-sip" ,python2-sip) ("python-pyqt" ,python2-pyqt-4) ("python-ecdsa" ,python2-ecdsa) @@ -291,3 +309,181 @@ protocol. It supports Simple Payment Verification (SPV) and deterministic key generation from a seed. Your secret keys are encrypted and are never sent to other machines/servers. Electrum does not download the Bitcoin blockchain.") (license license:expat))) + +(define-public monero + ;; This package bundles easylogging++ and lmdb. + ;; The bundled easylogging++ is modified, and the changes will not be upstreamed. + ;; The devs deem the lmdb driver too critical a consenus component, to use + ;; the system's dynamically linked library. + (package + (name "monero") + (version "0.11.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/monero-project/monero/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete bundled dependencies. + (for-each + delete-file-recursively + '("external/miniupnpc" "external/rapidjson" + "external/unbound")) + #t)) + (sha256 + (base32 + "083w40a553c0r3i18020jcrv5s0b64vx3d8xrn9nwkb2237ighlk")))) + (build-system cmake-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("googletest" ,googletest) + ("graphviz" ,graphviz) + ("pkg-config" ,pkg-config))) + (inputs + `(("bind" ,isc-bind) + ("boost" ,boost) + ("expat" ,expat) + ("libunwind" ,libunwind) + ("lmdb" ,lmdb) + ("miniupnpc" ,miniupnpc) + ("openssl" ,openssl) + ("rapidjson" ,rapidjson) + ("unbound" ,unbound))) + (arguments + `(#:out-of-source? #t + #:configure-flags '("-DBUILD_TESTS=ON" + ,@(if (string=? "aarch64-linux" (%current-system)) + '("-DARCH=armv8-a") + '()) + "-DBUILD_GUI_DEPS=ON") + #:phases + (modify-phases %standard-phases + ;; tests/core_tests need a valid HOME + (add-before 'configure 'set-home + (lambda _ + (setenv "HOME" (getcwd)) + #t)) + (add-after 'set-home 'fix-wallet-path-for-unit-tests + (lambda _ + (substitute* "tests/unit_tests/serialization.cpp" + (("\\.\\./\\.\\./\\.\\./\\.\\./") "../../")) + #t)) + (add-after 'fix-wallet-path-for-unit-tests 'change-log-path + (lambda _ + (substitute* "contrib/epee/src/mlog.cpp" + (("epee::string_tools::get_current_module_folder\\(\\)") + "\".bitmonero\"")) + (substitute* "contrib/epee/src/mlog.cpp" + (("return \\(") "return ((std::string(getenv(\"HOME\"))) / ")) + #t)) + (replace 'check + (lambda _ + (zero? + (system* "make" "ARGS=-E 'unit_tests|libwallet_api_tests'" + "test")))) + ;; The excluded unit tests need network access + (add-after 'check 'unit-tests + (lambda _ + (let ((excluded-unit-tests + (string-join + '("AddressFromURL.Success" + "AddressFromURL.Failure" + "DNSResolver.IPv4Success" + "DNSResolver.DNSSECSuccess" + "DNSResolver.DNSSECFailure" + "DNSResolver.GetTXTRecord") + ":"))) + (zero? + (system* "tests/unit_tests/unit_tests" + (string-append "--gtest_filter=-" + excluded-unit-tests)))))) + (add-after 'install 'install-blockchain-import-export + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "bin/monero-blockchain-import" bin) + (install-file "bin/monero-blockchain-export" bin))))))) + (home-page "https://getmonero.org/") + (synopsis "Command-line interface to the Monero currency") + (description + "Monero is a secure, private, untraceable currency. This package provides the +Monero command line client and daemon.") + (license license:bsd-3))) + +(define-public monero-core + (package + (name "monero-core") + (version "0.11.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/monero-project/monero-core/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0hnrkgwb1sva67pcjym2gvb4zifp2s849dfbnjzbxk3yczpcyqzg")))) + (build-system gnu-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("graphviz" ,graphviz) + ("pkg-config" ,pkg-config))) + (inputs + `(("boost" ,boost) + ("libunwind" ,libunwind) + ("openssl" ,openssl) + ("qt" ,qt) + ("unbound" ,unbound))) + (propagated-inputs + `(("monero" ,monero))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (add-before 'build 'fix-makefile-vars + (lambda _ + (substitute* "src/zxcvbn-c/makefile" + (("\\?=") "=")) + #t)) + (add-after 'fix-makefile-vars 'fix-library-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "monero-wallet-gui.pro" + (("-L/usr/local/lib") "") + (("-L/usr/local/opt/openssl/lib") + (string-append "-L" + (assoc-ref inputs "openssl") + "/lib")) + (("-L/usr/local/opt/boost/lib") + (string-append "-L" + (assoc-ref inputs "boost") + "/lib"))) + #t)) + (add-after 'fix-library-paths 'fix-monerod-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/daemon/DaemonManager.cpp" + (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod") + (string-append "\""(assoc-ref inputs "monero") + "/bin/monerod"))) + #t)) + (replace 'build + (lambda _ + (zero? (system* "./build.sh")))) + (add-after 'build 'fix-install-path + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "build/Makefile" + (("/opt/monero-wallet-gui") + (assoc-ref outputs "out"))) + #t)) + (add-before 'install 'change-dir + (lambda _ + (chdir "build")))))) + (home-page "https://getmonero.org/") + (synopsis "Graphical user interface for the Monero currency") + (description + "Monero is a secure, private, untraceable currency. This package provides the +Monero GUI client.") + (license license:bsd-3))) diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index 27d2f62ca7..0ca77cfa40 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 69ef743cba..b65d3a9e94 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -514,6 +515,32 @@ fonts.") ;; exceptions. (license license:gpl3))) +(define-public font-rachana + (package + (name "font-rachana") + (version "7.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://gitlab.com/smc/rachana/repository/archive.tar.gz?ref=Version" + version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0jc091gshna6p1dd6lf507jxkgk6rsja835fc9dm71mcplq53bm1")))) + (build-system font-build-system) + (home-page "https://smc.org.in") + (synopsis "Malayalam font") + (description + "Rachana is a Malayalam font designed by Hussain K H. The project was +part of Rachana Aksharavedi for the original script of Malayalam in computing. +Rachana has about 1,200+ glyphs for Malayalam and contains glyphs required for +printing old Malayalam books without compromising the writing style.") + ;; This font is licensed under SIL 1.1 or GPLv3+ with font embedding + ;; exceptions. + (license (list license:silofl1.1 license:gpl3+)))) + (define-public font-tex-gyre (package (name "font-tex-gyre") @@ -560,7 +587,7 @@ languages, plus Greek and Cyrillic.") (define-public font-gnu-unifont (package (name "font-gnu-unifont") - (version "10.0.05") + (version "10.0.06") (source (origin (method url-fetch) (uri (string-append @@ -568,7 +595,7 @@ languages, plus Greek and Cyrillic.") version ".tar.gz")) (sha256 (base32 - "07sajc32l2knnz6gmd81zxjhcxq8xr6r2kf42wig56vj05s3d1cb")))) + "0z8lglzwbkmya0gmhxd9m1x3nsd7flfsbsh0qy34dzqqdwjpyy2p")))) (build-system gnu-build-system) (outputs '("out" ; TrueType version "pcf" ; PCF (bitmap) version diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index bd74c4d6aa..15401f652b 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -405,7 +405,7 @@ and returns a sequence of positioned glyphids from the font.") (define-public potrace (package (name "potrace") - (version "1.14") + (version "1.15") (source (origin (method url-fetch) @@ -413,7 +413,7 @@ and returns a sequence of positioned glyphids from the font.") "/potrace-" version ".tar.gz")) (sha256 (base32 - "0znr9i0ljb818qiwm22zw63g11a4v08gc5xkh0wbdp6g259vcwnv")))) + "17ajildjp14shsy339xarh1lw1p0k60la08ahl638a73mh23kcx9")))) (build-system gnu-build-system) (native-inputs `(("ghostscript" ,ghostscript))) ;for tests (inputs `(("zlib" ,zlib))) @@ -507,26 +507,14 @@ definitions.") (define-public fontforge (package (name "fontforge") - (version "20160404") + (version "20170731") (source (origin (method url-fetch) (uri (string-append "https://github.com/fontforge/fontforge/releases/download/" - version "/fontforge-dist-" version ".tar.gz")) + version "/fontforge-dist-" version ".tar.xz")) (sha256 (base32 - "1kavnhbkzc1hk6f39fynq9s0haama81ddrbld4b5x60d0dbaawvc")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Make builds bit-reproducible by using fixed date strings. - (substitute* "configure" - (("^FONTFORGE_MODTIME=.*$") - "FONTFORGE_MODTIME=\"1459819518L\"\n") - (("^FONTFORGE_MODTIME_STR=.*$") - "FONTFORGE_MODTIME_STR=\"20:25 CDT 4-Apr-2016\"\n") - (("^FONTFORGE_VERSIONDATE=.*$") - "FONTFORGE_VERSIONDATE=\"20160404\"\n")))) - (patches (list (search-patch "fontforge-svg-modtime.patch"))))) + "08l8h3yvk4v7652jvmd3ls7nf5miybkx2fmkf1mpwwfixpxxw2l4")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -550,20 +538,11 @@ definitions.") ("libxml2" ,libxml2) ("pango" ,pango) ("potrace" ,potrace) - ("python" ,python) + ("python" ,python-wrapper) ("zlib" ,zlib))) (arguments - '(#:tests? #f - #:phases + '(#:phases (modify-phases %standard-phases - (add-after 'build 'build-contrib - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (and (zero? (system* "make" "-Ccontrib/fonttools" - "CC=gcc" "showttf")) - (begin (install-file "contrib/fonttools/showttf" bin) - #t))))) (add-after 'install 'set-library-path (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) @@ -585,4 +564,4 @@ definitions.") opentype fonts. You can save fonts in many different outline formats, and generate bitmaps.") (license license:gpl3+) - (home-page "http://fontforge.org/"))) + (home-page "https://fontforge.github.io/en-US/"))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 29f98a2356..e822f390c5 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -3,10 +3,10 @@ ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015, 2017 Andy Wingo <wingo@pobox.com> ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; @@ -204,14 +204,14 @@ the freedesktop.org XDG Base Directory specification.") (define-public elogind (package (name "elogind") - (version "219.14") + (version "232.4") (source (origin (method url-fetch) - (uri (string-append "https://wingolog.org/pub/" name "/" - name "-" version ".tar.xz")) + (uri (string-append "https://github.com/elogind/elogind/" + "archive/v" version ".tar.gz")) (sha256 (base32 - "1jckc4wx199n1q4r4fv43ibjs6nlq91s39w9r78ilk1z383m1hcx")) + "1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931")) (modules '((guix build utils))) (snippet '(begin @@ -222,25 +222,58 @@ the freedesktop.org XDG Base Directory specification.") (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid")))))) (build-system gnu-build-system) (arguments - `(#:configure-flags - (list (string-append "--with-libcap=" - (assoc-ref %build-inputs "libcap")) - (string-append "--with-udevrulesdir=" + `(#:tests? #f ;FIXME: "make check" in the "po" directory fails. + #:configure-flags + (list (string-append "--with-udevrulesdir=" + (assoc-ref %outputs "out") + "/lib/udev/rules.d") + + ;; Let elogind be its own cgroup controller, rather than relying + ;; on systemd or OpenRC. By default, 'configure' makes an + ;; incorrect guess. + "--with-cgroup-controller=elogind" + + (string-append "--with-rootprefix=" + (assoc-ref %outputs "out")) + (string-append "--with-rootlibexecdir=" (assoc-ref %outputs "out") - "/lib/udev/rules.d")) + "/libexec/elogind") + ;; These are needed to ensure that lto linking works. + "RANLIB=gcc-ranlib" + "AR=gcc-ar" + "NM=gcc-nm") #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent") - #:phases (modify-phases %standard-phases - (add-before 'build 'fix-service-file - (lambda* (#:key outputs #:allow-other-keys) - ;; Fix the file name of the 'elogind' binary in the D-Bus - ;; '.service' file. - (substitute* "src/login/org.freedesktop.login1.service" - (("^Exec=.*") - (string-append "Exec=" (assoc-ref %outputs "out") - "/libexec/elogind/elogind\n")))))))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'autogen + (lambda _ + (and (zero? (system* "intltoolize" "--force" "--automake")) + (zero? (system* "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 + ;; '.service' file. + (substitute* "src/login/org.freedesktop.login1.service" + (("^Exec=.*") + (string-append "Exec=" (assoc-ref %outputs "out") + "/libexec/elogind/elogind\n"))))) + (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 + ;; <https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00084.html>. + (let ((libcap (assoc-ref inputs "libcap")) + (out (assoc-ref outputs "out"))) + (substitute* (string-append out "/lib/libelogind.la") + (("-lcap") + (string-append "-L" libcap "/lib -lcap"))) + #t)))))) (native-inputs - `(("intltool" ,intltool) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("intltool" ,intltool) ("gettext" ,gettext-minimal) + ("python" ,python) ("docbook-xsl" ,docbook-xsl) ("docbook-xml" ,docbook-xml) ("xsltproc" ,libxslt) @@ -260,7 +293,7 @@ the freedesktop.org XDG Base Directory specification.") ("dbus" ,dbus) ("eudev" ,eudev) ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes - (home-page "https://github.com/wingo/elogind") + (home-page "https://github.com/elogind/elogind") (synopsis "User, seat, and session management service") (description "Elogind is the systemd project's \"logind\" service, extracted out as a separate project. Elogind integrates with PAM to provide @@ -333,7 +366,10 @@ manager for the current system.") (substitute* "test/test-icon.py" (("/usr/share/icons/hicolor/index.theme") (string-append (assoc-ref inputs "hicolor-icon-theme") - "/share/icons/hicolor/index.theme"))) + "/share/icons/hicolor/index.theme")) + ;; FIXME: This test fails because the theme contains the unknown + ;; key "Scale". + (("theme.validate\\(\\)") "#")) ;; One test fails with: ;; AssertionError: 'x-apple-ios-png' != 'png' diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index bbdb4e410b..f3f2b5ea71 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -46,7 +46,7 @@ (define-public lftp (package (name "lftp") - (version "4.7.8") + (version "4.8.2") (source (origin (method url-fetch) ;; See https://lftp.tech/get.html for mirrors. @@ -58,7 +58,7 @@ "ftp/lftp/lftp-" version ".tar.xz"))) (sha256 (base32 - "19ijsmbb5589vg5ga355ys3075z6s2x2h0bdbga343hfqmnid2pi")))) + "176d90amkm1klwjpfpzdsvmjnyri8f74bv4fpip8app0fs25p1sw")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -159,7 +159,7 @@ FTP browser, as well as non-interactive commands such as 'ncftpput' and (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (home-page "http://weex.sourceforge.net/") (synopsis "Non-interactive client for FTP synchronization") @@ -173,7 +173,7 @@ as required.") (define-public libfilezilla (package (name "libfilezilla") - (version "0.10.1") + (version "0.11.0") (source (origin (method url-fetch) @@ -181,7 +181,7 @@ as required.") name "/" name "-" version ".tar.bz2")) (sha256 (base32 - "1yi9db0hpxh3giyjhkbz7ajmf95qw27xdvh3xvw208zri5k575x0")))) + "1l4yhw269dyarqb2spqhycxzzyfn8pj4qh9vfycdw1c93hj6fx6c")))) (build-system gnu-build-system) (native-inputs `(("cppunit" ,cppunit) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 95f8697b42..9916a1cb3e 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -5,11 +5,13 @@ ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Julian Graham <joolean@gmail.com> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> +;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> +;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -73,7 +75,8 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages lua) #:use-module (gnu packages mp3) - #:use-module (gnu packages xml)) + #:use-module (gnu packages xml) + #:use-module (gnu packages tls)) (define-public bullet (package @@ -190,6 +193,31 @@ necessary. ;; The MD5 implementation contained in GRFID is under the zlib license. (license (list license:gpl2 license:gpl2+ license:zlib)))) +(define-public catcodec + (package + (name "catcodec") + (version "1.0.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://binaries.openttd.org/extra/catcodec/" + version "/catcodec-" version "-source.tar.xz")) + (sha256 + (base32 + "1qg0c2i4p29sxj0q6qp2jynlrzm5pphz2xhcjqlxa69ycrnlxzs7")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags (list (string-append "prefix=" %output)) + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (home-page "http://dev.openttdcoop.org/projects/catcodec") + (synopsis "Encode/decode OpenTTD sounds") + (description "catcodec encodes and decodes sounds for OpenTTD. These +sounds are not much more than some metadata (description and filename) and raw +PCM data.") + (license license:gpl2))) + (define-public gzochi (package (name "gzochi") @@ -248,14 +276,14 @@ files) into @file{.grf} and/or @file{.nfo} files.") (define-public python-sge-pygame (package (name "python-sge-pygame") - (version "1.5") + (version "1.5.1") (source (origin (method url-fetch) (uri (pypi-uri "sge-pygame" version)) (sha256 (base32 - "0g0n722md6nfayiqzadwf0dh821hzqv0alp4by0vjfwr1xzv49mc")))) + "1rl3xjzh78sl0sq3xl8rl7cgp9v9v3h7s2pfwn7nj1vrmffzkcpd")))) (build-system python-build-system) (propagated-inputs `(("python-pygame" ,python-pygame) @@ -276,7 +304,7 @@ possible, and it also makes the SGE easy to learn.") (define-public python-tmx (package (name "python-tmx") - (version "1.9.1") + (version "1.10") (source (origin (method url-fetch) @@ -285,7 +313,7 @@ possible, and it also makes the SGE easy to learn.") version ".tar.gz")) (sha256 (base32 - "1is107sx3lr09dqjiyn10xqhyv5x54c2ryhys9mb9j3mxjbm227l")))) + "073q0prg1nzlkga2b45vhscz374206qh4x68ccg00mxxwagn64z0")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) @@ -353,7 +381,7 @@ support.") (define-public tiled (package (name "tiled") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/bjorn/tiled/archive/v" @@ -361,7 +389,7 @@ support.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "134xi74xajh38rj1qhmc4x1zmncfdmqb01axnkxh6zs3qz0rxp93")))) + "1qj7l34y5zv2iazmwbix8wdpp88zv7fswbc4arqpp1wak2yna1ix")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) @@ -1019,3 +1047,107 @@ with its own editor, called OpenMW-CS which allows the user to edit or create their own original games.") (home-page "https://openmw.org") (license license:gpl3))) + +(define-public godot + (package + (name "godot") + (version "2.1.4") + (source (origin + (method url-fetch) + (uri + (string-append "https://github.com/godotengine/godot/archive/" + version "-stable.tar.gz")) + (file-name (string-append name "-" version)) + (sha256 + (base32 "1mz89nafc1m7srbqvy7iagxrxmqvf5hbqi7i0lwaapkx6q0kpkq7")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'scons-use-env + (lambda _ + ;; Scons does not use the environment variables by default, + ;; but this substitution makes it do so. + (substitute* "SConstruct" + (("env_base = Environment\\(tools=custom_tools\\)") + (string-append + "env_base = Environment(tools=custom_tools)\n" + "env_base = Environment(ENV=os.environ)"))) + #t)) + (replace 'build + (lambda _ + (zero? (system* + "scons" + "platform=x11" + ;; Avoid using many of the bundled libs. + ;; Note: These options can be found in the SConstruct file. + "builtin_freetype=no" + "builtin_glew=no" + "builtin_libmpdec=no" + "builtin_libogg=no" + "builtin_libpng=no" + "builtin_libtheora=no" + "builtin_libvorbis=no" + "builtin_libwebp=no" + "builtin_openssl=no" + "builtin_opus=no" + "builtin_zlib=no")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion "bin" + (if (file-exists? "godot.x11.tools.64") + (rename-file "godot.x11.tools.64" "godot") + (rename-file "godot.x11.tools.32" "godot")) + (install-file "godot" bin))))) + (add-after 'install 'install-godot-desktop + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (desktop (string-append out "/share/applications")) + (icon-dir (string-append out "/share/pixmaps"))) + (mkdir-p desktop) + (mkdir-p icon-dir) + (rename-file "icon.png" "godot.png") + (install-file "godot.png" icon-dir) + (with-output-to-file + (string-append desktop "/godot.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=godot~@ + Comment=The godot game engine~@ + Exec=~a/bin/godot~@ + TryExec=~@*~a/bin/godot~@ + Icon=godot~@ + Type=Application~%" + out))) + #t)))))) + (native-inputs `(("pkg-config" ,pkg-config) + ("scons" ,scons))) + (inputs `(("alsa-lib" ,alsa-lib) + ("freetype" ,freetype) + ("glew" ,glew) + ("glu" ,glu) + ("libtheora" ,libtheora) + ("libvorbis" ,libvorbis) + ("libwebp" ,libwebp) + ("libx11" ,libx11) + ("libxcursor" ,libxcursor) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("mesa" ,mesa) + ("openssl" ,openssl) + ("opusfile" ,opusfile) + ("pulseaudio" ,pulseaudio) + ("python2" ,python-2))) + (home-page "https://godotengine.org/") + (synopsis "Advanced 2D and 3D game engine") + (description + "Godot is an advanced multi-platform game engine written in C++. If +features design tools such as a visual editor, can import 3D models and +provide high-quality 3D rendering, it contains an animation editor, and can be +scripted in a Python-like language.") + (license license:expat))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 9e7b579907..aef6f01215 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -19,7 +19,7 @@ ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org> -;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> @@ -522,7 +522,7 @@ watch your CPU playing while enjoying a cup of tea!") (define-public retux (package (name "retux") - (version "1.3.4") + (version "1.3.5") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/retux/" @@ -530,7 +530,7 @@ watch your CPU playing while enjoying a cup of tea!") version "-src.tar.gz")) (sha256 (base32 - "1wgvh3q96kfgymb2jpd58xsms9hmckhhc4fq7v2k61gh2l11cvdj")))) + "1pcrh3z16fl412r3k7xccrgika19ahb1xh90jihgl8yy7zza2i6p")))) (build-system python-build-system) (arguments `(#:tests? #f ; no check target @@ -2427,17 +2427,19 @@ and a game metadata scraper.") ;; The build process fails if the configure script is passed the ;; option "--enable-fast-install". (replace 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) + (lambda* (#:key inputs outputs (configure-flags '()) + #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (lzo (assoc-ref inputs "lzo"))) (zero? - (system* "./configure" - (string-append "--prefix=" out) - ;; Provide the "lzo" path. - (string-append "--with-liblzo2=" - lzo "/lib/liblzo2.a") - ;; Put the binary in 'bin' instead of 'games'. - "--binary-dir=bin")))))))) + (apply system* "./configure" + (string-append "--prefix=" out) + ;; Provide the "lzo" path. + (string-append "--with-liblzo2=" + lzo "/lib/liblzo2.a") + ;; Put the binary in 'bin' instead of 'games'. + "--binary-dir=bin" + configure-flags)))))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("allegro" ,allegro-4) @@ -2464,10 +2466,6 @@ engine. When you start it you will be prompted to download a graphics set.") ;; different terms. (license (list license:bsd-3 license:gpl2 license:lgpl2.1+ license:zlib)))) -;; TODO Add 'openttd-opengfx' and 'openttd-openmsx' packages and make -;; 'openttd' a wrapper around them. The engine is playable by itself, -;; but it asks a user to download graphics if it's not found. - (define openttd-opengfx (package (name "openttd-opengfx") @@ -2485,7 +2483,7 @@ engine. When you start it you will be prompted to download a graphics set.") '(#:make-flags (list "CC=gcc" (string-append "INSTALL_DIR=" (assoc-ref %outputs "out") - "/share/openttd/baseset")) + "/share/games/openttd/baseset/opengfx")) #:phases (modify-phases %standard-phases (replace 'configure @@ -2503,7 +2501,8 @@ engine. When you start it you will be prompted to download a graphics set.") ;; different software versions than upstream does, some of the md5sums ;; are different. However, the package is still reproducible, it's safe ;; to disable this test. - #:tests? #f)) + #:tests? #f + #:parallel-build? #f)) (native-inputs `(("dos2unix" ,dos2unix) ("gimp" ,gimp) ("grfcodec" ,grfcodec) @@ -2525,27 +2524,108 @@ OpenGFX provides you with... @end enumerate") (license license:gpl2))) +(define openttd-opensfx + (package + (name "openttd-opensfx") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://binaries.openttd.org/extra/opensfx/" + version "/opensfx-" version "-source.tar.gz")) + (sha256 + (base32 + "03jxgp02ks31hmsdh4xh0xcpkb70ds8jakc9pfc1y9vdrdavh4p5")))) + (build-system gnu-build-system) + (native-inputs + `(("catcodec" ,catcodec) + ("python" ,python2-minimal))) + (arguments + `(#:make-flags + (list (string-append "INSTALL_DIR=" %output + "/share/games/openttd/baseset/opensfx")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-reproducible + (lambda _ + ;; Remove the time dependency of the installed tarball by setting + ;; the modification times if its members to 0. + (substitute* "scripts/Makefile.def" + (("-cf") " --mtime=@0 -cf")) + #t)) + (delete 'configure)))) + (home-page "http://dev.openttdcoop.org/projects/opensfx") + (synopsis "Base sounds for OpenTTD") + (description "OpenSFX is a set of free base sounds for OpenTTD which make +it possible to play OpenTTD without requiring the proprietary sound files from +the original Transport Tycoon Deluxe.") + (license license:cc-sampling-plus-1.0))) + +(define openttd-openmsx + (package + (name "openttd-openmsx") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://binaries.openttd.org/extra/openmsx/" + version "/openmsx-" version "-source.tar.gz")) + (sha256 + (base32 + "0nskq97a6fsv1v6d62zf3yb8whzhqnlh3lap3va3nzvj7csjgf7c")))) + (build-system gnu-build-system) + (native-inputs + `(("python" ,python2-minimal))) + (arguments + `(#:make-flags + (list (string-append "INSTALL_DIR=" %output + "/share/games/openttd/baseset")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'install 'post-install + ;; Rename openmsx-version to openmsx + (lambda* (#:key outputs #:allow-other-keys) + (let ((install-directory (string-append (assoc-ref outputs "out") + "/share/games/openttd/baseset"))) + (rename-file (string-append install-directory "/openmsx-" ,version) + (string-append install-directory "/openmsx")) + #t)))))) + (home-page "http://dev.openttdcoop.org/projects/openmsx") + (synopsis "Music set for OpenTTD") + (description "OpenMSX is a music set for OpenTTD which makes it possible +to play OpenTTD without requiring the proprietary music from the original +Transport Tycoon Deluxe.") + (license license:gpl2))) + (define-public openttd (package (inherit openttd-engine) (name "openttd") (arguments - (substitute-keyword-arguments (package-arguments openttd-engine) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'install-data - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* - ((opengfx (assoc-ref inputs "opengfx")) - (out (assoc-ref outputs "out")) - (gfx-dir - (string-append out - "/share/games/openttd/baseset/opengfx"))) - (mkdir-p gfx-dir) - (copy-recursively opengfx gfx-dir)) - #t)))))) + `(#:configure-flags + (list (string-append "--with-midi=" (assoc-ref %build-inputs "timidity++") + "/bin/timidity")) + ,@(substitute-keyword-arguments (package-arguments openttd-engine) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'install-data + (lambda* (#:key inputs outputs #:allow-other-keys) + (for-each + (lambda (input) + (copy-recursively (assoc-ref inputs input) + (assoc-ref outputs "out"))) + (list "opengfx" "openmsx" "opensfx")) + #t))))))) + (inputs + `(("timidity++" ,timidity++) + ,@(package-inputs openttd-engine))) (native-inputs `(("opengfx" ,openttd-opengfx) + ("openmsx" ,openttd-openmsx) + ("opensfx" ,openttd-opensfx) ,@(package-native-inputs openttd-engine))))) (define-public pinball @@ -3632,7 +3712,7 @@ throwing people around in pseudo-randomly generated buildings.") (define-public hyperrogue (package (name "hyperrogue") - (version "10.0e") + (version "10.0g") ;; When updating this package, be sure to update the "hyperrogue-data" ;; origin in native-inputs. (source (origin @@ -3643,7 +3723,7 @@ throwing people around in pseudo-randomly generated buildings.") "-src.tgz")) (sha256 (base32 - "1p6fam73khhys54098qsgmp52d0rnqc3k5hknjig0znvfb2kwi38")))) + "0f68pcnsgl406dhm91ckn3f364bar9m9i5njp9vrmvhvv9p2icy0")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target @@ -3718,7 +3798,7 @@ throwing people around in pseudo-randomly generated buildings.") "-win.zip")) (sha256 (base32 - "1z9w3nd57ybnf4w7ckhhp5vfws2hwd8x26fx6h496f6160fgcj6m")))) + "0bnp077qvlmxjlz1jjd6kpghlv9flxc19ac1xq3m3wyq1w9p3pab")))) ("unzip" ,unzip))) (inputs `(("font-dejavu" ,font-dejavu) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index da4d66ce36..7870d4513f 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -150,8 +150,6 @@ where the OS part is overloaded to denote a specific ABI---into GCC (inputs `(("gmp" ,gmp) ("mpfr" ,mpfr) ("mpc" ,mpc) - ("isl" ,isl) - ("cloog" ,cloog) ("libelf" ,libelf) ("zlib" ,zlib))) @@ -354,10 +352,14 @@ Go. It also includes runtime support libraries for these languages.") (base32 "08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2")) (patches (search-patches "gcc-arm-link-spec-fix.patch")))) - (supported-systems %supported-systems))) + (supported-systems %supported-systems) + (inputs + `(("isl" ,isl-0.11) + ("cloog" ,cloog) + ,@(package-inputs gcc-4.7))))) (define-public gcc-4.9 - (package (inherit gcc-4.7) + (package (inherit gcc-4.8) (version "4.9.4") (source (origin (method url-fetch) @@ -368,8 +370,7 @@ Go. It also includes runtime support libraries for these languages.") "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) (patches (search-patches "gcc-arm-bug-71399.patch" "gcc-libvtv-runpath.patch")))) - (native-inputs `(("texinfo" ,texinfo))) - (supported-systems %supported-systems))) + (native-inputs `(("texinfo" ,texinfo))))) (define-public gcc-5 ;; Note: GCC >= 5 ships with .info files but 'make install' fails to install @@ -389,6 +390,10 @@ Go. It also includes runtime support libraries for these languages.") "gcc-5.0-libvtv-runpath.patch" "gcc-5-source-date-epoch-1.patch" "gcc-5-source-date-epoch-2.patch")))))) + ;; TODO: gcc-5 doesn't need cloog. + ;;(inputs + ;; `(("isl" ,isl) + ;; ,@(package-inputs gcc-4.7))))) (define-public gcc-6 (package @@ -402,7 +407,11 @@ Go. It also includes runtime support libraries for these languages.") (base32 "1m0lr7938lw5d773dkvwld90hjlcq2282517d1gwvrfzmwgg42w5")) (patches (search-patches "gcc-strmov-store-file-names.patch" - "gcc-5.0-libvtv-runpath.patch")))))) + "gcc-5.0-libvtv-runpath.patch")))) + (inputs + `(("isl" ,isl) + ,@(package-inputs gcc-4.7))))) + (define-public gcc-7 (package (inherit gcc-6) @@ -415,7 +424,11 @@ Go. It also includes runtime support libraries for these languages.") (base32 "16j7i0888j2f1yp9l0nhji6cq65dy6y4nwy8868a8njbzzwavxqw")) (patches (search-patches "gcc-strmov-store-file-names.patch" - "gcc-5.0-libvtv-runpath.patch")))))) + "gcc-5.0-libvtv-runpath.patch")))) + (description + "GCC is the GNU Compiler Collection. It provides compiler front-ends +for several languages, including C, C++, Objective-C, Fortran, Ada, and Go. +It also includes runtime support libraries for these languages."))) ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions and the gfortran definition @@ -581,7 +594,34 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) -(define-public gcc-objc gcc-objc-4.9) +(define-public gcc-objc-5 + (custom-gcc gcc-5 "gcc-objc" '("objc") + (list (search-path-specification + (variable "OBJC_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + +(define-public gcc-objc-6 + (custom-gcc gcc-6 "gcc-objc" '("objc") + (list (search-path-specification + (variable "OBJC_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + +(define-public gcc-objc-7 + (custom-gcc gcc-7 "gcc-objc" '("objc") + (list (search-path-specification + (variable "OBJC_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + +(define-public gcc-objc gcc-objc-5) (define-public gcc-objc++-4.8 (custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++") @@ -601,7 +641,34 @@ as the 'native-search-paths' field." (variable "LIBRARY_PATH") (files '("lib" "lib64")))))) -(define-public gcc-objc++ gcc-objc++-4.9) +(define-public gcc-objc++-5 + (custom-gcc gcc-5 "gcc-objc++" '("obj-c++") + (list (search-path-specification + (variable "OBJCPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + +(define-public gcc-objc++-6 + (custom-gcc gcc-6 "gcc-objc++" '("obj-c++") + (list (search-path-specification + (variable "OBJCPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + +(define-public gcc-objc++-7 + (custom-gcc gcc-7 "gcc-objc++" '("obj-c++") + (list (search-path-specification + (variable "OBJCPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64")))))) + +(define-public gcc-objc++ gcc-objc++-5) (define (make-libstdc++-doc gcc) "Return a package with the libstdc++ documentation for GCC." @@ -661,7 +728,7 @@ as the 'native-search-paths' field." (define-public isl (package (name "isl") - (version "0.11.1") + (version "0.18") (source (origin (method url-fetch) (uri (list (string-append @@ -672,8 +739,7 @@ as the 'native-search-paths' field." name "-" version ".tar.gz"))) (sha256 (base32 - "13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9")) - (patches (search-patches "isl-0.11.1-aarch64-support.patch")))) + "06ybml6llhi4i56q90jnimbcgk1lpcdwhy9nxdxra2hxz3bhz2vb")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp))) (home-page "http://isl.gforge.inria.fr/") @@ -691,6 +757,24 @@ reduction, transitive closures on maps (which may encode infinite graphs), dependence analysis and bounds on piecewise step-polynomials.") (license lgpl2.1+))) +(define-public isl-0.11 + (package + (inherit isl) + (name "isl") + (version "0.11.1") + (source (origin + (method url-fetch) + (uri (list (string-append + "http://isl.gforge.inria.fr/isl-" + version + ".tar.bz2") + (string-append %gcc-infrastructure + name "-" version ".tar.gz"))) + (sha256 + (base32 + "13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9")) + (patches (search-patches "isl-0.11.1-aarch64-support.patch")))))) + (define-public cloog (package (name "cloog") @@ -710,7 +794,7 @@ dependence analysis and bounds on piecewise step-polynomials.") (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp) - ("isl" ,isl))) + ("isl" ,isl-0.11))) (arguments '(#:configure-flags '("--with-isl=system"))) (home-page "http://www.cloog.org/") (synopsis "Library to generate code for scanning Z-polyhedra") diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index b4e6ce435b..169f040ee4 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,12 +38,11 @@ (define-public gd (package (name "gd") - + (replacement gd-2.2.5) ;; Note: With libgd.org now pointing to github.com, genuine old ;; tarballs are no longer available. Notably, versions 2.0.x are ;; missing. (version "2.2.4") - (source (origin (method url-fetch) (uri (string-append @@ -93,6 +93,22 @@ most common applications of GD involve website development.") "See COPYING file in the distribution.")) (properties '((cpe-name . "libgd"))))) +;; For CVE-2017-6362 and CVE-2017-7890. +(define-public gd-2.2.5 + (package + (inherit gd) + (version "2.2.5") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/libgd/libgd/releases/download/gd-" + version "/libgd-" version ".tar.xz")) + (patches (search-patches "gd-fix-tests-on-i686.patch" + "gd-freetype-test-failure.patch")) + (sha256 + (base32 + "0lfy5f241sbv8s3splm2zqiaxv7lxrcshh875xryryk7yk5jqc4c")))))) + (define-public perl-gd (package (name "perl-gd") diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index 77a3376a02..e09b55eb2b 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -37,14 +37,14 @@ (define-public gdb (package (name "gdb") - (version "8.0") + (version "8.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz")) (sha256 (base32 - "1vplyf8v70yn0rdqjx6awl9nmfbwaj5ynwwjxwa71rhp97z4z8pn")))) + "1qwmcbaxf0jc7yjl0fimgcfj2yqcrl6h7azgs1d838kbwf9mzg9x")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME "make check" fails on single-processor systems. diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f50bcfc105..84c98b0ff8 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -14,18 +14,19 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net> -;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> -;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 nee <nee-git@hidamari.blue> ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,6 +52,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system meson) #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages admin) @@ -138,6 +140,7 @@ #:use-module (gnu packages fonts) #:use-module (gnu packages speech) #:use-module (gnu packages virtualization) + #:use-module (gnu packages vpn) #:use-module (srfi srfi-1)) (define-public brasero @@ -312,7 +315,7 @@ either on a local, or remote machine via a number of methods.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'run-autogen + (add-after 'unpack 'run-autogen (lambda _ (system* "sh" "autogen.sh")))))) (home-page "https://wiki.gnome.org/Apps/Dia") @@ -765,7 +768,7 @@ on the GNOME Desktop with a single simple application.") (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "3.24.0") + (version "3.24.1") (source (origin (method url-fetch) @@ -774,7 +777,7 @@ on the GNOME Desktop with a single simple application.") name "-" version ".tar.xz")) (sha256 (base32 - "145vpcljy4660cnk8zk91qf7ywa7hqfl5hhw025gy8hxcqzklmzn")))) + "19zfqy58missq5cck13ip8j824hb9whqg2c4cr6hgrlxkwqgm8vn")))) (build-system gnu-build-system) (inputs `(("glib" ,glib))) @@ -932,7 +935,7 @@ database is translated at Transifex.") (define-public hicolor-icon-theme (package (name "hicolor-icon-theme") - (version "0.15") + (version "0.17") (source (origin (method url-fetch) @@ -940,7 +943,7 @@ database is translated at Transifex.") "hicolor-icon-theme-" version ".tar.xz")) (sha256 (base32 - "1k1kf2c5zbqh31nglc3nxs9j6wr083k9kjyql8p22ccc671mmi4w")))) + "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; no check target @@ -987,7 +990,7 @@ some form of information without getting in the user's way.") (define-public libpeas (package (name "libpeas") - (version "1.20.0") + (version "1.22.0") (source (origin (method url-fetch) @@ -996,12 +999,11 @@ some form of information without getting in the user's way.") name "-" version ".tar.xz")) (sha256 (base32 - "0m6k6fcrx40n92nc1cy3z72vs1ja49sb58dj3fjp40605pzgz4pk")))) + "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+) ("glade" ,glade3) - ("libxml2" ,libxml2) ; XXX: required by gladeui-2.0.pc ("python" ,python) ("python-pygobject" ,python-pygobject))) (native-inputs @@ -2647,7 +2649,7 @@ floating in an ocean using only your brain and a little bit of luck.") (define-public gnome-sudoku (package (name "gnome-sudoku") - (version "3.24.0") + (version "3.26.0") (source (origin (method url-fetch) @@ -2656,7 +2658,7 @@ floating in an ocean using only your brain and a little bit of luck.") name "-" version ".tar.xz")) (sha256 (base32 - "1mw5ykk7wr0r9770jj5270f07rjws0pmpjs0b1fywj4li13r98h4")))) + "186k2axryn3ic8blc9ddnvyrqqf88khg2hlisfa1n4wp784wfx47")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -2963,11 +2965,20 @@ service via the system message bus.") (substitute* "data/Locations.xml" (("Asia/Rangoon") "Asia/Yangon")) - #t))))) + #t)) + (replace 'install + (lambda _ + (zero? + (system* "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) ("pkg-config" ,pkg-config) + ("vala" ,vala) ("intltool" ,intltool))) (propagated-inputs ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and @@ -2989,7 +3000,7 @@ services for numerous locations.") (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") - (version "3.24.2") + (version "3.24.3") (source (origin (method url-fetch) @@ -2998,7 +3009,7 @@ services for numerous locations.") name "-" version ".tar.xz")) (sha256 (base32 - "1jnw920zn4cadhgmcv2q5ylzqhwm1rmrhf3a14q8mvp38hkdgaaa")))) + "14w5jhpq02mbcxvn41qcj3cjfqdr3sgzl96c6glwpdrjphw61i38")))) (build-system glib-or-gtk-build-system) (arguments `(;; Color management test can't reach the colord system service. @@ -3331,7 +3342,7 @@ GL based interactive canvas library.") (define-public libchamplain (package (name "libchamplain") - (version "0.12.15") + (version "0.12.16") (source (origin (method url-fetch) (uri (string-append @@ -3339,7 +3350,7 @@ GL based interactive canvas library.") version ".tar.xz")) (sha256 (base32 - "0x5qa1aw1y59lzkmf4j4szspn49341a87vcja4ydgxny1chilwjl")))) + "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-vala"))) (native-inputs @@ -3399,7 +3410,7 @@ queries upon that data.") (define-public libgnome-games-support (package (name "libgnome-games-support") - (version "1.2.2") + (version "1.2.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3407,7 +3418,7 @@ queries upon that data.") name "-" version ".tar.xz")) (sha256 (base32 - "04qbgcgmc01sinhbqdljiny8q868l01nkdawj8wrnqnd1i8czvsg")))) + "1vwad7kqy7yd6wqyr71nq0blh7m53r3lz6ya16dmh942kd0w48v1")))) (build-system gnu-build-system) (arguments '(#:phases @@ -3435,7 +3446,7 @@ GNOME Games, but it may be used by others.") (define-public gnome-klotski (package (name "gnome-klotski") - (version "3.22.1") + (version "3.22.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3443,7 +3454,7 @@ GNOME Games, but it may be used by others.") name "-" version ".tar.xz")) (sha256 (base32 - "04ragvrz29sydi2kf1zk2aimi3b3hn34jrndfd2lx6h8l45anq3q")))) + "16hd6yk01rhb4pj8m01fyn72wykf41d72gsms81q0n4zm5bm1a4h")))) (build-system glib-or-gtk-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) @@ -4087,7 +4098,7 @@ a secret password store, an adblocker, and a modern UI.") (define-public epiphany (package (name "epiphany") - (version "3.24.3") + (version "3.24.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4095,7 +4106,7 @@ a secret password store, an adblocker, and a modern UI.") name "-" version ".tar.xz")) (sha256 (base32 - "0m51cclpnb7lxk8w526rriyb2bi3aj17fbcvikhkg7qd65v1dxgy")))) + "1jg59s98aljf603w24r5a3cr4fw6z88gc0warqy1946iprjgdw0m")))) (build-system glib-or-gtk-build-system) (arguments ;; FIXME: tests run under Xvfb, but fail with: @@ -4719,7 +4730,6 @@ to display dialog boxes from the commandline and shell scripts.") ("cairo" ,cairo) ("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib) - ("glib" ,glib) ("gtk+" ,gtk+) ("json-glib" ,json-glib) ("libinput" ,libinput) @@ -4760,7 +4770,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.24.2") + (version "3.24.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4768,7 +4778,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "1fmgywfcvlb5sa0slxxlg80gafiaal8vnq6h5lcybqa12lnxa2mp")))) + "0m1qf2ffxzmwxa157lrvh3507d5gr3lg4kvj653zhcihjpmmhbi5")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. @@ -4923,7 +4933,7 @@ users.") (define-public network-manager (package (name "network-manager") - (version "1.8.0") + (version "1.8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/NetworkManager/" @@ -4931,7 +4941,7 @@ users.") "NetworkManager-" version ".tar.xz")) (sha256 (base32 - "17pn7kzilyl0qk525gp9xnbz4x0ssrdmgk1lvw95pyfd6rm5qnps")) + "1x0vzxvrck0snga2n3pc7g74m20zz74cr4r8gfspl8sckv6yz9bi")) (snippet '(begin (use-modules (guix build utils)) @@ -5044,6 +5054,39 @@ services.") (license license:gpl2+) (properties '((upstream-name . "NetworkManager"))))) +(define-public network-manager-openvpn + (package + (name "network-manager-openvpn") + (version "1.2.10") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://gnome/sources/NetworkManager-openvpn/" + (version-major+minor version) + "/NetworkManager-openvpn-" version ".tar.xz")) + (sha256 + (base32 + "0q9x61fq509gybz3ljzyvf9zn8nlya1r2vk7jl0gk3fp76jsg1mc")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--enable-absolute-paths"))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool))) + (inputs + `(("gtk+" ,gtk+) + ("openvpn" ,openvpn) + ("network-manager" ,network-manager) + ("network-manager-applet" ,network-manager-applet) ;for libnma + ("libsecret" ,libsecret))) + (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN") + (synopsis "OpenVPN plug-in for NetworkManager") + (description + "This extension of NetworkManager allows it to take care of connections +to virtual private networks (VPNs) via OpenVPN.") + (license license:gpl2+) + (properties `((upstream-name . "NetworkManager-openvpn"))))) + (define-public mobile-broadband-provider-info (package (name "mobile-broadband-provider-info") @@ -5262,7 +5305,7 @@ providing graphical log-ins and managing local and remote displays.") (define-public libgtop (package (name "libgtop") - (version "2.36.0") + (version "2.38.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5270,7 +5313,7 @@ providing graphical log-ins and managing local and remote displays.") name "-" version ".tar.xz")) (sha256 (base32 - "0ax17c7nplghxgsf8zl92nmhkbnggj62wwzl7nq00aqb2m6f7gqk")))) + "04mnxgzyb26wqk6qij4iw8cxwl82r8pcsna5dg8vz2j3pdi0wv2g")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) @@ -5546,7 +5589,7 @@ easy, safe, and automatic.") (define-public tracker (package (name "tracker") - (version "1.12.2") + (version "1.12.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5554,7 +5597,7 @@ easy, safe, and automatic.") name "-" version ".tar.xz")) (sha256 (base32 - "1zdzh8l5ahi906i40i4pqw2cs1hwrl6l9a7fp344a3idk3pl5szb")))) + "1mpq418lzba7fad0w0m3bnxvz3khf461b5zya8zmq5n1g0w99ki3")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gnome-common" ,gnome-common) @@ -5925,6 +5968,34 @@ specified duration and save it as a GIF encoded animated image file.") (home-page "https://git.gnome.org/browse/byzanz") (license license:gpl2+)))) +(define-public gsound + (package + (name "gsound") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gobject-introspection" ,gobject-introspection) + ("vala" ,vala))) + (inputs + `(("glib" ,glib) + ("libcanberra" ,libcanberra))) + (home-page "https://wiki.gnome.org/Projects/GSound") + (synopsis "GObject wrapper for libcanberra") + (description + "GSound is a small library for playing system sounds. It's designed to be +used via GObject Introspection, and is a thin wrapper around the libcanberra C +library.") + (license license:lgpl2.1+))) + (define-public libzapojit (package (name "libzapojit") @@ -5953,6 +6024,44 @@ specified duration and save it as a GIF encoded animated image file.") Microsoft SkyDrive and Hotmail, using their REST protocols.") (license license:lgpl2.1+))) +(define-public gnome-clocks + (package + (name "gnome-clocks") + (version "3.26.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "00a5bqi1hbyb9kbl4p393l1g6rddl2y6ljxjby9c5j3k1qka0c0g")))) + (build-system meson-build-system) + (arguments + '(#:glib-or-gtk? #t)) + (native-inputs + `(("vala" ,vala) + ("pkg-config" ,pkg-config) + ("glib" ,glib "bin") ; for glib-compile-resources + ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache + ("desktop-file-utils" ,desktop-file-utils) + ("gettext" ,gettext-minimal) + ("itstool" ,itstool))) + (inputs + `(("glib" ,glib) + ("gtk+" ,gtk+) + ("gsound" ,gsound) + ("geoclue" ,geoclue) + ("geocode-glib" ,geocode-glib) + ("libgweather" ,libgweather) + ("gnome-desktop" ,gnome-desktop))) + (home-page "https://wiki.gnome.org/Apps/Clocks") + (synopsis "GNOME's clock application") + (description + "GNOME Clocks is a simple clocks application designed to fit the GNOME +desktop. It supports world clock, stop watch, alarms, and count down timer.") + (license license:gpl3+))) + (define-public gnome-calendar (package (name "gnome-calendar") @@ -5982,6 +6091,57 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") desktop. It supports multiple calendars, monthly view and yearly view.") (license license:gpl3+))) +(define-public gnome-todo + (package + (name "gnome-todo") + (version "3.26.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "13if2lg4r65v3z7h5y57qv4iqz9ihjaml8bzvvihha7dffyr1lz4")))) + (build-system meson-build-system) + (arguments + '(#:glib-or-gtk? #t + #:phases (modify-phases %standard-phases + (add-after + 'install 'wrap-gnome-todo + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH")) + (python-path (getenv "PYTHONPATH"))) + (wrap-program (string-append out "/bin/gnome-todo") + ;; XXX: gi plugins are broken. + ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212 + ;; For plugins. + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) + `("PYTHONPATH" ":" prefix (,python-path)))) + #t))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection) + ("glib:bin" ,glib "bin") ; For glib-compile-resources + ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache + ("pkg-config" ,pkg-config))) + (inputs + `(("rest" ,rest) ; For Todoist plugin + ("json-glib" ,json-glib) ; For Todoist plugin + ("libical" ,libical) + ("libpeas" ,libpeas) + ("python-pygobject" ,python-pygobject) + ("evolution-data-server" ,evolution-data-server) + ("gnome-online-accounts" ,gnome-online-accounts) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) + (home-page "https://wiki.gnome.org/Apps/Todo") + (synopsis "GNOME's ToDo Application") + (description + "GNOME To Do is a simplistic personal task manager designed to perfectly +fit the GNOME desktop.") + (license license:gpl3+))) + (define-public gnome-dictionary (package (name "gnome-dictionary") @@ -6066,7 +6226,7 @@ GNOME Shell appearance and extension, etc.") (define-public gnome-shell-extensions (package (name "gnome-shell-extensions") - (version "3.24.2") + (version "3.24.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -6074,7 +6234,7 @@ GNOME Shell appearance and extension, etc.") name "-" version ".tar.xz")) (sha256 (base32 - "10sg87wml5cmyk90pybnr6r942ba7173sl7yplhj2sfggp0wc74s")))) + "0y8anpp9ymp0lxn15w63ra6zxxf8nvbl48xqkvqdjzida73fyz9w")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-extensions=all"))) @@ -6422,7 +6582,7 @@ only know by its Unicode name or code point.") (define-public bluefish (package (name "bluefish") - (version "2.2.9") + (version "2.2.10") (source (origin (method url-fetch) @@ -6430,7 +6590,7 @@ only know by its Unicode name or code point.") name "-" version ".tar.gz")) (sha256 (base32 - "1vnl6raxbvc4hacg3pr6sqyjh707d304dhk5nyhlp7m0m1y3j756")))) + "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4")))) (build-system gnu-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) @@ -6754,3 +6914,92 @@ Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information from artists and tracks from the web. It also fetches cover artworks automatically and it can stream songs from online music services and charts.") (license license:gpl3+))) + +(define-public gnome-video-effects + (package + (name "gnome-video-effects") + (version "0.4.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" name "-" + version ".tar.xz")) + (sha256 + (base32 + "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:out-of-source? #f)) + (native-inputs + `(("glib:bin" ,glib "bin") + ("intltool" ,intltool) + ("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects") + (synopsis "Video effects for Cheese and other GNOME applications") + (description + "A collection of GStreamer video filters and effects to be used in +photo-booth-like software, such as Cheese.") + (license license:gpl2+))) + +(define-public cheese + (package + (name "cheese") + (version "3.24.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" name "-" + version ".tar.xz")) + (sha256 + (base32 + "0wpks2lnr8va9wxgmj26dwmhlcb3vamhpxkqi8xaan6q25635l16")))) + (arguments + ;; Tests require GDK. + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'install 'skip-gtk-update-icon-cache + (lambda _ + ;; Don't create 'icon-theme.cache' + (substitute* "Makefile" + (("gtk-update-icon-cache") (which "true"))) + #t)) + (add-after 'install 'wrap-cheese + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))) + (wrap-program (string-append out "/bin/cheese") + `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))) + #t))))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") + ("intltool" ,intltool) + ("itstool" ,itstool) + ("libxml2" ,libxml2) + ("pkg-config" ,pkg-config) + ("vala" ,vala))) + (propagated-inputs + `(("gnome-video-effects" ,gnome-video-effects))) + (inputs + `(("clutter" ,clutter) + ("clutter-gst" ,clutter-gst) + ("clutter-gtk" ,clutter-gtk) + ("gdk-pixbuf" ,gdk-pixbuf) + ("glib" ,glib) + ("gnome-desktop" ,gnome-desktop) + ("gobject-introspection" ,gobject-introspection) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-bad" ,gst-plugins-bad) + ("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libx11" ,libx11) + ("libxtst" ,libxtst))) + (home-page "https://wiki.gnome.org/Apps/Cheese") + (synopsis "Webcam photo booth software for GNOME") + (description + "Cheese uses your webcam to take photos and videos. Cheese can also +apply fancy special effects and lets you share the fun with others.") + (license license:gpl2+))) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 837f9a21b6..9a2713e66a 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -155,7 +155,7 @@ tool to extract metadata from a file and print the results.") (build-system gnu-build-system) (inputs `(("curl" ,curl) - ("gnutls" ,gnutls) + ("gnutls" ,gnutls/dane) ("libgcrypt" ,libgcrypt) ("openssl" ,openssl) ("zlib" ,zlib))) @@ -186,24 +186,22 @@ and support for SSL3 and TLS.") (define-public gnurl (package (name "gnurl") - (version "7.55.1-3") + (version "7.55.1-4") (source (origin (method url-fetch) (uri (string-append "https://gnunet.org/sites/default/files/" name "-" version ".tar.bz2")) (sha256 (base32 - "1p2qdh44hgsxjlzh4d3n51xr66cg2z517vpr818flvcrmpq2vxpq")))) + "09c1bfwiwxqlh0dl839lslwhvkf98bvpyg9x4pcn3sagz0i8hxfl")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.5 MiB of man3 pages - (inputs `(("gnutls" ,gnutls) + (inputs `(("gnutls" ,gnutls/dane) ("libidn" ,libidn) ("zlib" ,zlib))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) + `(("libtool" ,libtool) ("groff" ,groff) ("perl" ,perl) ("pkg-config" ,pkg-config) @@ -234,10 +232,6 @@ and support for SSL3 and TLS.") (rename-file (string-append out "/share/man/man3") (string-append doc "/share/man/man3")) #t))) - (add-before 'configure 'autoconf - ;; Clear artifacts left (shebangs) from release preparation. - (lambda _ - (zero? (system* "./buildconf")))) (replace 'check (lambda _ ;; It is unclear why test1026 fails, however the content of it @@ -277,7 +271,7 @@ supports HTTP, HTTPS and GnuTLS.") ("gnurl" ,gnurl) ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) - ("gnutls" ,gnutls) + ("gnutls" ,gnutls/dane) ("libextractor" ,libextractor) ("libgcrypt" ,libgcrypt) ("libidn" ,libidn) @@ -345,7 +339,7 @@ kinds of basic applications for the foundation of a GNU internet.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index fd850c0469..ffad57ef5e 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> -;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org> ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com> @@ -32,7 +32,10 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages adns) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages curl) + #:use-module (gnu packages crypto) #:use-module (gnu packages openldap) #:use-module (gnu packages perl) #:use-module (gnu packages pth) @@ -53,6 +56,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system perl) #:use-module (guix build-system python)) (define-public libgpg-error @@ -81,6 +85,7 @@ Daemon and possibly more in the future.") (define-public libgcrypt (package + (replacement libgcrypt/fixed) (name "libgcrypt") (version "1.7.8") (source (origin @@ -115,6 +120,18 @@ generation.") (properties '((ftp-server . "ftp.gnupg.org") (ftp-directory . "/gcrypt/libgcrypt"))))) +(define libgcrypt/fixed + (package + (inherit libgcrypt) + (version "1.8.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" + version ".tar.bz2")) + (sha256 + (base32 + "1cvqd9jk5qshbh48yh3ixw4zyr4n5k50r3475rrh20xfn7w7aa3s")))))) + (define-public libassuan (package (name "libassuan") @@ -203,14 +220,14 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.1.23") + (version "2.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "0xqd5nm4j3w9lwk35vg57gl2i8bfkmx7d24i44gkbscm2lwpci59")))) + "1yv2pwf3vhv9dpbf51fnm0wy03va1cg5r7qaz7rg75cwbgb0rmrl")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -232,7 +249,8 @@ compatible to GNU Pth.") `(#:configure-flags '(;; Otherwise, the test suite looks for the `gpg` ;; executable in its installation directory in ;; /gnu/store before it has been installed. - "--enable-gnupg-builddir-envvar") + "--enable-gnupg-builddir-envvar" + "--enable-all-tests") #:phases (modify-phases %standard-phases (add-before 'configure 'patch-paths @@ -249,26 +267,18 @@ compatible to GNU Pth.") (string-append (getcwd) "/tests/gpgscm/gpgscm"))) #t)) (add-before 'build 'patch-test-paths - (lambda* (#:key inputs #:allow-other-keys) - (let* ((coreutils (assoc-ref inputs "coreutils")) - (cat (string-append coreutils "/bin/cat")) - (pwd (string-append coreutils "/bin/pwd")) - (true (string-append coreutils "/bin/true")) - (false (string-append coreutils "/bin/false"))) - (substitute* '("tests/inittests" - "tests/pkits/inittests" - "tests/Makefile" - "tests/pkits/common.sh" - "tests/pkits/Makefile" - ) - (("/bin/pwd") pwd)) - (substitute* "common/t-exectool.c" - (("/bin/cat") cat)) - (substitute* "common/t-exectool.c" - (("/bin/true") true)) - (substitute* "common/t-exectool.c" - (("/bin/false") false)) - #t)))))) + (lambda _ + (substitute* '("tests/inittests" + "tests/pkits/inittests" + "tests/Makefile" + "tests/pkits/common.sh" + "tests/pkits/Makefile") + (("/bin/pwd") (which "pwd"))) + (substitute* "common/t-exectool.c" + (("/bin/cat") (which "cat")) + (("/bin/true") (which "true")) + (("/bin/false") (which "false"))) + #t))))) (home-page "https://gnupg.org/") (synopsis "GNU Privacy Guard") (description @@ -529,6 +539,43 @@ and signature functionality from Python programs.") (define-public python2-gnupg (package-with-python2 python-gnupg)) +(define-public perl-gnupg-interface + (package + (name "perl-gnupg-interface") + (version "0.52") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/A/AL/ALEXMV/GnuPG-Interface-" + version + ".tar.gz")) + (sha256 + (base32 + "0dgx8yhdsmhkazcrz14n4flrk1afv7azgl003hl4arxvi1d9yyi4")))) + (build-system perl-build-system) + (arguments + '(;; Result: FAIL + ;; Failed 10/20 test programs. 21/52 subtests failed. + #:tests? #f)) + (native-inputs + `(("perl-module-install" ,perl-module-install) + ("which" ,which))) + (inputs + `(("gnupg" ,gnupg))) + (propagated-inputs + `(("perl-moo" ,perl-moo) + ("perl-moox-late" ,perl-moox-late) + ("perl-moox-handlesvia" ,perl-moox-handlesvia))) + (home-page "http://search.cpan.org/~alexmv/GnuPG-Interface/") + (synopsis "Perl interface to GnuPG") + (description + "@code{GnuPG::Interface} and its associated modules are designed to +provide an object-oriented method for interacting with GnuPG, being able to +perform functions such as but not limited to encrypting, signing, decryption, +verification, and key-listing parsing.") + (license license:perl-license))) + (define-public pius (package (name "pius") @@ -573,38 +620,48 @@ PGP keysigning parties.") (define-public signing-party (package (name "signing-party") - (version "1.1.4") + (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 - "188gp0prbh8qs29lq3pbf0qibfd6jq4fk7i0pfrybl8aahvm84rx")))) + "1n5bpcfpl9vg1xp6r1jhbyahrgdyxp05b5pria1rh4m0qnv8sifr")))) (build-system gnu-build-system) - (inputs `(("perl" ,perl))) + (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-after 'unpack 'remove-spurious-links - (lambda _ (delete-file "keyanalyze/pgpring/depcomp"))) + (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* "keyanalyze/pgpring/configure" - (("/bin/sh") (which "sh"))) - (substitute* "gpgwrap/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))))) + (("/usr") out)) + (setenv "CONFIG_SHELL" (which "sh"))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys #:rest args) (let ((out (assoc-ref outputs "out")) @@ -629,7 +686,13 @@ PGP keysigning parties.") '("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")))))))) + "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, @@ -759,3 +822,31 @@ qualities. To reconstruct a secret key, you re-enter those bytes (whether by hand, OCR, QR code, or the like) and paperkey can use them to transform your existing public key into a secret key.") (license license:gpl2+))) + +(define-public gpa + (package + (name "gpa") + (version "0.9.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/gpa/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "09xphbi2456qynwqq5n0yh0zdmdi2ggrj3wk4hsyh5lrzlvcrff3")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("gnupg" ,gnupg) + ("gpgme" ,gpgme) + ("libassuan" ,libassuan) + ("libgpg-error" ,libgpg-error) + ("gtk+-2" ,gtk+-2))) + (home-page "https://gnupg.org/software/gpa/") + (synopsis "Graphical user interface for GnuPG") + (description + "GPA, the GNU Privacy Assistant, is a graphical user interface for +@uref{https://gnupg.org, GnuPG}. It can be used to encrypt, decrypt, and sign +files, to verify signatures, and to manage the private and public keys.") + (license license:gpl3+))) diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index 51541170ae..195249c435 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 1daaa79c73..da74a8dd95 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -249,7 +249,7 @@ in C/C++.") (define-public nspr (package (name "nspr") - (version "4.16") + (version "4.17") (source (origin (method url-fetch) (uri (string-append @@ -257,7 +257,7 @@ in C/C++.") version "/src/nspr-" version ".tar.gz")) (sha256 (base32 - "1l9wlnb9y0bzicv448jjl9kssqn044dc2qrkwzp4ll35fvch4ccv")))) + "158hdn285dsb5rys8wl1wi32dd1axwhqq0r8fwny4aj157m0l2jr")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) @@ -281,7 +281,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.32") + (version "3.33") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -292,7 +292,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "0dfkgvah0ji8b8lpxyy2w0b3lyz5ldmryii4z7j2bfwnrj0z7iim")) + "1r44qa4j7sri50mxxbnrpm6fxprwrhv76whi7bfq73j06syxmw4q")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch" "nss-increase-test-timeout.patch")))) @@ -400,7 +400,7 @@ standards.") (define-public icecat (package (name "icecat") - (version "52.1.0-gnu1") + (version "52.3.0-gnu1") (source (origin (method url-fetch) @@ -409,186 +409,39 @@ standards.") "/" name "-" version ".tar.bz2")) (sha256 (base32 - "1wr4bc5806xzyqpi6m4rjaf61za6ylpx4g0kfk95c6yw9yhg5vqb")) + "00jki754d6310fxj1b7dbhqj69y5igck6gqg6rgfya243nsb56k9")) (patches (list (search-patch "icecat-avoid-bundled-libraries.patch") - (mozilla-patch "icecat-bug-1342366.patch" "fb43f6690a26" "1vnkjpq2bcqwzmjkgyqv8wj0ndrrsyix3qy1rsb5is6pjmi9sbaa") - (mozilla-patch "icecat-bug-1343818.patch" "90f870bbec29" "0mbki955f71n4yr9p0yc7kh5jwq7vs4bs4rhaazdncirbr564hm6") - (mozilla-patch "icecat-bug-1348454.patch" "c1cd8a02669f" "1wf0107763rw45kxkak7478vlax06ay7076cbm7ysxl7vijbr52w") - (mozilla-patch "icecat-CVE-2017-5470-pt01.patch" "2553531f83b9" "0ibf59pa8czdyhc25sas6zhh2gf1k8vr8fklis2b1ms3n1qnzrha") - (mozilla-patch "icecat-bug-1355873.patch" "9ee455ddcd68" "0d38hi4556635g9ag805vfyffdgfsp4a8v3d9ldffdp99ypv2ixj") - (mozilla-patch "icecat-CVE-2017-5470-pt02.patch" "6472c7006a73" "1fgydas23fzj49n4g43133bgjn98b2h38bii4knl7z7pm3fs2wws") - (mozilla-patch "icecat-CVE-2017-5470-pt03.patch" "0d5a26b29816" "03mkghl9i83jk1axr8bvw8la6shbggkabf23if8a9vi5jdv8182x") - (mozilla-patch "icecat-bug-1357092.patch" "e78c943af07f" "0r830k6hja8z9rjk2nqjg8zfzr0wjcnic8rddh7jmc1inr1w3crm") - (mozilla-patch "icecat-CVE-2017-5470-pt04.patch" "d7c06f2d0d13" "1ahyns5v37w91bilvb3pa8kkdzkkn3fcxmi49jr5bycjlawljrm4") - (mozilla-patch "icecat-CVE-2017-5470-pt05.patch" "9071c7d4cc9c" "12128sf8s3zwv2w16kfl5jry9d6ky7hvps2006184rg23p32aj6n") - (mozilla-patch "icecat-bug-1336979.patch" "8bbc7b586d68" "0c13imyp1nq18in3yb1zcyi41b69svh4fn8msyj0c2lhbf8qnqcw") - (mozilla-patch "icecat-CVE-2017-5470-pt06.patch" "6d80ca63ff8b" "0s893fn6v0p323lcnl4cbkg1zd7gs1p0bw76ki6cmiapkn63gs13") - (mozilla-patch "icecat-CVE-2017-7752.patch" "43d7b98d8743" "1dhgy1jkvn3c4k27hbv8p16w7l09b8hd4w9zzpk8dpn4h78ncs3h") - (mozilla-patch "icecat-CVE-2017-5031.patch" "bd4fcdee9a06" "0xz1r342023a0bsllhjbzn6v75lpqznwacqyikb7q8i4hxkxh78a") - (mozilla-patch "icecat-bug-1346499.patch" "747fd6c81983" "00iscyn4wr69205ppiaghlnd32845f5lcsl303v0fcdd4d1v04vc") - (mozilla-patch "icecat-bug-1334443-pt1.patch" "16201e8478df" "1k91xaai25vn1svkaldnsd2s8br3fgvnk5l54k3n3lk3m5vj55hv") - (mozilla-patch "icecat-bug-1334443-pt2.patch" "f100e5cf3bcb" "1cgbbbnkrd3ydfw99rhnpqdp5zq65537mg8sa1s9ajxkjjd1dkwj") - (mozilla-patch "icecat-bug-1354810.patch" "e579ef6e8d11" "0cmrh8dl85lzjxpbni08xbs8qq15sljnpg70a7rsl0jdbgih3mdx") - (mozilla-patch "icecat-bug-1356755.patch" "4a3fce67b52d" "126i9nwxsb3sjwb7dvhafacq86glnhx7r7jjv0h9v21s1w0kx4wj") - (mozilla-patch "icecat-CVE-2017-7765.patch" "7902fea300b8" "1jkrl8hdycsi17dd1m1vvl6gm1skhpf10q2m29zwfr8l40fd6a3q") - (mozilla-patch "icecat-bug-1353204.patch" "b5a21502aeff" "13rbrhvr37w95av9d4hkgi913nq0j6k2iijydylvprcn18cwibp0") - (mozilla-patch "icecat-bug-1028195.patch" "69a5ca2bf867" "0q8cgi6837ikpg7gsvywmzhq0i102845apcbrd6mw0205qqsnw5c") - (mozilla-patch "icecat-bug-1347835.patch" "bc635f45af37" "1fny422l6yc80901x6swybr8nk0in1wxfgy97ky4bdkcqlnmzpqv") - (mozilla-patch "icecat-bug-1241066.patch" "b922ca70cce5" "09hcf9rm7ng3vj5y267w0c9h6pqinnz8gjlkwx1337xh43mdvqjv") - (mozilla-patch "icecat-CVE-2017-5470-pt07.patch" "1ce6d0652921" "163ji64a86h682frh1jq016w1mjf8g24r8cni0irsdmiihis7zxc") - (mozilla-patch "icecat-bug-1324140.patch" "8886f9cd5dd3" "0byabs9md8r3pc4r67sv2759427n1za0gfayln40nx47n2p52kmg") - (mozilla-patch "icecat-CVE-2017-5470-pt08.patch" "ad995e90916b" "02nq9sg675p26z99nr2pykbz51hi2phf0gmrb1bjpq9pjbll7gsa") - (mozilla-patch "icecat-CVE-2017-7749.patch" "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd") - (mozilla-patch "icecat-CVE-2017-7751.patch" "24cbb7f2e0ff" "006f0zhz5nxs72q9plwzhq4l79b47svzizvv510m5g2krsfrccza") - (mozilla-patch "icecat-CVE-2017-7750.patch" "89c7fb6c5be3" "19650nmc4vn1prbpn5h06kz9d1al279xkc23v39577h4zhdrknkj") - (mozilla-patch "icecat-bug-1337810.patch" "0f6dd3564c76" "1sxajqh6r7fjs45xhvjwg94smpvyvplh3rdvq11d3q5m9v4kg7mz") - (mozilla-patch "icecat-CVE-2017-5470-pt09.patch" "145905da25d3" "0c2q9f000snpm9x0qda2y0awrsm313iwxbv0kh33ca0kpza49a76") - (mozilla-patch "icecat-bug-1345355.patch" "c5012009a0b2" "0m772bgrwb8iwv2bdgx694ybg5wgbf58xg5v245x0p7gwhgwiwmr") - (mozilla-patch "icecat-bug-1351340.patch" "047f19a1b9a0" "0qjnhybibs3cpcba3ga4g7d4c0w716xa9jf87y2ir8yz7dw1f9vl") - (mozilla-patch "icecat-bug-1056322.patch" "f076a30f6c29" "0xgskjl6zmxi3v4l0f3wlas0qb2403fin5lv1hi3jf2142ihpaml") - (mozilla-patch "icecat-bug-1355414.patch" "28e09d4ac3e9" "06clr2kwz28nyjlj13y036x6rxwh6frdh11aq6kbm1nj6s01i9zl") - (mozilla-patch "icecat-bug-1313977.patch" "4c0b09f70aea" "04jq1xrlhj04n5bgh93xkbqwnh01pswfjhv81zk7i87c7xz6h92q") - (mozilla-patch "icecat-bug-1357366.patch" "0b855945ce34" "0va8kqlgx6qhq2qrawkcm66kqrwwpmxblyjp3c7ifplxd0j0ijaf") - (mozilla-patch "icecat-bug-1338574-pt0.patch" "243d7bffa4f1" "1d1v68amhnygc0g4w1afs374pjs7z5fx5inyq8idawbh4kxfncq7") - (mozilla-patch "icecat-bug-1338574-pt1.patch" "337398a83aa5" "1141n7dhy9rh70sww8v58cbkba74xm5i75j1sgm5qwvkhh69qr5h") - (mozilla-patch "icecat-bug-1338574-pt2.patch" "50e120d7ac64" "0dbcaq27vsjlh7vm30c88rlhkx8c1195rnr01six40mymh09rhym") - (mozilla-patch "icecat-bug-1338574-pt3.patch" "2d4da5a366e8" "1761npkpw5zsm4q8rzfrg8m1ayrf8c857iq3vdd8rbqcswzv6xq0") - (mozilla-patch "icecat-bug-1338574-pt4.patch" "b10d9b0c187f" "044zq9gzw4v5r3ki8dwfjg9dznai0jch29y0xrxzb2rfr6yvx0sb") - (mozilla-patch "icecat-bug-1338574-pt5.patch" "697713a6841c" "1m9q4rh4ny945xsx3p3f5bg1izs9q58d71la5drj31z6kvbhnsi2") - (mozilla-patch "icecat-bug-1338574-pt6.patch" "1d14abf37cf8" "1xyja9hjb7qfqi7kh85bw5nxkhyzw1rijjhnh5pgr5z0v718kjyc") - (mozilla-patch "icecat-bug-1338574-pt7.patch" "5e85bc599d0c" "1pmhs3hmhkgj6q19padcbpi5qvgnhx6ib09zpcwxr8ll6lllxhig") - (mozilla-patch "icecat-bug-1152353.patch" "d893dea8e7b4" "1pbayv7np6z7hlkk1dhvx3ppkni7f8n3cz8hs67l3nssw214c1ih") - (mozilla-patch "icecat-bug-1345893.patch" "3a747480ead1" "0sxd23y9g77mx5indjs9isxnnrkin835qrh6dn62dlvbll8lgqi2") - (mozilla-patch "icecat-bug-1343172.patch" "c7b064f6b93a" "1sh10j3h8cnqi3rpr70lv2yz14zhy1v9ms4f64fmrbjlz7q09j6q") - (mozilla-patch "icecat-bug-1352348.patch" "1d86e96610a1" "02ybn2608v57pjh8kjgnhkg157asawjk5xia59qb63m5vfvrinwv") - (mozilla-patch "icecat-bug-1354308.patch" "c8ba3f911eb1" "0w70b8dmvqjn1d8sphfkwnbwii8nh2q5k48clkvbhn7kpc2890mi") - (mozilla-patch "icecat-bug-1335904.patch" "366cdd623cfb" "0gcmld4bplaakx6d50gw223lg1jjcni7866q1f2hxm0h1r9wwd3k") - (mozilla-patch "icecat-bug-1355340.patch" "6b174b41fa44" "0zdgfy0zsrs3cvfkmrhxw0mrfibpnb58xp3z8fapx5ja59wmcabs") - (mozilla-patch "icecat-bug-1360574-pt1.patch" "237eee780619" "1iw6z762zdc42kwjvv58a2cjc0s4kzwwy7838apl7y7cq85g0jg2") - (mozilla-patch "icecat-bug-1360574-pt2.patch" "46a5a4aac189" "1i553f9qvav0fn5avbp8912995pqbhzbzamxxfz8gn2ik17y3xly") - (mozilla-patch "icecat-bug-1358776.patch" "bd35fa23f79a" "12nicgwhcn63knmlcl0c2askn9sj35bfclaab3826pkd9yq5g4p5") - (mozilla-patch "icecat-CVE-2017-5470-pt10.patch" "c1314a709b41" "0klgrcyc20fig6rbm9znjpcnfsz6xnlp1v03fbvaww0riy2qm42k") - (mozilla-patch "icecat-bug-1359859.patch" "e38948fb79d6" "1sfyc5s9ndv6q72k8n9x0rvj4sz40k51iljrs42gwykzkjm2fx5m") - (mozilla-patch "icecat-bug-1342057.patch" "278bef1d7a64" "0zk18s9pnbwz9ankmc9mj4197s55j1jvax04ansqymmmc3a5ciif") - (mozilla-patch "icecat-CVE-2017-5470-pt11.patch" "218e0963406f" "0wqms5nany4sx2g4p01lbam7la2dyazz87dhv5hcsf8ifxrfww11") - (mozilla-patch "icecat-bug-1304566.patch" "188e39630fcd" "1bfxfgj5ywx4bcf91kwyrjh5ppiv59gadx4445achyabdi639l8d") - (mozilla-patch "icecat-bug-1356601.patch" "8191e403fedf" "1k4zmq0923f5dc3dwbz1q0bkcbm90ldwkczym366hgwadb2305nd") - (mozilla-patch "icecat-bug-1334097.patch" "fe2a2c7e88cb" "1rppaivaddigwk65krn8m9f9mcdkiiv28ws9n9zj62n0rc1shyvc") - (mozilla-patch "icecat-bug-1359051.patch" "8d7dbe5c6587" "14zh74bbld4s0jy0a48fi9acxkc236mh9wjid3vrf72yj6bi5xnp") - (mozilla-patch "icecat-bug-1359697.patch" "ca2b5274549f" "1ns7v70i1hfkxqnjhf9fp0lk9095hdcllg94j3dl1nfaif4w6vbf") - (mozilla-patch "icecat-bug-1343256.patch" "a30dd7dd6617" "1k078176fp8vz871wirjz9d3yx9l2lfl8p75c4905n3j3zv2297q") - (mozilla-patch "icecat-CVE-2017-7778.patch" "81b3ce7d37b3" "0ad0wqczy4kpggj6m3b8bzxi6ax340mik1mfawhkq89a1h2sfpxv") - (mozilla-patch "icecat-bug-1356179.patch" "66d8893f37f0" "0izl31lagvdv4qpb9gkjxvgpmxzw50x5bviap4l7bbnb56cv7d8p") - (mozilla-patch "icecat-CVE-2017-5472.patch" "aad883966edd" "058axnrwrbvy2h9r9pb766lyky45hb92rap142sbp17yz0sxfmww") - (mozilla-patch "icecat-bug-1355520.patch" "7ca2d8839f7a" "1xbmpvr2x720x9ghd5wgbg6lknbnhcyqmkkfamdf97mqcyizyr21") - (mozilla-patch "icecat-bug-1358469.patch" "4d432638c0f9" "0qpjmwik3dryjwmgfwmkqk0rs9rb2lafb2k9fc3pkjnrq5y0l9xg") - (mozilla-patch "icecat-CVE-2017-5470-pt12.patch" "f5967db0a0f3" "045wbvkm21kbm314dd6lbq2disiaf26kmsxi6brf442fd0028gwq") - (mozilla-patch "icecat-bug-1345910.patch" "ec6b6720e54e" "0lm15jl46mdlsds6947jsiyvhf9agb8hcdrqj2svc3kn9kzvyr2n") - (mozilla-patch "icecat-CVE-2017-5470-pt13.patch" "a4f8d8a12afa" "0d7sjc21af074rvgvijj42gmpjvcb1v1zlpgb3s7ky7w6wjr35vx") - (mozilla-patch "icecat-CVE-2017-7754.patch" "d07f24a72ce4" "1qbwska76b2zslb95wnx9v04znb6k9fqylr4ajyfqpwk1sr363hg") - (mozilla-patch "icecat-CVE-2017-7764.patch" "a6caa7628e36" "1yv5f4h8js9bry9krcx130w6ic8rdmmq4fap6va24kfx8qflg70h") - (mozilla-patch "icecat-bug-1237868.patch" "41138235d4ea" "0mcj4x2kmagwf5hp8xhczf04sxm995pk1zarc9yffk84z7fcrxkj") - (mozilla-patch "icecat-bug-1331335.patch" "b724283e3b31" "1xbb1vcdzfpcmrmxm8ihwzslh2vz15k0k601nvyhh6vgx270h1wn") - (mozilla-patch "icecat-bug-1367267.patch" "4c2f4d8b693e" "1hrndhfnz0vnjnspwh5mbvgl2j8d1cs62awp04wx2w6z4l4wrmbv") - (mozilla-patch "icecat-CVE-2017-7756.patch" "cce3fd607206" "1z97jw8jpfyx61jxf0j8nsplnna2c5bwihwnl9cvlc2cspp3kgp5") - (mozilla-patch "icecat-CVE-2017-5470-pt14.patch" "dc4e3c64d781" "1zd666k4qpdamly3av09k602pmirjcs9l6la6ba0qq9w9vfan3g5") - (mozilla-patch "icecat-CVE-2017-5470-pt15.patch" "379c348250e8" "0kvsyhi9j3bjx14ffr13dslqp8ghcgrz6ds2fikdkrrrk4syskd5") - (mozilla-patch "icecat-bug-1349531.patch" "70cd711c6ae8" "07hlby5xdvqy6jdqxydv5pwap8hhsycb19fgw5fan2xf9dhrfpb8") - (mozilla-patch "icecat-CVE-2017-5470-pt16.patch" "6e644bc1a57f" "1xp8b74wijfz198q4hdybldnwh3hh0vh33dc5s7489abmz4s5zjg") - (mozilla-patch "icecat-CVE-2017-7758.patch" "279bffa85beb" "0shf77l9id6s8cs8xbc0ii0ccd7n09jv20410kkqqz11m296dcjr") - (mozilla-patch "icecat-CVE-2017-7757.patch" "0abcbc6ef8f3" "045arb1b83a3yv358naznl15bnr4wgxxayv8d5gcxarcbrrvm5q4") - (mozilla-patch "icecat-CVE-2017-5470-pt17.patch" "e0261afd69b9" "0a19b24iq57430kpbsdvka9vyg6kwhnnqis1xsd6wh8gz0bw5l79") - (mozilla-patch "icecat-CVE-2017-5470-pt18.patch" "4ec931d4bf29" "0bq0hq41xhy9aqjra5m0flmpilinlkb088r6w1kly561ckjl1f9f") - (mozilla-patch "icecat-bug-1339826-pt1.patch" "9c29579fffe2" "0yfc764qrynh441wwim18cr6k0sazgrm77frcdnyks0hzf0y44d1") - (mozilla-patch "icecat-bug-1339826-pt2.patch" "be946ea1a75a" "0pw0y1sdckn5brm39sdg47hbda5432aw32c3xq26ism23im85191") - (mozilla-patch "icecat-bug-1339826-pt2.patch" "44b2fe592a90" "1v8mz3b40dp6l5qrgha4yibmrnx80pxsvdll6ky1k937yhbzjk4a") - (mozilla-patch "icecat-CVE-2017-5470-pt19.patch" "f68e0d98a22a" "063z4a7gyhzy85fc2j2yr7kmk2zf7v875hjw4485civazydysw4j") - (mozilla-patch "icecat-bug-1353625.patch" "c41f37d913e2" "1s997c1hj4ywnlfbhvi1y96vd6bxl74wcrb0nly611h51h8xnyxm") - (mozilla-patch "icecat-CVE-2017-5470-pt20.patch" "38273203b827" "12p9r4spdp09d6ic9sqspvdr50lmc1p86ydz2fxdifb1f95njhx0") - (mozilla-patch "icecat-bug-1357022.patch" "5bd51bc3f587" "0z5drxpfjvb7s43qgcr404h8ckchgakwwwi4nxpx2i653w22a743") - (mozilla-patch "icecat-bug-1318845.patch" "512efd480dac" "13cmqap795ayh6gh3b5bc6002pz0wp92qngs7fh5qqklc7a0gkzv") - (mozilla-patch "icecat-CVE-2017-7798-pt1.patch" "d0c92199b9ed" "0qmsm7d4h6ysx3an247kpx9qpksfms7hrjgpdrghdbxla1hc4nc9") - (mozilla-patch "icecat-bug-1364513.patch" "88e9c2137640" "1mh4l745q1wlabn9sz47n0vy3h7c66fcay2b9dwa16iqwvh3lpiw") - (mozilla-patch "icecat-bug-1366203.patch" "08dd87b6bb8f" "15bfwfwwd978mlcpk1d6m7506k8c2y402md7wzf6piabxl5kk6cf") - (mozilla-patch "icecat-CVE-2017-7779-pt01.patch" "5a51a9ef8149" "0j0f9j0pryv3ik4bizhv8s6rr4dl1mjm01c23msayr0vbnpcagcs") - (mozilla-patch "icecat-CVE-2017-7779-pt02.patch" "f47eaebc0c5c" "1b52xm3awpigasaz0hk5b13l7v4ry9vrawf571lzy2wwhphs4nxx") - (mozilla-patch "icecat-CVE-2017-7779-pt03.patch" "40ce248a8c15" "1b722fiifr999ga0991cg5mlhidcnvf3zx2aiq5zjaabqn0f4dzk") - (mozilla-patch "icecat-CVE-2017-7798-pt2.patch" "0c8359ac6718" "1w0v2p5jnhzvcsx8h1bglwjhp5y5bg1g8pzpvjw7pg1wlq2frccr") - (mozilla-patch "icecat-CVE-2017-7779-pt04.patch" "8c27a68ee87e" "0kn05q8nvp26w5rnj8r0byw89h2awmwn04l9l3xv2i5w2a7zmjzf") - (mozilla-patch "icecat-CVE-2017-7779-pt05.patch" "b2ee0c5466da" "0jgwsppq0606lwg5jk9q69lqa14q3j7h3c7q6mxbz7zqrcg7d0zg") - (mozilla-patch "icecat-CVE-2017-7779-pt06.patch" "25f6ec16e501" "1yqd5ndwgd8x2pj9k2bnaq3rb1g7wikq0ii7l4dm6bqwabi2rdsg") - (mozilla-patch "icecat-CVE-2017-7779-pt07.patch" "30443b4f758e" "0riszl3xnpfq5ffywygrc12nsvx0ffd36d5rf4vp87r8lj3fr55r") - (mozilla-patch "icecat-CVE-2017-7779-pt08.patch" "1b934ab92c59" "114cvfzfxgkwwd4zpnrmm2kx6m94k0b3xcraba9aawwwhdxj6a1d") - (mozilla-patch "icecat-CVE-2017-7779-pt09.patch" "830a345dc0e7" "01riivv033w3mr8b2myaw38rz2za1bdlhybny737ly68hhc67xdz") - (mozilla-patch "icecat-CVE-2017-7786.patch" "5c26df489768" "1fdw4zbn0ilfghanxky4y7qcmkpkks2q1aqkzv26dnhhrr8350a1") - (mozilla-patch "icecat-CVE-2017-7791.patch" "f21e4d78a0a8" "0szsc3zm3wgrw8pxm0rz54whkrc14yy4d8vwmxgqsdns43qjgkpk") - (mozilla-patch "icecat-CVE-2017-7779-pt10.patch" "f19b6c6a0c6c" "0wkr010qnh4127z1j7fp45sqdk2da9x7j2k405r0x5bgqdd09qzp") - (mozilla-patch "icecat-CVE-2017-7784.patch" "8353a3fa4106" "0kzs8pl6spjwgdsmiw702zvbvz73ng9zf184clsfr82l8kmggbgw") - (mozilla-patch "icecat-bug-1371889.patch" "b38fed9a9772" "14vzsldlv4hjpxgnl6fjjbzhgcwsmd52v06cgmv0a7y3lnggj3hp"); XXX backed out upstream - (mozilla-patch "icecat-CVE-2017-7787.patch" "c254d3cc826c" "0pixwr18qik87c8qf4irg6hdffd8rbwpng73jxg05h7s827nfw3g") - (mozilla-patch "icecat-CVE-2017-7792.patch" "6356dbf20658" "0a0hsxkik7ysfa48w8k21lidaabwpmxi1d3214r5zqkqqfhn9qjm") - (mozilla-patch "icecat-bug-1358073.patch" "8d6e685d061b" "0430gwg7zzbg0q9w2m04s5ljh47bc8x1gxvmkzbn23bh1wy4d4sq") - (mozilla-patch "icecat-bug-1370869.patch" "3b8fde840188" "0vkymvzkfpzpg86npa5vpvvf564k18hkfdz8857rl0z4dp4rybzx") - (mozilla-patch "icecat-CVE-2017-7779-pt11.patch" "267b649087ff" "04wzazdm0kvbfcgmlhx8qs1ibqn8sbvqdsd237rja5wpr761xxf1") - (mozilla-patch "icecat-bug-1354796.patch" "69d1a9de76b9" "1q0p4kf8pvnkwwff3lz526pjj15a25pf724awblkcnzamwbib5ns") - (mozilla-patch "icecat-bug-1363027.patch" "c5eaa2d51b9f" "1xyj5n1vqhscc369q6wxibs2igbilaiwyc0q9cq64j2qx8q0yqah") - (mozilla-patch "icecat-bug-1364189.patch" "852a7781259e" "12y344p54avz5mrqirq14zp4csx8ydilnjv9nsw48kpa9y0l5xsg") - (mozilla-patch "icecat-bug-1342417.patch" "37ccdc5fff2b" "1acywg8girplbs7wjrjbvkximhiyizddmnkkq1ldd0l3qbx9nihc") - (mozilla-patch "icecat-CVE-2017-7779-pt12.patch" "057ed884ecb0" "1m49bqkq5lzc2j59wgwy0gbzvqj50p9lfn7cbc2n01v6d7m8rc2j") - (mozilla-patch "icecat-CVE-2017-7779-pt13.patch" "dd7ed649b82f" "1fama1l2vx4p6ahhrsrpysfbk9nh5gwbi4pdnclpyxd42idsdqxs") - (mozilla-patch "icecat-CVE-2017-7753.patch" "731958f7ff4d" "0l3i3mkb6rslnjag3caf4xyhjzxn91wfs0g6dbika4sxnhfs5d4i") - (mozilla-patch "icecat-bug-1364870.patch" "de8deecbcb02" "048ic1vk7fd7wxqjgjqlnb7kv03ynaa4wkrk0ka8m39pkjh3yyxj") - (mozilla-patch "icecat-bug-1365333.patch" "e3d13b270f45" "0jr8hpxpmfgrbh09xd9nj597cdnc6kl6gs5nir4zlzbbn8kp3429") - (mozilla-patch "icecat-bug-1372063.patch" "58a144bf9677" "12y8vikbzcfcfiidjdq67dvdhhvylx68wdgnypsafrd1q8dx9jza") - (mozilla-patch "icecat-bug-1373970.patch" "8321ef71adb5" "1wk8kq9n2vhqlinvvw01avv3c7qj0k3qnn7dj0whnl08a5yrqhpl") - (mozilla-patch "icecat-bug-1338646.patch" "322c18d011af" "1yqb7zmjz211ryb98pjj7axbj6bwkj63rmfyifsybdy3zpb4nf48") - (mozilla-patch "icecat-CVE-2017-7779-pt14.patch" "f9bc084fbb8a" "1ssml15yzx9s0wraq4n0xvq5bw7j8xq0p2y39h8j3f1c448n0j50") - (mozilla-patch "icecat-bug-1359477.patch" "9b70b5b852e4" "0z2bi7w46g7mm8msav8vz28mgvnv21z3a5876n9gpw317gns4d6a") - (mozilla-patch "icecat-CVE-2017-7779-pt15.patch" "6785c2a852da" "0p9jr171qi59scr5lrj6g0mv8mgm1i1wglr3jd16xywb0ymynnn5") - (mozilla-patch "icecat-CVE-2017-7779-pt16.patch" "11c8e23f0fd7" "0zcikv6dn7biii4gspv2kfvma5hc76hk86jahm3zl2zlkk8ikfm9") - (mozilla-patch "icecat-bug-1355168.patch" "f45ba43512ad" "0p28q5acns5zjj7ks2x5lrmwzzps741507sq31xvrpzan5yav37x") - (mozilla-patch "icecat-bug-1308820.patch" "e9a10fac6aae" "1s2zaka6ik1rmylamyh38vsqnqlblbqdhjpp0cv08fjb9flh5sbw") - (mozilla-patch "icecat-bug-1305036.patch" "c42a348f2ed0" "1pz7qbdv9xvyd1dy7g9h047c0gmrgp5qdy2360qjk6879n74h1zb") - (mozilla-patch "icecat-bug-1342913.patch" "f02db36497d2" "0g1kg418l1cibh5k1sjqj2vs2jcblpbn7b06qazk2kzcg70vf5gv") - (mozilla-patch "icecat-CVE-2017-7800.patch" "0a44ed156da5" "1y8z1czm7f91p9bpd32b9k43nl0b9g4fzwv4w0khby9y38xgvcbs") - (mozilla-patch "icecat-CVE-2017-7801.patch" "0a86729d653e" "0wyh7qskjwq9274d25p2ajylaab5mj5h8by58rz9lxsz06zrnz9f") - (mozilla-patch "icecat-CVE-2017-7779-pt17.patch" "98ff43fb228a" "0ih0nsmk8rzdrajzlnryqiqb71jg7v4p71hfla2hrlvn41r3709m") - (mozilla-patch "icecat-CVE-2017-7802.patch" "09f62bfc5800" "07q18qzxja1cywihr5vhhws328zghrwc6ldx8kcsawia1r1i5gp7") - (mozilla-patch "icecat-bug-1321803-pt1.patch" "cfb75012cfbd" "1bwwfm1vhr7ddsvmi1cinwdq6f4nd71fkd9lbnlhmh4ix63gz2yl") - (mozilla-patch "icecat-bug-1321803-pt2.patch" "0f3f951461d7" "1rp1cj4c0dkhd4pda88kx499h7ycw3037yh2khff78y61ckg2a85") - (mozilla-patch "icecat-bug-1321803-pt3.patch" "b654a39db998" "1v79mh8lrnn7q40c8zj24byrqyw3x8fwcw25w90wqajnbf0ixskx") - (mozilla-patch "icecat-bug-1334338.patch" "1be1fe3c9622" "1mhd9nyp8map76hgwrhm1k955fz8y5iszdvvgrv3z1r1h77k0nz0") - (mozilla-patch "icecat-bug-1379538.patch" "8fa66bc91b07" "1l44rwkdrv9y41nfb9h3fkykk3ci7xclp6rfwbbzm4293l00adrd") - (mozilla-patch "icecat-CVE-2017-7779-pt18.patch" "7c095249ef8a" "05dbvxlmh7jljjmis540nfgk2nn968prmxrm96674avn33989sqy") - (mozilla-patch "icecat-bug-1073952.patch" "06db7fb30689" "19qf9lrwy48fjzz3wpjfxsgqab68dnlci8jrwsljhpy6787xwxg2") - (mozilla-patch "icecat-CVE-2017-7803.patch" "c52d8ce8d5df" "03l9hk278b9mw75rxpn2ay1slyz21axa2l7dfxwkvj5vdn7ykdbj") - (mozilla-patch "icecat-CVE-2017-7779-pt19.patch" "d68c9edf056f" "0zfz0l9m675n4vvm87n8g3bdhhysla4qnywli5kwjy4krj9kq6qa") - (mozilla-patch "icecat-CVE-2017-7779-pt20.patch" "5dd82ab194b9" "10mdzwxibnmqs7y5arf8sjnva31i5vhbprlc63n74h8gh8k5kdlp") - (mozilla-patch "icecat-CVE-2017-7779-pt21.patch" "8fc70b2b57a8" "0yszfmb47x3rrzn5wncv112c1b7xw11j62adx4f7950fdj7zqr32") - (mozilla-patch "icecat-bug-1379444.patch" "47dd26630291" "0r2rc634sr4a5mfc53p1wx8d0zm6dsxiw2vzc7l89mac0d0cmi5n") - (mozilla-patch "icecat-bug-1372467.patch" "0f906e04a41d" "0f2zdpnb23yg3v5f1ha24cmagcwa01kf2xz1l2lcws4ss1w5b4a9") - (mozilla-patch "icecat-bug-1372383.patch" "56349462ff47" "17gc7kf0i367c1yh2w1701k8snvdm04nznc3q3yxdl3wxkh3c3sb") - (mozilla-patch "icecat-CVE-2017-7779-pt22.patch" "7b79969a18ee" "0ixycxbjh0wmihrhzpyjbkcnvwwrzs3ffb0lymzvqnr90yxvxhyy") - (mozilla-patch "icecat-CVE-2017-7779-pt23.patch" "f0ab032fd674" "04wc4i94cfj2vcawrv7hgbb70fkxggi7s6srk3i184686rczzpyw") - (mozilla-patch "icecat-bug-1308908.patch" "48a89721d076" "01gvdzy6whp2dqmjvx49f4mvl75dhjgr8dvx71pg4sx3xmdbkzyq") - (mozilla-patch "icecat-bug-1347667.patch" "ef1d17821945" "0s6gaarnvnibgf9x0xqcymaqc63lnbh9fm2g33i8cpp1xjhmywcv") - (mozilla-patch "icecat-bug-1367128-pt1.patch" "5a0f69630b03" "1vqbwmy58qxwfaisq0dxvvbsd5w5i4yb691i78gw1dv7kgf523qy") - (mozilla-patch "icecat-bug-1367128-pt2.patch" "7db52eca97b2" "081p8izjxscylfs090c9mzlmfvpdfvg1qsf5rik30hvifcpxp6lq") - (mozilla-patch "icecat-bug-1367128-pt3.patch" "c448439eb5dc" "18gp7mg3zh9dxi1300mcm0zk67nlmvp5q50gnyc1v2sv0gs6fdfb") - (mozilla-patch "icecat-bug-1377016.patch" "319a986ae1f4" "1dlmrklkpx42c72pblpw1fi91dhqarqyl3ldnd4943x2hsy3am8k") - (mozilla-patch "icecat-bug-1342433.patch" "09f5bd33efb8" "0dky981ggyc0237mbbyy1chndk0aznkhw00d3lrafiyxsyk6vg3z") - (mozilla-patch "icecat-bug-1359058-pt1.patch" "7ccb26caa02f" "1q97f4qbwjnz6f3g5dcy2v0av9jgbaplaz9pnm5yqdc250f5bhjz") - (mozilla-patch "icecat-bug-1359058-pt2.patch" "a93c1a40f0d8" "0gafbwv2npdjqh41fpvzmzdw3kcw1b41gm3jg9biwqxxwnvqqmfj") - (mozilla-patch "icecat-bug-1382303-pt1.patch" "688c9284fb12" "1rqimwkh8krihabsx7x2awvxls8n9dm2bmbl133fnkp2sjya979w") - (mozilla-patch "icecat-bug-1382303-pt2.patch" "7f969ba7b6e8" "036n1yrmmb6gydxcgyps89g63kj1w2rihk1zsmk7yw3crln226ai") - (mozilla-patch "icecat-bug-1382303-pt3.patch" "7e7b4f104462" "0wkw72qqyql528hvssrqyq72f5csfxa5fgv5s903csh97vawfl7i") - (mozilla-patch "icecat-bug-1383000.patch" "ce65d0641c07" "08bxn3b8rgjhkvdndc7mrd0k1715wbpa5qaxhslxlgj6lpkgk0b1") - (mozilla-patch "icecat-CVE-2017-7807.patch" "a86c77d533ee" "0mzfxpyk4484dk3j1sgplakx39ya0jnp3plxvcmvlc47ry60yq93") - (mozilla-patch "icecat-bug-1346620.patch" "d71000abc9bf" "10d632nq5zbhndrsx2vpkl7jprlnas361n1yh9s9szn8k4mj01rf") - (mozilla-patch "icecat-bug-1381016.patch" "c74486f87dc3" "1l938a2lhrlqfhmgrpypx13v6jw08528m4gnllr2h5sk2x65czip") - (mozilla-patch "icecat-bug-1371657.patch" "20a1a6ad46d5" "17yn5dpymrymgdywah403fzw0p2y9bjkccg0h4d221i3pwns4bcz"))) + (mozilla-patch "icecat-bug-546387.patch" "d13e3fefb76e" "1b760r0bg2ydbl585wlmajljh1nlisrwxvjws5b28a3sgjy01i6k") + (mozilla-patch "icecat-bug-1350152.patch" "f822bda79c28" "1wf56169ca874shr6r7qx40s17h2gwj7ngmpyylrpmd1c6hipvsj") + (mozilla-patch "icecat-bug-1388166.patch" "fbb0bdb191d5" "1y8wpj38vw1dd6f375s9i0mrk9bd8z8gz5g70p4qynfllpkn072d") + (mozilla-patch "icecat-CVE-2017-7810-pt1.patch" "fbddb5cdd3c7" "0k5nyl2z1y2rx9fwqyfj64678yv6v3pnmshgk552pbzqmaf8i1hq") + (mozilla-patch "icecat-CVE-2017-7810-pt2.patch" "76c25987a275" "095b9vwsiza9ikbnnppfcld16h75x5bxjfxc73913y04n0i42ifh") + (mozilla-patch "icecat-CVE-2017-7810-pt3.patch" "32eec29a85a5" "057simakqg56jvas1wkskg5kszn96m74nca26x08d5w7rzmbv1q2") + (mozilla-patch "icecat-bug-1373222.patch" "ecef71fa933f" "0vsymgy5j702lamvh2riahni7rdj9ba3bd6i4a2m22d638rwp1i2") + (mozilla-patch "icecat-CVE-2017-7814.patch" "68a444daf85b" "1faaadaajidzb9i00710zxdyv370hlrdg1l5rw2ymfmzbjj4jqyd") + (mozilla-patch "icecat-bug-1376825.patch" "eeeec9cafc4e" "188qf6zi9kyxb33330yia6wmrd5mdyqn5hr1cl38zy7m3akv8srh") + (mozilla-patch "icecat-bug-1385272.patch" "d68fa12fbffc" "13gh97vz9n2b7303jcvr1072iy8bghy9chvbmxzvw82prvkscavw") + (mozilla-patch "icecat-bug-1390002.patch" "c24e6fc9f689" "0aswhy5fz2f6wzd5j5gg3nqvz707ip344089h2z2chcp146vxmf4") + (mozilla-patch "icecat-CVE-2017-7810-pt4.patch" "ae110cf77596" "0gdrkfq9wy9cfcdgbj14ci86xgh2prkbz69pfy97r9igd8059syw") + (mozilla-patch "icecat-CVE-2017-7810-pt5.patch" "b8417112486d" "1hya6lccz7vm51v4f6ww072794cwzmfn9xhxmvrnqbiyspxx5fz4") + (mozilla-patch "icecat-bug-1386905.patch" "badbf4308211" "0fj1pyjqfdsbrlfykwmkzav2nvdj1f4grwq3cal9f7ay6wjnfs9b") + (mozilla-patch "icecat-CVE-2017-7810-pt6.patch" "d78675515c78" "03w5hqy40xkckbaf5bm9kdbdqvp9ffvpk9mlrc9lja6b7qa4pjhg") + (mozilla-patch "icecat-bug-1382303.patch" "f01155fe4d54" "0hnz1kvmvspg6453kydsklbvrjgzn8x3djvrym3f2xl2yinaf90d") + (mozilla-patch "icecat-bug-1393467.patch" "4eec2a60622c" "1h006mwcsagq7mz7haymwgr7fn4zj14n5lxbjcmhdqrxdvma2hjj") + (mozilla-patch "icecat-bug-1384801.patch" "9556e792f905" "0i74r807189s8i78483caiifw68cn7fs543i4cys6k3gn12dhhjy") + (mozilla-patch "icecat-CVE-2017-7823.patch" "bd284765b5bc" "1c4hss87kc4qwx30magbqczm9h7zmwirjfc8zimqbrnwv9bbsfh3") + (mozilla-patch "icecat-CVE-2017-7805.patch" "113da8d46aa4" "1vy0lw659mwixmb57mgybga152rdwqd5zj1g7nfw1zgp15pfwr75") + (mozilla-patch "icecat-bug-1376399.patch" "58a574502ca9" "1zmg91pg0s5nwngc32a4fywidvxyaayvx1h052fsv0i4cfm16l9v") + (mozilla-patch "icecat-bug-1396570.patch" "24db61862c54" "0af1jjfma042xvn0xhgims1yvb2b51nhn4m0pcfwg3fn0llmka03") + (mozilla-patch "icecat-CVE-2017-7819.patch" "1a02f11c6efe" "18a9qvdvrqw34qw3lljg6gkn358jl23lyimhmbc964023rhs36sz") + (mozilla-patch "icecat-CVE-2017-7810-pt7.patch" "002686d9536f" "065g0d759wfiaj69b1sqg7l08p2knc0q9m9hvkgwwsf0r78xcbjj") + (mozilla-patch "icecat-CVE-2017-7810-pt8.patch" "eaadb31758d8" "0b3k3la6ykac5mbp9gyqqgjbmj19vx9sl1b0wp387qar0p12nyaz") + (mozilla-patch "icecat-bug-1368269.patch" "0cff5e66e0f4" "0jb0wqi7c0ih4441s1908j6gv18v4inh7k2w47h3c9nhz4rgyrw7") + (mozilla-patch "icecat-CVE-2017-7793.patch" "6ff3c82962f0" "0bw82034kdmrpznigbavzzsiybzrw8giyf8v0z2cxf6mwl72bf9k") + (mozilla-patch "icecat-bug-1400399.patch" "d6f78b1349b7" "0i3gwr2al3xl65yfa3nimvy8dp0jzpx21f6bjw18xwn7zkkh9j54") + (mozilla-patch "icecat-bug-1400721.patch" "285cde398833" "0a1i32zl30wfyw7zkqj595s94n6wdlg5c495m0910pd05pjg3qam"))) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index f84cc27836..2a52c4c697 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> +;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system python) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages algebra) @@ -70,14 +72,14 @@ (define-public blender (package (name "blender") - (version "2.78a") + (version "2.79") (source (origin (method url-fetch) - (uri (string-append "http://download.blender.org/source/" + (uri (string-append "https://download.blender.org/source/" "blender-" version ".tar.gz")) (sha256 (base32 - "1byf1klrvm8fdw2libx7wldz2i6lblp9nih6y58ydh00paqi8jh1")))) + "16f84mdzkmwjmqahjj64kbyk4kagdj4mcr8qjazs1952d7kh7pm9")))) (build-system cmake-build-system) (arguments `(;; Test files are very large and not included in the release tarball. @@ -134,7 +136,7 @@ ("openal" ,openal) ("python" ,python-wrapper) ("zlib" ,zlib))) - (home-page "http://blender.org/") + (home-page "https://blender.org/") (synopsis "3D graphics creation suite") (description "Blender is a 3D graphics creation suite. It supports the entirety of @@ -654,3 +656,33 @@ and understanding different BRDFs (and other component functions).") It supports sub-pixel resolutions and anti-aliasing. It is also library for rendering SVG graphics.") (license license:gpl2+))) + +(define-public python-pastel + (package + (name "python-pastel") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pastel" version)) + (sha256 + (base32 + "1hqbm934n5yjwn31aq8h7shrr0rcy326wrqfc856vyn0gr0sy21i")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/sdispater/pastel") + (synopsis "Library to colorize strings in your terminal") + (description "Pastel is a simple library to help you colorize strings in +your terminal. It comes bundled with predefined styles: +@enumerate +@item info: green +@item comment: yellow +@item question: black on cyan +@item error: white on red +@end enumerate +") + (license license:expat))) + +(define-public python2-pastel + (package-with-python2 python-pastel)) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 6e43dc9918..bc8f75ba12 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -98,7 +98,7 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.12.2") + (version "1.12.3") (source (origin (method url-fetch) @@ -107,7 +107,7 @@ arrays of data.") version ".tar.xz")) (sha256 (base32 - "1fllz7n58lavyy4nh64xc7izd4ffhl12a2ff0yg4z67al8wkzplz")))) + "0vi1g8rmmsnd630ds3jwv2iph46ll8y07fzf04mz15q88j9g926k")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -146,7 +146,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.12.2") + (version "1.12.3") (source (origin (method url-fetch) @@ -154,7 +154,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "0x86a7aph0y6gyq178plvwvbbyhkfb3hf0gadx9sk5z1mzixqrsh")))) + "19ffwdch7m777ragmwpy6prqmfb742ym1n3ki40s0zyki627plyk")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -201,7 +201,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.12.2") + (version "1.12.3") (source (origin (method url-fetch) @@ -210,7 +210,7 @@ for the GStreamer multimedia library.") name "-" version ".tar.xz")) (sha256 (base32 - "15pfw54fsh9s9xwrnbap4z4njwgqdfvq52k562d2hc5b11rfx4am")))) + "00sznj1sl97fqpn6j8ngps04clvxp8h8yhw6lvszx4b855wz9rqk")))) (build-system gnu-build-system) (inputs `(("aalib" ,aalib) @@ -260,14 +260,14 @@ developers consider to have good quality code and correct functionality.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.12.2") + (version "1.12.3") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0dwyq03g2m0p16dwx8q5qvjn5x9ia72h21sf87mp97gmwkfpwb4w")))) + "1v5z3i5ha20gmbb3r9dwsaaspv5fm1jfzlzwlzqx1gjj31v5kl1n")))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments @@ -345,7 +345,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.12.2") + (version "1.12.3") (source (origin (method url-fetch) @@ -353,7 +353,7 @@ par compared to the rest.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0rplyp1qk359c97ig9i2vc1v34g92khd8dslwfipva1ypwmr9hqw")))) + "0lh00rg26iy5lr5al23lxsyncjqkgzph1bzkrgp8x9sfr62ab378")))) (build-system gnu-build-system) (inputs `(("gst-plugins-base" ,gst-plugins-base) @@ -384,7 +384,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") (define-public gst-libav (package (name "gst-libav") - (version "1.12.2") + (version "1.12.3") (source (origin (method url-fetch) (uri (string-append @@ -392,7 +392,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") name "-" version ".tar.xz")) (sha256 (base32 - "1crdahkjm23byg1awcrjkmgfbalfpvvac7h7whm6b2r1pfwkbdsv")))) + "0l4nc6ikdx49l7bdrk3bd9p3pzry8a328r22zg48gyzpnv5ghph1")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-system-libav") @@ -422,7 +422,7 @@ compression formats through the use of the libav library.") (define-public python-gst (package (name "python-gst") - (version "1.12.2") + (version "1.12.3") (source (origin (method url-fetch) (uri (string-append @@ -430,7 +430,7 @@ compression formats through the use of the libav library.") "gst-python-" version ".tar.xz")) (sha256 (base32 - "0iwy0v2k27wd3957ich6j5f0f04b0wb2mb175ypf2lx68snk5k7l")))) + "19rb06x2m7103zwfm0plxx95gb8bp01ng04h4q9k6ii9q7g2kxf3")))) (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 e942f51719..d7c18f90e1 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -11,7 +11,7 @@ ;;; Coypright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org> ;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; Coypright © 2017 Roel Janssen <roel@gnu.org> @@ -379,7 +379,7 @@ printing and other features typical of a source code editor.") (define-public gtksourceview (package (name "gtksourceview") - (version "3.24.2") + (version "3.24.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -387,7 +387,7 @@ printing and other features typical of a source code editor.") name "-" version ".tar.xz")) (sha256 (base32 - "17xqrnh2v9gba57ij2m9kngxwh19fzsqkx1rfasnv4zaqvqqhv69")))) + "14x738xrz9q8qz13xd7dys748ryxyq2srbqyaa9r7n47h2av2zr0")))) (build-system gnu-build-system) (arguments '(#:phases @@ -427,6 +427,7 @@ highlighting and other features typical of a source code editor.") (define-public gdk-pixbuf (package (name "gdk-pixbuf") + (replacement gdk-pixbuf-2.36.10) (version "2.36.6") (source (origin (method url-fetch) @@ -483,6 +484,7 @@ in the GNOME project.") (define-public gdk-pixbuf+svg (package (inherit gdk-pixbuf) (name "gdk-pixbuf+svg") + (replacement gdk-pixbuf+svg-2.36.10) (inputs `(("librsvg" ,librsvg) ,@(package-inputs gdk-pixbuf))) @@ -506,6 +508,26 @@ in the GNOME project.") (synopsis "GNOME image loading and manipulation library, with SVG support"))) +;; Graft replacement packages to fix these vulnerabilities. +;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2862 +;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2870 +;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6311 +(define-public gdk-pixbuf-2.36.10 + (package (inherit gdk-pixbuf) + (version "2.36.A") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/gdk-pixbuf/2.36/" + "gdk-pixbuf-2.36.10.tar.xz")) + (sha256 + (base32 + "1klsjkdbashd8yb8xjsc9ff3bz32n2id5s79nrrmqiw9df4zmxpq")))))) + +(define-public gdk-pixbuf+svg-2.36.10 + (package (inherit gdk-pixbuf+svg) + (version "2.36.A") + (source (origin (inherit (package-source gdk-pixbuf-2.36.10)))))) + (define-public at-spi2-core (package (name "at-spi2-core") @@ -838,7 +860,7 @@ exceptions, macros, and a dynamic programming environment.") (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 6dacc472a8..0bcc524ed7 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -365,7 +365,7 @@ AM_SCM_LOG_FLAGS = --no-auto-compile -s") ;; reasons. It does not fail when run outside of Guix. (("tests/database.scm") "")) #t)) - (add-before 'configure 'autogen + (add-after 'fix-bug-22 'autogen (lambda _ (zero? (system* "sh" "autogen.sh"))))))) (inputs @@ -654,12 +654,12 @@ format is also supported.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'autoreconf - (lambda _ - ;; Repository comes with a broken symlink - (delete-file "README") - (symlink "README.org" "README") - (zero? (system* "autoreconf" "-fi"))))))) + (add-after 'unpack 'autoreconf + (lambda _ + ;; Repository comes with a broken symlink + (delete-file "README") + (symlink "README.org" "README") + (zero? (system* "autoreconf" "-fi"))))))) (native-inputs `(("autoconf" ,(autoconf-wrapper)) ("automake" ,automake) @@ -1126,7 +1126,7 @@ Guile's foreign function interface.") ("sqlite" ,sqlite))) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'autoreconf + (add-after 'unpack 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vfi")))) (add-before 'build 'set-sqlite3-file-name diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 4f9e90e552..7e879f4ad5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages libffi) + #:use-module (gnu packages lisp) #:use-module (gnu packages lua) #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) @@ -56,6 +57,45 @@ #:use-module (guix utils) #:use-module (ice-9 regex)) +(define-public cl-yale-haskell + (let ((commit "85f94c72a16c5f70301dd8db04cde9de2d7dd270") + (revision "1")) + (package + (name "cl-yale-haskell") + (version (string-append "2.0.5-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "http://git.elephly.net/software/yale-haskell.git") + (commit commit))) + (file-name (string-append "yale-haskell-" commit "-checkout")) + (sha256 + (base32 + "0bal3m6ryrjamz5p93bhs9rp5msk8k7lpcqr44wd7xs9b9k8w74g")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + ;; Stripping binaries leads to a broken executable lisp system image. + #:strip-binaries? #f + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ + (setenv "PRELUDE" "./progs/prelude") + (setenv "HASKELL_LIBRARY" "./progs/lib") + (setenv "PRELUDEBIN" "./progs/prelude/clisp") + (setenv "HASKELLPROG" "./bin/clisp-haskell") + #t))))) + (inputs + `(("clisp" ,clisp))) + (home-page "http://git.elephly.net/software/yale-haskell.git") + (synopsis "Port of the Yale Haskell system to CLISP") + (description "This package provides the Yale Haskell system running on +top of CLISP.") + (license license:bsd-4)))) + (define ghc-bootstrap-x86_64-7.8.4 (origin (method url-fetch) diff --git a/gnu/packages/hexedit.scm b/gnu/packages/hexedit.scm index 8ddc0ffd4f..88dbfb234d 100644 --- a/gnu/packages/hexedit.scm +++ b/gnu/packages/hexedit.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> ;;; ;;; This file is part of GNU Guix. diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm index 2200b6663d..a74c321a5e 100644 --- a/gnu/packages/ibus.scm +++ b/gnu/packages/ibus.scm @@ -135,7 +135,7 @@ may also simplify input method development.") (define-public ibus-libpinyin (package (name "ibus-libpinyin") - (version "1.9.0") + (version "1.9.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/libpinyin/" @@ -143,15 +143,15 @@ may also simplify input method development.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0gly314z6zn2fv52jw0764k66ry97llk009bk1q1iwf6rr829v68")))) + "0wpgs0m62l4zlis9f11b7xknhgnw2xw485nc2xrzk880s17pp1mr")))) (build-system glib-or-gtk-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'autogen + `(#: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 + (add-after 'wrap-program 'wrap-with-additional-paths (lambda* (#:key inputs outputs #:allow-other-keys) ;; Make sure 'ibus-setup-libpinyin' runs with the correct ;; PYTHONPATH and GI_TYPELIB_PATH. @@ -170,8 +170,8 @@ may also simplify input method development.") ("libpinyin" ,libpinyin) ("bdb" ,bdb) ("sqlite" ,sqlite) - ("python" ,python-2) - ("pyxdg" ,python2-pyxdg) + ("python" ,python) + ("pyxdg" ,python-pyxdg) ("gtk+" ,gtk+))) (native-inputs `(("pkg-config" ,pkg-config) @@ -190,7 +190,7 @@ ZhuYin (Bopomofo) input method based on libpinyin for IBus.") (define-public libpinyin (package (name "libpinyin") - (version "2.0.0") + (version "2.1.0") (source (origin (method url-fetch) (uri (string-append @@ -199,7 +199,7 @@ ZhuYin (Bopomofo) input method based on libpinyin for IBus.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "17fibx9psrxfiznm4yw8klgbnh3ksyisx0pm1n59kxkrq61v8y0b")))) + "1iijpin65cmgawfx7sfdw1anmabljva0af1f9gx8ad6b4slhvknn")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index f82d4baf24..dfb68488ee 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -54,7 +54,7 @@ (define-public feh (package (name "feh") - (version "2.19.3") + (version "2.20") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -62,7 +62,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "1l3yvv0l0ggwlfyhk84p2g9mrqvzqrg1fgalf88kzppvb9jppjay")))) + "02vhdv16nf4kjna4inpbfy4k3p40bhl7xpc4kh4xvily14146l2b")))) (build-system gnu-build-system) (arguments '(#:phases (alist-delete 'configure %standard-phases) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 94c683aa9e..e525c75693 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> @@ -520,7 +520,12 @@ work.") (sha256 (base32 "0yvfghxwfm3dcqr9krkw63pcd76hzkknc3fh7bh11s8qlvjvrpbg")) - (patches (search-patches "openjpeg-CVE-2017-12982.patch")))) + (patches (search-patches "openjpeg-CVE-2017-12982.patch" + "openjpeg-CVE-2017-14040.patch" + "openjpeg-CVE-2017-14041.patch" + "openjpeg-CVE-2017-14151.patch" + "openjpeg-CVE-2017-14152.patch" + "openjpeg-CVE-2017-14164.patch")))) (build-system cmake-build-system) (arguments ;; Trying to run `$ make check' results in a no rule fault. @@ -868,7 +873,7 @@ channels.") version ".tar.gz"))) (sha256 (base32 - "1hsdzlzgkipprqh93yj81mrckl2l7c2mn2i84691pallnjz5qqhc")))) + "1yza317qxd8yshvqnay164imm0ks7cvij8y8j86p1gqi1153qpn7")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no `check' target (propagated-inputs @@ -929,7 +934,7 @@ convert, manipulate, filter and display a wide variety of image formats.") (define-public jasper (package (name "jasper") - (version "2.0.13") + (version "2.0.14") (source (origin (method url-fetch) (uri (string-append "https://github.com/mdadams/jasper/archive/" @@ -937,7 +942,7 @@ convert, manipulate, filter and display a wide variety of image formats.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "090cyqcvqp4y12nc57gvcbrk3ap1rnnixd4qj90sx0pw3fs1615m")))) + "0yx9y5y0g6jv142vnqp50j3k8k5yqznz3smrblv192wgfbm6w9l5")))) (build-system cmake-build-system) (inputs `(("libjpeg" ,libjpeg))) (synopsis "JPEG-2000 library") diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 4056d486fb..7599f87311 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,14 +46,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-9") + (version "6.9.9-15") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0p7jz55zry5r1lv34ymx536fqymvy3iwzwy0kvj53mlmsaad7vjr")))) + "0bxgdc1qiyvag6a2iiqcbwp4ak0m1mzi9qhs51fbrvv6syy12m6c")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") @@ -177,9 +178,14 @@ script.") (base32 "122zgs96dqrys62mnh8x5yvfff6km4d3yrnvaxzg3mg5sprib87v")) (patches - (search-patches "graphicsmagick-CVE-2017-12935.patch" + (search-patches "graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch" + "graphicsmagick-CVE-2017-12935.patch" "graphicsmagick-CVE-2017-12936.patch" - "graphicsmagick-CVE-2017-12937.patch")))) + "graphicsmagick-CVE-2017-12937.patch" + "graphicsmagick-CVE-2017-13775.patch" + "graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch" + "graphicsmagick-CVE-2017-14042.patch" + "graphicsmagick-CVE-2017-14165.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 0f68cc532a..552349247f 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 ng0 <ng0@libertad.pw> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> @@ -69,26 +69,33 @@ (patches (search-patches "quassel-fix-tls-check.patch")) (sha256 (base32 - "0ka456fb8ha3w7g74xlzfg6w4azxjjxgrhl4aqpbwg3lnd6fbr4k")))) + "0ka456fb8ha3w7g74xlzfg6w4azxjjxgrhl4aqpbwg3lnd6fbr4k")) + (modules '((guix build utils))) + ;; We don't want to install the bundles scripts + (snippet + '(begin + (delete-file-recursively "data/scripts") + (substitute* "data/CMakeLists.txt" + (("NOT WIN32") "WIN32")))))) (build-system cmake-build-system) (arguments ;; The three binaries are not mutually exlusive, and are all built ;; by default. - `(#:configure-flags '(;;"-DWANT_QTCLIENT=OFF" ; 5.0 MiB - ;;"-DWANT_CORE=OFF" ; 2.3 MiB - ;;"-DWANT_MONO=OFF" ; 6.3 MiB + '(#:configure-flags '(;;"-DWANT_QTCLIENT=OFF" ; 5.2 MiB + ;;"-DWANT_CORE=OFF" ; 2.4 MiB + ;;"-DWANT_MONO=OFF" ; 6.4 MiB "-DUSE_QT5=ON" ; default is qt4 - "-DWITH_KDE=OFF" ; no to integration - "-DWITH_OXYGEN=ON" ; on=embed icons + "-DWITH_KDE=OFF" ; no to kde integration ... + "-DWITH_OXYGEN=ON" ; therefore we install bundled icons "-DWITH_WEBKIT=OFF") ; qtwebkit isn't packaged #:tests? #f)) ; no test target - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs + (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) - ("oxygen-icons" ,oxygen-icons) - ("qca" ,qca) + ("pkg-config" ,pkg-config) + ("qttools" ,qttools))) + (inputs + `(("qca" ,qca) ("qtbase", qtbase) - ("qttools" ,qttools) ("qtscript" ,qtscript) ("snorenotify" ,snorenotify) ("zlib" ,zlib))) @@ -143,46 +150,32 @@ SILC and ICB protocols via plugins.") (define-public weechat (package (name "weechat") - (version "1.9") + (version "1.9.1") (source (origin (method url-fetch) (uri (string-append "https://weechat.org/files/src/weechat-" version ".tar.xz")) (sha256 (base32 - "1zvxz98krq98y7jh3yrjbardg3yxp6y2031rvb7rp5ssk8lyp1fc")) + "1z92hprvgp128svfbr25x8j9kd114j9929bzbqasrcd92v31z6f2")) (patches (search-patches "weechat-python.patch")))) - (build-system gnu-build-system) - (native-inputs `(("autoconf" ,autoconf) - ("pkg-config" ,pkg-config) - ("file" ,file) - ("autogen" ,autogen) - ("automake" ,automake) - ("libtool" ,libtool))) + (build-system cmake-build-system) + (native-inputs `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) (inputs `(("ncurses" ,ncurses) - ("diffutils" ,diffutils) - ("gettext" ,gettext-minimal) - ("libltdl" ,libltdl) ("libgcrypt" ,libgcrypt "out") ("zlib" ,zlib) ("aspell" ,aspell) ("curl" ,curl) ("gnutls" ,gnutls) ("guile" ,guile-2.0) - ("openssl" ,openssl) - ("cyrus-sasl" ,cyrus-sasl) ("lua" ,lua-5.1) ("python" ,python-2) ("perl" ,perl) ("tcl" ,tcl))) (arguments - `(#:configure-flags (list (string-append - "--with-tclconfig=" - (assoc-ref %build-inputs "tcl") "/lib")) + `(#:tests? #f ; tests require cpputime #:phases (modify-phases %standard-phases - (add-before 'configure 'autogen - (lambda _ - (zero? (system* "./autogen.sh")))) (add-after 'install 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 947598c7b3..806f13ab89 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -685,7 +685,7 @@ the standard javac executable. The tool runs on JamVM instead of SableVM."))) "--disable-gjdoc") #:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-vif")))) (add-after 'unpack 'remove-unsupported-annotations @@ -1628,6 +1628,10 @@ IcedTea build harness.") (copy-recursively "openjdk.build/docs" doc) (copy-recursively "openjdk.build/images/j2re-image" jre) (copy-recursively "openjdk.build/images/j2sdk-image" jdk) + ;; Install the nss.cfg file to JRE to enable SSL/TLS + ;; support via NSS. + (copy-file (string-append jdk "/jre/lib/security/nss.cfg") + (string-append jre "/lib/security/nss.cfg")) #t))))))) (native-inputs `(("jdk" ,icedtea-7 "jdk") @@ -4171,12 +4175,26 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the #t)))) (build-system ant-build-system) (arguments - ;; FIXME: org.slf4j.NoBindingTest fails with the ominous "This code - ;; should have never made it into slf4j-api.jar". - `(#:tests? #f - #:jar-name "slf4j-api.jar" + `(#:jar-name "slf4j-api.jar" #:source-dir "slf4j-api/src/main" - #:test-dir "slf4j-api/src/test")) + #:test-dir "slf4j-api/src/test" + #:phases + (modify-phases %standard-phases + (add-after 'build 'regenerate-jar + (lambda _ + ;; pom.xml ignores these files in the jar creation process. If we don't, + ;; we get the error "This code should have never made it into slf4j-api.jar" + (delete-file-recursively "build/classes/org/slf4j/impl") + (zero? (system* "jar" "-cf" "build/jar/slf4j-api.jar" "-C" + "build/classes" ".")))) + (add-before 'check 'dont-test-abstract-classes + (lambda _ + ;; abstract classes are not meant to be run with junit + (substitute* "build.xml" + (("<include name=\"\\*\\*/\\*Test.java\" />") + (string-append "<include name=\"**/*Test.java\" />" + "<exclude name=\"**/MultithreadedInitializationTest" + ".java\" />")))))))) (inputs `(("java-junit" ,java-junit) ("java-hamcrest-core" ,java-hamcrest-core))) diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm index 85017453ff..2d1f6acfb9 100644 --- a/gnu/packages/javascript.scm +++ b/gnu/packages/javascript.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +33,7 @@ (define-public font-mathjax (package (name "font-mathjax") - (version "2.7.1") + (version "2.7.2") (source (origin (method url-fetch) @@ -42,7 +43,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0sbib5lk0jrvbq6s72ag6ss3wjlz5wnk07ddxij1kp96yg3c1d1b")))) + "1r72di4pg4i6pfhcskkxqmf1158m81ki6a7lbw6nz4zh7xw23hy4")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -59,7 +60,8 @@ (mkdir-p install-directory) (zero? (system* "tar" "-C" install-directory "-xvf" (assoc-ref %build-inputs "source") - "MathJax-2.7.1/fonts" "--strip" "2")))))) + ,(string-append "MathJax-" version "/fonts") + "--strip" "2")))))) (native-inputs `(("gzip" ,gzip) ("tar" ,tar))) @@ -91,7 +93,9 @@ (setenv "LANG" "en_US.UTF-8") (let ((install-directory (string-append %output "/share/javascript/mathjax"))) (system* "tar" "xvf" (assoc-ref %build-inputs "source") - "MathJax-2.7.1/unpacked" "--strip" "2") + ,(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") diff --git a/gnu/packages/jemalloc.scm b/gnu/packages/jemalloc.scm index 27fb46e59d..a3bd2c93a4 100644 --- a/gnu/packages/jemalloc.scm +++ b/gnu/packages/jemalloc.scm @@ -23,14 +23,13 @@ #:use-module ((guix licenses) #:select (bsd-2)) #:use-module (guix packages) #:use-module (guix download) - #:use-module (gnu packages base) - #:use-module (gnu packages gcc) + #:use-module (gnu packages perl) #:use-module (guix build-system gnu)) (define-public jemalloc (package (name "jemalloc") - (version "4.5.0") + (version "5.0.1") (source (origin (method url-fetch) (uri (string-append @@ -38,7 +37,7 @@ version "/jemalloc-" version ".tar.bz2")) (sha256 (base32 - "10373xhpc10pgmai9fkc1z0rs029qlcb3c0qfnvkbwdlcibdh2cl")))) + "1sf3lzgb0y8nnyzmp4zrca3sngdxw3kfh20sna9z03jv74fph528")))) (build-system gnu-build-system) (arguments `(#:phases @@ -56,6 +55,7 @@ ;; Transparent huge pages are only enabled by default on Intel processors '() '(#:configure-flags (list "--disable-thp"))))) + (inputs `(("perl" ,perl))) (home-page "http://jemalloc.net/") (synopsis "General-purpose scalable concurrent malloc implementation") (description diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 292b537a12..58bc742365 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages admin) + #:use-module (gnu packages aidc) #:use-module (gnu packages attr) #:use-module (gnu packages base) #:use-module (gnu packages boost) @@ -1209,6 +1210,31 @@ querying and interacting with hardware independently of the underlying operating system.") (license license:lgpl2.1+))) +(define-public prison + (package + (name "prison") + (version "5.34.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "00wj4yyfhhcq9b54civ5hy1grz70mmi676x50y12crcbbgkxm1lx")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (inputs + `(("libdmtx", libdmtx) + ("qrencode" ,qrencode) + ("qtbase" ,qtbase))) ;; TODO: rethink: nix propagates this + (home-page "https://api.kde.org/frameworks/prison/html/index.html") + (synopsis "Barcode generation abstraction layer") + (description "Prison is a Qt-based barcode abstraction layer/library and +provides uniform access to generation of barcodes with data.") + (license license:lgpl2.1+))) + (define-public sonnet (package (name "sonnet") diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 2e46a3c924..91a7b6208c 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -39,7 +39,7 @@ (define-public kdevelop (package (name "kdevelop") - (version "5.1.1") + (version "5.1.2") (source (origin (method url-fetch) @@ -48,7 +48,7 @@ version ".tar.xz")) (sha256 (base32 - "0m6pnmylp1gij5cr75waz8hjry5894qillj5977h467hnbzs808a")))) + "1iqaq0ilijjigqb34v5wq9in6bnjs0p9cmgbygjmy53xhh3yhm5g")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -151,7 +151,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).") (define-public kdevplatform (package (name "kdevplatform") - (version "5.1.1") + (version "5.1.2") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/kdevelop" @@ -159,7 +159,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).") version ".tar.xz")) (sha256 (base32 - "09p7lvniw55g6x8v8wl3azlps8c13yx03x1m9cd3qdxi282l8n9i")))) + "0jk6g1kiqpyjy8pca0236b9944gxqnymqv8ny6m8nrraannxs8p6")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm index 25fcb514d0..d2aee9c7c0 100644 --- a/gnu/packages/ldc.scm +++ b/gnu/packages/ldc.scm @@ -279,7 +279,7 @@ latest DMD frontend and uses LLVM as backend.") (define-public dub (package (name "dub") - (version "1.4.1") + (version "1.5.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/dlang/dub/archive/" @@ -287,7 +287,7 @@ latest DMD frontend and uses LLVM as backend.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hpl5srbrzwzv8abc96j4cgbmvm1zhr109ljbl7hrphzzc39zyan")))) + "1p9pmzjsmd7v3jpilv0z0c8ar1ykvri6nn5fv95f8d2vriczj29m")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; it would have tested itself by installing some packages (vibe etc) diff --git a/gnu/packages/libffcall.scm b/gnu/packages/libffcall.scm index a8b4135caf..84fd1a833f 100644 --- a/gnu/packages/libffcall.scm +++ b/gnu/packages/libffcall.scm @@ -27,7 +27,7 @@ (define-public libffcall (package (name "libffcall") - (version "1.13") + (version "2.0") (source (origin (method url-fetch) @@ -35,7 +35,7 @@ "mirror://gnu/libffcall/libffcall-" version ".tar.gz")) (sha256 (base32 - "1rxwkfr0p7vdv6q6x8nmn13611nsq0lnk9cspqdpzxdvgmqcw1qp")))) + "0v0rh3vawb8z5q40fs3kr2f9zp06n2fq4rr2ww4562nr96sd5aj1")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f)) (synopsis "Foreign function calls from interpreters") diff --git a/gnu/packages/libidn.scm b/gnu/packages/libidn.scm index afd0b8dfe9..ff0c05bad0 100644 --- a/gnu/packages/libidn.scm +++ b/gnu/packages/libidn.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index cca222b1f8..77c9ae108f 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> +;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,12 +25,14 @@ (define-module (gnu packages libreoffice) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module ((guix licenses) #:select (gpl2+ lgpl2.1+ lgpl3+ mpl1.1 mpl2.0 non-copyleft x11-style)) #:use-module (guix packages) #:use-module (guix utils) + #:use-module (ice-9 match) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages base) @@ -364,8 +367,8 @@ CorelDRAW documents of all versions.") (arguments `(#:configure-flags '("--with-mdds=1.2") #:phases (modify-phases %standard-phases - (add-before 'configure 'autoreconf - (lambda _ (system* "autoreconf")))))) + (add-after 'unpack 'autoreconf + (lambda _ (system* "autoreconf")))))) (native-inputs `(("cppunit" ,cppunit) ("doxygen" ,doxygen) @@ -719,6 +722,9 @@ Zoner Draw version 4 and 5.") (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) + (native-search-paths (list (search-path-specification + (variable "DICPATH") + (files '("share/hunspell"))))) (home-page "https://hunspell.github.io/") (synopsis "Spell checker") (description "Hunspell is a spell checker and morphological analyzer @@ -727,6 +733,78 @@ word compounding or character encoding.") ;; Triple license, including "mpl1.1 or later". (license (list mpl1.1 gpl2+ lgpl2.1+)))) +(define (dicollecte-french-dictionary variant synopsis) + ;; Return a French dictionary package from dicollecte.org, for the given + ;; VARIANT. + (package + (name (match variant + ("classique" "hunspell-dict-fr") + (_ (string-append "hunspell-dict-fr-" variant)))) + (version "6.1") + (source (origin + (uri (string-append + "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v" + version ".zip")) + (method url-fetch) + (sha256 + (base32 + "0w2hzh36wj3lsj2yd4mh7z7547dg452sywj79vnzx27csclwqshc")))) + (build-system trivial-build-system) + (native-inputs `(("unzip" ,unzip))) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils) + (srfi srfi-26)) + + (let* ((out (assoc-ref %outputs "out")) + (hunspell (string-append out "/share/hunspell")) + (myspell (string-append out "/share/myspell")) + (doc (string-append out "/share/doc/" + ,name)) + (unzip (assoc-ref %build-inputs "unzip"))) + (system* (string-append unzip "/bin/unzip") + (assoc-ref %build-inputs "source")) + (for-each (cut install-file <> hunspell) + (find-files "." + ,(string-append variant + "\\.(dic|aff)$"))) + (mkdir-p myspell) + (symlink hunspell (string-append myspell "/dicts")) + (for-each (cut install-file <> doc) + (find-files "." "\\.(txt|org|md)$")) + #t)))) + (synopsis synopsis) + (description + "This package provides a dictionary for the Hunspell spell-checking +library.") + (home-page "https://www.dicollecte.org/home.php?prj=fr") + (license mpl2.0))) + +(define-syntax define-french-dictionary + (syntax-rules (synopsis) + ((_ name variant (synopsis text)) + (define-public name + (dicollecte-french-dictionary variant text))))) + +(define-french-dictionary hunspell-dict-fr-classique + "classique" + ;; TRANSLATORS: In French, this is "Français classique". + (synopsis "Hunspell dictionary for ``classic'' French (recommended)")) + +(define-french-dictionary hunspell-dict-fr-moderne + "moderne" + ;; TRANSLATORS: In French, this is "Français moderne". + (synopsis "Hunspell dictionary for ``modern'' French")) + +(define-french-dictionary hunspell-dict-fr-réforme-1990 + "reforme1990" + (synopsis "Hunspell dictionary for the post @dfn{1990 réforme} French")) + +(define-french-dictionary hunspell-dict-fr-toutes-variantes + "toutesvariantes" + (synopsis "Hunspell dictionary for all variants of French")) + (define-public hyphen (package (name "hyphen") @@ -789,7 +867,7 @@ and to return information on pronunciations, meanings and synonyms.") (define-public libreoffice (package (name "libreoffice") - (version "5.3.5.2") + (version "5.3.6.1") (source (origin (method url-fetch) @@ -798,7 +876,7 @@ and to return information on pronunciations, meanings and synonyms.") "http://download.documentfoundation.org/libreoffice/src/" (version-prefix version 3) "/libreoffice-" version ".tar.xz")) (sha256 (base32 - "1sknmb9bhm8mxyfycqbwng1jqs4avyp1ffcla7dhlpwqs1aqxvx5")))) + "023a7hr7v5cf0ipga4ijhyl58ncgbjrp500qq5fwf65j8g2c3apz")))) (build-system gnu-build-system) (native-inputs `(;; autoreconf is run by the LibreOffice build system, since after diff --git a/gnu/packages/libunwind.scm b/gnu/packages/libunwind.scm index cda83b2bc0..e747d37787 100644 --- a/gnu/packages/libunwind.scm +++ b/gnu/packages/libunwind.scm @@ -27,18 +27,18 @@ (define-public libunwind (package (name "libunwind") - (version "1.1") + (version "1.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/libunwind/libunwind-" version ".tar.gz")) (sha256 (base32 - "16nhx2pahh9d62mvszc88q226q5lwjankij276fxwrm8wb50zzlx")) - (patches (search-patches "libunwind-CVE-2015-3239.patch")))) + "1jsslwkilwrsj959dc8b479qildawz67r8m4lzxm7glcwa8cngiz")))) (build-system gnu-build-system) (arguments - ;; FIXME: As of glibc 2.17, we get 3 out of 34 test failures. + ;; FIXME: As of glibc 2.25, we get 1 out of 34 test failures (2 are + ;; expected to fail). ;; Report them upstream. '(#:tests? #f)) (home-page "http://www.nongnu.org/libunwind") diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index ed97ed9de7..f1d75220a9 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -332,7 +332,7 @@ devices.") (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (inputs diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d454b08029..8ef7a105d3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -367,8 +367,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.12.9") -(define %linux-libre-hash "1wpsqhaab91l1wdbsxq8pdwrdx3a603zr5zjxbzdsx99pr6iypra") +(define %linux-libre-version "4.13.4") +(define %linux-libre-hash "028dww9c6x22mvd0jd87bmibqiz5lrsyynrbzka18gh39sk0v8j7") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -377,22 +377,32 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.45" - "0qdwn2m3iynbjyszkq4hlx891s1b83p9nr1v7vdb20fs4n2cbl9s" + (make-linux-libre "4.9.52" + "0zl1z13r4gg6r2sbx8mrif2cnjkjlfrswiap7wzb22jyfnlyj5nb" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.84" - "00lp3471mvwpq5062cynaakjn7bjpylmg1d1wwmhh6fdknd2h1kz" + (make-linux-libre "4.4.89" + "1bw1cma8hxcj6wi8znc4nvw1p6dlc1lgciqak6n6ijn53xdd242h" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.1 - (make-linux-libre "4.1.43" - "0ycqmvczj7lm7czilnwpyp14n2lzilyx7m43rsq1qdm2m5rp4q2w" + (make-linux-libre "4.1.44" + "1h1v2n8fxnn98y0jz9pnr4xdmc0v4l5d3hfxa5n5r3xmjksf1xs3" %intel-compatible-systems - #:configuration-file kernel-config)) + #:configuration-file kernel-config + #:patches + (list %boot-logo-patch + (origin + (method url-fetch) + (uri "\ +https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=4a01092a5fa819397484fe2b50e9518356858156") + (file-name "linux-libre-4.4-CVE-2017-1000251.patch") + (sha256 + (base32 + "0zmkw9zvzpwy2ihiyfrw6mrf8qzv77cm23lxadr20qvzqlc1xzb3")))))) (define-public linux-libre-arm-generic (make-linux-libre %linux-libre-version @@ -683,17 +693,16 @@ slabtop, and skill.") (define-public e2fsprogs (package (name "e2fsprogs") - (version "1.43.5") + (version "1.43.6") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/people/tytso/" name "/v" version "/" name "-" version ".tar.xz")) - (patches (search-patches "e2fsprogs-32bit-quota-warnings.patch")) (sha256 (base32 - "05ssjpmy0fpv2ik6ibm1f47wr6794nf0q50r581vygrqvsd3s7r6")))) + "00ilv65dzcgiap435j89xk86shf7rrav3wsik7cahy789qijdcn9")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (native-inputs `(("pkg-config" ,pkg-config) @@ -861,14 +870,14 @@ Zerofree requires the file system to be unmounted or mounted read-only.") (define-public strace (package (name "strace") - (version "4.18") + (version "4.19") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/strace/strace/" version "/strace-" version ".tar.xz")) (sha256 (base32 - "026agy9nq238nx3ynhmi8h3vx96yra4xacfsm2ybs9k23ry8ibc9")))) + "10bjh2mrkvx41fk60b2iqv5b5k4r7a3qdsx04iyg904jqb3fp4vw")))) (build-system gnu-build-system) (arguments '(#:phases @@ -1132,7 +1141,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") (define-public iproute (package (name "iproute2") - (version "4.12.0") + (version "4.13.0") (source (origin (method url-fetch) (uri (string-append @@ -1140,7 +1149,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") version ".tar.xz")) (sha256 (base32 - "0zdxdsxyaazl85xhwskvsmpyzwf5qp21cvjsi1lw3xnrc914q2if")))) + "0l2w84cwr54gaw3cbxijf614l76hx8mgcz57v81rwl68z3nq3yww")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite @@ -1173,23 +1182,14 @@ that the Ethernet protocol is much simpler than the IP protocol.") (synopsis "Utilities for controlling TCP/IP networking and traffic in Linux") (description - "Iproute2 is a collection of utilities for controlling TCP/IP -networking and traffic with the Linux kernel. + "Iproute2 is a collection of utilities for controlling TCP/IP networking +and traffic with the Linux kernel. The most important of these are +@command{ip}, which configures IPv4 and IPv6, and @command{tc} for traffic +control. Most network configuration manuals still refer to ifconfig and route as the primary network configuration tools, but ifconfig is known to behave -inadequately in modern network environments. They should be deprecated, but -most distros still include them. Most network configuration systems make use -of ifconfig and thus provide a limited feature set. The /etc/net project aims -to support most modern network technologies, as it doesn't use ifconfig and -allows a system administrator to make use of all iproute2 features, including -traffic control. - -iproute2 is usually shipped in a package called iproute or iproute2 and -consists of several tools, of which the most important are @command{ip} and -@command{tc}. @command{ip} controls IPv4 and IPv6 configuration and -@command{tc} stands for traffic control. Both tools print detailed usage -messages and are accompanied by a set of manpages.") +inadequately in modern network environments, and both should be deprecated.") (license license:gpl2+))) ;; There are two packages for net-tools. The first, net-tools, is more recent @@ -1212,14 +1212,14 @@ messages and are accompanied by a set of manpages.") (name "net-tools") (version (string-append "1.60-" revision "." (string-take commit 7))) (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.code.sf.net/p/net-tools/code") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) + (method url-fetch) + (uri (string-append "https://sourceforge.net/code-snapshots/git/" + "n/ne/net-tools/code.git/net-tools-code-" + commit ".zip")) + (file-name (string-append name "-" version ".zip")) (sha256 (base32 - "189mdjfbd7j7j0jysy34nqn5byy9g5f6ylip1sikk7kz08vjml4s")))) + "0hz9fda9d78spp774b6rr5xaxav7cm4h0qcpxf70rvdbrf6qx7vy")))) (home-page "http://net-tools.sourceforge.net/") (build-system gnu-build-system) (arguments @@ -1266,7 +1266,8 @@ messages and are accompanied by a set of manpages.") (string-append "BASEDIR=" out) (string-append "INSTALLNLSDIR=" out "/share/locale") (string-append "mandir=/share/man"))))) - (native-inputs `(("gettext" ,gettext-minimal))) + (native-inputs `(("gettext" ,gettext-minimal) + ("unzip" ,unzip))) (synopsis "Tools for controlling the network subsystem in Linux") (description "This package includes the important tools for controlling the network @@ -1355,6 +1356,15 @@ configuration (iptunnel, ipmaddr).") (string-append "INSTALLNLSDIR=" out "/share/locale") (string-append "mandir=/share/man"))))) + ;; We added unzip to the net-tools package's native-inputs when + ;; switching its source from a Git checkout to a zip archive. We + ;; need to specify the native-inputs here to keep unzip out of the + ;; build of net-tools-for-tests, so that we don't have to rebuild + ;; many packages on the master branch. We can make + ;; net-tools-for-tests inherit directly from net-tools in the next + ;; core-updates cycle. + (native-inputs `(("gettext" ,gettext-minimal))) + ;; Use the big Debian patch set (the thing does not even compile out of ;; the box.) ;; XXX The patch is not actually applied, due to a bug in the 'patch' phase @@ -1555,16 +1565,16 @@ devices. It replaces @code{iwconfig}, which is deprecated.") (define-public powertop (package (name "powertop") - (version "2.8") + (version "2.9") (source (origin (method url-fetch) (uri (string-append - "https://01.org/sites/default/files/downloads/powertop/powertop-" + "https://01.org/sites/default/files/downloads/powertop/powertop-v" version ".tar.gz")) (sha256 (base32 - "0nlwazxbnn0k6q5f5b09wdhw0f194lpzkp3l7vxansqhfczmcyx8")))) + "0l4jjlf05li2mc6g8nrss3h435wjhmnqd8m7v3kha3x0x7cbfzxa")))) (build-system gnu-build-system) (arguments '(#:phases @@ -2087,14 +2097,14 @@ time.") (define-public lvm2 (package (name "lvm2") - (version "2.02.171") + (version "2.02.174") (source (origin (method url-fetch) (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2." version ".tgz")) (sha256 (base32 - "0r4r9fsvpj9hjmf0zz7h4prz12r6y16jhjhsvk1sbfpsl88sf5dq")) + "12qa2yfxnbjdx7kgxqqaglni50b46l5cp1rwjb24mccc830cwvpv")) (modules '((guix build utils))) (snippet '(begin @@ -2357,11 +2367,16 @@ country-specific regulations for the wireless spectrum.") ("flex" ,flex) ("bison" ,bison) ("which" ,which))) + (outputs '("lib" ;avoid perl in closure + "out")) (arguments `(#:tests? #f ; no 'check' target #:make-flags (list (string-append "PREFIX=" %output) - (string-append "ETCDIR=" %output "/etc") - (string-append "MANDIR=" %output "/share/man")) + (string-append "ETCDIR=" (assoc-ref %outputs "lib") "/etc") + (string-append "INCLUDEDIR=" + (assoc-ref %outputs "lib") "/include") + (string-append "MANDIR=" %output "/share/man") + (string-append "LIBDIR=" (assoc-ref %outputs "lib") "/lib")) #:phases (alist-delete 'configure @@ -2451,7 +2466,7 @@ SMBus access.") (base32 "1siplsfgvcxamyqf44h71jx6jdfmvhfm7mh0y1q8ps4zs6pj2zwh")))) (build-system gnu-build-system) - (inputs `(("lm-sensors" ,lm-sensors) + (inputs `(("lm-sensors" ,lm-sensors "lib") ("gtk" ,gtk+-2))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments @@ -3012,6 +3027,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (package (name "bluez") (version "5.45") + (replacement bluez/fixed) (source (origin (method url-fetch) (uri (string-append @@ -3073,6 +3089,20 @@ Bluetooth audio output devices like headphones or loudspeakers.") is flexible, efficient and uses a modular implementation.") (license license:gpl2+))) +(define bluez/fixed + (package + (inherit bluez) + (version "5.45") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://kernel.org/linux/bluetooth/bluez-" + version ".tar.xz")) + (sha256 + (base32 + "1sb4aflgyrl7apricjipa8wx95qm69yja0lmn2f19g560c3v1b2c")) + (patches (search-patches "bluez-CVE-2017-1000250.patch")))))) + (define-public fuse-exfat (package (name "fuse-exfat") @@ -3112,10 +3142,12 @@ write access to exFAT devices.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack '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") @@ -3143,7 +3175,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.12") + (version "4.13.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3151,7 +3183,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1kif8xw2dbyc70ygkp0wyq4x96p1mkwdv4430f99qllx9b410xwi")))) + "1clavvrlkswgicqsm2yfsxqw04lsn8dra0db84jqm6j2apz80kz0")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" @@ -3159,6 +3191,12 @@ and copy/paste text in the console and in xterm.") '(#:phases (modify-phases %standard-phases (add-after 'build 'build-static (lambda _ (zero? (system* "make" "static")))) + (add-after 'install 'install-bash-completion + (lambda* (#:key outputs #:allow-other-keys) + (install-file "btrfs-completion" + (string-append (assoc-ref outputs "out") + "/etc/bash_completion.d")) + #t)) (add-after 'install 'install-static (let ((staticbin (string-append (assoc-ref %outputs "static") "/bin"))) @@ -3173,8 +3211,9 @@ and copy/paste text in the console and in xterm.") ("libblkid:static" ,util-linux "static") ("libuuid" ,util-linux) ("libuuid:static" ,util-linux "static") + ("lzo" ,lzo) ("zlib" ,zlib) - ("lzo" ,lzo))) + ("zstd" ,zstd))) (native-inputs `(("pkg-config" ,pkg-config) ("asciidoc" ,asciidoc) ("xmlto" ,xmlto) @@ -3182,6 +3221,7 @@ and copy/paste text in the console and in xterm.") ("libxml2" ,libxml2) ("docbook-xsl" ,docbook-xsl) ;; For tests. + ("acl" ,acl) ("which" ,which))) (home-page "https://btrfs.wiki.kernel.org/") (synopsis "Create and manage btrfs copy-on-write file systems") diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm index cd9e06d394..860822ce49 100644 --- a/gnu/packages/lirc.scm +++ b/gnu/packages/lirc.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> +;;; Copyright © 2015, 2016, 2017 Alex Kost <alezost@gmail.com> +;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,18 +35,23 @@ (define-public lirc (package (name "lirc") - (version "0.9.4") + (version "0.10.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/lirc/LIRC/" version "/lirc-" version ".tar.bz2")) (sha256 (base32 - "1l2xzhnm4hrla51ik09hcafki0y8wnww7svfm7j63zbl2rssc66x")) + "1whlyifvvc7w04ahq07nnk1h18wc8j7c6wnvlb6mszravxh3qxcb")) (patches (search-patches "lirc-localstatedir.patch")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--localstatedir=/var") + '(#:configure-flags + '("--localstatedir=/var" + ;; "configure" script fails to enable "devinput" driver as it + ;; checks for "/dev/input" directory (which is not available), + ;; so enable it explicitly. + "--enable-devinput") #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-kernel-sniffing diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index b4f7caf56a..648a07e4c4 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -75,7 +75,7 @@ staying as close to their API as is reasonable.") ("libtool" ,libtool))) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'add-automake-files + (add-after 'unpack 'add-automake-files (lambda _ ;; The 'test-driver' file is a dangling symlink to ;; /usr/share/automake; replace it. We can't just run diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index a2c95674d9..a73a875594 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017 ng0 <ng0@infotropique.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ #:use-module (guix utils) #:use-module (guix build-system cmake) #:use-module (gnu packages) + #:use-module (gnu packages glib) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt)) @@ -188,3 +190,31 @@ desktop environment.") (description "lxqt-session provides the standard session manager for the LXQt desktop environment.") (license lgpl2.1+))) + +(define-public lxqt-build-tools + (package + (name "lxqt-build-tools") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/lxde/lxqt-build-tools/releases/" + "download/" version "/" name "-" version ".tar.xz")) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "1llbrjbgabxlq933a8cpg03b3mdmvd8983csnd4f7vrcj51nv0xh")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) ;No tests + (native-inputs + `(("pkg-config" ,pkg-config) + ("glib" ,glib))) + (inputs + `(("qtbase" ,qtbase))) + (synopsis "LXQt Build tools") + (description + "Lxqt-build-tools is providing several tools needed to build LXQt +itself as well as other components maintained by the LXQt project.") + (home-page "http://lxqt.org") + (license lgpl2.1+))) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index c5132faf58..77f64d5a41 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -190,9 +190,9 @@ classification.") "@unittest.skip(\"Disabled by Guix\")\n" line))) #t)) - (add-before 'configure 'autogen + (add-after 'disable-broken-tests 'autogen (lambda _ - (zero? (system* "bash" "./autogen.sh"))))))) + (zero? (system* "bash" "autogen.sh"))))))) (inputs `(("python" ,python-2) ; only Python 2 is supported ("libxml2" ,libxml2))) @@ -491,6 +491,8 @@ in terms of new algorithms.") (propagated-inputs `(("r-rcpp" ,r-rcpp) ("r-rcpparmadillo" ,r-rcpparmadillo))) + (inputs + `(("armadillo" ,armadillo))) (home-page "http://cran.r-project.org/web/packages/AdaptiveSparsity") (synopsis "Adaptive sparsity models") (description @@ -524,14 +526,14 @@ and a QP solver.") (define-public dlib (package (name "dlib") - (version "19.3") + (version "19.7") (source (origin (method url-fetch) (uri (string-append "http://dlib.net/files/dlib-" version ".tar.bz2")) (sha256 (base32 - "0gfy83av717qymv53yv7ki6mgh6mdw4xcxxbjk8lrs72f8qvnrcw")) + "1mljz02kwkrbggyncxv5fpnyjdybw2qihaacb3js8yfkw12vwpc2")) (modules '((guix build utils))) (snippet '(begin @@ -541,7 +543,11 @@ and a QP solver.") #t)))) (build-system cmake-build-system) (arguments - `(#:phases + ;; Recent releases defaults to "lib64" on 64bit. + `(#:configure-flags (list (string-append "-DCMAKE_INSTALL_LIBDIR=" + (assoc-ref %outputs "out") + "/lib")) + #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-asserts (lambda _ @@ -576,7 +582,6 @@ and a QP solver.") ;; No test target, so we build and run the unit tests here. (let ((test-dir (string-append "../dlib-" ,version "/dlib/test"))) (with-directory-excursion test-dir - (setenv "CXXFLAGS" "-std=gnu++11") (and (zero? (system* "make" "-j" (number->string (parallel-job-count)))) (zero? (system* "./dtest" "--runall"))))))) (add-after 'install 'delete-static-library diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 3b0f12b764..8c376b1e45 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -265,7 +265,7 @@ operating systems.") (package (inherit mutt) (name "neomutt") - (version "20170714") + (version "20170912") (source (origin (method url-fetch) @@ -273,7 +273,7 @@ operating systems.") "/archive/" name "-" version ".tar.gz")) (sha256 (base32 - "10x3sxai773n0gfqpi904ci1qvngymcbc2didswrm92wz4h8km20")))) + "0mv60kii933hq52mhwrcz29diaajbs5ryqibgsvdvfyvx27i43cz")))) (inputs `(("cyrus-sasl" ,cyrus-sasl) ("gdbm" ,gdbm) @@ -667,14 +667,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.25") + (version "0.25.1") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.gz")) (sha256 (base32 - "02z6d87ip1hkipz8d7w0sfklg8dd5fd5vlgp768640ixg0gqvlk5")))) + "0c98hzwc60nb6kd15y0fl2ji3yfmr9k6v8ps0h3ihr3vkgn0kgxl")))) (build-system gnu-build-system) (arguments '(#:make-flags (list "V=1") ; Verbose test output. @@ -727,45 +727,51 @@ ing, and tagging large collections of email messages.") (license gpl3+))) (define-public notmuch-addrlookup-c - (package - (name "notmuch-addrlookup-c") - (version "7") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/aperezdc/" name "/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0rslg2ifgyhl6asv3yr1f62m9xjfcinv7i6qb07h2k217jqlmrri")))) - (build-system gnu-build-system) - (arguments - '(#:tests? #f ; no tests - #:make-flags (list "CC=gcc" - (string-append "PREFIX=" - (assoc-ref %outputs "out"))) - #:phases (modify-phases %standard-phases - (delete 'configure) - ;; Remove vim code completion config, it's not needed to - ;; build (or be patched). - (add-before 'patch-source-shebangs 'delete-ycm-file - (lambda _ (delete-file ".ycm_extra_conf.py"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append - (assoc-ref outputs "out") "/bin"))) - (install-file "notmuch-addrlookup" bin))))))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("glib" ,glib) - ("notmuch" ,notmuch))) - (home-page "https://github.com/aperezdc/notmuch-addrlookup-c") - (synopsis "Address lookup tool for Notmuch") - (description "This is an address lookup tool using a Notmuch database, + ;; This commit includes a compatibility fix for notmuch-0.25, and is not + ;; currently part of any release. Please update this package when + ;; notmuch-addrlookup-c-9 is released. + (let ((commit "88f156d04990a71c6ad6fc2757b537b44e3c4d00") + (revision "1")) ;Guix package revision + (package + (name "notmuch-addrlookup-c") + (version (string-append "8-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aperezdc/notmuch-addrlookup-c.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0v0wzs7qzy4n1hbql8s10qrwgalcxdzbxf8pj6cii1pv2jwmkxbm")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" + (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases + (delete 'configure) + ;; Remove vim code completion config, it's not needed to + ;; build (or be patched). + (add-before 'patch-source-shebangs 'delete-ycm-file + (lambda _ (delete-file ".ycm_extra_conf.py"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append + (assoc-ref outputs "out") "/bin"))) + (install-file "notmuch-addrlookup" bin))))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib) + ("notmuch" ,notmuch))) + (home-page "https://github.com/aperezdc/notmuch-addrlookup-c") + (synopsis "Address lookup tool for Notmuch") + (description "This is an address lookup tool using a Notmuch database, useful for email address completion.") - (license license:expat))) + (license license:expat)))) (define-public python-notmuch (package @@ -896,7 +902,7 @@ compresses it.") (define-public claws-mail (package (name "claws-mail") - (version "3.15.0") + (version "3.15.1") (source (origin (method url-fetch) (uri (string-append @@ -904,7 +910,7 @@ compresses it.") ".tar.xz")) (sha256 (base32 - "0bnwd3l04y6j1nw3h861rdy6k6lyjzsi51j04d33vbpq8c6jskaf")))) + "0hlm2jipyr4z6izlrpvabpz4ivh49i13avnm848kr1nv68pkq2cd")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("bogofilter" ,bogofilter) @@ -1169,9 +1175,9 @@ It supports mbox/Maildir and its own dbox/mdbox formats.") "/lib/dovecot")) #:phases (modify-phases %standard-phases - (add-before 'configure 'autogen + (add-after 'unpack 'autogen (lambda _ - (zero? (system* "./autogen.sh"))))))) + (zero? (system* "sh" "autogen.sh"))))))) (home-page "https://0xacab.org/riseuplabs/trees") (synopsis "NaCL-based Dovecot email storage encryption plugin") (description @@ -1225,9 +1231,9 @@ using lidsodium sealed boxes. "/lib/dovecot")) #:phases (modify-phases %standard-phases - (add-before 'configure 'autogen + (add-after 'unpack 'autogen (lambda _ - (zero? (system* "./autogen.sh"))))))) + (zero? (system* "sh" "autogen.sh"))))))) (home-page "https://github.com/LuckyFellow/dovecot-libsodium-plugin") (synopsis "Libsodium password hashing schemes plugin for Dovecot") (description diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 4eefafbe12..60076f0f1a 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -138,7 +138,7 @@ the traditional flat-text whatis databases.") (define-public man-pages (package (name "man-pages") - (version "4.12") + (version "4.13") (source (origin (method url-fetch) (uri @@ -151,7 +151,7 @@ the traditional flat-text whatis databases.") "man-pages-" version ".tar.xz"))) (sha256 (base32 - "14z0zcwm0m98fk2m2b3pvr8rs2sb602mg8f7wwb4xl7yj7cpjvbg")))) + "1gri0rm9i3a6w5dvsmwawhwzywl5x80dwq05d2v8l92knv2hbh6m")))) (build-system gnu-build-system) (arguments '(#:phases (alist-delete 'configure %standard-phases) diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm index 121e6cdbf4..667f8b0a94 100644 --- a/gnu/packages/markup.scm +++ b/gnu/packages/markup.scm @@ -26,7 +26,9 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix build-system cmake) + #:use-module (guix build-system perl) #:use-module (gnu packages compression) + #:use-module (gnu packages) #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages web)) @@ -102,6 +104,92 @@ convert it to structurally valid XHTML (or HTML).") (license (non-copyleft "file://License.text" "See License.text in the distribution.")))) +(define-public discount + (package + (name "discount") + (version "2.2.2") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.pell.portland.or.us/~orc/Code/" + name "/" name "-" version ".tar.bz2")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0r4gjyk1ngx47zhb25q0gkjm3bz2m5x8ngrk6rim3y1y3rricygc")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:make-flags (list + (string-append "LFLAGS=-L. -Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-AC_PATH + (lambda _ + ;; The default value is not suitable, so override using an + ;; environment variable. This just affects the build, and not the + ;; resulting store item. + (setenv "AC_PATH" (getenv "PATH")) + #t)) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "CC" "gcc") + (zero? (system* + "./configure.sh" + (string-append "--prefix=" (assoc-ref outputs "out")) + "--shared"))))))) + (synopsis "Markdown processing library, written in C") + (description + "Discount is a markdown implementation, written in C. It provides a +@command{markdown} command, and a library.") + (home-page "http://www.pell.portland.or.us/~orc/Code/discount/") + (license bsd-3))) + +(define-public perl-text-markdown-discount + (package + (name "perl-text-markdown-discount") + (version "0.11") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/S/SE/SEKIMURA/Text-Markdown-Discount-" + version + ".tar.gz")) + (sha256 + (base32 + "1xx7v3wnla7m6wa3h33whxw3vvincaicg4yra1b9wbzf2aix9rnw")) + (patches + (search-patches "perl-text-markdown-discount-use-system-markdown.patch")))) + (build-system perl-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'set-ldflags + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile" + (("OTHERLDFLAGS = ") + (string-append + "OTHERLDFLAGS = -lmarkdown -Wl,-rpath=" + (assoc-ref inputs "discount") + "/lib")))))))) + (inputs + `(("discount" ,discount))) + (home-page + "http://search.cpan.org/dist/Text-Markdown-Discount") + (synopsis + "Fast function for converting Markdown to HTML using Discount") + (description + "Text::Markdown::Discount is a Perl extension to the Discount markdown +implementation. + +@example + use Text::Markdown::Discount; + my $html = markdown($text) +@end example") + (license perl-license))) + (define-public cmark (package (name "cmark") diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 316385a6f8..91489ba91b 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017 ng0 <ng0@infotropique.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,15 +24,30 @@ #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages fonts) + #:use-module (gnu packages libcanberra) + #:use-module (gnu packages linux) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) + #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) + #:use-module (gnu packages docbook) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages gnuzilla) #:use-module (gnu packages xorg) + #:use-module (gnu packages documentation) #:use-module (gnu packages xdisorg) #:use-module (gnu packages base) #:use-module (gnu packages xml) + #:use-module (gnu packages photo) + #:use-module (gnu packages polkit) + #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python)) (define-public mate-icon-theme @@ -40,7 +56,7 @@ (version "1.18.2") (source (origin (method url-fetch) - (uri (string-append "http://pub.mate-desktop.org/releases/" + (uri (string-append "https://pub.mate-desktop.org/releases/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 @@ -50,9 +66,8 @@ (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) - ("gtk+" ,gtk+) ("icon-naming-utils" ,icon-naming-utils))) - (home-page "http://mate-desktop.org/") + (home-page "https://mate-desktop.org/") (synopsis "The MATE desktop environment icon theme") (description "This package contains the default icon theme used by the MATE desktop.") @@ -61,25 +76,22 @@ (define-public mate-themes (package (name "mate-themes") - (version "3.22.11") + (version "3.22.13") (source (origin (method url-fetch) - (uri (string-append "http://pub.mate-desktop.org/releases/themes/" + (uri (string-append "https://pub.mate-desktop.org/releases/themes/" (version-major+minor version) "/mate-themes-" version ".tar.xz")) (sha256 (base32 - "1gfa1cny3q68y139m96iz8haiik6ygad5613gx0m4wd9hi5scafm")))) + "1p7w63an8qs15hkj79nppy7471glv0rm1b0himn3c4w69q8qdc9i")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("intltool" ,intltool))) - (inputs - `(("gtk+" ,gtk+) - ("gdk-pixbuf" ,gdk-pixbuf) - ("gtk-engines" ,gtk-engines) - ("murrine" ,murrine))) - (home-page "http://mate-desktop.org/") + ("intltool" ,intltool) + ("gdk-pixbuf" ,gdk-pixbuf) ; gdk-pixbuf+svg isn't needed + ("gtk" ,gtk+-2))) + (home-page "https://mate-desktop.org/") (synopsis "Official themes for the MATE desktop") (description @@ -95,7 +107,7 @@ themes for both gtk+-2 and gtk+-3.") (version "1.18.0") (source (origin (method url-fetch) - (uri (string-append "http://pub.mate-desktop.org/releases/" + (uri (string-append "https://pub.mate-desktop.org/releases/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 @@ -107,15 +119,15 @@ themes for both gtk+-2 and gtk+-3.") ("intltool" ,intltool) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) - ("yelp-tools" ,yelp-tools))) - ;;("gtk-doc" ,gtk-doc))) ; add back in when gtk-doc builds + ("yelp-tools" ,yelp-tools) + ("gtk-doc" ,gtk-doc))) (inputs `(("gtk+" ,gtk+) ("libxrandr" ,libxrandr) ("startup-notification" ,startup-notification))) (propagated-inputs `(("dconf" ,dconf))) ; mate-desktop-2.0.pc - (home-page "http://mate-desktop.org/") + (home-page "https://mate-desktop.org/") (synopsis "Library with common API for various MATE modules") (description "This package contains a public API shared by several applications on the @@ -128,7 +140,7 @@ desktop and the mate-about program.") (version "1.18.1") (source (origin (method url-fetch) - (uri (string-append "http://pub.mate-desktop.org/releases/" + (uri (string-append "https://pub.mate-desktop.org/releases/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 @@ -136,14 +148,13 @@ desktop and the mate-about program.") "0z6vfh42fv9rqjrraqfpf6h9nd9h662bxy3l3r48j19xvxrwmx3a")))) (build-system gnu-build-system) (arguments - `(#:configure-flags + '(#:configure-flags (list (string-append "--with-zoneinfo-dir=" (assoc-ref %build-inputs "tzdata") "/share/zoneinfo")) #:phases (modify-phases %standard-phases - (add-before - 'check 'pre-check + (add-before 'check 'fix-tzdata-location (lambda* (#:key inputs #:allow-other-keys) (substitute* "data/check-timezones.sh" (("/usr/share/zoneinfo/zone.tab") @@ -153,30 +164,206 @@ desktop and the mate-about program.") (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) + ("dconf" ,dconf) ("glib:bin" ,glib "bin"))) (inputs - `(("dconf" ,dconf) - ("gdk-pixbuf" ,gdk-pixbuf) - ("gtk+" ,gtk+) + `(("gtk+" ,gtk+) ("tzdata" ,tzdata))) (propagated-inputs ;; both of these are requires.private in mateweather.pc `(("libsoup" ,libsoup) ("libxml2" ,libxml2))) - (home-page "http://mate-desktop.org/") + (home-page "https://mate-desktop.org/") (synopsis "MATE library for weather information from the Internet") (description "This library provides access to weather information from the internet for the MATE desktop environment.") (license license:lgpl2.1+))) +(define-public mate-terminal + (package + (name "mate-terminal") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1zihm609d2d9cw53ry385whshjl1dnkifpk41g1ddm9f58hv4da1")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("itstool" ,itstool) + ("gobject-introspection" ,gobject-introspection) + ("libxml2" ,libxml2) + ("yelp-tools" ,yelp-tools))) + (inputs + `(("dconf" ,dconf) + ("gtk+" ,gtk+) + ("libice" ,libice) + ("libsm" ,libsm) + ("libx11" ,libx11) + ("mate-desktop" ,mate-desktop) + ("pango" ,pango) + ("vte" ,vte))) + (home-page "https://mate-desktop.org/") + (synopsis "MATE Terminal Emulator") + (description + "MATE Terminal is a terminal emulation application that you can +use to access a shell. With it, you can run any application that +is designed to run on VT102, VT220, and xterm terminals. +MATE Terminal also has the ability to use multiple terminals +in a single window (tabs) and supports management of different +configurations (profiles).") + (license license:gpl3))) + +(define-public mate-session-manager + (package + (name "mate-session-manager") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0i0xq6041x2qmb26x9bawx0qpfkgjn6x9w3phnm9s7rc4s0z20ll")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("xtrans" ,xtrans) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("gtk+" ,gtk+) + ("dbus-glib" ,dbus-glib) + ("libsm" ,libsm) + ("mate-desktop" ,mate-desktop))) + (home-page "https://mate-desktop.org/") + (synopsis "Session manager for MATE") + (description + "Mate-session contains the MATE session manager, as well as a +configuration program to choose applications starting on login.") + (license license:gpl2))) + +(define-public mate-settings-daemon + (package + (name "mate-settings-daemon") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "07b2jkxqv07njdrgkdck93d872p6lch1lrvi7ydnpicspg3rfid6")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("cairo" ,cairo) + ("dbus" ,dbus) + ("dbus-glib" ,dbus-glib) + ("dconf" ,dconf) + ("fontconfig" ,fontconfig) + ("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libmatekbd" ,libmatekbd) + ("libmatemixer" ,libmatemixer) + ("libnotify" ,libnotify) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxi" ,libxi) + ("libxklavier" ,libxklavier) + ("mate-desktop" ,mate-desktop) + ("nss" ,nss) + ("polkit" ,polkit) + ("startup-notification" ,startup-notification))) + (home-page "https://mate-desktop.org/") + (synopsis "Settings Daemon for MATE") + (description + "Mate-settings-daemon is a fork of gnome-settings-daemon.") + (license (list license:lgpl2.1 license:gpl2)))) + +(define-public libmatemixer + (package + (name "libmatemixer") + (version "1.18.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "09vyxnlnalws318gsafdfi5c6jwpp92pbafn1ddlqqds23ihk4mr")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("glib" ,glib) + ("pulseaudio" ,pulseaudio) + ("alsa-lib" ,alsa-lib))) + (home-page "https://mate-desktop.org/") + (synopsis "Mixer library for the MATE desktop") + (description + "Libmatemixer is a mixer library for MATE desktop. It provides an abstract +API allowing access to mixer functionality available in the PulseAudio and ALSA +sound systems.") + (license license:lgpl2.1))) + +(define-public libmatekbd + (package + (name "libmatekbd") + (version "1.18.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "030bl18qbjm7l92bp1bhs7v82bp8j3mv7c1j1a4gd89iz4611pq3")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("cairo" ,cairo) + ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("libx11" ,libx11) + ("libxklavier" ,libxklavier))) + (home-page "https://mate-desktop.org/") + (synopsis "MATE keyboard configuration library") + (description + "Libmatekbd is a keyboard configuration library for the +MATE desktop environment.") + (license license:lgpl2.1))) + (define-public mate-menus (package (name "mate-menus") (version "1.18.0") (source (origin (method url-fetch) - (uri (string-append "http://pub.mate-desktop.org/releases/" + (uri (string-append "https://pub.mate-desktop.org/releases/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 @@ -203,10 +390,422 @@ the MATE desktop environment.") (inputs `(("glib" ,glib) ("python" ,python-2))) - (home-page "http://mate-desktop.org/") + (home-page "https://mate-desktop.org/") (synopsis "Freedesktop menu specification implementation for MATE") (description "The package contains an implementation of the freedesktop menu specification, the MATE menu layout configuration files, .directory files and assorted menu related utility programs.") (license (list license:gpl2+ license:lgpl2.0+)))) + +(define-public mate-applets + (package + (name "mate-applets") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1nplr8i1mxbxd7pqhcy8j69v25nsp5dk9fq7ffrmjmp39lrf3fh5")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("libxslt" ,libxslt) + ("yelp-tools" ,yelp-tools) + ("scrollkeeper" ,scrollkeeper) + ("gettext" ,gettext-minimal) + ("docbook-xml" ,docbook-xml) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("atk" ,atk) + ("dbus" ,dbus) + ("dbus-glib" ,dbus-glib) + ("glib" ,glib) + ("gucharmap" ,gucharmap) + ("gtk+" ,gtk+) + ("gtksourceview" ,gtksourceview) + ("libgtop" ,libgtop) + ("libmateweather" ,libmateweather) + ("libnotify" ,libnotify) + ("libx11" ,libx11) + ("libxml2" ,libxml2) + ("libwnck" ,libwnck) + ("mate-panel" ,mate-panel) + ("pango" ,pango) + ("polkit" ,polkit) ; either polkit or setuid + ("python" ,python-2) + ("upower" ,upower) + ("wireless-tools" ,wireless-tools))) + (propagated-inputs + `(("python-pygobject" ,python-pygobject))) + (home-page "https://mate-desktop.org/") + (synopsis "Various applets for the MATE Panel") + (description + "Mate-applets includes various small applications for Mate-panel: + +@enumerate +@item accessx-status: indicates keyboard accessibility settings, +including the current state of the keyboard, if those features are in use. +@item Battstat: monitors the power subsystem on a laptop. +@item Character palette: provides a convenient way to access +non-standard characters, such as accented characters, +mathematical symbols, special symbols, and punctuation marks. +@item MATE CPUFreq Applet: CPU frequency scaling monitor +@item Drivemount: lets you mount and unmount drives and file systems. +@item Geyes: pair of eyes which follow the mouse pointer around the screen. +@item Keyboard layout switcher: lets you assign different keyboard +layouts for different locales. +@item Modem Monitor: monitors the modem. +@item Invest: downloads current stock quotes from the Internet and +displays the quotes in a scrolling display in the applet. The +applet downloads the stock information from Yahoo! Finance. +@item System monitor: CPU, memory, network, swap file and resource. +@item Trash: lets you drag items to the trash folder. +@item Weather report: downloads weather information from the +U.S National Weather Service (NWS) servers, including the +Interactive Weather Information Network (IWIN). +@end enumerate\n") + (license (list license:gpl2+ license:lgpl2.0+ license:gpl3+)))) + +(define-public mate-media + (package + (name "mate-media") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1l0j71d07898wb6ily09sj1xczwrmcw13wyhxwns7sxw592nwi04")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("gettext" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("cairo" ,cairo) + ("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libmatemixer" ,libmatemixer) + ("libxml2" ,libxml2) + ("mate-applets" ,mate-applets) + ("mate-desktop" ,mate-desktop) + ("mate-panel" ,mate-panel) + ("pango" ,pango) + ("startup-notification" ,startup-notification))) + (home-page "https://mate-desktop.org/") + (synopsis "Multimedia related programs for the MATE desktop") + (description + "Mate-media includes the MATE media tools for MATE, including +mate-volume-control, a MATE volume control application and applet.") + (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+)))) + +(define-public mate-panel + (package + (name "mate-panel") + (version "1.18.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1n565ff1n7jrfx223i3cl3m69wjda506nvbn8gra7m1jwdfzpbw1")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-zoneinfo-dir=" + (assoc-ref %build-inputs "tzdata") + "/share/zoneinfo") + "--with-in-process-applets=all") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-timezone-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((tzdata (assoc-ref inputs "tzdata"))) + (substitute* "applets/clock/system-timezone.h" + (("/usr/share/lib/zoneinfo/tab") + (string-append tzdata "/share/zoneinfo/zone.tab")) + (("/usr/share/zoneinfo") + (string-append tzdata "/share/zoneinfo")))) + #t)) + (add-after 'unpack 'fix-introspection-install-dir + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* '("configure") + (("`\\$PKG_CONFIG --variable=girdir gobject-introspection-1.0`") + (string-append "\"" out "/share/gir-1.0/\"")) + (("\\$\\(\\$PKG_CONFIG --variable=typelibdir gobject-introspection-1.0\\)") + (string-append out "/lib/girepository-1.0/"))) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("itstool" ,itstool) + ("xtrans" ,xtrans) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("dconf" ,dconf) + ("cairo" ,cairo) + ("dbus-glib" ,dbus-glib) + ("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libice" ,libice) + ("libmateweather" ,libmateweather) + ("librsvg" ,librsvg) + ("libsm" ,libsm) + ("libx11" ,libx11) + ("libxau" ,libxau) + ("libxml2" ,libxml2) + ("libxrandr" ,libxrandr) + ("libwnck" ,libwnck) + ("mate-desktop" ,mate-desktop) + ("mate-menus" ,mate-menus) + ("pango" ,pango) + ("tzdata" ,tzdata))) + (home-page "https://mate-desktop.org/") + (synopsis "Panel for MATE") + (description + "Mate-panel contains the MATE panel, the libmate-panel-applet library and +several applets. The applets supplied here include the Workspace Switcher, +the Window List, the Window Selector, the Notification Area, the Clock and the +infamous 'Wanda the Fish'.") + (license (list license:gpl2+ license:lgpl2.0+)))) + +(define-public caja + (package + (name "caja") + (version "1.18.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0mljqcx7k8p27854zm7qzzn8ca6hs7hva9p43hp4p507z52caqmm")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:configure-flags '("--disable-update-mimedb") + #:tests? #f ; tests fail even with display set + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("glib:bin" ,glib "bin") + ("xorg-server" ,xorg-server) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("exempi" ,exempi) + ("gtk+" ,gtk+) + ("gvfs" ,gvfs) + ("libexif" ,libexif) + ("libnotify" ,libnotify) + ("libsm" ,libsm) + ("libxml2" ,libxml2) + ("mate-desktop" ,mate-desktop) + ("startup-notification" ,startup-notification))) + (home-page "https://mate-desktop.org/") + (synopsis "File manager for the MATE desktop") + (description + "Caja is the official file manager for the MATE desktop. +It allows for browsing directories, as well as previewing files and launching +applications associated with them. Caja is also responsible for handling the +icons on the MATE desktop. It works on local and remote filesystems.") + ;; There is a note about a TRADEMARKS_NOTICE file in COPYING which + ;; does not exist. It is safe to assume that this is of no concern + ;; for us. + (license license:gpl2+))) + +(define-public mate-control-center + (package + (name "mate-control-center") + (version "1.18.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0flnn0h8f5aqyccwrlv7qxchvr3kqmlfdga6wq28d55zkpv5m7dl")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("yelp-tools" ,yelp-tools) + ("desktop-file-utils" ,desktop-file-utils) + ("kbproto" ,kbproto) + ("randrproto" ,randrproto) + ("renderproto" ,renderproto) + ("scrnsaverproto" ,scrnsaverproto) + ("xextpro" ,xextproto) + ("xproto" ,xproto) + ("xmodmap" ,xmodmap) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("atk" ,atk) + ("cairo" ,cairo) + ("caja" ,caja) + ("dconf" ,dconf) + ("dbus" ,dbus) + ("dbus-glib" ,dbus-glib) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libmatekbd" ,libmatekbd) + ("libx11" ,libx11) + ("libxcursor" ,libxcursor) + ("libxext" ,libxext) + ("libxi" ,libxi) + ("libxklavier" ,libxklavier) + ("libxml2" ,libxml2) + ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) + ("libxscrnsaver" ,libxscrnsaver) + ("marco" ,marco) + ("mate-desktop" ,mate-desktop) + ("mate-menus" ,mate-menus) + ("mate-settings-daemon" ,mate-settings-daemon) + ("pango" ,pango) + ("startup-notification" ,startup-notification))) + (propagated-inputs + `(("gdk-pixbuf" ,gdk-pixbuf+svg) ; mate-slab.pc + ("librsvg" ,librsvg))) ; mate-slab.pc + (home-page "https://mate-desktop.org/") + (synopsis "MATE Desktop configuration tool") + (description + "MATE control center is MATE's main interface for configuration +of various aspects of your desktop.") + (license license:gpl2+))) + +(define-public marco + (package + (name "marco") + (version "1.18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pub.mate-desktop.org/releases/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0lwbp9wyd66hl5d7g272l8g3k1pb9s4s2p9fb04750a58w87d8k5")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("itstool" ,itstool) + ("glib" ,glib) + ("gobject-introspection" ,gobject-introspection) + ("libxft" ,libxft) + ("libxml2" ,libxml2) + ("zenity" ,zenity))) + (inputs + `(("gtk+" ,gtk+) + ("libcanberra" ,libcanberra) + ("libgtop" ,libgtop) + ("libice" ,libice) + ("libsm" ,libsm) + ("libx11" ,libx11) + ("libxcomposite" ,libxcomposite) + ("libxcursor" ,libxcursor) + ("libxdamage" ,libxdamage) + ("libxext" ,libxext) + ("libxfixes" ,libxfixes) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) + ("mate-desktop" ,mate-desktop) + ("pango" ,pango) + ("startup-notification" ,startup-notification))) + (home-page "https://mate-desktop.org/") + (synopsis "Window manager for the MATE desktop") + (description + "Marco is a minimal X window manager that uses GTK+ for drawing +window frames. It is aimed at non-technical users and is designed to integrate +well with the MATE desktop. It lacks some features that may be expected by +some users; these users may want to investigate other available window managers +for use with MATE or as a standalone window manager.") + (license license:gpl2+))) + +(define-public mate + (package + (name "mate") + (version (package-version mate-desktop)) + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build union)) + #:builder + (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs + ;; TODO: Add more packages + `(("at-spi2-core" ,at-spi2-core) + ("caja" ,caja) + ("dbus" ,dbus) + ("dconf" ,dconf) + ("desktop-file-utils" ,desktop-file-utils) + ("font-cantarell" ,font-cantarell) + ("glib-networking" ,glib-networking) + ("gnome-keyring" ,gnome-keyring) + ("gvfs" ,gvfs) + ("libmatekbd" ,libmatekbd) + ("libmateweather" ,libmateweather) + ("libmatemixer" ,libmatemixer) + ("marco" ,marco) + ("mate-session-manager" ,mate-session-manager) + ("mate-settings-daemon" ,mate-settings-daemon) + ("mate-desktop" ,mate-desktop) + ("mate-terminal" ,mate-terminal) + ("mate-themes" ,mate-themes) + ("mate-icon-theme" ,mate-icon-theme) + ("mate-menu" ,mate-menus) + ("mate-panel" ,mate-panel) + ("mate-control-center" ,mate-control-center) + ("mate-media" ,mate-media) + ("mate-applets" ,mate-applets) + ("pinentry-gnome3" ,pinentry-gnome3) + ("pulseaudio" ,pulseaudio) + ("shared-mime-info" ,shared-mime-info) + ("yelp" ,yelp) + ("zenity" ,zenity))) + (synopsis "The MATE desktop environment") + (home-page "https://mate-desktop.org/") + (description + "The MATE Desktop Environment is the continuation of GNOME 2. It provides +an intuitive and attractive desktop environment using traditional metaphors for +GNU/Linux systems. MATE is under active development to add support for new +technologies while preserving a traditional desktop experience.") + (license license:gpl2+))) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 1d9cadf044..962bcd8278 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> @@ -149,14 +149,14 @@ interactive dialogs to guide them.") (define-public coda (package (name "coda") - (version "2.18") + (version "2.18.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/stcorp/coda/releases/download/" version "/coda-" version ".tar.gz")) (sha256 - (base32 "11asla1ap8vd73farqjlpb179sfiy0biydcwxjfcakrp9sf8v9bs")) + (base32 "01fnqcby9jijvf3jxr1fk4bny059lvvq5wbqm7ns60ilykfdnm6a")) (patches (search-patches "coda-use-system-libs.patch")) (modules '((guix build utils))) (snippet @@ -605,7 +605,18 @@ computations.") (("@HDF_BUILD_SHARED_TRUE@AM_LDFLAGS = \ -R\\$\\(abs_top_builddir\\)/mfhdf/libsrc/\\.libs \ -R\\$\\(abs_top_builddir\\)/hdf/src/\\.libs \\$\\(XDR_ADD\\)") "")) - #t))))) + #t)) + (add-after 'configure 'patch-settings + (lambda _ + ;; libhdf4.settings contains the full path of the + ;; compilers used, and its contents are included in + ;; .so-files. We truncate the hashes to avoid + ;; unnecessary store references to those compilers: + (substitute* "libhdf4.settings" + (("(/gnu/store/)([a-Z0-9]*)" all prefix hash) + (string-append prefix (string-take hash 10) "..."))) + #t)) + ))) (home-page "https://www.hdfgroup.org/products/hdf4/") (synopsis "Library and multi-object file format for storing and managing data") @@ -648,16 +659,40 @@ incompatible with HDF5.") (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) + (native-inputs + `(("gfortran" ,gfortran))) + (outputs '("out" ; core library + "fortran")) ; fortran interface (arguments `(;; Some of the users, notably Flann, need the C++ interface. - #:configure-flags '("--enable-cxx") + #:configure-flags '("--enable-cxx" + "--enable-fortran" + "--enable-fortran2003") #:phases (modify-phases %standard-phases (add-before 'configure 'patch-configure - (lambda _ + (lambda* (#:key outputs #:allow-other-keys) (substitute* "configure" (("/bin/mv") "mv")) + (substitute* "fortran/src/Makefile.in" + (("libhdf5_fortran_la_LDFLAGS =") + (string-append "libhdf5_fortran_la_LDFLAGS = -Wl-rpath=" + (assoc-ref outputs "fortran") "/lib"))) + (substitute* "hl/fortran/src/Makefile.in" + (("libhdf5hl_fortran_la_LDFLAGS =") + (string-append "libhdf5hl_fortran_la_LDFLAGS = -Wl,-rpath=" + (assoc-ref outputs "fortran") "/lib"))) + #t)) + (add-after 'configure 'patch-settings + (lambda _ + ;; libhdf5.settings contains the full path of the + ;; compilers used, and its contents are included in + ;; libhdf5.so. We truncate the hashes to avoid + ;; unnecessary store references to those compilers: + (substitute* "src/libhdf5.settings" + (("(/gnu/store/)([a-Z0-9]*)" all prefix hash) + (string-append prefix (string-take hash 10) "..."))) #t)) (add-after 'install 'patch-references (lambda* (#:key inputs outputs #:allow-other-keys) @@ -666,7 +701,40 @@ incompatible with HDF5.") (substitute* (find-files bin "h5p?cc") (("-lz" lib) (string-append "-L" zlib "/lib " lib))) - #t)))))) + #t))) + (add-after 'install 'split + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Move all fortran-related files + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (inc (string-append out "/include")) + (ex (string-append out "/share/hdf5_examples/fortran")) + (fort (assoc-ref outputs "fortran")) + (fbin (string-append fort "/bin")) + (flib (string-append fort "/lib")) + (finc (string-append fort "/include")) + (fex (string-append fort "/share/hdf5_examples/fortran"))) + (mkdir-p fbin) + (mkdir-p flib) + (mkdir-p finc) + (mkdir-p fex) + (rename-file (string-append bin "/h5fc") + (string-append fbin "/h5fc")) + (for-each (lambda (file) + (rename-file file + (string-append flib "/" (basename file)))) + (find-files lib ".*fortran.*")) + (for-each (lambda (file) + (rename-file file + (string-append finc "/" (basename file)))) + (find-files inc ".*mod")) + (for-each (lambda (file) + (rename-file file + (string-append fex "/" (basename file)))) + (find-files ex ".*")) + (delete-file-recursively ex)) + #t))))) (home-page "http://www.hdfgroup.org") (synopsis "Management suite for extremely large and complex data") (description "HDF5 is a suite that makes possible the management of @@ -850,6 +918,29 @@ similar to MATLAB, GNU Octave or SciPy.") ("libjpeg" ,libjpeg))) (arguments `(#:configure-flags '("--enable-doxygen" "--enable-dot" "--enable-hdf4") + + #:phases (modify-phases %standard-phases + (add-before 'configure 'fix-source-date + (lambda _ + ;; As we ${SOURCE_DATE_EPOCH} evaluates to "1" in the build + ;; environment, `date -u -d ${SOURCE_DATE_EPOCH}` will evaluate + ;; to '1st hour of the current day', and therefore makes the + ;; package not reproducible. + (substitute* "./configure" + (("date -u -d \"\\$\\{SOURCE_DATE_EPOCH\\}\"") + "date --date='@0'")) + #t)) + (add-after 'configure 'patch-settings + (lambda _ + ;; libnetcdf.settings contains the full filename of the compilers + ;; used to build the library. We truncate the hashes of those + ;; filenames to avoid unnecessary references to the corresponding + ;; store items. + (substitute* "libnetcdf.settings" + (("(/gnu/store/)([a-Z0-9]*)" all prefix hash) + (string-append prefix (string-take hash 10) "..."))) + #t))) + #:parallel-tests? #f)) ;various race conditions (home-page "http://www.unidata.ucar.edu/software/netcdf/") (synopsis "Library for scientific data") @@ -1946,6 +2037,55 @@ bio-chemistry.") ;; See LICENSE_en.txt (license license:cecill-c))) +(define-public scotch32 + ;; This is the 'INTSIZE32' variant, which uses 32-bit integers, as needed by + ;; some applications. + (package (inherit scotch) + (name "scotch32") + (arguments + (substitute-keyword-arguments (package-arguments scotch) + ((#:phases scotch-phases) + `(modify-phases ,scotch-phases + (replace + 'configure + (lambda _ + (call-with-output-file "Makefile.inc" + (lambda (port) + (format port " +EXE = +LIB = .a +OBJ = .o +MAKE = make +AR = ar +ARFLAGS = -ruv +CAT = cat +CCS = gcc +CCP = mpicc +CCD = gcc +CPPFLAGS =~{ -D~a~} +CFLAGS = -O2 -g -fPIC $(CPPFLAGS) +LDFLAGS = -lz -lm -lrt -lpthread +CP = cp +LEX = flex -Pscotchyy -olex.yy.c +LN = ln +MKDIR = mkdir +MV = mv +RANLIB = ranlib +YACC = bison -pscotchyy -y -b y +" + '("COMMON_FILE_COMPRESS_GZ" + "COMMON_PTHREAD" + "COMMON_RANDOM_FIXED_SEED" + "INTSIZE32" ;use 32-bit integers. See INSTALL.txt + ;; Prevents symbolc clashes with libesmumps + "SCOTCH_RENAME" + ;; XXX: Causes invalid frees in superlu-dist tests + ;; "SCOTCH_PTHREAD" + ;; "SCOTCH_PTHREAD_NUMBER=2" + "restrict=__restrict")))))))))) + (synopsis + "Programs and libraries for graph algorithms (32-bit integers)"))) + (define-public pt-scotch (package (inherit scotch) (name "pt-scotch") @@ -1969,6 +2109,29 @@ bio-chemistry.") (lambda _ (zero? (system* "make" "ptcheck")))))))) (synopsis "Programs and libraries for graph algorithms (with MPI)"))) +(define-public pt-scotch32 + (package (inherit scotch32) + (name "pt-scotch32") + (propagated-inputs + `(("openmpi" ,openmpi))) ;headers include MPI headers + (arguments + (substitute-keyword-arguments (package-arguments scotch32) + ((#:phases scotch32-phases) + `(modify-phases ,scotch32-phases + (replace 'build + (lambda _ + (and + (zero? (system* "make" + (format #f "-j~a" (parallel-job-count)) + "ptscotch" "ptesmumps")) + ;; Install the serial metis compatibility library + (zero? (system* "make" "-C" "libscotchmetis" "install"))))) + (replace 'check + (lambda _ + (zero? (system* "make" "ptcheck")))))))) + (synopsis + "Programs and libraries for graph algorithms (with MPI and 32-bit integers)"))) + (define-public metis (package (name "metis") @@ -2353,6 +2516,92 @@ parts of it.") "OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.") (license license:bsd-3))) +(define* (make-blis implementation #:optional substitutable?) + "Return a BLIS package with the given IMPLEMENTATION (see config/ in the +source tree for a list of implementations.) + +SUBSTITUTABLE? determines whether the package is made available as a +substitute. + +Currently the specialization must be selected at configure-time, but work is +underway to allow BLIS to select the right optimized kernels at run time: +<https://github.com/flame/blis/issues/129>." + (package + (name (if (string=? implementation "reference") + "blis" + (string-append "blis-" implementation))) + (version "0.2.2") + (home-page "https://github.com/flame/blis") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (sha256 + (base32 + "1wr79a50nm4abhw8w3sn96nmwp5mrzifcigk7khw9qcgyyyqayfh")) + (file-name (git-file-name "blis" version)))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + + #:substitutable? ,substitutable? + + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; This is a home-made 'configure' script. + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "./configure" "-p" out + "-d" "opt" + "--disable-static" + "--enable-shared" + "--enable-threading=openmp" + + ,implementation))))) + (add-before 'check 'show-test-output + (lambda _ + ;; By default "make check" is silent. Make it verbose. + (system "tail -F output.testsuite &") + #t))))) + (synopsis "High-performance basic linear algebra (BLAS) routines") + (description + "BLIS is a portable software framework for instantiating high-performance +BLAS-like dense linear algebra libraries. The framework was designed to +isolate essential kernels of computation that, when optimized, immediately +enable optimized implementations of most of its commonly used and +computationally intensive operations. While BLIS exports a new BLAS-like API, +it also includes a BLAS compatibility layer which gives application developers +access to BLIS implementations via traditional BLAS routine calls.") + (license license:bsd-3))) + +(define-public blis + ;; This is the "reference" implementation, which is the non-optimized but + ;; portable variant (no assembly). + (make-blis "reference" #t)) + +(define ignorance blis) + +(define-syntax-rule (blis/x86_64 processor) + "Expand to a package specialized for PROCESSOR." + (package + (inherit (make-blis processor)) + (supported-systems '("x86_64-linux")))) + +(define-public blis-sandybridge + ;; BLIS specialized for Sandy Bridge processors (launched 2011): + ;; <http://ark.intel.com/products/codename/29900/Sandy-Bridge>. + (blis/x86_64 "sandybridge")) + +(define-public blis-haswell + ;; BLIS specialized for Haswell processors (launched 2013): + ;; <http://ark.intel.com/products/codename/42174/Haswell>. + (blis/x86_64 "haswell")) + +(define-public blis-knl + ;; BLIS specialized for Knights Landing processor (launched 2016): + ;; <http://ark.intel.com/products/series/92650/Intel-Xeon-Phi-x200-Product-Family>. + (blis/x86_64 "knl")) + + (define-public openlibm (package (name "openlibm") diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 39f9765320..f71339da23 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -34,14 +34,15 @@ (define-public nyacc (package (name "nyacc") - (version "0.80.3") + (version "0.82.0") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/nyacc/" name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0sdvkahnz6k9i4kf1i1ljl20220n3wk3gy6zmz0ggbbdgg4mfka0")))) + "1ll0mjivhxpj3r81w4a8p4bclr3byzp38ig1j11jvwnbl6lawgj7")))) (build-system gnu-build-system) (native-inputs `(("guile" ,guile-2.2))) @@ -57,7 +58,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") (let ((triplet "i686-unknown-linux-gnu")) (package (name "mes") - (version "0.9") + (version "0.10") (source (origin (method url-fetch) (uri (string-append "https://gitlab.com/janneke/mes" @@ -66,7 +67,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0ph0fvabpb7zhbk4zpacbp7m4b142ds17dq5dzn00m7dz8farw9r")))) + "0djmhnvha8phxgb4msysnjmy1nnllb08bnw4xhdayq8ppi4zdmcv")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (propagated-inputs diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index eb9e869152..8e4b43aaf4 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016, 2017 <contact.ng0@cryptolab.net> +;;; Copyright © 2016, 2017 <ng0@infotropique.org> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2016, 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com> @@ -533,6 +533,60 @@ transformation; audio and video conferences; file transfer; TLS, GPG and end-to-end encryption support; XML console.") (license license:gpl3))) +(define-public dino + ;; The only release tarball is for version 0.0, but it is very old and fails + ;; to build. + (let ((commit "54a25fd926070a977138cec94908c55806e22f4a") + (revision "1")) + (package + (name "dino") + (version (string-append "0.0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dino/dino.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1m100wzr5xqaj3r4vprxj0961833wqk0p7z94nmjsf2f0s67v5r3")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; there are no tests + #:parallel-build? #f ; not supported + #:configure-flags + ;; FIXME: we disable the omemo plugin because it needs + ;; libsignal-protocol, for which we don't have a package yet. + '("-DDISABLED_PLUGINS=omemo") + #:modules ((guix build cmake-build-system) + ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) + (guix build utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build cmake-build-system) + (guix build glib-or-gtk-build-system)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'glib-or-gtk-wrap + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) + (inputs + `(("libgee" ,libgee) + ("libsoup" ,libsoup) + ("sqlite" ,sqlite) + ("gpgme" ,gpgme) + ("gtk+" ,gtk+) + ("glib-networking" ,glib-networking) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("glib" ,glib "bin") + ("vala" ,vala) + ("gettext" ,gettext-minimal))) + (home-page "https://dino.im") + (synopsis "Graphical Jabber (XMPP) client") + (description "Dino is a Jabber (XMPP) client which aims to fit well into +a graphical desktop environment like GNOME.") + (license license:gpl3+)))) + (define-public prosody (package (name "prosody") @@ -747,14 +801,14 @@ instant messenger with audio and video chat capabilities.") (define-public qtox (package (name "qtox") - (version "1.10.1") + (version "1.11.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/qTox/qTox/archive/v" version ".tar.gz")) (sha256 (base32 - "0b37an611i2jdri59vsspyl3yf6cn4h0bn9d2jdrkw8d2rfqc8qy")) + "1m1ca1ybgj4yfm6a61yyj21f5jpip8dsbliwkfypswhmv5y52f5y")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (arguments @@ -794,7 +848,7 @@ connect with friends and family without anyone else listening in.") (define-public pybitmessage (package (name "pybitmessage") - (version "0.6.1") + (version "0.6.2") (source (origin (method url-fetch) @@ -803,39 +857,28 @@ connect with friends and family without anyone else listening in.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1ffj7raxpp277kphj98190fxrwfx16vmbspk7k3azg3bh5f5idnf")))) - (inputs - `(("python" ,python-2) - ("python:tk" ,python-2 "tk") - ("openssl" ,openssl) - ("sqlite" ,sqlite) - ("qt" ,qt-4) + "1in2mhaxkp2sx8pgvifq9dk1z8b2x3imf1anr0z926vwxwjrf85w")))) + (propagated-inputs + ;; TODO: + ;; Package "pyopencl", required in addition to numpy for OpenCL support. + ;; Package "gst123", required in addition to alsa-utils and + ;; mpg123 for sound support. + `(("python2-msgpack" ,python2-msgpack) + ("python2-pythondialog" ,python2-pythondialog) ("python2-pyqt-4" ,python2-pyqt-4) ("python2-sip" ,python2-sip) ("python2-pysqlite" ,python2-pysqlite) ("python2-pyopenssl" ,python2-pyopenssl))) (native-inputs - `(("pkg-config" ,pkg-config))) - (build-system gnu-build-system) + `(("openssl" ,openssl))) + (build-system python-build-system) (arguments - `(#:imported-modules ((guix build python-build-system) - ,@%gnu-build-system-modules) - #:make-flags (list (string-append "PREFIX=" - (assoc-ref %outputs "out"))) - #:tests? #f ; no test target + `(#:modules ((guix build python-build-system) + (guix build utils)) + #:tests? #f ;no test target + #:python ,python-2 #:phases (modify-phases %standard-phases - (add-before 'build 'fix-makefile - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Makefile" - (("mkdir -p \\$\\{DESTDIR\\}/usr") "") - (("/usr/local") "") - (("/usr") "") - (("#!/bin/sh") (string-append "#!" (which "sh"))) - (("python2") (which "python")) - (("/opt/openssl-compat-bitcoin/lib/") - (string-append (assoc-ref inputs "openssl") "/lib/"))) - #t)) (add-after 'unpack 'fix-unmatched-python-shebangs (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/bitmessagemain.py" @@ -869,18 +912,24 @@ connect with friends and family without anyone else listening in.") (string-append (assoc-ref inputs "openssl") "/lib/libssl.so"))) #t)) - ;; XXX: Make does not build and install bitmsghash, do it + (add-after 'unpack 'noninteractive-build + ;; This applies upstream commit 4c597d3f7cf9f83a763472aa165a1a4292019f20 + (lambda _ + (substitute* "setup.py" + (("except NameError") + "except EOFError, NameError")) + #t)) + ;; XXX: python setup.py does not build and install bitmsghash, + ;; without it PyBitmessage tries to compile it at first run + ;; in the store, which due to obvious reasons fails. Do it ;; and place it in /lib. - (add-before 'build 'build-and-install-bitmsghash + (add-after 'unpack 'build-and-install-bitmsghash (lambda* (#:key outputs #:allow-other-keys) - (chdir "src/bitmsghash") - (system* "make") - (chdir "../..") - (install-file "src/bitmsghash/bitmsghash.so" - (string-append (assoc-ref outputs "out") "/lib")) - #t)) - (add-after 'install 'wrap - (@@ (guix build python-build-system) wrap))))) + (with-directory-excursion "src/bitmsghash" + (system* "make") + (install-file "bitmsghash.so" + (string-append (assoc-ref outputs "out") "/lib"))) + #t))))) (license license:expat) (description "Distributed and trustless peer-to-peer communications protocol @@ -1209,7 +1258,7 @@ support, and more.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'autogen + (add-after 'unpack 'autogen (lambda _ (zero? (system* "sh" "autogen.sh")))) ;; For 'system' commands in Scheme code. diff --git a/gnu/packages/microcom.scm b/gnu/packages/microcom.scm index aa42e99213..dcb864808f 100644 --- a/gnu/packages/microcom.scm +++ b/gnu/packages/microcom.scm @@ -42,7 +42,7 @@ (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-i"))))))) (inputs `(("readline" ,readline))) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 9330179f96..f030e5b18e 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -295,7 +295,7 @@ This package contains the binary.") (define-public mpg123 (package (name "mpg123") - (version "1.25.4") + (version "1.25.6") (source (origin (method url-fetch) (uri (list (string-append "mirror://sourceforge/mpg123/mpg123/" @@ -305,7 +305,7 @@ This package contains the binary.") version ".tar.bz2"))) (sha256 (base32 - "1rxknrnl3ji5hi5rbckpzhbl1k5r8i53kcys4xdgg0xbi8765dfd")))) + "13jsbh1gwypjksim2fxlblj5wc2driwm4igrkcnbr6bpp34mh10g")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-default-audio=pulse"))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index eb45974f6c..4ed0303be1 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -75,7 +75,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.20.9") + (version "0.20.10") (source (origin (method url-fetch) (uri @@ -84,7 +84,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "1dsfwd0i81x8m9idi7idm9612mpf1g5lzcy69h04nd9jks3a4xyd")))) + "089i9lh3fa8bix6v0sq0jgs7rkpk8l6q5lmdk6lip96vbh9c3ysj")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 93157e2692..517f912417 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -42,7 +42,7 @@ (define-public hwloc (package (name "hwloc") - (version "1.11.7") + (version "1.11.8") (source (origin (method url-fetch) (uri (string-append "https://www.open-mpi.org/software/hwloc/v" @@ -50,7 +50,7 @@ "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "0acph1mf7588hfx8ds26ncr6nw5fd9x92adm11fwin7f93i10sdb")))) + "0karxv4r1r8sa7ki5aamlxdvyvz0bvzq4gdhq0yi5nc4a0k11vzc")))) (build-system gnu-build-system) (outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc. "lib" ;small closure @@ -132,9 +132,7 @@ bind processes, and much more.") `(("pkg-config" ,pkg-config) ("perl" ,perl))) (arguments - `(#:configure-flags `("--enable-builtin-atomics" - - "--enable-mpi-ext=affinity" ;cr doesn't work + `(#:configure-flags `("--enable-mpi-ext=affinity" ;cr doesn't work "--enable-memchecker" "--with-sge" @@ -148,16 +146,21 @@ bind processes, and much more.") (assoc-ref %build-inputs "hwloc"))) #:phases (modify-phases %standard-phases (add-before 'build 'remove-absolute - ;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE - ;; etc.) to reduce the closure size. See - ;; <https://lists.gnu.org/archive/html/guix-devel/2017-07/msg00388.html> - ;; and - ;; <https://www.mail-archive.com/users@lists.open-mpi.org//msg31397.html>. (lambda _ + ;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE + ;; etc.) to reduce the closure size. See + ;; <https://lists.gnu.org/archive/html/guix-devel/2017-07/msg00388.html> + ;; and + ;; <https://www.mail-archive.com/users@lists.open-mpi.org//msg31397.html>. (substitute* '("orte/tools/orte-info/param.c" "oshmem/tools/oshmem_info/param.c" "ompi/tools/ompi_info/param.c") (("_ABSOLUTE") "")) + ;; Avoid valgrind (which pulls in gdb etc.). + (substitute* + '("./ompi/mca/io/romio/src/io_romio_component.c") + (("MCA_io_romio_COMPLETE_CONFIGURE_FLAGS") + "\"[elided to reduce closure]\"")) #t)) (add-before 'build 'scrub-timestamps ;reproducibility (lambda _ diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 56e6d26493..c01bbc6e71 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2016 Al McElrath <hello@yrns.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net> @@ -45,6 +45,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) ;libbdf + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages cdrom) @@ -76,8 +77,9 @@ #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages java) - #:use-module (gnu packages linux) ; for alsa-utils #:use-module (gnu packages libffi) + #:use-module (gnu packages linux) ; for alsa-utils + #:use-module (gnu packages lirc) #:use-module (gnu packages llvm) #:use-module (gnu packages man) #:use-module (gnu packages mp3) @@ -675,7 +677,9 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro (("SHELL=/bin/sh") "SHELL=sh") ;; When checking the fontforge version do not consider the ;; version string that's part of the directory. - (("head -n") "tail -n")) + (("head -n") "tail -n") + ;; Also allow for SOURCE_DATE_EPOCH = 0 in fontforge. + (("20110222") "19700101")) (setenv "out" "www") (setenv "conf" "www") #t)) @@ -1084,7 +1088,7 @@ users to select LV2 plugins and run them with jalv.") (define-public synthv1 (package (name "synthv1") - (version "0.8.3") + (version "0.8.4") (source (origin (method url-fetch) (uri @@ -1092,7 +1096,7 @@ users to select LV2 plugins and run them with jalv.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "1yqh7jx431q01f15b3h4dh038yvmc4jcsr3vn2175kqgwfj9jqcg")))) + "0awk2zx0xa6vl6ah24zz0k2mwsx50hh5g1rh32mp790fp4x7l5s8")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1118,7 +1122,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.8.3") + (version "0.8.4") (source (origin (method url-fetch) (uri @@ -1126,7 +1130,7 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "0rvdvc81j4b4n64i7jmk58khry28al8p73g71srdv1kw7j65f2zv")))) + "0qqpklzy4wgw9jy0v2810j06712q90bwc69fp7da82536ba058a9")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1153,7 +1157,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.8.3") + (version "0.8.4") (source (origin (method url-fetch) (uri @@ -1161,7 +1165,7 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "1lbxrn24fg1z659zbaakzq6z8gbax6z16di9v9bhhslk8w2mndik")))) + "107p2xsj066q2bil0xcgqrrn7lawp02wzf7qmlajcbnd79jhsi6i")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1892,14 +1896,14 @@ computer's keyboard.") (define-public qtractor (package (name "qtractor") - (version "0.8.3") + (version "0.8.4") (source (origin (method url-fetch) (uri (string-append "http://downloads.sourceforge.net/qtractor/" "qtractor-" version ".tar.gz")) (sha256 (base32 - "0ggqp2pz6r0pvapbbil51fh5185rn0i9kgzm9ff8r8y1135zllk8")))) + "17bbjfn94843g5q1h7xh23fwyazpfgg4fw6drrn5wgk2vx7qpkis")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; no "check" target (inputs @@ -3198,3 +3202,97 @@ specification and header.") ;; The DSSI interface is LGPL2.1+, some tests and examples are GPL2+. ;; The vast majority of examples are in the public domain. (license (list license:lgpl2.1+ license:gpl2+)))) + +(define-public rosegarden + (package + (name "rosegarden") + (version "17.04") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/rosegarden/rosegarden/" + version "/rosegarden-" version ".tar.bz2")) + (sha256 + (base32 + "1khfcj22asdhjh0jvhkqsz200wgmigkhsrcz09ffia5hqm0n32lq")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DUSE_QT5=1") ; "-DCMAKE_BUILD_TYPE=Release" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (substitute* "CMakeLists.txt" + (("BUILD_TESTING OFF") "BUILD_TESTING ON") + ;; Make tests work. + ((" -fvisibility=hidden") "")) + #t)) + (add-after 'unpack 'fix-references + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/gui/general/ProjectPackager.cpp" + (("\"flac\\>") + (string-append "\"" (assoc-ref inputs "flac") "/bin/flac")) + (("\"wavpack\\>") + (string-append "\"" (assoc-ref inputs "wavpack") "/bin/wavpack")) + (("\"wvunpack\\>") + (string-append "\"" (assoc-ref inputs "wavpack") "/bin/wvunpack")) + (("\"bash\\>") + (string-append "\"" (assoc-ref inputs "bash") "/bin/bash")) + (("\"tar\\>") + (string-append "\"" (assoc-ref inputs "tar") "/bin/tar"))) + (substitute* "src/gui/general/LilyPondProcessor.cpp" + (("\"convert-ly\\>") + (string-append "\"" (assoc-ref inputs "lilypond") "/bin/convert-ly")) + (("\"lilypond\\>") + (string-append "\"" (assoc-ref inputs "lilypond") "/bin/lilypond"))) + #t)) + (add-after 'unpack 'make-reproducible + (lambda _ + ;; Prevent Last-Modified from being written. + ;; The "*.qm" files that are used in locale.qrc would have a new + ;; mtime otherwise that is written into qrc_locale.cpp in the + ;; end - except when we disable it. + (substitute* "src/CMakeLists.txt" + (("COMMAND [$][{]QT_RCC_EXECUTABLE[}]") + "COMMAND ${QT_RCC_EXECUTABLE} --format-version 1") + ;; Extraneous. + ;(("qt5_add_resources[(]rg_SOURCES ../data/data.qrc[)]") + ; "qt5_add_resources(rg_SOURCES ../data/data.qrc OPTIONS --format-version 1)") + ) + ;; Make hashtable traversal order predicable. + (setenv "QT_RCC_TEST" "1") ; important + #t)) + (add-before 'check 'prepare-check + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + ;; Tests create files in $HOME/.local/share/rosegarden . + (mkdir-p "/tmp/foo") + (setenv "HOME" "/tmp/foo") + #t))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("bash" ,bash) + ("dssi" ,dssi) + ("flac" ,flac) + ("fftwf" ,fftwf) + ("jack-2" ,jack-2) + ("ladspa" ,ladspa) + ("liblo" ,liblo) + ("libsamplerate" ,libsamplerate) + ("lilypond" ,lilypond) + ("lrdf" ,lrdf) + ("qtbase" ,qtbase) + ("tar" ,tar) + ("lirc" ,lirc) + ("wavpack" ,wavpack) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("qtlinguist" ,qttools))) + (synopsis "Music composition and editing environment based around a MIDI +sequencer") + (description "Rosegarden is a music composition and editing environment +based around a MIDI sequencer that features a rich understanding of music +notation and includes basic support for digital audio.") + (home-page "http://www.rosegardenmusic.com/") + (license license:gpl2))) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 2730f0c02e..418d11ad07 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -483,7 +483,7 @@ which can be used to encrypt a password with @code{crypt(3)}.") (define-public wireshark (package (name "wireshark") - (version "2.4.0") + (version "2.4.1") (source (origin (method url-fetch) @@ -491,7 +491,7 @@ which can be used to encrypt a password with @code{crypt(3)}.") version ".tar.xz")) (sha256 (base32 - "011vvrj76z1azkpvyy2j40b1x1z56ymld508zfc4xw3gh8dv82w9")))) + "1k8zj44pkb2ny2x46f100y7cxddm1kh0zh7f6qggm78gn7wvrp82")))) (build-system gnu-build-system) (inputs `(("c-ares" ,c-ares) ("glib" ,glib) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 2cebabbcaf..805b81bd2e 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -40,16 +40,14 @@ (define-public node (package (name "node") - (version "8.1.2") + (version "8.4.0") (source (origin (method url-fetch) (uri (string-append "http://nodejs.org/dist/v" version "/node-v" version ".tar.gz")) (sha256 (base32 - "0l92gar1pivzaiwffiiiz2f2m5k39sl5fphlfnvy0ml9hrjb65yp")) - ;; https://github.com/nodejs/node/pull/9077 - (patches (search-patches "node-9077.patch")))) + "1vrpc4lspm33hmb8c2q4w1fzg3iaip2gx4wpr4nyy417hbx1a6k4")))) (build-system gnu-build-system) (arguments ;; TODO: Purge the bundled copies from the source. @@ -78,10 +76,9 @@ (("'/usr/bin/env'") (string-append "'" (which "env") "'"))) - ;; Having the build fail because of linter errors is insane! + ;; Linting is no longer supported in the release tarball (substitute* '("Makefile") - ((" \\$\\(MAKE\\) jslint") "") - ((" \\$\\(MAKE\\) cpplint\n") "")) + ((" \\$\\(MAKE\\) lint") "")) ;; FIXME: This test seems to depends on files that are not ;; available in the bundled v8. See @@ -95,6 +92,7 @@ "test/parallel/test-util-inspect.js" "test/parallel/test-v8-serdes.js" "test/parallel/test-dgram-membership.js" + "test/parallel/test-dns-resolveany.js" "test/parallel/test-cluster-master-error.js" "test/parallel/test-cluster-master-kill.js" "test/parallel/test-npm-install.js" diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 959aa55a76..f77eab4799 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -98,14 +98,14 @@ computers over a network.") (define-public openntpd (package (name "openntpd") - (version "6.1p1") + (version "6.2p2") (source (origin (method url-fetch) (uri (string-append "mirror://openbsd/OpenNTPD/" name "-" version ".tar.gz")) (sha256 (base32 - "1ykx9ga76k5m54h7k5x4ds2clxsyfniss5vmf88pxnrip5bx6if8")))) + "1chghbh1bnwhxdgkqki51w94nwvlyj1a9q8716r4v2h0gc9s822q")))) (build-system gnu-build-system) (home-page "http://www.openntpd.org/") (synopsis "NTP client and server by the OpenBSD Project") diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 43bbdcd6e2..aa2f006674 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -41,12 +41,14 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages libevent) + #:use-module (gnu packages llvm) #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) @@ -575,6 +577,46 @@ assistant to write formal mathematical proofs using a variety of theorem provers.") (license license:gpl2+))) +(define-public emacs-tuareg + (package + (name "emacs-tuareg") + (version "2.0.10") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ocaml/tuareg/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1r2smclcs63n74lcyckbp90j09wyjdngn816cqzfkw54iwh3hd7q")))) + (build-system gnu-build-system) + (native-inputs `(("emacs" ,emacs-minimal) + ("opam" ,opam))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'install 'fix-install-path + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Makefile" + (("/emacs/site-lisp") + (string-append (assoc-ref %outputs "out") + "/share/emacs/site-lisp/"))) + #t)) + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (symlink "tuareg.el" + (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp/" + "tuareg-autoloads.el")) + #t))))) + (home-page "https://github.com/ocaml/tuareg") + (synopsis "OCaml programming mode, REPL, debugger for Emacs") + (description "Tuareg helps editing OCaml code, to highlight important +parts of the code, to run an OCaml REPL, and to run the OCaml debugger within +Emacs.") + (license license:gpl2+))) + (define-public ocaml-menhir (package (name "ocaml-menhir") @@ -1591,9 +1633,9 @@ lets the client choose the concrete timeline.") #:make-flags (list "OCAMLFIND_LDCONF=ignore") #:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda* (#:key #:allow-other-keys) - (system* "./bootstrap") + (system* "sh" "bootstrap") (substitute* "src/OCamlMakefile" (("/bin/sh") (which "bash"))) (substitute* "configure" @@ -3157,6 +3199,355 @@ writing to these structures, and they are accessed via the Bigarray module.") (description "Hex is a minimal library providing hexadecimal converters.") (license license:isc))) +(define-public ocaml-ezjsonm + (package + (name "ocaml-ezjsonm") + (version "0.4.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mirage/ezjsonm/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1kag0z2xlk4rw73a240dmkxh9rj6psxxcxkm7d7z0rrj6hzjajgq")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("alcotest" ,ocaml-alcotest))) + (propagated-inputs + `(("hex" ,ocaml-hex) + ("jsonm" ,ocaml-jsonm) + ("lwt" ,ocaml-lwt) + ("sexplib" ,ocaml-sexplib))) + (arguments + `(#:configure-flags (list "--enable-lwt"))) + (home-page "https://github.com/mirage/ezjsonm/") + (synopsis "Read and write JSON data") + (description "Ezjsonm provides more convenient (but far less flexible) input +and output functions that go to and from [string] values than jsonm. This avoids +the need to write signal code, which is useful for quick scripts that manipulate +JSON.") + (license license:isc))) + +(define-public ocaml-uri + (package + (name "ocaml-uri") + (version "1.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mirage/ocaml-uri/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "02bzrag79prx261rxf9mlak749pwf4flpfl8p012x1xznv9m0clc")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("ounit" ,ocaml-ounit))) + (propagated-inputs + `(("ppx-sexp-conv" ,ocaml-ppx-sexp-conv) + ("re" ,ocaml-re) + ("ppx-deriving" ,ocaml-ppx-deriving) + ("sexplib" ,ocaml-sexplib) + ("stringext" ,ocaml-stringext))) + (home-page "https://github.com/mirage/ocaml-uri") + (synopsis "RFC3986 URI/URL parsing library") + (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.") + (license license:isc))) + +(define-public ocaml-easy-format + (package + (name "ocaml-easy-format") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mjambon/easy-format/" + "archive/v" version ".tar.gz")) + (sha256 + (base32 + "1zcz682y9figa84k7lgdjcab5qbzk3yy14ygfqp2dhhrvjygm252")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/mjambon/easy-format") + (synopsis "Interface to the Format module") + (description "Easy-format is a high-level and functional interface to the +Format module of the OCaml standard library.") + (license license:bsd-3))) + +(define-public optcomp + (package + (name "optcomp") + (version "1.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/diml/optcomp/archive/" + version ".tar.gz")) + (sha256 + (base32 + "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (arguments + `(#:use-make? #t + #:make-flags + (list (string-append "BUILDFLAGS=\"-cflags -I," + (assoc-ref %build-inputs "camlp4") + "/lib/ocaml/site-lib/camlp4/Camlp4Parsers\"")))) + (native-inputs `(("camlp4" ,camlp4))) + (propagated-inputs `(("camlp4" ,camlp4))) + (home-page "https://github.com/diml/optcomp") + (synopsis "Optional compilation for OCaml") + (description "Optcomp provides an optional compilation facility with +cpp-like directives.") + (license license:bsd-3))) + +(define-public ocaml-piqilib + (package + (name "ocaml-piqilib") + (version "0.6.13") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/alavrik/piqi/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "1whqr2bb3gds2zmrzqnv8vqka9928w4lx6mi6g244kmbwb2h8d8l")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-ocamlpath + (lambda _ + (substitute* '("Makefile" "make/Makefile.ocaml") + (("OCAMLPATH := ") "OCAMLPATH := $(OCAMLPATH):")) + #t)) + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "make/OCamlMakefile" + (("/bin/sh") (which "bash"))) + (zero? (system* "./configure" "--prefix" out "--ocaml-libdir" + (string-append out "/lib/ocaml/site-lib")))))) + (add-after 'build 'build-ocaml + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "make" "ocaml")))) + (add-after 'install 'install-ocaml + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "make" "ocaml-install")))) + (add-after 'install-ocaml 'link-stubs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) + (lib (string-append out "/lib/ocaml/site-lib/piqilib"))) + (mkdir-p stubs) + (symlink (string-append lib "/dllpiqilib_stubs.so") + (string-append stubs "/dllpiqilib_stubs.so")) + #t)))))) + (native-inputs + `(("which" ,which) + ("camlp4" ,camlp4))) + (propagated-inputs + `(("xmlm" ,ocaml-xmlm) + ("ulex" ,ocaml-ulex) + ("optcomp" ,optcomp) + ("easy-format" ,ocaml-easy-format) + ("base64" ,ocaml-base64))) + (home-page "http://piqi.org") + (synopsis "Data serialization and conversion library") + (description "Piqilib is the common library used by the piqi command-line +tool and piqi-ocaml.") + (license license:asl2.0))) + +(define-public ocaml-uuidm + (package + (name "ocaml-uuidm") + (version "0.9.6") + (source (origin + (method url-fetch) + (uri (string-append "http://erratique.ch/software/uuidm/" + "releases/uuidm-" version ".tbz")) + (sha256 + (base32 + "0hz4fdx0x16k0pw9995vkz5d1hmzz6b16wck9li399rcbfnv5jlc")))) + (build-system ocaml-build-system) + (arguments + `(#:build-flags + (list "build" "--tests" "true" "--with-cmdliner" "true") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("opam" ,opam))) + (propagated-inputs + `(("cmdliner" ,ocaml-cmdliner) + ("topkg" ,ocaml-topkg))) + (home-page "http://erratique.ch/software/uuidm") + (synopsis "Universally unique identifiers for OCaml") + (description "Uuidm is an OCaml module implementing 128 bits universally +unique identifiers (UUIDs) version 3, 5 (named based with MD5, SHA-1 hashing) +and 4 (random based) according to RFC 4122.") + (license license:isc))) + +(define-public ocaml-graph + (package + (name "ocaml-graph") + (version "1.8.7") + (source (origin + (method url-fetch) + (uri (string-append "http://ocamlgraph.lri.fr/download/" + "ocamlgraph-" version ".tar.gz")) + (sha256 + (base32 + "1845r537swjil2fcj7lgbibc2zybfwqqasrd2s7bncajs83cl1nz")) + (patches (search-patches "ocaml-graph-honor-source-date-epoch.patch")))) + (build-system ocaml-build-system) + (arguments + `(#:install-target "install-findlib" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-shell + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CONFIG_SHELL" (string-append (assoc-ref inputs "bash") + "/bin/sh"))))))) + (inputs `(("lablgtk" ,lablgtk))) + (home-page "http://ocamlgraph.lri.fr/") + (synopsis "Graph library for OCaml") + (description "OCamlgraph is a generic graph library for OCaml.") + (license license:lgpl2.1))) + +(define-public ocaml-piqi + (package + (name "ocaml-piqi") + (version "0.7.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/alavrik/piqi-ocaml/" + "archive/v" version ".tar.gz")) + (sha256 + (base32 + "0ngz6y8i98i5v2ma8nk6mc83pdsmf2z0ks7m3xi6clfg3zqbddrv")))) + (build-system ocaml-build-system) + (arguments + `(#:make-flags + (list (string-append "DESTDIR=" (assoc-ref %outputs "out")) + (string-append "SHELL=" (assoc-ref %build-inputs "bash") + "/bin/sh")) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("which" ,which) + ("protobuf" ,protobuf))) ; for tests + (propagated-inputs + `(("piqilib" ,ocaml-piqilib))) + (home-page "https://github.com/alavrik/piqi-ocaml") + (synopsis "Protocol serialization system for OCaml") + (description "Piqi is a multi-format data serialization system for OCaml. +It provides a uniform interface for serializing OCaml data structures to JSON, +XML and Protocol Buffers formats.") + (license license:asl2.0))) + +(define-public bap + (package + (name "bap") + (version "1.1.0") + (home-page "https://github.com/BinaryAnalysisPlatform/bap") + (source (origin + (method url-fetch) + (uri (string-append home-page "/archive/v" version ".tar.gz")) + (sha256 + (base32 + "1ms95m4j1qrmy7zqmsn2izh7gq68lnmssl7chyhk977kd3sxj66m")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs + `(("oasis" ,ocaml-oasis) + ("clang" ,clang) + ("ounit" ,ocaml-ounit))) + (propagated-inputs + `(("core-kernel" ,ocaml-core-kernel) + ("ppx-driver" ,ocaml-ppx-driver) + ("uri" ,ocaml-uri) + ("llvm" ,llvm) + ("gmp" ,gmp) + ("clang-runtime" ,clang-runtime) + ("fileutils" ,ocaml-fileutils) + ("cmdliner" ,ocaml-cmdliner) + ("zarith" ,ocaml-zarith) + ("uuidm" ,ocaml-uuidm) + ("camlzip" ,camlzip) + ("frontc" ,ocaml-frontc) + ("ezjsonm" ,ocaml-ezjsonm) + ("ocurl" ,ocaml-ocurl) + ("piqi" ,ocaml-piqi) + ("ocamlgraph" ,ocaml-graph) + ("bitstring" ,ocaml-bitstring) + ("ppx-jane" ,ocaml-ppx-jane) + ("re" ,ocaml-re))) + (inputs `(("llvm" ,llvm))) + (arguments + `(#:use-make? #t + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "./configure" "--prefix" + (assoc-ref outputs "out") + "--libdir" + (string-append + (assoc-ref outputs "out") + "/lib/ocaml/site-lib") + "--with-llvm-version=3.8" + "--with-llvm-config=llvm-config" + "--enable-everything")))) + (add-after 'install 'link-stubs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) + (lib (string-append out "/lib/ocaml/site-lib/bap-plugin-llvm"))) + (mkdir-p stubs) + (symlink (string-append lib "/dllllvm_plugin_stubs.so") + (string-append stubs "/dllllvm_plugin_stubs.so")))))))) + (synopsis "Binary Analysis Platform") + (description "Binary Analysis Platform is a framework for writing program +analysis tools, that target binary files. The framework consists of a plethora +of libraries, plugins, and frontends. The libraries provide code reusability, +the plugins facilitate extensibility, and the frontends serve as entry points.") + (license license:expat))) + +(define-public ocaml-camomile + (package + (name "ocaml-camomile") + (version "0.8.5") + (home-page "https://github.com/yoriyuki/Camomile") + (source (origin + (method url-fetch) + (uri (string-append home-page "/releases/download/rel-" version + "/camomile-" version ".tar.bz2")) + (sha256 + (base32 + "003ikpvpaliy5hblhckfmln34zqz0mk3y2m1fqvbjngh3h2np045")))) + (build-system ocaml-build-system) + (native-inputs `(("camlp4" ,camlp4))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-bin/sh + (lambda _ + (setenv "CONFIG_SHELL" (which "bash"))))))) + (synopsis "Comprehensive Unicode library") + (description "Camomile is a Unicode library for OCaml. Camomile provides +Unicode character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from about +200 encodings, collation and locale-sensitive case mappings, and more. The +library is currently designed for Unicode Standard 3.2.") + ;; with an exception for linked libraries to use a different license + (license license:lgpl2.0+))) + (define-public coq-flocq (package (name "coq-flocq") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 9a510fc9ef..1efb30e800 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -79,8 +79,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.13.0") - (commit "228a3982df157847554abc9d0831d687264d8ebd") - (revision 5)) + (commit "a9468b422b6df2349a3f4d1451c9302c3d77011b") + (revision 6)) (package (name "guix") @@ -96,7 +96,7 @@ (commit commit))) (sha256 (base32 - "1gnc1w9kby7db9jih4xwrhrv0j57zy09lmr85gbmcqna6bx3wypw")) + "0bv323yp657x0a2aa2z5pp5541hjqmn908kh9jqlbdw5gpx9vg3d")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -293,10 +293,11 @@ generated file." #t))) (define-public current-guix - (let ((select? (delay (or (git-predicate - (string-append (current-source-directory) - "/../..")) - source-file?)))) + (let* ((repository-root (canonicalize-path + (string-append (current-source-directory) + "/../.."))) + (select? (delay (or (git-predicate repository-root) + source-file?)))) (lambda () "Return a package representing Guix built from the current source tree. This works by adding the current source tree to the store (after filtering it @@ -304,7 +305,7 @@ out) and returning a package that uses that as its 'source'." (package (inherit guix) (version (string-append (package-version guix) "+")) - (source (local-file "../.." "guix-current" + (source (local-file repository-root "guix-current" #:recursive? #t #:select? (force select?))))))) @@ -518,7 +519,7 @@ transactions from C or Python.") ("python-libarchive-c" ,python-libarchive-c) ("python-tlsh" ,python-tlsh) ("colordiff" ,colordiff) - ("xxd" ,vim) + ("xxd" ,xxd) ;; Below are modules used for tests. ("python-pytest" ,python-pytest) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index db04a5704e..739c51e396 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> @@ -45,7 +45,7 @@ (define-public parallel (package (name "parallel") - (version "20170822") + (version "20170922") (source (origin (method url-fetch) @@ -53,7 +53,7 @@ version ".tar.bz2")) (sha256 (base32 - "0j4i0dfbk1i37mcdl7l5ynsldp8biqnbm32sm0cl26by0nivyjc9")))) + "0r8mdnmimdf4n6q5k0l8zdql83ka5plrb5qm3rcgkcfwmnk0p0k1")))) (build-system gnu-build-system) (arguments `(#:phases @@ -136,9 +136,8 @@ and they are executed on lists of files, hosts, users or other items.") (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl"))) #:phases (modify-phases %standard-phases - (add-before - 'configure 'autogen - (lambda _ (zero? (system* "autoconf"))))))) ; configure.ac was patched + (add-after 'unpack 'autogen + (lambda _ (zero? (system* "autoconf"))))))) ; configure.ac was patched (home-page "http://slurm.schedmd.com/") (synopsis "Workload manager for cluster computing") (description diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index bde1ea8544..52689a71d5 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org> +;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,10 +42,13 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) + #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages kerberos) #:use-module (gnu packages linux) #:use-module (gnu packages man) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -480,3 +484,97 @@ use pass, the standard unix password manager, as the credential backend for your git repositories. This is achieved by explicitly defining mappings between hosts and entries in the password store.") (license license:lgpl3+))) + +(define-public john-the-ripper-jumbo + (let ((official-version "1.8.0") + (jumbo-version "1")) + (package + (name "john-the-ripper-jumbo") + (version (string-append official-version "-" jumbo-version)) + (source + (origin + (method url-fetch) + (uri (string-append "http://www.openwall.com/john/j/john-" + official-version "-jumbo-" jumbo-version ".tar.xz")) + (sha256 + (base32 + "08q92sfdvkz47rx6qjn7qv57cmlpy7i7rgddapq5384mb413vjds")) + (patches + (list (origin + (method url-fetch) + (uri (string-append "https://github.com/magnumripper/" + "JohnTheRipper/commit/" + "e2e868db3e153b3f959e119a51703d4afb99c624.patch")) + (file-name "john-the-ripper-jumbo-gcc5-inline.patch") + (sha256 + (base32 + "1shvcf1y2097115mxhzdkm64dr106a8zr6pqjqyh171q5ng5vfra"))) + (origin + (method url-fetch) + (uri (string-append "https://github.com/magnumripper/" + "JohnTheRipper/commit/" + "480e95b0e449863be3e1a5b0bc634a67df28b618.patch")) + (file-name "john-the-ripper-jumbo-non-x86.patch") + (sha256 + (base32 + "1ffd9dvhk0sb6ss8dv5yalh01lz30i7rilqilf2xv68gax2hyjqx"))))))) + (build-system gnu-build-system) + (inputs + `(("gmp" ,gmp) + ("krb5" ,mit-krb5) + ("libpcap" ,libpcap) + ("nss" ,nss) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags + (list (string-append + "CFLAGS=-O2 -g " + "-DJOHN_SYSTEMWIDE=1 " + "-DJOHN_SYSTEMWIDE_EXEC='\"" %output "/libexec/john\"' " + "-DJOHN_SYSTEMWIDE_HOME='\"" %output "/share/john\"'") + ;; For now, do not test for instruction set in configure, and + ;; do not pass '-march=native' to gcc: + "--disable-native-tests" + "--disable-native-macro") + #:tests? #f ;tests try to create '.john' in the build user's $HOME + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir-src + (lambda _ (chdir "src"))) + (replace 'install + (lambda _ + (let ((bindir (string-append %output "/bin")) + (docdir (string-append %output "/share/doc/john")) + (execdir (string-append %output "/libexec/john")) + (homedir (string-append %output "/share/john")) + (install-file-to (lambda (dir) + (lambda (f) (install-file f dir)))) + (symlink? (lambda (_ s) (eq? (stat:type s) 'symlink)))) + (with-directory-excursion "../run" + (for-each (install-file-to execdir) + (cons* "mailer" "benchmark-unify" + (find-files "." ".*\\.(py|rb|pl)"))) + (for-each (install-file-to homedir) + (append (find-files "." "(stats|dictionary.*)") + (find-files "." "(.*\\.chr|.*\\.lst)") + (find-files "." ".*\\.conf"))) + (for-each (install-file-to bindir) + '("tgtsnarf" "genmkvpwd" "mkvcalcproba" + "raw2dyna" "luks2john" "vncpcap2john" + "uaf2john" "calc_stat" "wpapcap2john" + "cprepair" "relbench" "SIPdump" "john")) + (for-each (lambda (f) ;install symlinked aliases + (symlink "john" + (string-append bindir "/" (basename f)))) + (find-files "." symlink?))) + (copy-recursively "../doc" docdir) + #t)))))) + (home-page "http://www.openwall.com/john/") + (synopsis "Password cracker") + (description "John the Ripper is a fast password cracker. Its primary +purpose is to detect weak Unix passwords. Besides several @code{crypt} +password hash types most commonly found on various Unix systems, supported out +of the box are Windows LM hashes, plus lots of other hashes and ciphers. This +is the community-enhanced, \"jumbo\" version of John the Ripper.") + (license license:gpl2+)))) diff --git a/gnu/packages/patches/bluez-CVE-2017-1000250.patch b/gnu/packages/patches/bluez-CVE-2017-1000250.patch new file mode 100644 index 0000000000..81f209d7b2 --- /dev/null +++ b/gnu/packages/patches/bluez-CVE-2017-1000250.patch @@ -0,0 +1,42 @@ +Description: CVE-2017-1000250: information disclosure vulnerability in service_search_attr_req +Origin: vendor +Bug-Debian: https://bugs.debian.org/875633 +Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1489446 +Bug-SuSE: https://bugzilla.suse.com/show_bug.cgi?id=1057342 +Forwarded: no +Author: Armis Security <security@armis.com> +Reviewed-by: Salvatore Bonaccorso <carnil@debian.org> +Last-Update: 2017-09-13 + +--- a/src/sdpd-request.c ++++ b/src/sdpd-request.c +@@ -918,15 +918,20 @@ static int service_search_attr_req(sdp_r + /* continuation State exists -> get from cache */ + sdp_buf_t *pCache = sdp_get_cached_rsp(cstate); + if (pCache) { +- uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent); +- pResponse = pCache->data; +- memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent); +- buf->data_size += sent; +- cstate->cStateValue.maxBytesSent += sent; +- if (cstate->cStateValue.maxBytesSent == pCache->data_size) +- cstate_size = sdp_set_cstate_pdu(buf, NULL); +- else +- cstate_size = sdp_set_cstate_pdu(buf, cstate); ++ if (cstate->cStateValue.maxBytesSent >= pCache->data_size) { ++ status = SDP_INVALID_CSTATE; ++ SDPDBG("Got bad cstate with invalid size"); ++ } else { ++ uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent); ++ pResponse = pCache->data; ++ memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent); ++ buf->data_size += sent; ++ cstate->cStateValue.maxBytesSent += sent; ++ if (cstate->cStateValue.maxBytesSent == pCache->data_size) ++ cstate_size = sdp_set_cstate_pdu(buf, NULL); ++ else ++ cstate_size = sdp_set_cstate_pdu(buf, cstate); ++ } + } else { + status = SDP_INVALID_CSTATE; + SDPDBG("Non-null continuation state, but null cache buffer"); diff --git a/gnu/packages/patches/calibre-drop-unrar.patch b/gnu/packages/patches/calibre-drop-unrar.patch deleted file mode 100644 index adf977b183..0000000000 --- a/gnu/packages/patches/calibre-drop-unrar.patch +++ /dev/null @@ -1,49 +0,0 @@ -Recreated old debian patch on the latest calibre version - -From 6764e4c211e50d4f4633dbabfba7cbc3089c51dc Mon Sep 17 00:00:00 2001 -From: Brendan Tildesley <brendan.tildesley@openmailbox.org> -Date: Sat, 13 May 2017 21:12:12 +1000 -Subject: [PATCH] Remove unrar extension - ---- - setup/extensions.json | 11 ----------- - src/calibre/ebooks/metadata/archive.py | 2 +- - 2 files changed, 1 insertion(+), 12 deletions(-) - -diff --git a/setup/extensions.json b/setup/extensions.json -index 1f6d1fb5fd..127390450f 100644 ---- a/setup/extensions.json -+++ b/setup/extensions.json -@@ -211,16 +211,5 @@ - "sources": "calibre/devices/mtp/unix/devices.c calibre/devices/mtp/unix/libmtp.c", - "headers": "calibre/devices/mtp/unix/devices.h calibre/devices/mtp/unix/upstream/music-players.h calibre/devices/mtp/unix/upstream/device-flags.h", - "libraries": "mtp" -- }, -- { -- "name": "unrar", -- "sources": "unrar/rar.cpp unrar/strlist.cpp unrar/strfn.cpp unrar/pathfn.cpp unrar/savepos.cpp unrar/smallfn.cpp unrar/global.cpp unrar/file.cpp unrar/filefn.cpp unrar/filcreat.cpp unrar/archive.cpp unrar/arcread.cpp unrar/unicode.cpp unrar/system.cpp unrar/isnt.cpp unrar/crypt.cpp unrar/crc.cpp unrar/rawread.cpp unrar/encname.cpp unrar/resource.cpp unrar/match.cpp unrar/timefn.cpp unrar/rdwrfn.cpp unrar/consio.cpp unrar/options.cpp unrar/ulinks.cpp unrar/errhnd.cpp unrar/rarvm.cpp unrar/secpassword.cpp unrar/rijndael.cpp unrar/getbits.cpp unrar/sha1.cpp unrar/extinfo.cpp unrar/extract.cpp unrar/volume.cpp unrar/list.cpp unrar/find.cpp unrar/unpack.cpp unrar/cmddata.cpp unrar/filestr.cpp unrar/scantree.cpp calibre/utils/unrar.cpp", -- "inc_dirs": "unrar", -- "defines": "SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE", -- "windows_defines": "SILENT RARDLL UNRAR", -- "haiku_defines": "LITTLE_ENDIAN SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE _BSD_SOURCE", -- "haiku_libraries": "bsd", -- "optimize_level": 2, -- "windows_libraries": "User32 Advapi32 kernel32 Shell32" - } - ] -diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py -index f5c0b7bed3..32257dcdae 100644 ---- a/src/calibre/ebooks/metadata/archive.py -+++ b/src/calibre/ebooks/metadata/archive.py -@@ -44,7 +44,7 @@ class ArchiveExtract(FileTypePlugin): - description = _('Extract common e-book formats from archive files ' - '(ZIP/RAR). Also try to autodetect if they are actually ' - 'CBZ/CBR files.') -- file_types = set(['zip', 'rar']) -+ file_types = set(['zip']) - supported_platforms = ['windows', 'osx', 'linux'] - on_import = True - --- -2.12.2 - diff --git a/gnu/packages/patches/csound-header-ordering.patch b/gnu/packages/patches/csound-header-ordering.patch deleted file mode 100644 index 3640d123dd..0000000000 --- a/gnu/packages/patches/csound-header-ordering.patch +++ /dev/null @@ -1,20 +0,0 @@ -Prevent compilation issues with boost-1.60.0. - -Reported upstream at https://github.com/csound/csound/issues/570 - ---- Csound6.05/Opcodes/chua/ChuaOscillator.cpp 2015-04-25 14:06:22.995646234 -0500 -+++ Csound6.05/Opcodes/chua/ChuaOscillator.cpp 2015-12-21 10:31:58.182362640 -0600 -@@ -117,11 +117,12 @@ - // d = sys_variables(12); - // gnor = a*(x.^3) + b*(x.^2) + c*x + d; - --#include <OpcodeBase.hpp> - #include <boost/numeric/ublas/vector.hpp> - using namespace boost::numeric; - #include <cmath> - -+#include <OpcodeBase.hpp> -+ - #undef CS_KSMPS - #define CS_KSMPS (opds.insdshead->ksmps) - diff --git a/gnu/packages/patches/e2fsprogs-32bit-quota-warnings.patch b/gnu/packages/patches/e2fsprogs-32bit-quota-warnings.patch deleted file mode 100644 index e7a96a2ac0..0000000000 --- a/gnu/packages/patches/e2fsprogs-32bit-quota-warnings.patch +++ /dev/null @@ -1,46 +0,0 @@ -Fix a test failure on 32-bit platforms. - -Patch copied from upstream source repository: - -https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=9e31a5696c4b699bf000a07b86601c1fb91c0493 - -diff --git a/lib/support/mkquota.c b/lib/support/mkquota.c -index 00f3a40..931a839 100644 ---- a/lib/support/mkquota.c -+++ b/lib/support/mkquota.c -@@ -50,11 +50,13 @@ static void print_dquot(const char *desc, struct dquot *dq) - { - if (desc) - fprintf(stderr, "%s: ", desc); -- fprintf(stderr, "%u %ld:%ld:%ld %ld:%ld:%ld\n", -- dq->dq_id, dq->dq_dqb.dqb_curspace, -- dq->dq_dqb.dqb_bsoftlimit, dq->dq_dqb.dqb_bhardlimit, -- dq->dq_dqb.dqb_curinodes, -- dq->dq_dqb.dqb_isoftlimit, dq->dq_dqb.dqb_ihardlimit); -+ fprintf(stderr, "%u %lld:%lld:%lld %lld:%lld:%lld\n", -+ dq->dq_id, (long long) dq->dq_dqb.dqb_curspace, -+ (long long) dq->dq_dqb.dqb_bsoftlimit, -+ (long long) dq->dq_dqb.dqb_bhardlimit, -+ (long long) dq->dq_dqb.dqb_curinodes, -+ (long long) dq->dq_dqb.dqb_isoftlimit, -+ (long long) dq->dq_dqb.dqb_ihardlimit); - } - #else - static void print_dquot(const char *desc EXT2FS_ATTR((unused)), -@@ -524,11 +526,11 @@ static int scan_dquots_callback(struct dquot *dquot, void *cb_data) - dq->dq_dqb.dqb_curinodes != dquot->dq_dqb.dqb_curinodes) { - scan_data->usage_is_inconsistent = 1; - fprintf(stderr, "[QUOTA WARNING] Usage inconsistent for ID %u:" -- "actual (%ld, %ld) != expected (%ld, %ld)\n", -- dq->dq_id, dq->dq_dqb.dqb_curspace, -- dq->dq_dqb.dqb_curinodes, -- dquot->dq_dqb.dqb_curspace, -- dquot->dq_dqb.dqb_curinodes); -+ "actual (%lld, %lld) != expected (%lld, %lld)\n", -+ dq->dq_id, (long long) dq->dq_dqb.dqb_curspace, -+ (long long) dq->dq_dqb.dqb_curinodes, -+ (long long) dquot->dq_dqb.dqb_curspace, -+ (long long) dquot->dq_dqb.dqb_curinodes); - } - - if (scan_data->update_limits) { diff --git a/gnu/packages/patches/file-CVE-2017-1000249.patch b/gnu/packages/patches/file-CVE-2017-1000249.patch new file mode 100644 index 0000000000..505acf1592 --- /dev/null +++ b/gnu/packages/patches/file-CVE-2017-1000249.patch @@ -0,0 +1,27 @@ +https://github.com/file/file/commit/35c94dc6acc418f1ad7f6241a6680e5327495793.patch +http://openwall.com/lists/oss-security/2017/09/05/3 + +The patch is minorly modified to apply to file-5.30 + +From 35c94dc6acc418f1ad7f6241a6680e5327495793 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas <christos@zoulas.com> +Date: Sun, 27 Aug 2017 07:55:02 +0000 +Subject: [PATCH] Fix always true condition (Thomas Jarosch) + +--- + src/readelf.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/readelf.c b/src/readelf.c +index 81451827..5f425c97 100644 +--- a/src/readelf.c ++++ b/src/readelf.c +@@ -511,7 +511,7 @@ do_bid_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, + size_t noff, size_t doff, int *flags) + { + if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 && +- type == NT_GNU_BUILD_ID && (descsz >= 4 || descsz <= 20)) { ++ type == NT_GNU_BUILD_ID && (descsz >= 4 && descsz <= 20)) { + uint8_t desc[20]; + const char *btype; + uint32_t i; diff --git a/gnu/packages/patches/fontforge-svg-modtime.patch b/gnu/packages/patches/fontforge-svg-modtime.patch deleted file mode 100644 index fd960ae610..0000000000 --- a/gnu/packages/patches/fontforge-svg-modtime.patch +++ /dev/null @@ -1,35 +0,0 @@ -Propagate source font modification time to svg during conversion. Similar to -what upstream commit 95a470e941d9a20fbdaca51334e8b6b9d93cfae4 did for TTF -files. - -Submitted upstream at http://github.com/fontforge/fontforge/pull/2696 - ---- a/fontforge/svg.c -+++ b/fontforge/svg.c -@@ -27,7 +27,6 @@ - #include "fontforgevw.h" - #include <unistd.h> - #include <math.h> --#include <time.h> - #include <locale.h> - #include <utype.h> - #include <chardata.h> -@@ -62,7 +61,6 @@ static int svg_outfontheader(FILE *file, SplineFont *sf,int layer) { - BlueData bd; - char *hash, *hasv, ch; - int minu, maxu, i; -- time_t now; - const char *author = GetAuthor(); - - memset(&info,0,sizeof(info)); -@@ -78,9 +76,8 @@ static int svg_outfontheader(FILE *file, SplineFont *sf,int layer) { - fprintf( file, "\n-->\n" ); - } - fprintf( file, "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\">\n" ); -- time(&now); - fprintf( file, "<metadata>\nCreated by FontForge %d at %s", -- FONTFORGE_VERSIONDATE_RAW, ctime(&now) ); -+ FONTFORGE_VERSIONDATE_RAW, ctime((time_t*)&sf->modificationtime) ); - if ( author!=NULL ) - fprintf(file," By %s\n", author); - else diff --git a/gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch b/gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch new file mode 100644 index 0000000000..d9f0cc1212 --- /dev/null +++ b/gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch @@ -0,0 +1,14 @@ +Fix for <https://nvd.nist.gov/vuln/detail?vulnId=CVE-2015-8327>. + +--- a/util.c 2014-06-20 19:26:18 +0000 ++++ b/util.c 2015-10-30 15:45:03 +0000 +@@ -31,7 +31,7 @@ + #include <assert.h> + + +-const char* shellescapes = "|<>&!$\'\"#*?()[]{}"; ++const char* shellescapes = "|<>&!$\'\"`#*?()[]{}"; + + const char * temp_dir() + { + diff --git a/gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch b/gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch new file mode 100644 index 0000000000..d3c3024220 --- /dev/null +++ b/gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch @@ -0,0 +1,13 @@ +Fix for <https://nvd.nist.gov/vuln/detail?vulnId=CVE-2015-8560>. + +--- a/util.c 2015-10-30 15:45:03 +0000 ++++ b/util.c 2015-12-12 23:27:21 +0000 +@@ -31,7 +31,7 @@ + #include <assert.h> + + +-const char* shellescapes = "|<>&!$\'\"`#*?()[]{}"; ++const char* shellescapes = "|;<>&!$\'\"`#*?()[]{}"; + + const char * temp_dir() + { diff --git a/gnu/packages/patches/gd-CVE-2017-7890.patch b/gnu/packages/patches/gd-CVE-2017-7890.patch deleted file mode 100644 index 66034c5703..0000000000 --- a/gnu/packages/patches/gd-CVE-2017-7890.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 99ba5c353373ed198f54af66fe4e355ebb96e363 Mon Sep 17 00:00:00 2001 -From: LEPILLER Julien <julien@lepiller.eu> -Date: Thu, 3 Aug 2017 17:04:17 +0200 -Subject: [PATCH] Fix #399: Buffer over-read into uninitialized memory. - -The stack allocated color map buffers were not zeroed before usage, and -so undefined palette indexes could cause information leakage. - -This is CVE-2017-7890. ---- - src/gd_gif_in.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/gd_gif_in.c b/src/gd_gif_in.c -index 008d1ec..c195448 100644 ---- a/src/gd_gif_in.c -+++ b/src/gd_gif_in.c -@@ -216,6 +216,9 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromGifCtx(gdIOCtxPtr fd) - - gdImagePtr im = 0; - -+ memset(ColorMap, 0, 3 * MAXCOLORMAPSIZE); -+ memset(localColorMap, 0, 3 * MAXCOLORMAPSIZE); -+ - if(!ReadOK(fd, buf, 6)) { - return 0; - } --- -2.13.3 - diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch new file mode 100644 index 0000000000..dbcaea1343 --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch @@ -0,0 +1,137 @@ +http://www.openwall.com/lists/oss-security/2017/09/01/6 + +CVE-2017-11403: +http://hg.code.sf.net/p/graphicsmagick/code/rev/d0a76868ca37 + +CVE-2017-14103: +http://hg.code.sf.net/p/graphicsmagick/code/rev/98721124e51f + +some changes were made to make the patch apply + +# HG changeset patch +# User Glenn Randers-Pehrson <glennrp+bmo@gmail.com> +# Date 1503875721 14400 +# Node ID 98721124e51fd5ec0c6fba64bce2e218869632d2 +# Parent f0f2ea85a2930f3b6dcd72352719adb9660f2aad +Attempt to fix Issue 440. + +diff -ru a/coders/png.c b/coders/png.c +--- a/coders/png.c 1969-12-31 19:00:00.000000000 -0500 ++++ b/coders/png.c 2017-09-10 11:31:56.543194173 -0400 +@@ -3106,7 +3106,9 @@ + if (length > PNG_MAX_UINT || count == 0) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(CorruptImageError,CorruptImage,image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ "chunk length (%lu) > PNG_MAX_UINT",length); ++ return ((Image*)NULL); + } + + chunk=(unsigned char *) NULL; +@@ -3117,13 +3119,16 @@ + if (chunk == (unsigned char *) NULL) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(ResourceLimitError,MemoryAllocationFailed, +- image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " Could not allocate chunk memory"); ++ return ((Image*)NULL); + } + if (ReadBlob(image,length,chunk) < length) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(CorruptImageError,CorruptImage,image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " chunk reading was incomplete"); ++ return ((Image*)NULL); + } + p=chunk; + } +@@ -3198,7 +3203,7 @@ + jng_width, jng_height); + MagickFreeMemory(chunk); + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(CorruptImageError,ImproperImageHeader,image); ++ return ((Image *)NULL); + } + + /* Temporarily set width and height resources to match JHDR */ +@@ -3233,8 +3238,9 @@ + if (color_image == (Image *) NULL) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(ResourceLimitError,MemoryAllocationFailed, +- image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not open color_image blob"); ++ return ((Image *)NULL); + } + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), +@@ -3245,7 +3251,9 @@ + if (status == MagickFalse) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(CoderError,UnableToOpenBlob,color_image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not open color_image blob"); ++ return ((Image *)NULL); + } + + if (!image_info->ping && jng_color_type >= 12) +@@ -3255,17 +3263,18 @@ + if (alpha_image_info == (ImageInfo *) NULL) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(ResourceLimitError, +- MemoryAllocationFailed, image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not allocate alpha_image_info",length); ++ return ((Image *)NULL); + } + GetImageInfo(alpha_image_info); + alpha_image=AllocateImage(alpha_image_info); + if (alpha_image == (Image *) NULL) + { + DestroyJNGInfo(color_image_info,alpha_image_info); +- ThrowReaderException(ResourceLimitError, +- MemoryAllocationFailed, +- alpha_image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not allocate alpha_image"); ++ return ((Image *)NULL); + } + if (logging) + (void) LogMagickEvent(CoderEvent,GetMagickModule(), +@@ -3277,7 +3286,9 @@ + { + DestroyJNGInfo(color_image_info,alpha_image_info); + DestroyImage(alpha_image); +- ThrowReaderException(CoderError,UnableToOpenBlob,image); ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " could not allocate alpha_image blob"); ++ return ((Image *)NULL); + } + if (jng_alpha_compression_method == 0) + { +@@ -3613,6 +3624,8 @@ + alpha_image = (Image *)NULL; + DestroyImageInfo(alpha_image_info); + alpha_image_info = (ImageInfo *)NULL; ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ " Destroy the JNG image"); + DestroyImage(jng_image); + jng_image = (Image *)NULL; + } +@@ -5146,8 +5159,8 @@ + + if (image == (Image *) NULL) + { +- DestroyImageList(previous); + CloseBlob(previous); ++ DestroyImageList(previous); + MngInfoFreeStruct(mng_info,&have_mng_structure); + return((Image *) NULL); + } diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-13775.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-13775.patch new file mode 100644 index 0000000000..83478c13b3 --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2017-13775.patch @@ -0,0 +1,195 @@ +http://openwall.com/lists/oss-security/2017/08/31/3 +http://hg.code.sf.net/p/graphicsmagick/code/raw-rev/b037d79b6ccd + +some changes were made to make the patch apply + +# HG changeset patch +# User Bob Friesenhahn <bfriesen@GraphicsMagick.org> +# Date 1503774853 18000 +# Node ID b037d79b6ccd0cfba7ba9ce09b454ed46d688036 +# Parent 198ea602ea7cc767dc3022bbcf887bcd4534158d +JNX: Fix DOS issues + +diff -r 198ea602ea7c -r b037d79b6ccd coders/jnx.c +--- a/coders/jnx.c Tue Aug 22 08:08:30 2017 -0500 ++++ b/coders/jnx.c Sat Aug 26 14:14:13 2017 -0500 +@@ -1,5 +1,5 @@ + /* +-% Copyright (C) 2012-2015 GraphicsMagick Group ++% Copyright (C) 2012-2017 GraphicsMagick Group + % + % This program is covered by multiple licenses, which are described in + % Copyright.txt. You should have received a copy of Copyright.txt with this +@@ -100,6 +100,7 @@ + + char img_label_str[MaxTextExtent]; + ++ + alloc_size = TileInfo->PicSize + 2; + + if (image->logging) +@@ -242,6 +243,9 @@ + total_tiles, + current_tile; + ++ magick_off_t ++ file_size; ++ + /* Open image file. */ + assert(image_info != (const ImageInfo *) NULL); + assert(image_info->signature == MagickSignature); +@@ -254,9 +258,8 @@ + if (status == False) + ThrowReaderException(FileOpenError, UnableToOpenFile, image); + +- memset(JNXLevelInfo, 0, sizeof(JNXLevelInfo)); +- + /* Read JNX image header. */ ++ (void) memset(&JNXHeader, 0, sizeof(JNXHeader)); + JNXHeader.Version = ReadBlobLSBLong(image); + if (JNXHeader.Version > 4) + ThrowReaderException(CorruptImageError, ImproperImageHeader, image); +@@ -266,8 +269,6 @@ + JNXHeader.MapBounds.SouthWest.lat = ReadBlobLSBLong(image); + JNXHeader.MapBounds.SouthWest.lon = ReadBlobLSBLong(image); + JNXHeader.Levels = ReadBlobLSBLong(image); +- if (JNXHeader.Levels > 20) +- ThrowReaderException(CorruptImageError, ImproperImageHeader, image); + JNXHeader.Expiration = ReadBlobLSBLong(image); + JNXHeader.ProductID = ReadBlobLSBLong(image); + JNXHeader.CRC = ReadBlobLSBLong(image); +@@ -279,7 +280,41 @@ + if (EOFBlob(image)) + ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); + ++ file_size = GetBlobSize(image); ++ ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ "JNX Header:\n" ++ " Version: %u\n" ++ " DeviceSN: %u\n" ++ " MapBounds:\n" ++ " NorthEast: lat = %u, lon = %u\n" ++ " SouthWest: lat = %u, lon = %u\n" ++ " Levels: %u\n" ++ " Expiration: %u\n" ++ " ProductID: %u\n" ++ " CRC: %u\n" ++ " SigVersion: %u\n" ++ " SigOffset: %u\n" ++ " ZOrder: %u", ++ JNXHeader.Version, ++ JNXHeader.DeviceSN, ++ JNXHeader.MapBounds.NorthEast.lat, ++ JNXHeader.MapBounds.NorthEast.lon, ++ JNXHeader.MapBounds.SouthWest.lat, ++ JNXHeader.MapBounds.SouthWest.lon, ++ JNXHeader.Levels, ++ JNXHeader.Expiration, ++ JNXHeader.ProductID, ++ JNXHeader.CRC, ++ JNXHeader.SigVersion, ++ JNXHeader.SigOffset, ++ JNXHeader.ZOrder); ++ ++ if (JNXHeader.Levels > 20) ++ ThrowReaderException(CorruptImageError, ImproperImageHeader, image); ++ + /* Read JNX image level info. */ ++ memset(JNXLevelInfo, 0, sizeof(JNXLevelInfo)); + total_tiles = 0; + current_tile = 0; + for (i = 0; i < JNXHeader.Levels; i++) +@@ -302,11 +337,23 @@ + { + JNXLevelInfo[i].Copyright = NULL; + } ++ ++ if (EOFBlob(image)) ++ ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); ++ ++ if (image->logging) ++ (void) LogMagickEvent(CoderEvent,GetMagickModule(), ++ "Level[%u] Info:" ++ " TileCount: %4u" ++ " TilesOffset: %6u" ++ " Scale: %04u", ++ i, ++ JNXLevelInfo[i].TileCount, ++ JNXLevelInfo[i].TilesOffset, ++ JNXLevelInfo[i].Scale ++ ); + } + +- if (EOFBlob(image)) +- ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); +- + /* Get the current limit */ + SaveLimit = GetMagickResourceLimit(MapResource); + +@@ -316,11 +363,32 @@ + /* Read JNX image data. */ + for (i = 0; i < JNXHeader.Levels; i++) + { ++ /* ++ Validate TileCount against remaining file data ++ */ ++ const magick_off_t current_offset = TellBlob(image); ++ const size_t pos_list_entry_size = ++ sizeof(magick_uint32_t) + sizeof(magick_uint32_t) + sizeof(magick_uint32_t) + ++ sizeof(magick_uint32_t) + sizeof(magick_uint16_t) + sizeof(magick_uint16_t) + ++ sizeof(magick_uint32_t) + sizeof(magick_uint32_t); ++ const magick_off_t remaining = file_size-current_offset; ++ const size_t needed = MagickArraySize(pos_list_entry_size,JNXLevelInfo[i].TileCount); ++ ++ if ((needed == 0U) || (remaining <= 0) || (remaining < (magick_off_t) needed)) ++ { ++ (void) SetMagickResourceLimit(MapResource, SaveLimit); ++ ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); ++ } ++ + PositionList = MagickAllocateArray(TJNXTileInfo *, + JNXLevelInfo[i].TileCount, + sizeof(TJNXTileInfo)); + if (PositionList == NULL) +- continue; ++ { ++ (void) SetMagickResourceLimit(MapResource, SaveLimit); ++ ThrowReaderException(ResourceLimitError,MemoryAllocationFailed, ++ image); ++ } + + (void) SeekBlob(image, JNXLevelInfo[i].TilesOffset, SEEK_SET); + for (j = 0; j < JNXLevelInfo[i].TileCount; j++) +@@ -333,12 +401,15 @@ + PositionList[j].PicHeight = ReadBlobLSBShort(image); + PositionList[j].PicSize = ReadBlobLSBLong(image); + PositionList[j].PicOffset = ReadBlobLSBLong(image); +- } + +- if (EOFBlob(image)) +- { +- MagickFreeMemory(PositionList); +- ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); ++ if (EOFBlob(image) || ++ ((magick_off_t) PositionList[j].PicOffset + ++ PositionList[j].PicSize > file_size)) ++ { ++ (void) SetMagickResourceLimit(MapResource, SaveLimit); ++ MagickFreeMemory(PositionList); ++ ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); ++ } + } + + for (j = 0; j < JNXLevelInfo[i].TileCount; j++) +@@ -351,6 +422,9 @@ + image = ExtractTileJPG(image, image_info, PositionList+j, exception); + (void) SetMonitorHandler(previous_handler); + ++ if (exception->severity >= ErrorException) ++ break; ++ + current_tile++; + if (QuantumTick(current_tile,total_tiles)) + if (!MagickMonitorFormatted(current_tile,total_tiles,exception, + diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch new file mode 100644 index 0000000000..e129fd58fc --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch @@ -0,0 +1,179 @@ +http://openwall.com/lists/oss-security/2017/08/31/1 +http://openwall.com/lists/oss-security/2017/08/31/2 +http://hg.code.sf.net/p/graphicsmagick/code/raw-rev/233a720bfd5e + +some changes were made to make the patch apply + +# HG changeset patch +# User Bob Friesenhahn <bfriesen@GraphicsMagick.org> +# Date 1503779175 18000 +# Node ID 233a720bfd5efd378f133a776507ed41230da617 +# Parent b037d79b6ccd0cfba7ba9ce09b454ed46d688036 +XBM: Fix DOS issues. + +diff -r b037d79b6ccd -r 233a720bfd5e coders/xbm.c +--- a/coders/xbm.c Sat Aug 26 14:14:13 2017 -0500 ++++ b/coders/xbm.c Sat Aug 26 15:26:15 2017 -0500 +@@ -1,5 +1,5 @@ + /* +-% Copyright (C) 2003 -2012 GraphicsMagick Group ++% Copyright (C) 2003-2017 GraphicsMagick Group + % Copyright (C) 2002 ImageMagick Studio + % Copyright 1991-1999 E. I. du Pont de Nemours and Company + % +@@ -121,13 +121,15 @@ + + static int XBMInteger(Image *image,short int *hex_digits) + { ++ unsigned int ++ flag; ++ + int + c, +- flag, + value; + + value=0; +- flag=0; ++ flag=0U; + for ( ; ; ) + { + c=ReadBlobByte(image); +@@ -158,18 +160,14 @@ + Image + *image; + +- int +- bit; +- +- long +- y; +- + register IndexPacket + *indexes; + +- register long ++ register size_t ++ bytes_per_line, + i, +- x; ++ x, ++ y; + + register PixelPacket + *q; +@@ -177,22 +175,24 @@ + register unsigned char + *p; + +- short int +- hex_digits[256]; +- + unsigned char + *data; + + unsigned int ++ bit, ++ byte, ++ padding, ++ version; ++ ++ int ++ value; ++ ++ short int ++ hex_digits[256]; ++ ++ MagickPassFail + status; + +- unsigned long +- byte, +- bytes_per_line, +- padding, +- value, +- version; +- + /* + Open image file. + */ +@@ -207,6 +207,8 @@ + /* + Read X bitmap header. + */ ++ (void) memset(buffer,0,sizeof(buffer)); ++ name[0]='\0'; + while (ReadBlobString(image,buffer) != (char *) NULL) + if (sscanf(buffer,"#define %s %lu",name,&image->columns) == 2) + if ((strlen(name) >= 6) && +@@ -278,6 +280,8 @@ + /* + Initialize hex values. + */ ++ for (i = 0; i < sizeof(hex_digits)/sizeof(hex_digits[0]); i++) ++ hex_digits[i]=(-1); + hex_digits['0']=0; + hex_digits['1']=1; + hex_digits['2']=2; +@@ -311,40 +315,50 @@ + */ + p=data; + if (version == 10) +- for (i=0; i < (long) (bytes_per_line*image->rows); (i+=2)) ++ for (i=0; i < (bytes_per_line*image->rows); (i+=2)) + { + value=XBMInteger(image,hex_digits); ++ if (value < 0) ++ { ++ MagickFreeMemory(data); ++ ThrowReaderException(CorruptImageError,ImproperImageHeader,image); ++ } + *p++=(unsigned char) value; + if (!padding || ((i+2) % bytes_per_line)) + *p++=(unsigned char) (value >> 8); + } + else +- for (i=0; i < (long) (bytes_per_line*image->rows); i++) ++ for (i=0; i < (bytes_per_line*image->rows); i++) + { + value=XBMInteger(image,hex_digits); ++ if (value < 0) ++ { ++ MagickFreeMemory(data); ++ ThrowReaderException(CorruptImageError,ImproperImageHeader,image); ++ } + *p++=(unsigned char) value; + } + /* + Convert X bitmap image to pixel packets. + */ + p=data; +- for (y=0; y < (long) image->rows; y++) ++ for (y=0; y < image->rows; y++) + { + q=SetImagePixels(image,0,y,image->columns,1); + if (q == (PixelPacket *) NULL) + break; + indexes=AccessMutableIndexes(image); +- bit=0; +- byte=0; +- for (x=0; x < (long) image->columns; x++) ++ bit=0U; ++ byte=0U; ++ for (x=0; x < image->columns; x++) + { +- if (bit == 0) ++ if (bit == 0U) + byte=(*p++); + indexes[x]=byte & 0x01 ? 0x01 : 0x00; + bit++; +- byte>>=1; +- if (bit == 8) +- bit=0; ++ byte>>=1U; ++ if (bit == 8U) ++ bit=0U; + } + if (!SyncImagePixels(image)) + break; + diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch new file mode 100644 index 0000000000..46f6b032c7 --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch @@ -0,0 +1,80 @@ +http://openwall.com/lists/oss-security/2017/08/28/5 +http://hg.code.sf.net/p/graphicsmagick/code/rev/3bbf7a13643d + +some changes were made to make the patch apply + +# HG changeset patch +# User Bob Friesenhahn <bfriesen@GraphicsMagick.org> +# Date 1503268616 18000 +# Node ID 3bbf7a13643df3be76b0e19088a6cc632eea2072 +# Parent 83a5b946180835f260bcb91e3d06327a8e2577e3 +PNM: For binary formats, verify sufficient backing file data before memory request. + +diff -r 83a5b9461808 -r 3bbf7a13643d coders/pnm.c +--- a/coders/pnm.c Sun Aug 20 17:31:35 2017 -0500 ++++ b/coders/pnm.c Sun Aug 20 17:36:56 2017 -0500 +@@ -569,7 +569,7 @@ + (void) LogMagickEvent(CoderEvent,GetMagickModule(),"Colors: %u", + image->colors); + } +- number_pixels=image->columns*image->rows; ++ number_pixels=MagickArraySize(image->columns,image->rows); + if (number_pixels == 0) + ThrowReaderException(CorruptImageError,NegativeOrZeroImageSize,image); + if (image->storage_class == PseudoClass) +@@ -858,14 +858,14 @@ + if (1 == bits_per_sample) + { + /* PBM */ +- bytes_per_row=((image->columns+7) >> 3); ++ bytes_per_row=((image->columns+7U) >> 3); + import_options.grayscale_miniswhite=MagickTrue; + quantum_type=GrayQuantum; + } + else + { + /* PGM & XV_332 */ +- bytes_per_row=((bits_per_sample+7)/8)*image->columns; ++ bytes_per_row=MagickArraySize(((bits_per_sample+7U)/8U),image->columns); + if (XV_332_Format == format) + { + quantum_type=IndexQuantum; +@@ -878,7 +878,8 @@ + } + else + { +- bytes_per_row=(((bits_per_sample+7)/8)*samples_per_pixel)*image->columns; ++ bytes_per_row=MagickArraySize((((bits_per_sample+7)/8)*samples_per_pixel), ++ image->columns); + if (3 == samples_per_pixel) + { + /* PPM */ +@@ -915,6 +916,28 @@ + is_monochrome=MagickFalse; + } + } ++ ++ /* Validate file size before allocating memory */ ++ if (BlobIsSeekable(image)) ++ { ++ const magick_off_t file_size = GetBlobSize(image); ++ const magick_off_t current_offset = TellBlob(image); ++ if ((file_size > 0) && ++ (current_offset > 0) && ++ (file_size > current_offset)) ++ { ++ const magick_off_t remaining = file_size-current_offset; ++ const magick_off_t needed = (magick_off_t) image->rows * ++ (magick_off_t) bytes_per_row; ++ if ((remaining < (magick_off_t) bytes_per_row) || ++ (remaining < needed)) ++ { ++ ThrowException(exception,CorruptImageError,UnexpectedEndOfFile, ++ image->filename); ++ break; ++ } ++ } ++ } + + scanline_set=AllocateThreadViewDataArray(image,exception,bytes_per_row,1); + if (scanline_set == (ThreadViewDataSet *) NULL) diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch new file mode 100644 index 0000000000..1f55d90d38 --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch @@ -0,0 +1,72 @@ +http://hg.code.sf.net/p/graphicsmagick/code/raw-rev/493da54370aa +http://openwall.com/lists/oss-security/2017/09/06/4 + +some changes were made to make the patch apply + +# HG changeset patch +# User Bob Friesenhahn <bfriesen@GraphicsMagick.org> +# Date 1503257388 18000 +# Node ID 493da54370aa42cb430c52a69eb75db0001a5589 +# Parent f8724674907902b7bc37c04f252fe30fbdd88e6f +SUN: Verify that file header data length, and file length are sufficient for claimed image dimensions. + +diff -r f87246749079 -r 493da54370aa coders/sun.c +--- a/coders/sun.c Sun Aug 20 12:21:03 2017 +0200 ++++ b/coders/sun.c Sun Aug 20 14:29:48 2017 -0500 +@@ -498,6 +498,12 @@ + if (sun_info.depth < 8) + image->depth=sun_info.depth; + ++ if (image_info->ping) ++ { ++ CloseBlob(image); ++ return(image); ++ } ++ + /* + Compute bytes per line and bytes per image for an unencoded + image. +@@ -522,15 +528,37 @@ + if (bytes_per_image > sun_info.length) + ThrowReaderException(CorruptImageError,ImproperImageHeader,image); + +- if (image_info->ping) +- { +- CloseBlob(image); +- return(image); +- } + if (sun_info.type == RT_ENCODED) + sun_data_length=(size_t) sun_info.length; + else + sun_data_length=bytes_per_image; ++ ++ /* ++ Verify that data length claimed by header is supported by file size ++ */ ++ if (sun_info.type == RT_ENCODED) ++ { ++ if (sun_data_length < bytes_per_image/255U) ++ { ++ ThrowReaderException(CorruptImageError,ImproperImageHeader,image); ++ } ++ } ++ if (BlobIsSeekable(image)) ++ { ++ const magick_off_t file_size = GetBlobSize(image); ++ const magick_off_t current_offset = TellBlob(image); ++ if ((file_size > 0) && ++ (current_offset > 0) && ++ (file_size > current_offset)) ++ { ++ const magick_off_t remaining = file_size-current_offset; ++ if (remaining < (magick_off_t) sun_data_length) ++ { ++ ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image); ++ } ++ } ++ } ++ + sun_data=MagickAllocateMemory(unsigned char *,sun_data_length); + if (sun_data == (unsigned char *) NULL) + ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image); + diff --git a/gnu/packages/patches/httpd-CVE-2017-9798.patch b/gnu/packages/patches/httpd-CVE-2017-9798.patch new file mode 100644 index 0000000000..8391a3db4a --- /dev/null +++ b/gnu/packages/patches/httpd-CVE-2017-9798.patch @@ -0,0 +1,22 @@ +Fixes "options bleed", aka. CVE-2017-9798: + + https://nvd.nist.gov/vuln/detail/CVE-2017-9798 + https://blog.fuzzing-project.org/60-Optionsbleed-HTTP-OPTIONS-method-can-leak-Apaches-server-memory.html + +From <https://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/server/core.c?r1=1805223&r2=1807754&pathrev=1807754&view=patch>. + +--- a/server/core.c 2017/08/16 16:50:29 1805223 ++++ b/server/core.c 2017/09/08 13:13:11 1807754 +@@ -2266,6 +2266,12 @@ + /* method has not been registered yet, but resource restriction + * is always checked before method handling, so register it. + */ ++ if (cmd->pool == cmd->temp_pool) { ++ /* In .htaccess, we can't globally register new methods. */ ++ return apr_psprintf(cmd->pool, "Could not register method '%s' " ++ "for %s from .htaccess configuration", ++ method, cmd->cmd->name); ++ } + methnum = ap_method_register(cmd->pool, + apr_pstrdup(cmd->pool, method)); + } diff --git a/gnu/packages/patches/libarchive-CVE-2017-14166.patch b/gnu/packages/patches/libarchive-CVE-2017-14166.patch new file mode 100644 index 0000000000..a122848440 --- /dev/null +++ b/gnu/packages/patches/libarchive-CVE-2017-14166.patch @@ -0,0 +1,45 @@ +Fix CVE-2017-14166: + +https://github.com/libarchive/libarchive/issues/935 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14166 + +Patch copied from upstream source repository: + +https://github.com/libarchive/libarchive/commit/fa7438a0ff4033e4741c807394a9af6207940d71 + +From fa7438a0ff4033e4741c807394a9af6207940d71 Mon Sep 17 00:00:00 2001 +From: Joerg Sonnenberger <joerg@bec.de> +Date: Tue, 5 Sep 2017 18:12:19 +0200 +Subject: [PATCH] Do something sensible for empty strings to make fuzzers + happy. + +--- + libarchive/archive_read_support_format_xar.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/libarchive/archive_read_support_format_xar.c b/libarchive/archive_read_support_format_xar.c +index 7a22beb9d..93eeacc5e 100644 +--- a/libarchive/archive_read_support_format_xar.c ++++ b/libarchive/archive_read_support_format_xar.c +@@ -1040,6 +1040,9 @@ atol10(const char *p, size_t char_cnt) + uint64_t l; + int digit; + ++ if (char_cnt == 0) ++ return (0); ++ + l = 0; + digit = *p - '0'; + while (digit >= 0 && digit < 10 && char_cnt-- > 0) { +@@ -1054,7 +1057,10 @@ atol8(const char *p, size_t char_cnt) + { + int64_t l; + int digit; +- ++ ++ if (char_cnt == 0) ++ return (0); ++ + l = 0; + while (char_cnt-- > 0) { + if (*p >= '0' && *p <= '7') diff --git a/gnu/packages/patches/libunwind-CVE-2015-3239.patch b/gnu/packages/patches/libunwind-CVE-2015-3239.patch deleted file mode 100644 index 3f11ac7337..0000000000 --- a/gnu/packages/patches/libunwind-CVE-2015-3239.patch +++ /dev/null @@ -1,17 +0,0 @@ -Copied from Fedora. - -https://bugzilla.redhat.com/show_bug.cgi?id=1232265 -http://pkgs.fedoraproject.org/cgit/libunwind.git/tree/libunwind-1.1-fix-CVE-2015-3239.patch - -diff -up libunwind-1.1/include/dwarf_i.h.CVE20153239 libunwind-1.1/include/dwarf_i.h ---- libunwind-1.1/include/dwarf_i.h.CVE20153239 2015-07-10 13:38:36.404996748 -0400 -+++ libunwind-1.1/include/dwarf_i.h 2015-07-10 13:39:25.050707613 -0400 -@@ -20,7 +20,7 @@ - extern const uint8_t dwarf_to_unw_regnum_map[DWARF_REGNUM_MAP_LENGTH]; - /* REG is evaluated multiple times; it better be side-effects free! */ - # define dwarf_to_unw_regnum(reg) \ -- (((reg) <= DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0) -+ (((reg) < DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0) - #endif - - #ifdef UNW_LOCAL_ONLY diff --git a/gnu/packages/patches/libxml2-CVE-2017-0663.patch b/gnu/packages/patches/libxml2-CVE-2017-0663.patch new file mode 100644 index 0000000000..b0277a2d23 --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2017-0663.patch @@ -0,0 +1,53 @@ +Fix CVE-2017-0663: + +https://bugzilla.gnome.org/show_bug.cgi?id=780228 (not yet public) +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0663 +https://security-tracker.debian.org/tracker/CVE-2017-0663 + +Patch copied from upstream source repository: + +https://git.gnome.org/browse/libxml2/commit/?id=92b9e8c8b3787068565a1820ba575d042f9eec66 + +From 92b9e8c8b3787068565a1820ba575d042f9eec66 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Tue, 6 Jun 2017 12:56:28 +0200 +Subject: [PATCH] Fix type confusion in xmlValidateOneNamespace + +Comment out code that casts xmlNsPtr to xmlAttrPtr. ID types on +namespace declarations make no practical sense anyway. + +Fixes bug 780228. + +Found with libFuzzer and ASan. +--- + valid.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/valid.c b/valid.c +index 8075d3a0..c51ea290 100644 +--- a/valid.c ++++ b/valid.c +@@ -4627,6 +4627,12 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) { + } + } + ++ /* ++ * Casting ns to xmlAttrPtr is wrong. We'd need separate functions ++ * xmlAddID and xmlAddRef for namespace declarations, but it makes ++ * no practical sense to use ID types anyway. ++ */ ++#if 0 + /* Validity Constraint: ID uniqueness */ + if (attrDecl->atype == XML_ATTRIBUTE_ID) { + if (xmlAddID(ctxt, doc, value, (xmlAttrPtr) ns) == NULL) +@@ -4638,6 +4644,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) { + if (xmlAddRef(ctxt, doc, value, (xmlAttrPtr) ns) == NULL) + ret = 0; + } ++#endif + + /* Validity Constraint: Notation Attributes */ + if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) { +-- +2.14.1 + diff --git a/gnu/packages/patches/libxml2-CVE-2017-7375.patch b/gnu/packages/patches/libxml2-CVE-2017-7375.patch new file mode 100644 index 0000000000..32af1ff6ba --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2017-7375.patch @@ -0,0 +1,45 @@ +Fix CVE-2017-7375: + +https://bugzilla.gnome.org/show_bug.cgi?id=780691 (not yet public) +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7375 +https://security-tracker.debian.org/tracker/CVE-2017-7375 + +Patch copied from upstream source repository: + +https://git.gnome.org/browse/libxml2/commit/?id=90ccb58242866b0ba3edbef8fe44214a101c2b3e + +From 90ccb58242866b0ba3edbef8fe44214a101c2b3e Mon Sep 17 00:00:00 2001 +From: Neel Mehta <nmehta@google.com> +Date: Fri, 7 Apr 2017 17:43:02 +0200 +Subject: [PATCH] Prevent unwanted external entity reference + +For https://bugzilla.gnome.org/show_bug.cgi?id=780691 + +* parser.c: add a specific check to avoid PE reference +--- + parser.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/parser.c b/parser.c +index 609a2703..c2c812de 100644 +--- a/parser.c ++++ b/parser.c +@@ -8123,6 +8123,15 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt) + if (xmlPushInput(ctxt, input) < 0) + return; + } else { ++ if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) && ++ ((ctxt->options & XML_PARSE_NOENT) == 0) && ++ ((ctxt->options & XML_PARSE_DTDVALID) == 0) && ++ ((ctxt->options & XML_PARSE_DTDLOAD) == 0) && ++ ((ctxt->options & XML_PARSE_DTDATTR) == 0) && ++ (ctxt->replaceEntities == 0) && ++ (ctxt->validate == 0)) ++ return; ++ + /* + * TODO !!! + * handle the extra spaces added before and after +-- +2.14.1 + diff --git a/gnu/packages/patches/libxml2-CVE-2017-7376.patch b/gnu/packages/patches/libxml2-CVE-2017-7376.patch new file mode 100644 index 0000000000..5b9e45bd83 --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2017-7376.patch @@ -0,0 +1,41 @@ +Fix CVE-2017-7376: + +https://bugzilla.gnome.org/show_bug.cgi?id=780690 (not yet public) +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7376 +https://security-tracker.debian.org/tracker/CVE-2017-7376 + +Patch copied from upstream source repository: + +https://git.gnome.org/browse/libxml2/commit/?id=5dca9eea1bd4263bfa4d037ab2443de1cd730f7e + +From 5dca9eea1bd4263bfa4d037ab2443de1cd730f7e Mon Sep 17 00:00:00 2001 +From: Daniel Veillard <veillard@redhat.com> +Date: Fri, 7 Apr 2017 17:13:28 +0200 +Subject: [PATCH] Increase buffer space for port in HTTP redirect support + +For https://bugzilla.gnome.org/show_bug.cgi?id=780690 + +nanohttp.c: the code wrongly assumed a short int port value. +--- + nanohttp.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/nanohttp.c b/nanohttp.c +index e109ad75..373425de 100644 +--- a/nanohttp.c ++++ b/nanohttp.c +@@ -1423,9 +1423,9 @@ retry: + if (ctxt->port != 80) { + /* reserve space for ':xxxxx', incl. potential proxy */ + if (proxy) +- blen += 12; ++ blen += 17; + else +- blen += 6; ++ blen += 11; + } + bp = (char*)xmlMallocAtomic(blen); + if ( bp == NULL ) { +-- +2.14.1 + diff --git a/gnu/packages/patches/libxml2-CVE-2017-9047+CVE-2017-9048.patch b/gnu/packages/patches/libxml2-CVE-2017-9047+CVE-2017-9048.patch new file mode 100644 index 0000000000..0a0e6d34cf --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2017-9047+CVE-2017-9048.patch @@ -0,0 +1,130 @@ +Fix CVE-2017-{9047,9048}: + +https://bugzilla.gnome.org/show_bug.cgi?id=781333 (not yet public) +https://bugzilla.gnome.org/show_bug.cgi?id=781701 (not yet public) +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9047 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9048 +http://www.openwall.com/lists/oss-security/2017/05/15/1 +https://security-tracker.debian.org/tracker/CVE-2017-9047 +https://security-tracker.debian.org/tracker/CVE-2017-9048 + +Patch copied from upstream source repository: + +https://git.gnome.org/browse/libxml2/commit/?id=932cc9896ab41475d4aa429c27d9afd175959d74 + +From 932cc9896ab41475d4aa429c27d9afd175959d74 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Sat, 3 Jun 2017 02:01:29 +0200 +Subject: [PATCH] Fix buffer size checks in xmlSnprintfElementContent +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +xmlSnprintfElementContent failed to correctly check the available +buffer space in two locations. + +Fixes bug 781333 (CVE-2017-9047) and bug 781701 (CVE-2017-9048). + +Thanks to Marcel Böhme and Thuan Pham for the report. +--- + result/valid/781333.xml | 5 +++++ + result/valid/781333.xml.err | 3 +++ + result/valid/781333.xml.err.rdr | 6 ++++++ + test/valid/781333.xml | 4 ++++ + valid.c | 20 +++++++++++--------- + 5 files changed, 29 insertions(+), 9 deletions(-) + create mode 100644 result/valid/781333.xml + create mode 100644 result/valid/781333.xml.err + create mode 100644 result/valid/781333.xml.err.rdr + create mode 100644 test/valid/781333.xml + +diff --git a/result/valid/781333.xml b/result/valid/781333.xml +new file mode 100644 +index 00000000..45dc451d +--- /dev/null ++++ b/result/valid/781333.xml +@@ -0,0 +1,5 @@ ++<?xml version="1.0"?> ++<!DOCTYPE a [ ++<!ELEMENT a (pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll)> ++]> ++<a/> +diff --git a/result/valid/781333.xml.err b/result/valid/781333.xml.err +new file mode 100644 +index 00000000..b401b49a +--- /dev/null ++++ b/result/valid/781333.xml.err +@@ -0,0 +1,3 @@ ++./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got ++<a/> ++ ^ +diff --git a/result/valid/781333.xml.err.rdr b/result/valid/781333.xml.err.rdr +new file mode 100644 +index 00000000..5ff56992 +--- /dev/null ++++ b/result/valid/781333.xml.err.rdr +@@ -0,0 +1,6 @@ ++./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got ++<a/> ++ ^ ++./test/valid/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child ++ ++^ +diff --git a/test/valid/781333.xml b/test/valid/781333.xml +new file mode 100644 +index 00000000..b29e5a68 +--- /dev/null ++++ b/test/valid/781333.xml +@@ -0,0 +1,4 @@ ++<!DOCTYPE a [ ++ <!ELEMENT a (pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll)> ++]> ++<a/> +diff --git a/valid.c b/valid.c +index 19f84b82..9b2df56a 100644 +--- a/valid.c ++++ b/valid.c +@@ -1262,22 +1262,23 @@ xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int + case XML_ELEMENT_CONTENT_PCDATA: + strcat(buf, "#PCDATA"); + break; +- case XML_ELEMENT_CONTENT_ELEMENT: ++ case XML_ELEMENT_CONTENT_ELEMENT: { ++ int qnameLen = xmlStrlen(content->name); ++ ++ if (content->prefix != NULL) ++ qnameLen += xmlStrlen(content->prefix) + 1; ++ if (size - len < qnameLen + 10) { ++ strcat(buf, " ..."); ++ return; ++ } + if (content->prefix != NULL) { +- if (size - len < xmlStrlen(content->prefix) + 10) { +- strcat(buf, " ..."); +- return; +- } + strcat(buf, (char *) content->prefix); + strcat(buf, ":"); + } +- if (size - len < xmlStrlen(content->name) + 10) { +- strcat(buf, " ..."); +- return; +- } + if (content->name != NULL) + strcat(buf, (char *) content->name); + break; ++ } + case XML_ELEMENT_CONTENT_SEQ: + if ((content->c1->type == XML_ELEMENT_CONTENT_OR) || + (content->c1->type == XML_ELEMENT_CONTENT_SEQ)) +@@ -1319,6 +1320,7 @@ xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int + xmlSnprintfElementContent(buf, size, content->c2, 0); + break; + } ++ if (size - strlen(buf) <= 2) return; + if (englob) + strcat(buf, ")"); + switch (content->ocur) { +-- +2.14.1 + diff --git a/gnu/packages/patches/libxml2-CVE-2017-9049+CVE-2017-9050.patch b/gnu/packages/patches/libxml2-CVE-2017-9049+CVE-2017-9050.patch new file mode 100644 index 0000000000..890e9c2284 --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2017-9049+CVE-2017-9050.patch @@ -0,0 +1,319 @@ +Fix CVE-2017-{9049,9050}: + +https://bugzilla.gnome.org/show_bug.cgi?id=781205 (not yet public) +https://bugzilla.gnome.org/show_bug.cgi?id=781361 (not yet public) +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9049 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9050 +http://www.openwall.com/lists/oss-security/2017/05/15/1 +https://security-tracker.debian.org/tracker/CVE-2017-9049 +https://security-tracker.debian.org/tracker/CVE-2017-9050 + +Patch copied from upstream source repository: + +https://git.gnome.org/browse/libxml2/commit/?id=e26630548e7d138d2c560844c43820b6767251e3 + +Changes to 'runtest.c' are removed since they introduce test failure +when applying to libxml2 2.9.4 release tarball. + +From e26630548e7d138d2c560844c43820b6767251e3 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Mon, 5 Jun 2017 15:37:17 +0200 +Subject: [PATCH] Fix handling of parameter-entity references +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There were two bugs where parameter-entity references could lead to an +unexpected change of the input buffer in xmlParseNameComplex and +xmlDictLookup being called with an invalid pointer. + +Percent sign in DTD Names +========================= + +The NEXTL macro used to call xmlParserHandlePEReference. When parsing +"complex" names inside the DTD, this could result in entity expansion +which created a new input buffer. The fix is to simply remove the call +to xmlParserHandlePEReference from the NEXTL macro. This is safe because +no users of the macro require expansion of parameter entities. + +- xmlParseNameComplex +- xmlParseNCNameComplex +- xmlParseNmtoken + +The percent sign is not allowed in names, which are grammatical tokens. + +- xmlParseEntityValue + +Parameter-entity references in entity values are expanded but this +happens in a separate step in this function. + +- xmlParseSystemLiteral + +Parameter-entity references are ignored in the system literal. + +- xmlParseAttValueComplex +- xmlParseCharDataComplex +- xmlParseCommentComplex +- xmlParsePI +- xmlParseCDSect + +Parameter-entity references are ignored outside the DTD. + +- xmlLoadEntityContent + +This function is only called from xmlStringLenDecodeEntities and +entities are replaced in a separate step immediately after the function +call. + +This bug could also be triggered with an internal subset and double +entity expansion. + +This fixes bug 766956 initially reported by Wei Lei and independently by +Chromium's ClusterFuzz, Hanno Böck, and Marco Grassi. Thanks to everyone +involved. + +xmlParseNameComplex with XML_PARSE_OLD10 +======================================== + +When parsing Names inside an expanded parameter entity with the +XML_PARSE_OLD10 option, xmlParseNameComplex would call xmlGROW via the +GROW macro if the input buffer was exhausted. At the end of the +parameter entity's replacement text, this function would then call +xmlPopInput which invalidated the input buffer. + +There should be no need to invoke GROW in this situation because the +buffer is grown periodically every XML_PARSER_CHUNK_SIZE characters and, +at least for UTF-8, in xmlCurrentChar. This also matches the code path +executed when XML_PARSE_OLD10 is not set. + +This fixes bugs 781205 (CVE-2017-9049) and 781361 (CVE-2017-9050). +Thanks to Marcel Böhme and Thuan Pham for the report. + +Additional hardening +==================== + +A separate check was added in xmlParseNameComplex to validate the +buffer size. +--- + Makefile.am | 18 ++++++++++++++++++ + parser.c | 18 ++++++++++-------- + result/errors10/781205.xml | 0 + result/errors10/781205.xml.err | 21 +++++++++++++++++++++ + result/errors10/781361.xml | 0 + result/errors10/781361.xml.err | 13 +++++++++++++ + result/valid/766956.xml | 0 + result/valid/766956.xml.err | 9 +++++++++ + result/valid/766956.xml.err.rdr | 10 ++++++++++ + runtest.c | 3 +++ + test/errors10/781205.xml | 3 +++ + test/errors10/781361.xml | 3 +++ + test/valid/766956.xml | 2 ++ + test/valid/dtds/766956.dtd | 2 ++ + 14 files changed, 94 insertions(+), 8 deletions(-) + create mode 100644 result/errors10/781205.xml + create mode 100644 result/errors10/781205.xml.err + create mode 100644 result/errors10/781361.xml + create mode 100644 result/errors10/781361.xml.err + create mode 100644 result/valid/766956.xml + create mode 100644 result/valid/766956.xml.err + create mode 100644 result/valid/766956.xml.err.rdr + create mode 100644 test/errors10/781205.xml + create mode 100644 test/errors10/781361.xml + create mode 100644 test/valid/766956.xml + create mode 100644 test/valid/dtds/766956.dtd + +diff --git a/Makefile.am b/Makefile.am +index 6fc8ffa9..10e716a5 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -427,6 +427,24 @@ Errtests : xmllint$(EXEEXT) + if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \ + rm result.$$name error.$$name ; \ + fi ; fi ; done) ++ @echo "## Error cases regression tests (old 1.0)" ++ -@(for i in $(srcdir)/test/errors10/*.xml ; do \ ++ name=`basename $$i`; \ ++ if [ ! -d $$i ] ; then \ ++ if [ ! -f $(srcdir)/result/errors10/$$name ] ; then \ ++ echo New test file $$name ; \ ++ $(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i \ ++ 2> $(srcdir)/result/errors10/$$name.err \ ++ > $(srcdir)/result/errors10/$$name ; \ ++ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \ ++ else \ ++ log=`$(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i 2> error.$$name > result.$$name ; \ ++ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \ ++ diff $(srcdir)/result/errors10/$$name result.$$name ; \ ++ diff $(srcdir)/result/errors10/$$name.err error.$$name` ; \ ++ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \ ++ rm result.$$name error.$$name ; \ ++ fi ; fi ; done) + @echo "## Error cases stream regression tests" + -@(for i in $(srcdir)/test/errors/*.xml ; do \ + name=`basename $$i`; \ +diff --git a/parser.c b/parser.c +index df2efa55..a175ac4e 100644 +--- a/parser.c ++++ b/parser.c +@@ -2121,7 +2121,6 @@ static void xmlGROW (xmlParserCtxtPtr ctxt) { + ctxt->input->line++; ctxt->input->col = 1; \ + } else ctxt->input->col++; \ + ctxt->input->cur += l; \ +- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \ + } while (0) + + #define CUR_CHAR(l) xmlCurrentChar(ctxt, &l) +@@ -3412,13 +3411,6 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) { + len += l; + NEXTL(l); + c = CUR_CHAR(l); +- if (c == 0) { +- count = 0; +- GROW; +- if (ctxt->instate == XML_PARSER_EOF) +- return(NULL); +- c = CUR_CHAR(l); +- } + } + } + if ((len > XML_MAX_NAME_LENGTH) && +@@ -3426,6 +3418,16 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name"); + return(NULL); + } ++ if (ctxt->input->cur - ctxt->input->base < len) { ++ /* ++ * There were a couple of bugs where PERefs lead to to a change ++ * of the buffer. Check the buffer size to avoid passing an invalid ++ * pointer to xmlDictLookup. ++ */ ++ xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, ++ "unexpected change of input buffer"); ++ return (NULL); ++ } + if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r')) + return(xmlDictLookup(ctxt->dict, ctxt->input->cur - (len + 1), len)); + return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len)); +diff --git a/result/errors10/781205.xml b/result/errors10/781205.xml +new file mode 100644 +index 00000000..e69de29b +diff --git a/result/errors10/781205.xml.err b/result/errors10/781205.xml.err +new file mode 100644 +index 00000000..da15c3f7 +--- /dev/null ++++ b/result/errors10/781205.xml.err +@@ -0,0 +1,21 @@ ++Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration ++ ++ %a; ++ ^ ++Entity: line 1: ++<:0000 ++^ ++Entity: line 1: parser error : DOCTYPE improperly terminated ++ %a; ++ ^ ++Entity: line 1: ++<:0000 ++^ ++namespace error : Failed to parse QName ':0000' ++ %a; ++ ^ ++<:0000 ++ ^ ++./test/errors10/781205.xml:4: parser error : Couldn't find end of Start Tag :0000 line 1 ++ ++^ +diff --git a/result/errors10/781361.xml b/result/errors10/781361.xml +new file mode 100644 +index 00000000..e69de29b +diff --git a/result/errors10/781361.xml.err b/result/errors10/781361.xml.err +new file mode 100644 +index 00000000..655f41a2 +--- /dev/null ++++ b/result/errors10/781361.xml.err +@@ -0,0 +1,13 @@ ++./test/errors10/781361.xml:4: parser error : xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected ++ ++^ ++./test/errors10/781361.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration ++ ++ ++^ ++./test/errors10/781361.xml:4: parser error : DOCTYPE improperly terminated ++ ++^ ++./test/errors10/781361.xml:4: parser error : Start tag expected, '<' not found ++ ++^ +diff --git a/result/valid/766956.xml b/result/valid/766956.xml +new file mode 100644 +index 00000000..e69de29b +diff --git a/result/valid/766956.xml.err b/result/valid/766956.xml.err +new file mode 100644 +index 00000000..34b1dae6 +--- /dev/null ++++ b/result/valid/766956.xml.err +@@ -0,0 +1,9 @@ ++test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';' ++%ä%ent; ++ ^ ++Entity: line 1: parser error : Content error in the external subset ++ %ent; ++ ^ ++Entity: line 1: ++value ++^ +diff --git a/result/valid/766956.xml.err.rdr b/result/valid/766956.xml.err.rdr +new file mode 100644 +index 00000000..77603462 +--- /dev/null ++++ b/result/valid/766956.xml.err.rdr +@@ -0,0 +1,10 @@ ++test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';' ++%ä%ent; ++ ^ ++Entity: line 1: parser error : Content error in the external subset ++ %ent; ++ ^ ++Entity: line 1: ++value ++^ ++./test/valid/766956.xml : failed to parse +diff --git a/test/errors10/781205.xml b/test/errors10/781205.xml +new file mode 100644 +index 00000000..d9e9e839 +--- /dev/null ++++ b/test/errors10/781205.xml +@@ -0,0 +1,3 @@ ++<!DOCTYPE D [ ++ <!ENTITY % a "<:0000"> ++ %a; +diff --git a/test/errors10/781361.xml b/test/errors10/781361.xml +new file mode 100644 +index 00000000..67476bcb +--- /dev/null ++++ b/test/errors10/781361.xml +@@ -0,0 +1,3 @@ ++<!DOCTYPE doc [ ++ <!ENTITY % elem "<!ELEMENT e0000000000"> ++ %elem; +diff --git a/test/valid/766956.xml b/test/valid/766956.xml +new file mode 100644 +index 00000000..19a95a0e +--- /dev/null ++++ b/test/valid/766956.xml +@@ -0,0 +1,2 @@ ++<!DOCTYPE test SYSTEM "dtds/766956.dtd"> ++<test/> +diff --git a/test/valid/dtds/766956.dtd b/test/valid/dtds/766956.dtd +new file mode 100644 +index 00000000..dddde68b +--- /dev/null ++++ b/test/valid/dtds/766956.dtd +@@ -0,0 +1,2 @@ ++<!ENTITY % ent "value"> ++%ä%ent; +-- +2.14.1 + diff --git a/gnu/packages/patches/libzip-CVE-2017-12858.patch b/gnu/packages/patches/libzip-CVE-2017-12858.patch deleted file mode 100644 index 8125173f95..0000000000 --- a/gnu/packages/patches/libzip-CVE-2017-12858.patch +++ /dev/null @@ -1,45 +0,0 @@ -Fix CVE-2017-12858: - -http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12858 - -Patch copied from upstream source repository: - -https://github.com/nih-at/libzip/commit/2217022b7d1142738656d891e00b3d2d9179b796 - -From 2217022b7d1142738656d891e00b3d2d9179b796 Mon Sep 17 00:00:00 2001 -From: Thomas Klausner <tk@giga.or.at> -Date: Mon, 14 Aug 2017 10:55:44 +0200 -Subject: [PATCH] Fix double free(). - -Found by Brian 'geeknik' Carpenter using AFL. ---- - THANKS | 1 + - lib/zip_dirent.c | 3 --- - 2 files changed, 1 insertion(+), 3 deletions(-) - -diff --git a/THANKS b/THANKS -index be0cca9..a80ee1d 100644 ---- a/THANKS -+++ b/THANKS -@@ -12,6 +12,7 @@ BALATON Zoltan <balaton@eik.bme.hu> - Benjamin Gilbert <bgilbert@backtick.net> - Boaz Stolk <bstolk@aweta.nl> - Bogdan <bogiebog@gmail.com> -+Brian 'geeknik' Carpenter <geeknik@protonmail.ch> - Chris Nehren <cnehren+libzip@pobox.com> - Coverity <info@coverity.com> - Dane Springmeyer <dane.springmeyer@gmail.com> -diff --git a/lib/zip_dirent.c b/lib/zip_dirent.c -index a369900..e5a7cc9 100644 ---- a/lib/zip_dirent.c -+++ b/lib/zip_dirent.c -@@ -579,9 +579,6 @@ _zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, boo - } - - if (!_zip_dirent_process_winzip_aes(zde, error)) { -- if (!from_buffer) { -- _zip_buffer_free(buffer); -- } - return -1; - } - diff --git a/gnu/packages/patches/meson-for-build-rpath.patch b/gnu/packages/patches/meson-for-build-rpath.patch new file mode 100644 index 0000000000..4e20c9aed3 --- /dev/null +++ b/gnu/packages/patches/meson-for-build-rpath.patch @@ -0,0 +1,24 @@ +This patch removes a part of meson that clears the rpath upon installation. +This will only be applied to a special version of meson, used for the +meson-build-system. + +Patch by Peter Mikkelsen <petermikkelsen10@gmail.com> + +--- meson-0.42.0/mesonbuild/scripts/meson_install.py.orig 2017-09-09 01:49:39.147374148 +0200 ++++ meson-0.42.0/mesonbuild/scripts/meson_install.py 2017-09-09 01:51:01.209134717 +0200 +@@ -345,15 +345,6 @@ + print("Symlink creation does not work on this platform. " + "Skipping all symlinking.") + printed_symlink_error = True +- if is_elf_platform() and os.path.isfile(outname): +- try: +- e = depfixer.Elf(outname, False) +- e.fix_rpath(install_rpath) +- except SystemExit as e: +- if isinstance(e.code, int) and e.code == 0: +- pass +- else: +- raise + + def run(args): + global install_log_file diff --git a/gnu/packages/patches/metabat-fix-boost-issue.patch b/gnu/packages/patches/metabat-fix-boost-issue.patch deleted file mode 100644 index 3382d84d66..0000000000 --- a/gnu/packages/patches/metabat-fix-boost-issue.patch +++ /dev/null @@ -1,27 +0,0 @@ -This patch fixes the issue described at -https://bitbucket.org/berkeleylab/metabat/issues/28/compilation-fail-with-boost-164 - -diff --git a/src/metabat.h b/src/metabat.h -index 32ae94c..2292c04 100644 ---- a/src/metabat.h -+++ b/src/metabat.h -@@ -35,6 +35,7 @@ KSEQ_INIT(gzFile, gzread) - - #include <boost/program_options.hpp> - #include <boost/algorithm/string.hpp> -+#include <boost/serialization/array_wrapper.hpp> - #include <boost/numeric/ublas/matrix.hpp> - #include <boost/math/distributions.hpp> - #include <boost/serialization/serialization.hpp> -diff --git a/src/metabat2.h b/src/metabat2.h -index 60a9998..19fa815 100644 ---- a/src/metabat2.h -+++ b/src/metabat2.h -@@ -41,6 +41,7 @@ KSEQ_INIT(gzFile, gzread) - - #include <boost/program_options.hpp> - #include <boost/algorithm/string.hpp> -+#include <boost/serialization/array_wrapper.hpp> - #include <boost/numeric/ublas/matrix.hpp> - #include <boost/numeric/ublas/matrix_sparse.hpp> - #include <boost/numeric/ublas/matrix_proxy.hpp> diff --git a/gnu/packages/patches/metabat-remove-compilation-date.patch b/gnu/packages/patches/metabat-remove-compilation-date.patch deleted file mode 100644 index 7672205b22..0000000000 --- a/gnu/packages/patches/metabat-remove-compilation-date.patch +++ /dev/null @@ -1,16 +0,0 @@ -Remove the reference to the compilation date so that the build is -reproducible. - -diff --git a/src/metabat.cpp b/src/metabat.cpp -index 88e06de..c95cb1a 100644 ---- a/src/metabat.cpp -+++ b/src/metabat.cpp -@@ -49,7 +49,7 @@ int main(int ac, char* av[]) { - po::notify(vm); - - if (vm.count("help") || inFile.length() == 0 || outFile.length() == 0) { -- cerr << "\nMetaBAT: Metagenome Binning based on Abundance and Tetranucleotide frequency (version " << version << "; " << __DATE__ << " " << __TIME__ << ")" << endl; -+ cerr << "\nMetaBAT: Metagenome Binning based on Abundance and Tetranucleotide frequency (version " << version << "; unknown compilation date)" << endl; - cerr << "by Don Kang (ddkang@lbl.gov), Jeff Froula, Rob Egan, and Zhong Wang (zhongwang@lbl.gov) \n" << endl; - cerr << desc << endl << endl; - diff --git a/gnu/packages/patches/multiqc-fix-git-subprocess-error.patch b/gnu/packages/patches/multiqc-fix-git-subprocess-error.patch deleted file mode 100644 index 87be6142f4..0000000000 --- a/gnu/packages/patches/multiqc-fix-git-subprocess-error.patch +++ /dev/null @@ -1,16 +0,0 @@ -Without this patch, the incorrect exception is caught when 'git' is not in -PATH. See https://github.com/ewels/MultiQC/pull/377. - -diff --git a/multiqc/utils/config.py b/multiqc/utils/config.py -index 01fa554..4a11793 100755 ---- a/multiqc/utils/config.py -+++ b/multiqc/utils/config.py -@@ -28,7 +28,7 @@ try: - git_hash = subprocess.check_output(['git', 'rev-parse', 'HEAD'], stderr=subprocess.STDOUT) - git_hash_short = git_hash[:7] - version = '{} ({})'.format(version, git_hash_short) --except subprocess.CalledProcessError: -+except (subprocess.CalledProcessError, FileNotFoundError): - pass - os.chdir(cwd) - diff --git a/gnu/packages/patches/newsbeuter-CVE-2017-14500.patch b/gnu/packages/patches/newsbeuter-CVE-2017-14500.patch new file mode 100644 index 0000000000..449105e42a --- /dev/null +++ b/gnu/packages/patches/newsbeuter-CVE-2017-14500.patch @@ -0,0 +1,43 @@ +https://github.com/akrennmair/newsbeuter/commit/26f5a4350f3ab5507bb8727051c87bb04660f333.patch +http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14500 + +From 26f5a4350f3ab5507bb8727051c87bb04660f333 Mon Sep 17 00:00:00 2001 +From: Alexander Batischev <eual.jp@gmail.com> +Date: Sat, 16 Sep 2017 19:31:43 +0300 +Subject: [PATCH] Work around shell code in podcast names (#598) + +--- + src/pb_controller.cpp | 6 +++--- + src/queueloader.cpp | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/pb_controller.cpp b/src/pb_controller.cpp +index 09b5e897..213216cd 100644 +--- a/src/pb_controller.cpp ++++ b/src/pb_controller.cpp +@@ -306,9 +306,9 @@ void pb_controller::play_file(const std::string& file) { + if (player == "") + return; + cmdline.append(player); +- cmdline.append(" \""); +- cmdline.append(utils::replace_all(file,"\"", "\\\"")); +- cmdline.append("\""); ++ cmdline.append(" \'"); ++ cmdline.append(utils::replace_all(file,"'", "%27")); ++ cmdline.append("\'"); + stfl::reset(); + LOG(LOG_DEBUG, "pb_controller::play_file: running `%s'", cmdline.c_str()); + ::system(cmdline.c_str()); +diff --git a/src/queueloader.cpp b/src/queueloader.cpp +index c1dabdd8..ae725e04 100644 +--- a/src/queueloader.cpp ++++ b/src/queueloader.cpp +@@ -130,7 +130,7 @@ std::string queueloader::get_filename(const std::string& str) { + strftime(lbuf, sizeof(lbuf), "%Y-%b-%d-%H%M%S.unknown", localtime(&t)); + fn.append(lbuf); + } else { +- fn.append(base); ++ fn.append(utils::replace_all(base, "'", "%27")); + } + return fn; + } diff --git a/gnu/packages/patches/node-9077.patch b/gnu/packages/patches/node-9077.patch deleted file mode 100644 index 6b71d48c0e..0000000000 --- a/gnu/packages/patches/node-9077.patch +++ /dev/null @@ -1,31 +0,0 @@ -From fc164acbbb700fd50ab9c04b47fc1b2687e9c0f4 Mon Sep 17 00:00:00 2001 -From: "Bradley T. Hughes" <bradleythughes@fastmail.fm> -Date: Thu, 13 Oct 2016 07:38:38 +0000 -Subject: [PATCH] build: add -DZLIB_CONST when building with --shared-zlib - -Commit 782620f added the define only when building with the bundled -zlib. Using a shared zlib results in build breakage: - -../src/inspector_agent.cc:179:16: error: assigning to 'Bytef *' (aka 'unsigned char *') from incompatible type - 'const uint8_t *' (aka 'const unsigned char *') - strm.next_in = PROTOCOL_JSON + 3; - ^ ~~~~~~~~~~~~~~~~~ -1 error generated. ---- - node.gyp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/node.gyp b/node.gyp -index 272dc98..667c260 100644 ---- a/node.gyp -+++ b/node.gyp -@@ -653,7 +653,8 @@ - [ 'node_shared_zlib=="false"', { - 'dependencies': [ - 'deps/zlib/zlib.gyp:zlib', -- ] -+ ]}, { -+ 'defines': [ 'ZLIB_CONST' ], - }], - [ 'node_shared_openssl=="false"', { - 'dependencies': [ diff --git a/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch b/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch new file mode 100644 index 0000000000..9f8713e3d3 --- /dev/null +++ b/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch @@ -0,0 +1,34 @@ +From 354ef78aac0b887fae3c10b28eb2b0d83f66bdfe Mon Sep 17 00:00:00 2001 +From: Julien Lepiller <julien@lepiller.eu> +Date: Mon, 2 Jan 2017 17:05:24 +0100 +Subject: [PATCH] Honor SOURCE_DATE_EPOCH + +--- + Makefile.in | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index a32b4b8..ef4c174 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -113,11 +113,16 @@ graph.cmx: $(CMI) $(CMX) + $(OCAMLOPT) $(INCLUDES) -pack -o $@ $^ + + VERSION=1.8.7 ++ifdef SOURCE_DATE_EPOCH ++BUILD_DATE=$(shell date -u -d "@$(SOURCE_DATE_EPOCH)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" 2>/dev/null || date) ++else ++BUILD_DATE=$(shell date) ++endif + + src/version.ml: Makefile + rm -f $@ + echo "let version = \""$(VERSION)"\"" > $@ +- echo "let date = \""`date`"\"" >> $@ ++ echo "let date = \""$(BUILD_DATE)"\"" >> $@ + + # gtk2 graph editor + ################### +-- +2.11.0 + diff --git a/gnu/packages/patches/openfoam-4.1-cleanup.patch b/gnu/packages/patches/openfoam-4.1-cleanup.patch new file mode 100644 index 0000000000..37effa5c9c --- /dev/null +++ b/gnu/packages/patches/openfoam-4.1-cleanup.patch @@ -0,0 +1,243 @@ +# This patch removes all need for the ThirdParty files of OpenFOAM. + +# Derived from EasyBuild patch by Ward Poelmans <wpoely86@gmail.com>. +# Modified for GNU Guix by Paul Garlick <pgarlick@tourbillion-technology.com>. + +diff -ur OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Allwmake OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake +--- OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Allwmake ++++ OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake +@@ -9,7 +9,7 @@ + # + # use readline if available + # +-if [ -f /usr/include/readline/readline.h ] ++if true + then + echo "Found <readline/readline.h> -- enabling readline support." + export COMP_FLAGS="-DHAS_READLINE" +diff -ur OpenFOAM-4.x-version-4.1.org/etc/bashrc OpenFOAM-4.x-version-4.1/etc/bashrc +--- OpenFOAM-4.x-version-4.1.org/etc/bashrc ++++ OpenFOAM-4.x-version-4.1/etc/bashrc +@@ -43,8 +43,10 @@ + # Please set to the appropriate path if the default is not correct. + # + [ $BASH_SOURCE ] && \ +-export FOAM_INST_DIR=$(cd ${BASH_SOURCE%/*/*/*} && pwd -P) || \ ++export FOAM_INST_DIR=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P) || \ + export FOAM_INST_DIR=$HOME/$WM_PROJECT ++# For GNU Guix: set initially for build then re-set at runtime ++# + # export FOAM_INST_DIR=~$WM_PROJECT + # export FOAM_INST_DIR=/opt/$WM_PROJECT + # export FOAM_INST_DIR=/usr/local/$WM_PROJECT +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/CGAL OpenFOAM-4.x-version-4.1/etc/config.sh/CGAL +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/CGAL ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/CGAL +@@ -36,37 +36,7 @@ + # + #------------------------------------------------------------------------------ + +-boost_version=boost-system +-cgal_version=cgal-system +-#cgal_version=CGAL-4.8 +- +-if [ -z "$SOURCE_CGAL_VERSIONS_ONLY" ] +-then +- +- common_path=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER +- +- export BOOST_ARCH_PATH=$common_path/$boost_version +- export CGAL_ARCH_PATH=$common_path/$cgal_version +- +- if [ "$FOAM_VERBOSE" -a "$PS1" ] +- then +- echo "Using CGAL and boost" 1>&2 +- echo " $cgal_version at $CGAL_ARCH_PATH" 1>&2 +- echo " $boost_version at $BOOST_ARCH_PATH" 1>&2 +- fi +- +- if [ -d "$CGAL_ARCH_PATH" -a "$cgal_version" != "cgal-system" ] +- then +- _foamAddLib $CGAL_ARCH_PATH/lib +- fi +- +- if [ -d "$BOOST_ARCH_PATH" -a "$boost_version" != "boost-system" ] +- then +- _foamAddLib $BOOST_ARCH_PATH/lib +- fi +- +- unset boost_version cgal_version common_path +- +-fi ++export CGAL_ARCH_PATH=$CGAL_ROOT ++export BOOST_ARCH_PATH=$BOOST_ROOT + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/gperftools OpenFOAM-4.x-version-4.1/etc/config.sh/gperftools +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/gperftools ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/gperftools +@@ -29,13 +29,5 @@ + # + #------------------------------------------------------------------------------ + +-version=svn +-gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER +- +-GPERFTOOLS_VERSION=gperftools-$version +-GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION +- +-export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH +-export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/metis OpenFOAM-4.x-version-4.1/etc/config.sh/metis +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/metis ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/metis +@@ -34,7 +34,7 @@ + # + #------------------------------------------------------------------------------ + +-export METIS_VERSION=metis-5.1.0 +-export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION ++export METIS_VERSION=metis-$METISVERSION ++export METIS_ARCH_PATH=$METIS_ROOT + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/scotch OpenFOAM-4.x-version-4.1/etc/config.sh/scotch +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/scotch ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/scotch +@@ -37,7 +37,7 @@ + # + #------------------------------------------------------------------------------ + +-export SCOTCH_VERSION=scotch_6.0.3 +-export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION ++export SCOTCH_VERSION=scotch_$SCOTCHVERSION ++export SCOTCH_ARCH_PATH=$SCOTCH_ROOT + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/settings OpenFOAM-4.x-version-4.1/etc/config.sh/settings +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/settings ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/settings +@@ -279,6 +279,9 @@ + ;; + system) + # Use system compiler ++ # Use system GMP and MPFR packages ++ export GMP_ARCH_PATH=$GMP_ROOT ++ export MPFR_ARCH_PATH=$MPFR_ROOT + ;; + *) + echo "Warn: WM_COMPILER_TYPE='$WM_COMPILER_TYPE' is unsupported" 1>&2 +diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/ptscotchDecomp/Make/options OpenFOAM-4.x-version-4.1/src/parallel/decompose/ptscotchDecomp/Make/options +--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/ptscotchDecomp/Make/options ++++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/ptscotchDecomp/Make/options +@@ -5,8 +5,7 @@ + $(PFLAGS) $(PINC) \ + -I$(SCOTCH_ROOT)/include \ + -I$(SCOTCH_ARCH_PATH)/include/$(FOAM_MPI) \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ +- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt ++ -L$(SCOTCH_ROOT)/lib -L$(MPI_ARCH_PATH)/lib -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt +diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/scotchDecomp/Make/options OpenFOAM-4.x-version-4.1/src/parallel/decompose/scotchDecomp/Make/options +--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/scotchDecomp/Make/options ++++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/scotchDecomp/Make/options +@@ -9,8 +9,7 @@ + $(PFLAGS) $(PINC) \ + -I$(SCOTCH_ROOT)/include \ + -I$(SCOTCH_ARCH_PATH)/include \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ +- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN) -lscotch -lscotcherrexit -lrt ++ -L$(SCOTCH_ROOT)/lib -lscotch -lscotcherrexit -lrt +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/makefiles/general OpenFOAM-4.x-version-4.1/wmake/makefiles/general +--- OpenFOAM-4.x-version-4.1.org/wmake/makefiles/general ++++ OpenFOAM-4.x-version-4.1/wmake/makefiles/general +@@ -33,7 +33,6 @@ + # The Makefile uses a POSIX shell + #------------------------------------------------------------------------------ + +-SHELL = /bin/sh + + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmake OpenFOAM-4.x-version-4.1/wmake/wmake +--- OpenFOAM-4.x-version-4.1.org/wmake/wmake ++++ OpenFOAM-4.x-version-4.1/wmake/wmake +@@ -163,7 +163,7 @@ + then + if [ "$WM_NCOMPPROCS" -gt 1 -a ! "$MAKEFLAGS" ] + then +- lockDir=$HOME/.$WM_PROJECT/.wmake ++ lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake + + if [ -d $lockDir ] + then +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmakeScheduler OpenFOAM-4.x-version-4.1/wmake/wmakeScheduler +--- OpenFOAM-4.x-version-4.1.org/wmake/wmakeScheduler ++++ OpenFOAM-4.x-version-4.1/wmake/wmakeScheduler +@@ -53,7 +53,7 @@ + # csh sets HOST, bash sets HOSTNAME + : ${HOST:=$HOSTNAME} + +-lockDir=$HOME/.$WM_PROJECT/.wmake ++lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake + + # Fallback - 1 core on current host + : ${WM_HOSTS:=$HOST:1} +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmakeSchedulerUptime OpenFOAM-4.x-version-4.1/wmake/wmakeSchedulerUptime +--- OpenFOAM-4.x-version-4.1.org/wmake/wmakeSchedulerUptime ++++ OpenFOAM-4.x-version-4.1/wmake/wmakeSchedulerUptime +@@ -53,7 +53,7 @@ + # csh sets HOST, bash sets HOSTNAME + : ${HOST:=$HOSTNAME} + +-lockDir=$HOME/.$WM_PROJECT/.wmake ++lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake + # Fallback - 1 core on current host + : ${WM_HOSTS:=$HOST:1} + +diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/metisDecomp/metisDecomp.C OpenFOAM-4.x-version-4.1/src/parallel/decompose/metisDecomp/metisDecomp.C +--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/metisDecomp/metisDecomp.C ++++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/metisDecomp/metisDecomp.C +@@ -67,7 +67,7 @@ + + // Processor weights initialised with no size, only used if specified in + // a file +- Field<scalar> processorWeights; ++ Field<floatScalar> processorWeights; + + // Cell weights (so on the vertices of the dual) + List<label> cellWeights; +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/rules/General/CGAL OpenFOAM-4.x-version-4.1/wmake/rules/General/CGAL +--- OpenFOAM-4.x-version-4.1.org/wmake/rules/General/CGAL ++++ OpenFOAM-4.x-version-4.1/wmake/rules/General/CGAL +@@ -6,9 +6,10 @@ + -I/usr/include + + CGAL_LIBS = \ +- -L$(MPFR_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \ +- -L$(GMP_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \ ++ -L$(MPFR_ARCH_PATH)/lib \ ++ -L$(GMP_ARCH_PATH)/lib \ + -L$(BOOST_ARCH_PATH)/lib \ + -L$(CGAL_ARCH_PATH)/lib \ + -lCGAL \ ++ -lgmp \ + -lmpfr +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/rules/linux64Gcc/c++ OpenFOAM-4.x-version-4.1/wmake/rules/linux64Gcc/c++ +--- OpenFOAM-4.x-version-4.1.org/wmake/rules/linux64Gcc/c++ ++++ OpenFOAM-4.x-version-4.1/wmake/rules/linux64Gcc/c++ +@@ -20,5 +20,5 @@ + + LINK_LIBS = $(c++DBUG) + +-LINKLIBSO = $(CC) $(c++FLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed +-LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed -Xlinker --no-as-needed ++LINKLIBSO = $(CC) $(c++FLAGS) $(LDFLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed ++LINKEXE = $(CC) $(c++FLAGS) $(LDFLAGS) -Xlinker --add-needed -Xlinker --no-as-needed diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14040.patch b/gnu/packages/patches/openjpeg-CVE-2017-14040.patch new file mode 100644 index 0000000000..bd7473ba0d --- /dev/null +++ b/gnu/packages/patches/openjpeg-CVE-2017-14040.patch @@ -0,0 +1,83 @@ +http://openwall.com/lists/oss-security/2017/08/28/3 +https://github.com/uclouvain/openjpeg/commit/2cd30c2b06ce332dede81cccad8b334cde997281.patch + +From 2cd30c2b06ce332dede81cccad8b334cde997281 Mon Sep 17 00:00:00 2001 +From: Even Rouault <even.rouault@spatialys.com> +Date: Thu, 17 Aug 2017 11:47:40 +0200 +Subject: [PATCH] tgatoimage(): avoid excessive memory allocation attempt, and + fixes unaligned load (#995) + +--- + src/bin/jp2/convert.c | 39 +++++++++++++++++++++++++++------------ + 1 file changed, 27 insertions(+), 12 deletions(-) + +diff --git a/src/bin/jp2/convert.c b/src/bin/jp2/convert.c +index a4eb81f6a..73dfc8d5f 100644 +--- a/src/bin/jp2/convert.c ++++ b/src/bin/jp2/convert.c +@@ -580,13 +580,10 @@ struct tga_header { + }; + #endif /* INFORMATION_ONLY */ + +-static unsigned short get_ushort(const unsigned char *data) ++/* Returns a ushort from a little-endian serialized value */ ++static unsigned short get_tga_ushort(const unsigned char *data) + { +- unsigned short val = *(const unsigned short *)data; +-#ifdef OPJ_BIG_ENDIAN +- val = ((val & 0xffU) << 8) | (val >> 8); +-#endif +- return val; ++ return data[0] | (data[1] << 8); + } + + #define TGA_HEADER_SIZE 18 +@@ -613,17 +610,17 @@ static int tga_readheader(FILE *fp, unsigned int *bits_per_pixel, + id_len = tga[0]; + /*cmap_type = tga[1];*/ + image_type = tga[2]; +- /*cmap_index = get_ushort(&tga[3]);*/ +- cmap_len = get_ushort(&tga[5]); ++ /*cmap_index = get_tga_ushort(&tga[3]);*/ ++ cmap_len = get_tga_ushort(&tga[5]); + cmap_entry_size = tga[7]; + + + #if 0 +- x_origin = get_ushort(&tga[8]); +- y_origin = get_ushort(&tga[10]); ++ x_origin = get_tga_ushort(&tga[8]); ++ y_origin = get_tga_ushort(&tga[10]); + #endif +- image_w = get_ushort(&tga[12]); +- image_h = get_ushort(&tga[14]); ++ image_w = get_tga_ushort(&tga[12]); ++ image_h = get_tga_ushort(&tga[14]); + pixel_depth = tga[16]; + image_desc = tga[17]; + +@@ -817,6 +814,24 @@ opj_image_t* tgatoimage(const char *filename, opj_cparameters_t *parameters) + color_space = OPJ_CLRSPC_SRGB; + } + ++ /* If the declared file size is > 10 MB, check that the file is big */ ++ /* enough to avoid excessive memory allocations */ ++ if (image_height != 0 && image_width > 10000000 / image_height / numcomps) { ++ char ch; ++ OPJ_UINT64 expected_file_size = ++ (OPJ_UINT64)image_width * image_height * numcomps; ++ long curpos = ftell(f); ++ if (expected_file_size > (OPJ_UINT64)INT_MAX) { ++ expected_file_size = (OPJ_UINT64)INT_MAX; ++ } ++ fseek(f, (long)expected_file_size - 1, SEEK_SET); ++ if (fread(&ch, 1, 1, f) != 1) { ++ fclose(f); ++ return NULL; ++ } ++ fseek(f, curpos, SEEK_SET); ++ } ++ + subsampling_dx = parameters->subsampling_dx; + subsampling_dy = parameters->subsampling_dy; + diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14041.patch b/gnu/packages/patches/openjpeg-CVE-2017-14041.patch new file mode 100644 index 0000000000..6e3fccf3c0 --- /dev/null +++ b/gnu/packages/patches/openjpeg-CVE-2017-14041.patch @@ -0,0 +1,25 @@ +http://openwall.com/lists/oss-security/2017/08/28/4 +https://github.com/uclouvain/openjpeg/commit/e5285319229a5d77bf316bb0d3a6cbd3cb8666d9.patch + +From e5285319229a5d77bf316bb0d3a6cbd3cb8666d9 Mon Sep 17 00:00:00 2001 +From: Even Rouault <even.rouault@spatialys.com> +Date: Fri, 18 Aug 2017 13:39:20 +0200 +Subject: [PATCH] pgxtoimage(): fix write stack buffer overflow (#997) + +--- + src/bin/jp2/convert.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/bin/jp2/convert.c b/src/bin/jp2/convert.c +index 5459f7d44..e606c9be7 100644 +--- a/src/bin/jp2/convert.c ++++ b/src/bin/jp2/convert.c +@@ -1185,7 +1185,7 @@ opj_image_t* pgxtoimage(const char *filename, opj_cparameters_t *parameters) + } + + fseek(f, 0, SEEK_SET); +- if (fscanf(f, "PG%[ \t]%c%c%[ \t+-]%d%[ \t]%d%[ \t]%d", temp, &endian1, ++ if (fscanf(f, "PG%31[ \t]%c%c%31[ \t+-]%d%31[ \t]%d%31[ \t]%d", temp, &endian1, + &endian2, signtmp, &prec, temp, &w, temp, &h) != 9) { + fclose(f); + fprintf(stderr, diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14151.patch b/gnu/packages/patches/openjpeg-CVE-2017-14151.patch new file mode 100644 index 0000000000..4fcf6af6db --- /dev/null +++ b/gnu/packages/patches/openjpeg-CVE-2017-14151.patch @@ -0,0 +1,46 @@ +https://github.com/uclouvain/openjpeg/commit/afb308b9ccbe129608c9205cf3bb39bbefad90b9.patch +http://openwall.com/lists/oss-security/2017/09/06/1 + +From afb308b9ccbe129608c9205cf3bb39bbefad90b9 Mon Sep 17 00:00:00 2001 +From: Even Rouault <even.rouault@spatialys.com> +Date: Mon, 14 Aug 2017 17:20:37 +0200 +Subject: [PATCH] Encoder: grow buffer size in + opj_tcd_code_block_enc_allocate_data() to avoid write heap buffer overflow in + opj_mqc_flush (#982) + +--- + src/lib/openjp2/tcd.c | 7 +++++-- + tests/nonregression/test_suite.ctest.in | 2 ++ + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c +index 301c7213e..53cdcf64d 100644 +--- a/src/lib/openjp2/tcd.c ++++ b/src/lib/openjp2/tcd.c +@@ -1187,8 +1187,11 @@ static OPJ_BOOL opj_tcd_code_block_enc_allocate_data(opj_tcd_cblk_enc_t * + { + OPJ_UINT32 l_data_size; + +- /* The +1 is needed for https://github.com/uclouvain/openjpeg/issues/835 */ +- l_data_size = 1 + (OPJ_UINT32)((p_code_block->x1 - p_code_block->x0) * ++ /* +1 is needed for https://github.com/uclouvain/openjpeg/issues/835 */ ++ /* and actually +2 required for https://github.com/uclouvain/openjpeg/issues/982 */ ++ /* TODO: is there a theoretical upper-bound for the compressed code */ ++ /* block size ? */ ++ l_data_size = 2 + (OPJ_UINT32)((p_code_block->x1 - p_code_block->x0) * + (p_code_block->y1 - p_code_block->y0) * (OPJ_INT32)sizeof(OPJ_UINT32)); + + if (l_data_size > p_code_block->data_size) { +diff --git a/tests/nonregression/test_suite.ctest.in b/tests/nonregression/test_suite.ctest.in +index aaf40d7d0..ffd964c2a 100644 +--- a/tests/nonregression/test_suite.ctest.in ++++ b/tests/nonregression/test_suite.ctest.in +@@ -169,6 +169,8 @@ opj_compress -i @INPUT_NR_PATH@/Bretagne2.ppm -o @TEMP_PATH@/Bretagne2_empty_ban + # Same rate as Bretagne2_4.j2k + opj_compress -i @INPUT_NR_PATH@/Bretagne2.ppm -o @TEMP_PATH@/Bretagne2_empty_band_r800.j2k -t 2591,1943 -n 2 -r 800 + ++opj_compress -i @INPUT_NR_PATH@/issue982.bmp -o @TEMP_PATH@/issue982.j2k -n 1 ++ + # DECODER TEST SUITE + opj_decompress -i @INPUT_NR_PATH@/Bretagne2.j2k -o @TEMP_PATH@/Bretagne2.j2k.pgx + opj_decompress -i @INPUT_NR_PATH@/_00042.j2k -o @TEMP_PATH@/_00042.j2k.pgx diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14152.patch b/gnu/packages/patches/openjpeg-CVE-2017-14152.patch new file mode 100644 index 0000000000..6c083be123 --- /dev/null +++ b/gnu/packages/patches/openjpeg-CVE-2017-14152.patch @@ -0,0 +1,38 @@ +https://github.com/uclouvain/openjpeg/commit/4241ae6fbbf1de9658764a80944dc8108f2b4154.patch +http://openwall.com/lists/oss-security/2017/09/06/2 + +From 4241ae6fbbf1de9658764a80944dc8108f2b4154 Mon Sep 17 00:00:00 2001 +From: Even Rouault <even.rouault@spatialys.com> +Date: Tue, 15 Aug 2017 11:55:58 +0200 +Subject: [PATCH] Fix assertion in debug mode / heap-based buffer overflow in + opj_write_bytes_LE for Cinema profiles with numresolutions = 1 (#985) + +--- + src/lib/openjp2/j2k.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c +index a2521ebbc..54b490a8c 100644 +--- a/src/lib/openjp2/j2k.c ++++ b/src/lib/openjp2/j2k.c +@@ -6573,10 +6573,16 @@ static void opj_j2k_set_cinema_parameters(opj_cparameters_t *parameters, + + /* Precincts */ + parameters->csty |= 0x01; +- parameters->res_spec = parameters->numresolution - 1; +- for (i = 0; i < parameters->res_spec; i++) { +- parameters->prcw_init[i] = 256; +- parameters->prch_init[i] = 256; ++ if (parameters->numresolution == 1) { ++ parameters->res_spec = 1; ++ parameters->prcw_init[0] = 128; ++ parameters->prch_init[0] = 128; ++ } else { ++ parameters->res_spec = parameters->numresolution - 1; ++ for (i = 0; i < parameters->res_spec; i++) { ++ parameters->prcw_init[i] = 256; ++ parameters->prch_init[i] = 256; ++ } + } + + /* The progression order shall be CPRL */ diff --git a/gnu/packages/patches/openjpeg-CVE-2017-14164.patch b/gnu/packages/patches/openjpeg-CVE-2017-14164.patch new file mode 100644 index 0000000000..2bfc5a6a85 --- /dev/null +++ b/gnu/packages/patches/openjpeg-CVE-2017-14164.patch @@ -0,0 +1,89 @@ +https://github.com/uclouvain/openjpeg/commit/dcac91b8c72f743bda7dbfa9032356bc8110098a.patch +http://openwall.com/lists/oss-security/2017/09/06/3 + +From dcac91b8c72f743bda7dbfa9032356bc8110098a Mon Sep 17 00:00:00 2001 +From: Even Rouault <even.rouault@spatialys.com> +Date: Wed, 16 Aug 2017 17:09:10 +0200 +Subject: [PATCH] opj_j2k_write_sot(): fix potential write heap buffer overflow + (#991) + +--- + src/lib/openjp2/j2k.c | 25 ++++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c +index 54b490a8c..16915452e 100644 +--- a/src/lib/openjp2/j2k.c ++++ b/src/lib/openjp2/j2k.c +@@ -832,13 +832,15 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k, + * Writes the SOT marker (Start of tile-part) + * + * @param p_j2k J2K codec. +- * @param p_data FIXME DOC +- * @param p_data_written FIXME DOC ++ * @param p_data Output buffer ++ * @param p_total_data_size Output buffer size ++ * @param p_data_written Number of bytes written into stream + * @param p_stream the stream to write data to. + * @param p_manager the user event manager. + */ + static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, + OPJ_BYTE * p_data, ++ OPJ_UINT32 p_total_data_size, + OPJ_UINT32 * p_data_written, + const opj_stream_private_t *p_stream, + opj_event_mgr_t * p_manager); +@@ -4201,6 +4203,7 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k, + + static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, + OPJ_BYTE * p_data, ++ OPJ_UINT32 p_total_data_size, + OPJ_UINT32 * p_data_written, + const opj_stream_private_t *p_stream, + opj_event_mgr_t * p_manager +@@ -4214,6 +4217,12 @@ static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k, + OPJ_UNUSED(p_stream); + OPJ_UNUSED(p_manager); + ++ if (p_total_data_size < 12) { ++ opj_event_msg(p_manager, EVT_ERROR, ++ "Not enough bytes in output buffer to write SOT marker\n"); ++ return OPJ_FALSE; ++ } ++ + opj_write_bytes(p_data, J2K_MS_SOT, + 2); /* SOT */ + p_data += 2; +@@ -11480,7 +11489,8 @@ static OPJ_BOOL opj_j2k_write_first_tile_part(opj_j2k_t *p_j2k, + + l_current_nb_bytes_written = 0; + l_begin_data = p_data; +- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream, ++ if (! opj_j2k_write_sot(p_j2k, p_data, p_total_data_size, ++ &l_current_nb_bytes_written, p_stream, + p_manager)) { + return OPJ_FALSE; + } +@@ -11572,7 +11582,10 @@ static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k, + l_part_tile_size = 0; + l_begin_data = p_data; + +- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream, ++ if (! opj_j2k_write_sot(p_j2k, p_data, ++ p_total_data_size, ++ &l_current_nb_bytes_written, ++ p_stream, + p_manager)) { + return OPJ_FALSE; + } +@@ -11615,7 +11628,9 @@ static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k, + l_part_tile_size = 0; + l_begin_data = p_data; + +- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream, ++ if (! opj_j2k_write_sot(p_j2k, p_data, ++ p_total_data_size, ++ &l_current_nb_bytes_written, p_stream, + p_manager)) { + return OPJ_FALSE; + } diff --git a/gnu/packages/patches/openocd-nrf52.patch b/gnu/packages/patches/openocd-nrf52.patch index 792575df78..0ec4348cb4 100644 --- a/gnu/packages/patches/openocd-nrf52.patch +++ b/gnu/packages/patches/openocd-nrf52.patch @@ -21,19 +21,19 @@ Signed-off-by: Michael Dietz <mjdietzx@gmail.com> --- diff --git a/src/flash/nor/Makefile.am b/src/flash/nor/Makefile.am -index c167e8f..b6a2be3 100644 +index 727e4f2..839667c 100644 --- a/src/flash/nor/Makefile.am +++ b/src/flash/nor/Makefile.am -@@ -37,6 +37,7 @@ NOR_DRIVERS = \ - niietcm4.c \ - non_cfi.c \ - nrf51.c \ -+ nrf52.c \ - numicro.c \ - ocl.c \ - pic32mx.c \ +@@ -36,6 +36,7 @@ NOR_DRIVERS = \ + %D%/niietcm4.c \ + %D%/non_cfi.c \ + %D%/nrf51.c \ ++ %D%/nrf52.c \ + %D%/numicro.c \ + %D%/ocl.c \ + %D%/pic32mx.c \ diff --git a/src/flash/nor/drivers.c b/src/flash/nor/drivers.c -index 56a5cb2..3e071bd 100644 +index 56a5cb2..071273e 100644 --- a/src/flash/nor/drivers.c +++ b/src/flash/nor/drivers.c @@ -48,6 +48,7 @@ extern struct flash_driver mdr_flash; @@ -48,7 +48,7 @@ index 56a5cb2..3e071bd 100644 &mrvlqspi_flash, &niietcm4_flash, &nrf51_flash, -+ &nrf52_flash, ++ &nrf52_flash, &numicro_flash, &ocl_flash, &pic32mx_flash, @@ -792,47 +792,31 @@ index 0000000..7f2bd35 + .protect_check = nrf52_protect_check, +}; diff --git a/tcl/target/nrf52.cfg b/tcl/target/nrf52.cfg -index c1cbf1a..a2567ff 100644 +index c1cbf1a..41a22ff 100644 --- a/tcl/target/nrf52.cfg +++ b/tcl/target/nrf52.cfg -@@ -5,15 +5,22 @@ - source [find target/swj-dp.tcl] +@@ -10,6 +10,13 @@ if { [info exists CHIPNAME] } { + set _CHIPNAME nrf52 + } - if { [info exists CHIPNAME] } { -- set _CHIPNAME $CHIPNAME -+ set _CHIPNAME $CHIPNAME - } else { -- set _CHIPNAME nrf52 -+ set _CHIPNAME nrf52 -+} -+ +# Work-area is a space in RAM used for flash programming, by default use 16kB. +if { [info exists WORKAREASIZE] } { -+ set _WORKAREASIZE $WORKAREASIZE ++ set _WORKAREASIZE $WORKAREASIZE +} else { -+ set _WORKAREASIZE 0x4000 - } - ++ set _WORKAREASIZE 0x4000 ++} ++ if { [info exists CPUTAPID] } { -- set _CPUTAPID $CPUTAPID -+ set _CPUTAPID $CPUTAPID + set _CPUTAPID $CPUTAPID } else { -- set _CPUTAPID 0x2ba01477 -+ set _CPUTAPID 0x2ba01477 - } - - swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID -@@ -21,8 +28,15 @@ swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID - set _TARGETNAME $_CHIPNAME.cpu +@@ -22,7 +29,15 @@ set _TARGETNAME $_CHIPNAME.cpu target create $_TARGETNAME cortex_m -chain-position $_TARGETNAME --adapter_khz 10000 + adapter_khz 10000 +$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 --if { ![using_hla] } { -- cortex_m reset_config sysresetreq -+if {![using_hla]} { -+ cortex_m reset_config sysresetreq + if { ![using_hla] } { + cortex_m reset_config sysresetreq } + +flash bank $_CHIPNAME.flash nrf52 0x00000000 0 1 1 $_TARGETNAME diff --git a/gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch b/gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch new file mode 100644 index 0000000000..e0df632a04 --- /dev/null +++ b/gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch @@ -0,0 +1,32 @@ +Description: Use the markdown library provided by the libmarkdown2 package. +Author: Alessandro Ghedini <al3xbio@gmail.com> +Origin: vendor +Forwarded: not-needed +Last-Update: 2012-01-01 + +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -57,12 +57,6 @@ + + + +-sub MY::postamble { +- return sprintf(' +-$(MYEXTLIB): +- %s +-', qq{( cd $extdir; CC='cc -fPIC' sh configure.sh; make )\n}); +-} + + WriteMakefile( + NAME => 'Text::Markdown::Discount', +@@ -71,8 +65,6 @@ + ($] >= 5.005 ? + (ABSTRACT_FROM => 'lib/Text/Markdown/Discount.pm', + AUTHOR => 'Masayoshi Sekimura <sekimura@cpan.org>') : ()), +- LIBS => '-L' . $extdir, +- INC => '-I. -I' . $extdir, +- MYEXTLIB => $myextlib, +- clean => { FILES => $clean_files }, ++ LIBS => '-lmarkdown', ++ INC => '-I.', + ); diff --git a/gnu/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch b/gnu/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch new file mode 100644 index 0000000000..f1db5d7c3b --- /dev/null +++ b/gnu/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch @@ -0,0 +1,29 @@ +From ca548da9ba78ddee90779051210e3e89185e4f7d Mon Sep 17 00:00:00 2001 +From: Michel Alexandre Salim <michel@michel-slm.name> +Date: Mon, 15 Feb 2016 23:03:42 +0700 +Subject: coverage-4.0a6 compatibility + +coverage 4.0a6 no longer generates .coverage file, so use -f when +deleting .coverage to ensure deletion does not fail. +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +(limited to 'Makefile') + +diff --git a/Makefile b/Makefile +index 7818f57..362c07f 100644 +--- a/Makefile ++++ b/Makefile +@@ -23,7 +23,7 @@ fsck-larch.1: fsck-larch.1.in fsck-larch + + check: + python -m CoverageTestRunner --ignore-missing-from=without-tests +- rm .coverage ++ rm -f .coverage + ./insert-remove-test tempdir 100 + rm -r tempdir larch.log + cmdtest tests +-- +cgit v1.1 + diff --git a/gnu/packages/patches/qemu-CVE-2017-10664.patch b/gnu/packages/patches/qemu-CVE-2017-10664.patch deleted file mode 100644 index 2b60de3dca..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-10664.patch +++ /dev/null @@ -1,27 +0,0 @@ -Fix CVE-2017-10664: - -https://lists.gnu.org/archive/html/qemu-devel/2017-06/msg02693.html -https://bugzilla.redhat.com/show_bug.cgi?id=1466190 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10664 -https://security-tracker.debian.org/tracker/CVE-2017-10664 - -Patch copied from upstream source repository: - -https://git.qemu.org/gitweb.cgi?p=qemu.git;a=commitdiff;h=041e32b8d9d076980b4e35317c0339e57ab888f1 - -diff --git a/qemu-nbd.c b/qemu-nbd.c -index 9464a0461c..4dd3fd4732 100644 ---- a/qemu-nbd.c -+++ b/qemu-nbd.c -@@ -581,6 +581,10 @@ int main(int argc, char **argv) - sa_sigterm.sa_handler = termsig_handler; - sigaction(SIGTERM, &sa_sigterm, NULL); - -+#ifdef CONFIG_POSIX -+ signal(SIGPIPE, SIG_IGN); -+#endif -+ - module_call_init(MODULE_INIT_TRACE); - qcrypto_init(&error_fatal); - - diff --git a/gnu/packages/patches/qemu-CVE-2017-10806.patch b/gnu/packages/patches/qemu-CVE-2017-10806.patch deleted file mode 100644 index ebf782fe7b..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-10806.patch +++ /dev/null @@ -1,38 +0,0 @@ -Fix CVE-2017-10806: - -https://lists.nongnu.org/archive/html/qemu-devel/2017-05/msg03087.html -https://bugzilla.redhat.com/show_bug.cgi?id=1468496 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10806 -https://security-tracker.debian.org/tracker/CVE-2017-10806 - -Patch copied from upstream source repository: - -https://git.qemu.org/gitweb.cgi?p=qemu.git;a=commit;h=bd4a683505b27adc1ac809f71e918e58573d851d - -diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c -index b001a27f05..ad5ef783a6 100644 ---- a/hw/usb/redirect.c -+++ b/hw/usb/redirect.c -@@ -229,21 +229,10 @@ static void usbredir_log(void *priv, int level, const char *msg) - static void usbredir_log_data(USBRedirDevice *dev, const char *desc, - const uint8_t *data, int len) - { -- int i, j, n; -- - if (dev->debug < usbredirparser_debug_data) { - return; - } -- -- for (i = 0; i < len; i += j) { -- char buf[128]; -- -- n = sprintf(buf, "%s", desc); -- for (j = 0; j < 8 && i + j < len; j++) { -- n += sprintf(buf + n, " %02X", data[i + j]); -- } -- error_report("%s", buf); -- } -+ qemu_hexdump((char *)data, stderr, desc, len); - } - - /* diff --git a/gnu/packages/patches/qemu-CVE-2017-10911.patch b/gnu/packages/patches/qemu-CVE-2017-10911.patch deleted file mode 100644 index 1dcb860a2d..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-10911.patch +++ /dev/null @@ -1,106 +0,0 @@ -Fix CVE-2017-10911: - -https://xenbits.xen.org/xsa/advisory-216.html -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10911 -https://security-tracker.debian.org/tracker/CVE-2017-10911 - -Patch copied from Xen Security Advisory: - -https://xenbits.xen.org/xsa/xsa216-qemuu.patch - ---- a/hw/block/xen_blkif.h -+++ b/hw/block/xen_blkif.h -@@ -14,9 +14,6 @@ - struct blkif_common_request { - char dummy; - }; --struct blkif_common_response { -- char dummy; --}; - - /* i386 protocol version */ - #pragma pack(push, 4) -@@ -36,13 +33,7 @@ struct blkif_x86_32_request_discard { - blkif_sector_t sector_number; /* start sector idx on disk (r/w only) */ - uint64_t nr_sectors; /* # of contiguous sectors to discard */ - }; --struct blkif_x86_32_response { -- uint64_t id; /* copied from request */ -- uint8_t operation; /* copied from request */ -- int16_t status; /* BLKIF_RSP_??? */ --}; - typedef struct blkif_x86_32_request blkif_x86_32_request_t; --typedef struct blkif_x86_32_response blkif_x86_32_response_t; - #pragma pack(pop) - - /* x86_64 protocol version */ -@@ -62,20 +53,14 @@ struct blkif_x86_64_request_discard { - blkif_sector_t sector_number; /* start sector idx on disk (r/w only) */ - uint64_t nr_sectors; /* # of contiguous sectors to discard */ - }; --struct blkif_x86_64_response { -- uint64_t __attribute__((__aligned__(8))) id; -- uint8_t operation; /* copied from request */ -- int16_t status; /* BLKIF_RSP_??? */ --}; - typedef struct blkif_x86_64_request blkif_x86_64_request_t; --typedef struct blkif_x86_64_response blkif_x86_64_response_t; - - DEFINE_RING_TYPES(blkif_common, struct blkif_common_request, -- struct blkif_common_response); -+ struct blkif_response); - DEFINE_RING_TYPES(blkif_x86_32, struct blkif_x86_32_request, -- struct blkif_x86_32_response); -+ struct blkif_response QEMU_PACKED); - DEFINE_RING_TYPES(blkif_x86_64, struct blkif_x86_64_request, -- struct blkif_x86_64_response); -+ struct blkif_response); - - union blkif_back_rings { - blkif_back_ring_t native; ---- a/hw/block/xen_disk.c -+++ b/hw/block/xen_disk.c -@@ -769,31 +769,30 @@ static int blk_send_response_one(struct - struct XenBlkDev *blkdev = ioreq->blkdev; - int send_notify = 0; - int have_requests = 0; -- blkif_response_t resp; -- void *dst; -- -- resp.id = ioreq->req.id; -- resp.operation = ioreq->req.operation; -- resp.status = ioreq->status; -+ blkif_response_t *resp; - - /* Place on the response ring for the relevant domain. */ - switch (blkdev->protocol) { - case BLKIF_PROTOCOL_NATIVE: -- dst = RING_GET_RESPONSE(&blkdev->rings.native, blkdev->rings.native.rsp_prod_pvt); -+ resp = RING_GET_RESPONSE(&blkdev->rings.native, -+ blkdev->rings.native.rsp_prod_pvt); - break; - case BLKIF_PROTOCOL_X86_32: -- dst = RING_GET_RESPONSE(&blkdev->rings.x86_32_part, -- blkdev->rings.x86_32_part.rsp_prod_pvt); -+ resp = RING_GET_RESPONSE(&blkdev->rings.x86_32_part, -+ blkdev->rings.x86_32_part.rsp_prod_pvt); - break; - case BLKIF_PROTOCOL_X86_64: -- dst = RING_GET_RESPONSE(&blkdev->rings.x86_64_part, -- blkdev->rings.x86_64_part.rsp_prod_pvt); -+ resp = RING_GET_RESPONSE(&blkdev->rings.x86_64_part, -+ blkdev->rings.x86_64_part.rsp_prod_pvt); - break; - default: -- dst = NULL; - return 0; - } -- memcpy(dst, &resp, sizeof(resp)); -+ -+ resp->id = ioreq->req.id; -+ resp->operation = ioreq->req.operation; -+ resp->status = ioreq->status; -+ - blkdev->rings.common.rsp_prod_pvt++; - - RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&blkdev->rings.common, send_notify); diff --git a/gnu/packages/patches/qemu-CVE-2017-11334.patch b/gnu/packages/patches/qemu-CVE-2017-11334.patch deleted file mode 100644 index cb68c803aa..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-11334.patch +++ /dev/null @@ -1,52 +0,0 @@ -Fix CVE-2017-11334: - -https://bugzilla.redhat.com/show_bug.cgi?id=1471638 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11334 - -Patch copied from upstream source repository: - -http://git.qemu.org/?p=qemu.git;a=commitdiff;h=04bf2526ce87f21b32c9acba1c5518708c243ad0 - -From 04bf2526ce87f21b32c9acba1c5518708c243ad0 Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit <pjp@fedoraproject.org> -Date: Wed, 12 Jul 2017 18:08:40 +0530 -Subject: [PATCH] exec: use qemu_ram_ptr_length to access guest ram - -When accessing guest's ram block during DMA operation, use -'qemu_ram_ptr_length' to get ram block pointer. It ensures -that DMA operation of given length is possible; And avoids -any OOB memory access situations. - -Reported-by: Alex <broscutamaker@gmail.com> -Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> -Message-Id: <20170712123840.29328-1-ppandit@redhat.com> -Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> ---- - exec.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/exec.c b/exec.c -index a083ff89ad..ad103ce483 100644 ---- a/exec.c -+++ b/exec.c -@@ -2929,7 +2929,7 @@ static MemTxResult address_space_write_continue(AddressSpace *as, hwaddr addr, - } - } else { - /* RAM case */ -- ptr = qemu_map_ram_ptr(mr->ram_block, addr1); -+ ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l); - memcpy(ptr, buf, l); - invalidate_and_set_dirty(mr, addr1, l); - } -@@ -3020,7 +3020,7 @@ MemTxResult address_space_read_continue(AddressSpace *as, hwaddr addr, - } - } else { - /* RAM case */ -- ptr = qemu_map_ram_ptr(mr->ram_block, addr1); -+ ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l); - memcpy(buf, ptr, l); - } - --- -2.13.3 - diff --git a/gnu/packages/patches/qemu-CVE-2017-11434.patch b/gnu/packages/patches/qemu-CVE-2017-11434.patch deleted file mode 100644 index 4da701a73d..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-11434.patch +++ /dev/null @@ -1,25 +0,0 @@ -Fix CVE-2017-11434: - -https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg05001.html -https://bugzilla.redhat.com/show_bug.cgi?id=1472611 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11434 -https://security-tracker.debian.org/tracker/CVE-2017-11434 - -Patch copied from upstream source repository: - -https://git.qemu.org/gitweb.cgi?p=qemu.git;a=commit;h=413d463f43fbc4dd3a601e80a5724aa384a265a0 - -diff --git a/slirp/bootp.c b/slirp/bootp.c -index 5a4646c182..5dd1a415b5 100644 ---- a/slirp/bootp.c -+++ b/slirp/bootp.c -@@ -123,6 +123,9 @@ static void dhcp_decode(const struct bootp_t *bp, int *pmsg_type, - if (p >= p_end) - break; - len = *p++; -+ if (p + len > p_end) { -+ break; -+ } - DPRINTF("dhcp: tag=%d len=%d\n", tag, len); - - switch(tag) { diff --git a/gnu/packages/patches/qemu-CVE-2017-12809.patch b/gnu/packages/patches/qemu-CVE-2017-12809.patch deleted file mode 100644 index e40a14b4e0..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-12809.patch +++ /dev/null @@ -1,38 +0,0 @@ -http://openwall.com/lists/oss-security/2017/08/21/2 -https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg01850.html - -The block backend changed in a way that flushing empty CDROM drives now -crashes. Amend IDE to avoid doing so until the root problem can be -addressed for 2.11. - -Original patch by John Snow <address@hidden>. - -Reported-by: Kieron Shorrock <address@hidden> -Signed-off-by: Stefan Hajnoczi <address@hidden> ---- - hw/ide/core.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/hw/ide/core.c b/hw/ide/core.c -index 0b48b64d3a..bea39536b0 100644 ---- a/hw/ide/core.c -+++ b/hw/ide/core.c -@@ -1063,7 +1063,15 @@ static void ide_flush_cache(IDEState *s) - s->status |= BUSY_STAT; - ide_set_retry(s); - block_acct_start(blk_get_stats(s->blk), &s->acct, 0, BLOCK_ACCT_FLUSH); -- s->pio_aiocb = blk_aio_flush(s->blk, ide_flush_cb, s); -+ -+ if (blk_bs(s->blk)) { -+ s->pio_aiocb = blk_aio_flush(s->blk, ide_flush_cb, s); -+ } else { -+ /* XXX blk_aio_flush() crashes when blk_bs(blk) is NULL, remove this -+ * temporary workaround when blk_aio_*() functions handle NULL blk_bs. -+ */ -+ ide_flush_cb(s, 0); -+ } - } - - static void ide_cfata_metadata_inquiry(IDEState *s) --- -2.13.3 diff --git a/gnu/packages/patches/qemu-CVE-2017-13711.patch b/gnu/packages/patches/qemu-CVE-2017-13711.patch new file mode 100644 index 0000000000..4070115419 --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2017-13711.patch @@ -0,0 +1,89 @@ +Fix CVE-2017-13711: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13711 + +Patch copied from upstream source repository: + +https://git.qemu.org/?p=qemu.git;a=commitdiff;h=1201d308519f1e915866d7583d5136d03cc1d384 + +From 1201d308519f1e915866d7583d5136d03cc1d384 Mon Sep 17 00:00:00 2001 +From: Samuel Thibault <samuel.thibault@ens-lyon.org> +Date: Fri, 25 Aug 2017 01:35:53 +0200 +Subject: [PATCH] slirp: fix clearing ifq_so from pending packets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The if_fastq and if_batchq contain not only packets, but queues of packets +for the same socket. When sofree frees a socket, it thus has to clear ifq_so +from all the packets from the queues, not only the first. + +Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> +Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> +Cc: qemu-stable@nongnu.org +Signed-off-by: Peter Maydell <peter.maydell@linaro.org> +--- + slirp/socket.c | 39 +++++++++++++++++++++++---------------- + 1 file changed, 23 insertions(+), 16 deletions(-) + +diff --git a/slirp/socket.c b/slirp/socket.c +index ecec0295a9..cb7b5b608d 100644 +--- a/slirp/socket.c ++++ b/slirp/socket.c +@@ -59,6 +59,27 @@ socreate(Slirp *slirp) + return(so); + } + ++/* ++ * Remove references to so from the given message queue. ++ */ ++static void ++soqfree(struct socket *so, struct quehead *qh) ++{ ++ struct mbuf *ifq; ++ ++ for (ifq = (struct mbuf *) qh->qh_link; ++ (struct quehead *) ifq != qh; ++ ifq = ifq->ifq_next) { ++ if (ifq->ifq_so == so) { ++ struct mbuf *ifm; ++ ifq->ifq_so = NULL; ++ for (ifm = ifq->ifs_next; ifm != ifq; ifm = ifm->ifs_next) { ++ ifm->ifq_so = NULL; ++ } ++ } ++ } ++} ++ + /* + * remque and free a socket, clobber cache + */ +@@ -66,23 +87,9 @@ void + sofree(struct socket *so) + { + Slirp *slirp = so->slirp; +- struct mbuf *ifm; + +- for (ifm = (struct mbuf *) slirp->if_fastq.qh_link; +- (struct quehead *) ifm != &slirp->if_fastq; +- ifm = ifm->ifq_next) { +- if (ifm->ifq_so == so) { +- ifm->ifq_so = NULL; +- } +- } +- +- for (ifm = (struct mbuf *) slirp->if_batchq.qh_link; +- (struct quehead *) ifm != &slirp->if_batchq; +- ifm = ifm->ifq_next) { +- if (ifm->ifq_so == so) { +- ifm->ifq_so = NULL; +- } +- } ++ soqfree(so, &slirp->if_fastq); ++ soqfree(so, &slirp->if_batchq); + + if (so->so_emu==EMU_RSH && so->extra) { + sofree(so->extra); +-- +2.14.1 + diff --git a/gnu/packages/patches/qemu-CVE-2017-14167.patch b/gnu/packages/patches/qemu-CVE-2017-14167.patch new file mode 100644 index 0000000000..a6007ac082 --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2017-14167.patch @@ -0,0 +1,69 @@ +Fix CVE-2017-14167: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14167 +http://seclists.org/oss-sec/2017/q3/407 + +Patch copied from upstream development mailing list: + +https://lists.nongnu.org/archive/html/qemu-devel/2017-09/msg01483.html + +From: Prasad J Pandit <address@hidden> + +While loading kernel via multiboot-v1 image, (flags & 0x00010000) +indicates that multiboot header contains valid addresses to load +the kernel image. These addresses are used to compute kernel +size and kernel text offset in the OS image. Validate these +address values to avoid an OOB access issue. + +This is CVE-2017-14167. + +Reported-by: Thomas Garnier <address@hidden> +Signed-off-by: Prasad J Pandit <address@hidden> +--- + hw/i386/multiboot.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +Update: add CVE-ID to the commit message. + +diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c +index 6001f4caa2..c7b70c91d5 100644 +--- a/hw/i386/multiboot.c ++++ b/hw/i386/multiboot.c +@@ -221,15 +221,34 @@ int load_multiboot(FWCfgState *fw_cfg, + uint32_t mh_header_addr = ldl_p(header+i+12); + uint32_t mh_load_end_addr = ldl_p(header+i+20); + uint32_t mh_bss_end_addr = ldl_p(header+i+24); ++ + mh_load_addr = ldl_p(header+i+16); ++ if (mh_header_addr < mh_load_addr) { ++ fprintf(stderr, "invalid mh_load_addr address\n"); ++ exit(1); ++ } ++ + uint32_t mb_kernel_text_offset = i - (mh_header_addr - mh_load_addr); + uint32_t mb_load_size = 0; + mh_entry_addr = ldl_p(header+i+28); + + if (mh_load_end_addr) { ++ if (mh_bss_end_addr < mh_load_addr) { ++ fprintf(stderr, "invalid mh_bss_end_addr address\n"); ++ exit(1); ++ } + mb_kernel_size = mh_bss_end_addr - mh_load_addr; ++ ++ if (mh_load_end_addr < mh_load_addr) { ++ fprintf(stderr, "invalid mh_load_end_addr address\n"); ++ exit(1); ++ } + mb_load_size = mh_load_end_addr - mh_load_addr; + } else { ++ if (kernel_file_size < mb_kernel_text_offset) { ++ fprintf(stderr, "invalid kernel_file_size\n"); ++ exit(1); ++ } + mb_kernel_size = kernel_file_size - mb_kernel_text_offset; + mb_load_size = mb_kernel_size; + } +-- +2.13.5 + diff --git a/gnu/packages/patches/qemu-CVE-2017-7493.patch b/gnu/packages/patches/qemu-CVE-2017-7493.patch deleted file mode 100644 index 67b26fad81..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-7493.patch +++ /dev/null @@ -1,182 +0,0 @@ -Fix CVE-2017-7493: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7493 - -Patch copied from upstream source repository: - -http://git.qemu.org/?p=qemu.git;a=commit;h=7a95434e0ca8a037fd8aa1a2e2461f92585eb77b - -From 7a95434e0ca8a037fd8aa1a2e2461f92585eb77b Mon Sep 17 00:00:00 2001 -From: Greg Kurz <groug@kaod.org> -Date: Fri, 5 May 2017 14:48:08 +0200 -Subject: [PATCH] 9pfs: local: forbid client access to metadata (CVE-2017-7493) - -When using the mapped-file security mode, we shouldn't let the client mess -with the metadata. The current code already tries to hide the metadata dir -from the client by skipping it in local_readdir(). But the client can still -access or modify it through several other operations. This can be used to -escalate privileges in the guest. - -Affected backend operations are: -- local_mknod() -- local_mkdir() -- local_open2() -- local_symlink() -- local_link() -- local_unlinkat() -- local_renameat() -- local_rename() -- local_name_to_path() - -Other operations are safe because they are only passed a fid path, which -is computed internally in local_name_to_path(). - -This patch converts all the functions listed above to fail and return -EINVAL when being passed the name of the metadata dir. This may look -like a poor choice for errno, but there's no such thing as an illegal -path name on Linux and I could not think of anything better. - -This fixes CVE-2017-7493. - -Reported-by: Leo Gaspard <leo@gaspard.io> -Signed-off-by: Greg Kurz <groug@kaod.org> -Reviewed-by: Eric Blake <eblake@redhat.com> ---- - hw/9pfs/9p-local.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 56 insertions(+), 2 deletions(-) - -diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c -index f3ebca4f7a..a2486566af 100644 ---- a/hw/9pfs/9p-local.c -+++ b/hw/9pfs/9p-local.c -@@ -452,6 +452,11 @@ static off_t local_telldir(FsContext *ctx, V9fsFidOpenState *fs) - return telldir(fs->dir.stream); - } - -+static bool local_is_mapped_file_metadata(FsContext *fs_ctx, const char *name) -+{ -+ return !strcmp(name, VIRTFS_META_DIR); -+} -+ - static struct dirent *local_readdir(FsContext *ctx, V9fsFidOpenState *fs) - { - struct dirent *entry; -@@ -465,8 +470,8 @@ again: - if (ctx->export_flags & V9FS_SM_MAPPED) { - entry->d_type = DT_UNKNOWN; - } else if (ctx->export_flags & V9FS_SM_MAPPED_FILE) { -- if (!strcmp(entry->d_name, VIRTFS_META_DIR)) { -- /* skp the meta data directory */ -+ if (local_is_mapped_file_metadata(ctx, entry->d_name)) { -+ /* skip the meta data directory */ - goto again; - } - entry->d_type = DT_UNKNOWN; -@@ -559,6 +564,12 @@ static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path, - int err = -1; - int dirfd; - -+ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && -+ local_is_mapped_file_metadata(fs_ctx, name)) { -+ errno = EINVAL; -+ return -1; -+ } -+ - dirfd = local_opendir_nofollow(fs_ctx, dir_path->data); - if (dirfd == -1) { - return -1; -@@ -605,6 +616,12 @@ static int local_mkdir(FsContext *fs_ctx, V9fsPath *dir_path, - int err = -1; - int dirfd; - -+ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && -+ local_is_mapped_file_metadata(fs_ctx, name)) { -+ errno = EINVAL; -+ return -1; -+ } -+ - dirfd = local_opendir_nofollow(fs_ctx, dir_path->data); - if (dirfd == -1) { - return -1; -@@ -694,6 +711,12 @@ static int local_open2(FsContext *fs_ctx, V9fsPath *dir_path, const char *name, - int err = -1; - int dirfd; - -+ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && -+ local_is_mapped_file_metadata(fs_ctx, name)) { -+ errno = EINVAL; -+ return -1; -+ } -+ - /* - * Mark all the open to not follow symlinks - */ -@@ -752,6 +775,12 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath, - int err = -1; - int dirfd; - -+ if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE && -+ local_is_mapped_file_metadata(fs_ctx, name)) { -+ errno = EINVAL; -+ return -1; -+ } -+ - dirfd = local_opendir_nofollow(fs_ctx, dir_path->data); - if (dirfd == -1) { - return -1; -@@ -826,6 +855,12 @@ static int local_link(FsContext *ctx, V9fsPath *oldpath, - int ret = -1; - int odirfd, ndirfd; - -+ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && -+ local_is_mapped_file_metadata(ctx, name)) { -+ errno = EINVAL; -+ return -1; -+ } -+ - odirfd = local_opendir_nofollow(ctx, odirpath); - if (odirfd == -1) { - goto out; -@@ -1096,6 +1131,12 @@ static int local_lremovexattr(FsContext *ctx, V9fsPath *fs_path, - static int local_name_to_path(FsContext *ctx, V9fsPath *dir_path, - const char *name, V9fsPath *target) - { -+ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && -+ local_is_mapped_file_metadata(ctx, name)) { -+ errno = EINVAL; -+ return -1; -+ } -+ - if (dir_path) { - v9fs_path_sprintf(target, "%s/%s", dir_path->data, name); - } else if (strcmp(name, "/")) { -@@ -1116,6 +1157,13 @@ static int local_renameat(FsContext *ctx, V9fsPath *olddir, - int ret; - int odirfd, ndirfd; - -+ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && -+ (local_is_mapped_file_metadata(ctx, old_name) || -+ local_is_mapped_file_metadata(ctx, new_name))) { -+ errno = EINVAL; -+ return -1; -+ } -+ - odirfd = local_opendir_nofollow(ctx, olddir->data); - if (odirfd == -1) { - return -1; -@@ -1206,6 +1254,12 @@ static int local_unlinkat(FsContext *ctx, V9fsPath *dir, - int ret; - int dirfd; - -+ if (ctx->export_flags & V9FS_SM_MAPPED_FILE && -+ local_is_mapped_file_metadata(ctx, name)) { -+ errno = EINVAL; -+ return -1; -+ } -+ - dirfd = local_opendir_nofollow(ctx, dir->data); - if (dirfd == -1) { - return -1; --- -2.13.0 - diff --git a/gnu/packages/patches/qemu-CVE-2017-8112.patch b/gnu/packages/patches/qemu-CVE-2017-8112.patch deleted file mode 100644 index 88b33aa2f0..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-8112.patch +++ /dev/null @@ -1,41 +0,0 @@ -Fix CVE-2017-8112: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8112 - -Patch copied from upstream source repository: - -http://git.qemu.org/?p=qemu.git;a=commitdiff;h=f68826989cd4d1217797251339579c57b3c0934e - -From f68826989cd4d1217797251339579c57b3c0934e Mon Sep 17 00:00:00 2001 -From: P J P <ppandit@redhat.com> -Date: Tue, 25 Apr 2017 18:36:23 +0530 -Subject: [PATCH] vmw_pvscsi: check message ring page count at initialisation - -A guest could set the message ring page count to zero, resulting in -infinite loop. Add check to avoid it. - -Reported-by: YY Z <bigbird475958471@gmail.com> -Signed-off-by: P J P <ppandit@redhat.com> -Message-Id: <20170425130623.3649-1-ppandit@redhat.com> -Reviewed-by: Dmitry Fleytman <dmitry@daynix.com> -Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> ---- - hw/scsi/vmw_pvscsi.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c -index 75575461e2..4a106da856 100644 ---- a/hw/scsi/vmw_pvscsi.c -+++ b/hw/scsi/vmw_pvscsi.c -@@ -202,7 +202,7 @@ pvscsi_ring_init_msg(PVSCSIRingInfo *m, PVSCSICmdDescSetupMsgRing *ri) - uint32_t len_log2; - uint32_t ring_size; - -- if (ri->numPages > PVSCSI_SETUP_MSG_RING_MAX_NUM_PAGES) { -+ if (!ri->numPages || ri->numPages > PVSCSI_SETUP_MSG_RING_MAX_NUM_PAGES) { - return -1; - } - ring_size = ri->numPages * PVSCSI_MAX_NUM_MSG_ENTRIES_PER_PAGE; --- -2.13.0 - diff --git a/gnu/packages/patches/qemu-CVE-2017-8309.patch b/gnu/packages/patches/qemu-CVE-2017-8309.patch deleted file mode 100644 index dc4b4006b7..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-8309.patch +++ /dev/null @@ -1,46 +0,0 @@ -Fix CVE-2017-8309: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8309 - -Patch copied from upstream source repository: - -http://git.qemu.org/?p=qemu.git;a=commitdiff;h=3268a845f41253fb55852a8429c32b50f36f349a - -From 3268a845f41253fb55852a8429c32b50f36f349a Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann <kraxel@redhat.com> -Date: Fri, 28 Apr 2017 09:56:12 +0200 -Subject: [PATCH] audio: release capture buffers - -AUD_add_capture() allocates two buffers which are never released. -Add the missing calls to AUD_del_capture(). - -Impact: Allows vnc clients to exhaust host memory by repeatedly -starting and stopping audio capture. - -Fixes: CVE-2017-8309 -Cc: P J P <ppandit@redhat.com> -Cc: Huawei PSIRT <PSIRT@huawei.com> -Reported-by: "Jiangxin (hunter, SCC)" <jiangxin1@huawei.com> -Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> -Reviewed-by: Prasad J Pandit <pjp@fedoraproject.org> -Message-id: 20170428075612.9997-1-kraxel@redhat.com ---- - audio/audio.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/audio/audio.c b/audio/audio.c -index c8898d8422..beafed209b 100644 ---- a/audio/audio.c -+++ b/audio/audio.c -@@ -2028,6 +2028,8 @@ void AUD_del_capture (CaptureVoiceOut *cap, void *cb_opaque) - sw = sw1; - } - QLIST_REMOVE (cap, entries); -+ g_free (cap->hw.mix_buf); -+ g_free (cap->buf); - g_free (cap); - } - return; --- -2.13.0 - diff --git a/gnu/packages/patches/qemu-CVE-2017-8379.patch b/gnu/packages/patches/qemu-CVE-2017-8379.patch deleted file mode 100644 index 200b133d3e..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-8379.patch +++ /dev/null @@ -1,98 +0,0 @@ -Fix CVE-2017-8379: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8379 - -Patch copied from upstream source repository: - -http://git.qemu.org/?p=qemu.git;a=commitdiff;h=fa18f36a461984eae50ab957e47ec78dae3c14fc - -From fa18f36a461984eae50ab957e47ec78dae3c14fc Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann <kraxel@redhat.com> -Date: Fri, 28 Apr 2017 10:42:37 +0200 -Subject: [PATCH] input: limit kbd queue depth - -Apply a limit to the number of items we accept into the keyboard queue. - -Impact: Without this limit vnc clients can exhaust host memory by -sending keyboard events faster than qemu feeds them to the guest. - -Fixes: CVE-2017-8379 -Cc: P J P <ppandit@redhat.com> -Cc: Huawei PSIRT <PSIRT@huawei.com> -Reported-by: jiangxin1@huawei.com -Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> -Message-id: 20170428084237.23960-1-kraxel@redhat.com ---- - ui/input.c | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/ui/input.c b/ui/input.c -index ed88cda6d6..fb1f404095 100644 ---- a/ui/input.c -+++ b/ui/input.c -@@ -41,6 +41,8 @@ static QTAILQ_HEAD(QemuInputEventQueueHead, QemuInputEventQueue) kbd_queue = - QTAILQ_HEAD_INITIALIZER(kbd_queue); - static QEMUTimer *kbd_timer; - static uint32_t kbd_default_delay_ms = 10; -+static uint32_t queue_count; -+static uint32_t queue_limit = 1024; - - QemuInputHandlerState *qemu_input_handler_register(DeviceState *dev, - QemuInputHandler *handler) -@@ -268,6 +270,7 @@ static void qemu_input_queue_process(void *opaque) - break; - } - QTAILQ_REMOVE(queue, item, node); -+ queue_count--; - g_free(item); - } - } -@@ -282,6 +285,7 @@ static void qemu_input_queue_delay(struct QemuInputEventQueueHead *queue, - item->delay_ms = delay_ms; - item->timer = timer; - QTAILQ_INSERT_TAIL(queue, item, node); -+ queue_count++; - - if (start_timer) { - timer_mod(item->timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) -@@ -298,6 +302,7 @@ static void qemu_input_queue_event(struct QemuInputEventQueueHead *queue, - item->src = src; - item->evt = evt; - QTAILQ_INSERT_TAIL(queue, item, node); -+ queue_count++; - } - - static void qemu_input_queue_sync(struct QemuInputEventQueueHead *queue) -@@ -306,6 +311,7 @@ static void qemu_input_queue_sync(struct QemuInputEventQueueHead *queue) - - item->type = QEMU_INPUT_QUEUE_SYNC; - QTAILQ_INSERT_TAIL(queue, item, node); -+ queue_count++; - } - - void qemu_input_event_send_impl(QemuConsole *src, InputEvent *evt) -@@ -381,7 +387,7 @@ void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down) - qemu_input_event_send(src, evt); - qemu_input_event_sync(); - qapi_free_InputEvent(evt); -- } else { -+ } else if (queue_count < queue_limit) { - qemu_input_queue_event(&kbd_queue, src, evt); - qemu_input_queue_sync(&kbd_queue); - } -@@ -409,8 +415,10 @@ void qemu_input_event_send_key_delay(uint32_t delay_ms) - kbd_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL, qemu_input_queue_process, - &kbd_queue); - } -- qemu_input_queue_delay(&kbd_queue, kbd_timer, -- delay_ms ? delay_ms : kbd_default_delay_ms); -+ if (queue_count < queue_limit) { -+ qemu_input_queue_delay(&kbd_queue, kbd_timer, -+ delay_ms ? delay_ms : kbd_default_delay_ms); -+ } - } - - InputEvent *qemu_input_event_new_btn(InputButton btn, bool down) --- -2.13.0 - diff --git a/gnu/packages/patches/qemu-CVE-2017-8380.patch b/gnu/packages/patches/qemu-CVE-2017-8380.patch deleted file mode 100644 index 65e49fc885..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-8380.patch +++ /dev/null @@ -1,53 +0,0 @@ -Fix CVE-2017-8380: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8380 - -Patch copied from upstream source repository: - -http://git.qemu.org/?p=qemu.git;a=commitdiff;h=24dfa9fa2f90a95ac33c7372de4f4f2c8a2c141f - -From 24dfa9fa2f90a95ac33c7372de4f4f2c8a2c141f Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit <pjp@fedoraproject.org> -Date: Mon, 24 Apr 2017 17:36:34 +0530 -Subject: [PATCH] scsi: avoid an off-by-one error in megasas_mmio_write - -While reading magic sequence(MFI_SEQ) in megasas_mmio_write, -an off-by-one error could occur as 's->adp_reset' index is not -reset after reading the last sequence. - -Reported-by: YY Z <bigbird475958471@gmail.com> -Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> -Message-Id: <20170424120634.12268-1-ppandit@redhat.com> -Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> ---- - hw/scsi/megasas.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c -index 84b8caf901..804122ab05 100644 ---- a/hw/scsi/megasas.c -+++ b/hw/scsi/megasas.c -@@ -2138,15 +2138,15 @@ static void megasas_mmio_write(void *opaque, hwaddr addr, - case MFI_SEQ: - trace_megasas_mmio_writel("MFI_SEQ", val); - /* Magic sequence to start ADP reset */ -- if (adp_reset_seq[s->adp_reset] == val) { -- s->adp_reset++; -+ if (adp_reset_seq[s->adp_reset++] == val) { -+ if (s->adp_reset == 6) { -+ s->adp_reset = 0; -+ s->diag = MFI_DIAG_WRITE_ENABLE; -+ } - } else { - s->adp_reset = 0; - s->diag = 0; - } -- if (s->adp_reset == 6) { -- s->diag = MFI_DIAG_WRITE_ENABLE; -- } - break; - case MFI_DIAG: - trace_megasas_mmio_writel("MFI_DIAG", val); --- -2.13.0 - diff --git a/gnu/packages/patches/qemu-CVE-2017-9524.patch b/gnu/packages/patches/qemu-CVE-2017-9524.patch deleted file mode 100644 index 57160055e3..0000000000 --- a/gnu/packages/patches/qemu-CVE-2017-9524.patch +++ /dev/null @@ -1,287 +0,0 @@ -Fix CVE-2017-9524: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9524 -http://seclists.org/oss-sec/2017/q2/454 - -Patches copied from upstream source repository: - -http://git.qemu.org/?p=qemu.git;a=commitdiff;h=df8ad9f128c15aa0a0ebc7b24e9a22c9775b67af -http://git.qemu.org/?p=qemu.git;a=commitdiff;h=0c9390d978cbf61e8f16c9f580fa96b305c43568 - -From df8ad9f128c15aa0a0ebc7b24e9a22c9775b67af Mon Sep 17 00:00:00 2001 -From: Eric Blake <eblake@redhat.com> -Date: Fri, 26 May 2017 22:04:21 -0500 -Subject: [PATCH] nbd: Fully initialize client in case of failed negotiation - -If a non-NBD client connects to qemu-nbd, we would end up with -a SIGSEGV in nbd_client_put() because we were trying to -unregister the client's association to the export, even though -we skipped inserting the client into that list. Easy trigger -in two terminals: - -$ qemu-nbd -p 30001 --format=raw file -$ nmap 127.0.0.1 -p 30001 - -nmap claims that it thinks it connected to a pago-services1 -server (which probably means nmap could be updated to learn the -NBD protocol and give a more accurate diagnosis of the open -port - but that's not our problem), then terminates immediately, -so our call to nbd_negotiate() fails. The fix is to reorder -nbd_co_client_start() to ensure that all initialization occurs -before we ever try talking to a client in nbd_negotiate(), so -that the teardown sequence on negotiation failure doesn't fault -while dereferencing a half-initialized object. - -While debugging this, I also noticed that nbd_update_server_watch() -called by nbd_client_closed() was still adding a channel to accept -the next client, even when the state was no longer RUNNING. That -is fixed by making nbd_can_accept() pay attention to the current -state. - -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1451614 - -Signed-off-by: Eric Blake <eblake@redhat.com> -Message-Id: <20170527030421.28366-1-eblake@redhat.com> -Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> ---- - nbd/server.c | 8 +++----- - qemu-nbd.c | 2 +- - 2 files changed, 4 insertions(+), 6 deletions(-) - -diff --git a/nbd/server.c b/nbd/server.c -index ee59e5d234..49b55f6ede 100644 ---- a/nbd/server.c -+++ b/nbd/server.c -@@ -1358,16 +1358,14 @@ static coroutine_fn void nbd_co_client_start(void *opaque) - - if (exp) { - nbd_export_get(exp); -+ QTAILQ_INSERT_TAIL(&exp->clients, client, next); - } -+ qemu_co_mutex_init(&client->send_lock); -+ - if (nbd_negotiate(data)) { - client_close(client); - goto out; - } -- qemu_co_mutex_init(&client->send_lock); -- -- if (exp) { -- QTAILQ_INSERT_TAIL(&exp->clients, client, next); -- } - - nbd_client_receive_next_request(client); - -diff --git a/qemu-nbd.c b/qemu-nbd.c -index f60842fd86..651f85ecc1 100644 ---- a/qemu-nbd.c -+++ b/qemu-nbd.c -@@ -325,7 +325,7 @@ out: - - static int nbd_can_accept(void) - { -- return nb_fds < shared; -+ return state == RUNNING && nb_fds < shared; - } - - static void nbd_export_closed(NBDExport *exp) --- -2.13.1 - -From 0c9390d978cbf61e8f16c9f580fa96b305c43568 Mon Sep 17 00:00:00 2001 -From: Eric Blake <eblake@redhat.com> -Date: Thu, 8 Jun 2017 17:26:17 -0500 -Subject: [PATCH] nbd: Fix regression on resiliency to port scan - -Back in qemu 2.5, qemu-nbd was immune to port probes (a transient -server would not quit, regardless of how many probe connections -came and went, until a connection actually negotiated). But we -broke that in commit ee7d7aa when removing the return value to -nbd_client_new(), although that patch also introduced a bug causing -an assertion failure on a client that fails negotiation. We then -made it worse during refactoring in commit 1a6245a (a segfault -before we could even assert); the (masked) assertion was cleaned -up in d3780c2 (still in 2.6), and just recently we finally fixed -the segfault ("nbd: Fully intialize client in case of failed -negotiation"). But that still means that ever since we added -TLS support to qemu-nbd, we have been vulnerable to an ill-timed -port-scan being able to cause a denial of service by taking down -qemu-nbd before a real client has a chance to connect. - -Since negotiation is now handled asynchronously via coroutines, -we no longer have a synchronous point of return by re-adding a -return value to nbd_client_new(). So this patch instead wires -things up to pass the negotiation status through the close_fn -callback function. - -Simple test across two terminals: -$ qemu-nbd -f raw -p 30001 file -$ nmap 127.0.0.1 -p 30001 && \ - qemu-io -c 'r 0 512' -f raw nbd://localhost:30001 - -Note that this patch does not change what constitutes successful -negotiation (thus, a client must enter transmission phase before -that client can be considered as a reason to terminate the server -when the connection ends). Perhaps we may want to tweak things -in a later patch to also treat a client that uses NBD_OPT_ABORT -as being a 'successful' negotiation (the client correctly talked -the NBD protocol, and informed us it was not going to use our -export after all), but that's a discussion for another day. - -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1451614 - -Signed-off-by: Eric Blake <eblake@redhat.com> -Message-Id: <20170608222617.20376-1-eblake@redhat.com> -Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> ---- - blockdev-nbd.c | 6 +++++- - include/block/nbd.h | 2 +- - nbd/server.c | 24 +++++++++++++++--------- - qemu-nbd.c | 4 ++-- - 4 files changed, 23 insertions(+), 13 deletions(-) - -diff --git a/blockdev-nbd.c b/blockdev-nbd.c -index dd0860f4a6..28f551a7b0 100644 ---- a/blockdev-nbd.c -+++ b/blockdev-nbd.c -@@ -27,6 +27,10 @@ typedef struct NBDServerData { - - static NBDServerData *nbd_server; - -+static void nbd_blockdev_client_closed(NBDClient *client, bool ignored) -+{ -+ nbd_client_put(client); -+} - - static gboolean nbd_accept(QIOChannel *ioc, GIOCondition condition, - gpointer opaque) -@@ -46,7 +50,7 @@ static gboolean nbd_accept(QIOChannel *ioc, GIOCondition condition, - qio_channel_set_name(QIO_CHANNEL(cioc), "nbd-server"); - nbd_client_new(NULL, cioc, - nbd_server->tlscreds, NULL, -- nbd_client_put); -+ nbd_blockdev_client_closed); - object_unref(OBJECT(cioc)); - return TRUE; - } -diff --git a/include/block/nbd.h b/include/block/nbd.h -index 416257abca..8fa5ce51f3 100644 ---- a/include/block/nbd.h -+++ b/include/block/nbd.h -@@ -162,7 +162,7 @@ void nbd_client_new(NBDExport *exp, - QIOChannelSocket *sioc, - QCryptoTLSCreds *tlscreds, - const char *tlsaclname, -- void (*close)(NBDClient *)); -+ void (*close_fn)(NBDClient *, bool)); - void nbd_client_get(NBDClient *client); - void nbd_client_put(NBDClient *client); - -diff --git a/nbd/server.c b/nbd/server.c -index 49b55f6ede..f2b1aa47ce 100644 ---- a/nbd/server.c -+++ b/nbd/server.c -@@ -81,7 +81,7 @@ static QTAILQ_HEAD(, NBDExport) exports = QTAILQ_HEAD_INITIALIZER(exports); - - struct NBDClient { - int refcount; -- void (*close)(NBDClient *client); -+ void (*close_fn)(NBDClient *client, bool negotiated); - - bool no_zeroes; - NBDExport *exp; -@@ -778,7 +778,7 @@ void nbd_client_put(NBDClient *client) - } - } - --static void client_close(NBDClient *client) -+static void client_close(NBDClient *client, bool negotiated) - { - if (client->closing) { - return; -@@ -793,8 +793,8 @@ static void client_close(NBDClient *client) - NULL); - - /* Also tell the client, so that they release their reference. */ -- if (client->close) { -- client->close(client); -+ if (client->close_fn) { -+ client->close_fn(client, negotiated); - } - } - -@@ -975,7 +975,7 @@ void nbd_export_close(NBDExport *exp) - - nbd_export_get(exp); - QTAILQ_FOREACH_SAFE(client, &exp->clients, next, next) { -- client_close(client); -+ client_close(client, true); - } - nbd_export_set_name(exp, NULL); - nbd_export_set_description(exp, NULL); -@@ -1337,7 +1337,7 @@ done: - - out: - nbd_request_put(req); -- client_close(client); -+ client_close(client, true); - nbd_client_put(client); - } - -@@ -1363,7 +1363,7 @@ static coroutine_fn void nbd_co_client_start(void *opaque) - qemu_co_mutex_init(&client->send_lock); - - if (nbd_negotiate(data)) { -- client_close(client); -+ client_close(client, false); - goto out; - } - -@@ -1373,11 +1373,17 @@ out: - g_free(data); - } - -+/* -+ * Create a new client listener on the given export @exp, using the -+ * given channel @sioc. Begin servicing it in a coroutine. When the -+ * connection closes, call @close_fn with an indication of whether the -+ * client completed negotiation. -+ */ - void nbd_client_new(NBDExport *exp, - QIOChannelSocket *sioc, - QCryptoTLSCreds *tlscreds, - const char *tlsaclname, -- void (*close_fn)(NBDClient *)) -+ void (*close_fn)(NBDClient *, bool)) - { - NBDClient *client; - NBDClientNewData *data = g_new(NBDClientNewData, 1); -@@ -1394,7 +1400,7 @@ void nbd_client_new(NBDExport *exp, - object_ref(OBJECT(client->sioc)); - client->ioc = QIO_CHANNEL(sioc); - object_ref(OBJECT(client->ioc)); -- client->close = close_fn; -+ client->close_fn = close_fn; - - data->client = client; - data->co = qemu_coroutine_create(nbd_co_client_start, data); -diff --git a/qemu-nbd.c b/qemu-nbd.c -index 651f85ecc1..9464a0461c 100644 ---- a/qemu-nbd.c -+++ b/qemu-nbd.c -@@ -336,10 +336,10 @@ static void nbd_export_closed(NBDExport *exp) - - static void nbd_update_server_watch(void); - --static void nbd_client_closed(NBDClient *client) -+static void nbd_client_closed(NBDClient *client, bool negotiated) - { - nb_fds--; -- if (nb_fds == 0 && !persistent && state == RUNNING) { -+ if (negotiated && nb_fds == 0 && !persistent && state == RUNNING) { - state = TERMINATE; - } - nbd_update_server_watch(); --- -2.13.1 - diff --git a/gnu/packages/patches/wmfire-update-for-new-gdk-versions.patch b/gnu/packages/patches/wmfire-update-for-new-gdk-versions.patch index 51d6c3e791..fd12ba4ce1 100644 --- a/gnu/packages/patches/wmfire-update-for-new-gdk-versions.patch +++ b/gnu/packages/patches/wmfire-update-for-new-gdk-versions.patch @@ -1,4 +1,4 @@ -This patch comes from Debian and was modified by Kei Kebreau <kei@openmailbox.org>. +This patch comes from Debian and was modified by Kei Kebreau <kkebreau@posteo.net>. Link: https://anonscm.debian.org/cgit/pkg-wmaker/wmfire.git/plain/debian/patches/gdk_updates.patch?h=debian/1.2.4-2&id=a272234fc5eecdbfc469adb12133196bc62f3059 Description: Update for newer versions of GDK. diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 0993543c20..5e52d87ca5 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -254,7 +254,7 @@ Poppler PDF rendering library.") (assoc-ref %build-inputs "libpng"))) #:phases (modify-phases %standard-phases - (add-before 'configure 'autogen + (add-after 'unpack 'autogen (lambda _ (zero? (system* "autoreconf" "-vif"))))))) (inputs `(("zlib" ,zlib) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 93fc4059d8..09d6798177 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1295,7 +1295,7 @@ and writing of @code{.ini}-style configuration files.") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/J/JR/JROCKWAY/" + (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" "Context-Preserve-" version ".tar.gz")) (sha256 (base32 @@ -1311,6 +1311,34 @@ the context the subroutine would have seen if it were the last statement in the caller.") (license (package-license perl)))) +(define-public perl-convert-binhex + (package + (name "perl-convert-binhex") + (version "1.125") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/S/ST/STEPHEN/Convert-BinHex-" + version + ".tar.gz")) + (sha256 + (base32 + "15v3489k179cx0fz3lix79ssjid0nhhpf6c33swpxga6pss92dai")))) + (build-system perl-build-system) + (native-inputs + `(("perl-file-slurp" ,perl-file-slurp) + ("perl-test-most" ,perl-test-most))) + (home-page + "http://search.cpan.org/dist/Convert-BinHex") + (synopsis "Extract data from Macintosh BinHex files") + (description + "BinHex is a format for transporting files safely through electronic +mail, as short-lined, 7-bit, semi-compressed data streams. Ths module +provides a means of converting those data streams back into into binary +data.") + (license perl-license))) + (define-public perl-cpan-meta-check (package (name "perl-cpan-meta-check") @@ -1588,6 +1616,49 @@ on one page. This results in wanting to page through various pages of data. The maths behind this is unfortunately fiddly, hence this module.") (license (package-license perl)))) +(define-public perl-data-perl + (package + (name "perl-data-perl") + (version "0.002009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MA/MATTP/Data-Perl-" + version + ".tar.gz")) + (sha256 + (base32 + "12vgqdjbfqf2qfg21x22wg88xnwxfbw2ki3qzcb3nb0chwjj4axn")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-deep" ,perl-test-deep) + ("perl-test-fatal" ,perl-test-fatal) + ("perl-test-output" ,perl-test-output))) + (inputs + `(("perl-class-method-modifiers" + ,perl-class-method-modifiers) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-role-tiny" ,perl-role-tiny) + ("perl-strictures" ,perl-strictures))) + (propagated-inputs + `(("perl-list-moreutils" ,perl-list-moreutils))) + (home-page + "http://search.cpan.org/dist/Data-Perl") + (synopsis "Base classes wrapping fundamental Perl data types") + (description + "@code{Data::Perl} is a container class for the following classes: +@itemize +@item @code{Data::Perl::Collection::Hash} +@item @code{Data::Perl::Collection::Array} +@item @code{Data::Perl::String} +@item @code{Data::Perl::Number} +@item @code{Data::Perl::Counter} +@item @code{Data::Perl::Bool} +@item @code{Data::Perl::Code} +@end itemize") + (license perl-license))) + (define-public perl-data-stag (package (name "perl-data-stag") @@ -2260,6 +2331,30 @@ whether a compiler is available. It can test for a C99 compiler, or you can tell it to compile a C source file with optional linker flags.") (license (package-license perl)))) +(define-public perl-devel-cycle + (package + (name "perl-devel-cycle") + (version "1.12") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/L/LD/LDS/Devel-Cycle-" + version + ".tar.gz")) + (sha256 + (base32 + "1hhb77kz3dys8yaik452j22cm3510zald2mpvfyv5clqv326aczx")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Devel-Cycle") + (synopsis "Find memory cycles in objects") + (description + "@code{Devel::Cycle} This is a tool for finding circular references in +objects and other types of references. Because of Perl's reference-count +based memory management, circular references will cause memory leaks.") + (license perl-license))) + (define-public perl-devel-globaldestruction (package (name "perl-devel-globaldestruction") @@ -3514,7 +3609,7 @@ that may contain multiple values per key, inspired by MultiDict of WebOb.") consume exports. It is feature-compatible with Exporter, plus some much needed extras. You can use this to import symbols from any exporter that follows Exporters specification. The exporter modules themselves do not need to use or -inherit from the Exporter module, they just need to set @EXPORT and/or other +inherit from the Exporter module, they just need to set @@EXPORT and/or other variables.") (license (package-license perl)))) @@ -4134,6 +4229,51 @@ implementation of these functions only serves as a fallback in case the C portions of this module couldn't be compiled on this machine.") (license (package-license perl)))) +(define-public perl-mailtools + (package + (name "perl-mailtools") + (version "2.19") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MA/MARKOV/MailTools-" + version + ".tar.gz")) + (sha256 + (base32 + "06jykkv8mp484vzkmwd6dkicx029rl3ir5ljzrbap3paxw1dfzn1")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-timedate" ,perl-timedate))) + (home-page + "http://search.cpan.org/dist/MailTools") + (synopsis "Bundle of ancient email modules") + (description "MailTools contains the following modules: +@table @asis +@item Mail::Address +Parse email address from a header line. +@item Mail::Cap +Interpret mailcap files: mappings of file-types to applications as used by +many command-line email programs. +@item Mail::Field +Simplifies access to (some) email header fields. Used by Mail::Header. +@item Mail::Filter +Process Mail::Internet messages. +@item Mail::Header +Collection of Mail::Field objects, representing the header of a Mail::Internet +object. +@item Mail::Internet +Represents a single email message, with header and body. +@item Mail::Mailer +Send Mail::Internet emails via direct smtp or local MTA's. +@item Mail::Send +Build a Mail::Internet object, and then send it out using Mail::Mailer. +@item Mail::Util +\"Smart functions\" you should not depend on. +@end table") + (license perl-license))) + (define-public perl-memoize-expirelru (package (name "perl-memoize-expirelru") @@ -4173,6 +4313,36 @@ the argument to the CACHESIZE parameter, will be cached.") MIME messages on Internet.") (license (package-license perl)))) +(define-public perl-mime-tools + (package + (name "perl-mime-tools") + (version "5.509") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DS/DSKOLL/MIME-tools-" + version + ".tar.gz")) + (sha256 + (base32 + "0wv9rzx5j1wjm01c3dg48qk9wlbm6iyf91j536idk09xj869ymv4")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-deep" ,perl-test-deep))) + (inputs + `(("perl-convert-binhex" ,perl-convert-binhex))) + (propagated-inputs + `(("perl-mailtools" ,perl-mailtools))) + (home-page + "http://search.cpan.org/dist/MIME-tools") + (synopsis "Tools to manipulate MIME messages") + (description + "MIME-tools is a collection of Perl5 MIME:: modules for parsing, +decoding, and generating single- or multipart (even nested multipart) MIME +messages.") + (license perl-license))) + (define-public perl-mime-types (package (name "perl-mime-types") @@ -5073,6 +5243,109 @@ all coercions and constraints are inherited.") constraint with coercion to load the class.") (license (package-license perl)))) +(define-public perl-moox + (package + (name "perl-moox") + (version "0.101") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/G/GE/GETTY/MooX-" + version + ".tar.gz")) + (sha256 + (base32 + "1m9jvrqcidiabdih211byadwnnkygafq54r2ljnf1akqdrjimy9g")))) + (build-system perl-build-system) + (inputs + `(("perl-data-optlist" ,perl-data-optlist) + ("perl-import-into" ,perl-import-into) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo))) + (home-page "http://search.cpan.org/dist/MooX") + (synopsis + "Using Moo and MooX:: packages the most lazy way") + (description "Contains the MooX and MooX::Role packages.") + (license perl-license))) + +(define-public perl-moox-handlesvia + (package + (name "perl-moox-handlesvia") + (version "0.001008") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MA/MATTP/MooX-HandlesVia-" + version + ".tar.gz")) + (sha256 + (base32 + "137yrjn2jmw4cj0fjdajnkjgqr5arnpq72kbm6w66xskncinz55h")))) + (build-system perl-build-system) + (native-inputs + `(("perl-moox-types-mooselike" + ,perl-moox-types-mooselike) + ("perl-test-exception" ,perl-test-exception) + ("perl-test-fatal" ,perl-test-fatal))) + (inputs + `(("perl-class-method-modifiers" + ,perl-class-method-modifiers) + ("perl-module-runtime" ,perl-module-runtime) + ("perl-moo" ,perl-moo) + ("perl-role-tiny" ,perl-role-tiny))) + (propagated-inputs + `(("perl-data-perl" ,perl-data-perl))) + (home-page + "http://search.cpan.org/dist/MooX-HandlesVia") + (synopsis "NativeTrait-like behavior for Moo") + (description + "@code{MooX::HandlesVia} is an extension of Moo's @code{handles} +attribute functionality. It provides a means of proxying functionality from +an external class to the given atttribute.") + (license perl-license))) + +(define-public perl-moox-late + (package + (name "perl-moox-late") + (version "0.015") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-" + version + ".tar.gz")) + (sha256 + (base32 + "1gzvd9zws3v09sh0xx6srmw4jwi22fnrya4zcsc8dykn62pjclqp")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-fatal" ,perl-test-fatal) + ("perl-test-requires" ,perl-test-requires))) + (inputs + `(("perl-moo" ,perl-moo) + ("perl-moox" ,perl-moox) + ("perl-moox-handlesvia" ,perl-moox-handlesvia))) + (propagated-inputs + `(("perl-type-tiny" ,perl-type-tiny))) + (home-page + "http://search.cpan.org/dist/MooX-late") + (synopsis "Easily translate Moose code to Moo") + (description + "MooX::late does the following: +@enumerate +@item Supports isa => $stringytype +@item Supports does => $rolename +@item Supports lazy_build => 1 +@item Exports blessed and confess functions to your namespace. +@item Handles certain attribute traits +Currently Hash, Array and Code are supported. This feature requires +MooX::HandlesVia. +@end enumerate") + (license perl-license))) + (define-public perl-moox-types-mooselike (package (name "perl-moox-types-mooselike") @@ -5252,6 +5525,38 @@ cycle. Functions called in the package itself will still be bound by their name, but they won't show up as methods on your class or instances.") (license (package-license perl)))) +(define-public perl-net-idn-encode + (package + (name "perl-net-idn-encode") + (version "2.400") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/C/CF/CFAERBER/Net-IDN-Encode-" + version + ".tar.gz")) + (sha256 + (base32 + "0a9knav5f9kjldrkxx1k47ivd3p23zkmi8aqgyhnxidhgasz1dlq")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-nowarnings" ,perl-test-nowarnings))) + (home-page + "http://search.cpan.org/dist/Net-IDN-Encode") + (synopsis + "Internationalizing Domain Names in Applications (IDNA)") + (description + "Internationalized Domain Names (IDNs) use characters drawn from a large +repertoire (Unicode), but IDNA allows the non-ASCII characters to be +represented using only the ASCII characters already allowed in so-called host +names today (letter-digit-hyphen, /[A-Z0-9-]/i). + +Use this module if you just want to convert domain names (or email addresses), +using whatever IDNA standard is the best choice at the moment.") + (license perl-license))) + (define-public perl-net-statsd (package (name "perl-net-statsd") @@ -6775,6 +7080,61 @@ namespace::autoclean or namespace::clean and are therefore available to be called as methods, which usually isn't want you want.") (license (package-license perl)))) +(define-public perl-test-cpan-meta + (package + (name "perl-test-cpan-meta") + (version "0.25") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-" + version + ".tar.gz")) + (sha256 + (base32 + "1dcdbbdwdyhpldkhjzc9rvzlmb5jbil6fwh2x07nsfdwysf4ynzm")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-cpan-meta-json" ,perl-test-cpan-meta-json) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page + "http://search.cpan.org/dist/Test-CPAN-Meta") + (synopsis "Validate your CPAN META.yml files") + (description + "This module was written to ensure that a META.yml file meets the +specification.") + (license artistic2.0))) + +(define-public perl-test-cpan-meta-json + (package + (name "perl-test-cpan-meta-json") + (version "0.16") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-" + version + ".tar.gz")) + (sha256 + (base32 + "1jg9ka50ixwq083wd4k12rhdjq87w0ihb34gd8jjn7gvvyd51b37")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (inputs + `(("perl-json" ,perl-json))) + (home-page + "http://search.cpan.org/dist/Test-CPAN-Meta-JSON") + (synopsis "Validate your CPAN META.json files") + (description + "This module was written to ensure that a META.json file meets the +specification.") + (license artistic2.0))) + (define-public perl-test-deep (package (name "perl-test-deep") @@ -6848,6 +7208,30 @@ modified or tested with this API, making it simple to test both individual files, as well as to verify that there are no missing or unknown files.") (license (package-license perl)))) +(define-public perl-test-eol + (package + (name "perl-test-eol") + (version "2.00") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-" + version + ".tar.gz")) + (sha256 + (base32 + "0l3bxpsw0x7j9nclizcp53mnf9wny25dmg2iglfhzgnk0xfpwzwf")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-EOL") + (synopsis + "Check the correct line endings in your project") + (description + "@code{Test::EOL} lets you check for the presence of trailing whitespace +and/or windows line endings in your perl code.") + (license perl-license))) + (define-public perl-test-exception (package (name "perl-test-exception") @@ -7037,6 +7421,42 @@ file to find out which tests you want to run and the order in which you want to It constructs the right value for the build system to do the right thing.") (license (package-license perl)))) +(define-public perl-test-memory-cycle + (package + (name "perl-test-memory-cycle") + (version "1.06") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-" + version + ".tar.gz")) + (sha256 + (base32 + "00ijmgx1r3cxrcs1qa9rb2s4gbm3nsawd90drda89kb4r7yxslwx")))) + (build-system perl-build-system) + (inputs + `(("perl-padwalker" ,perl-padwalker))) + (propagated-inputs + `(("perl-devel-cycle" ,perl-devel-cycle))) + (home-page + "http://search.cpan.org/dist/Test-Memory-Cycle") + (synopsis + "Verifies code hasn't left circular references") + (description + "@code{Test::Memory::Cycle} is built on top of @code{Devel::Cycle} to +give you an easy way to check for these circular references. + +@example +use Test::Memory::Cycle; + +my $object = new MyObject; +# Do stuff with the object. +memory_cycle_ok( $object ); +@end example") + (license artistic2.0))) + (define-public perl-test-mockobject (package (name "perl-test-mockobject") @@ -7142,6 +7562,30 @@ with an error rather than skip. If used in a subtest, the remainder of the subtest will be skipped.") (license (package-license perl)))) +(define-public perl-test-notabs + (package + (name "perl-test-notabs") + (version "2.00") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-" + version + ".tar.gz")) + (sha256 + (base32 + "127kpl1va267qar2ia4c22xb96jby2jqnda3sj5pjgmxg8si26cg")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Test-NoTabs") + (synopsis + "Check the presence of tabs in your project") + (description + "@code{Test::NoTabs} lets you check the presence of tabs in your perl +code.") + (license perl-license))) + (define-public perl-test-nowarnings (package (name "perl-test-nowarnings") @@ -7732,6 +8176,32 @@ algorism to indicate multiplication by 1000.") (description "Text::Table renders plaintext tables.") (license x11))) +(define-public perl-text-template + (package + (name "perl-text-template") + (version "1.47") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MS/MSCHOUT/Text-Template-" + version + ".tar.gz")) + (sha256 + (base32 + "1z781cgz7wbn80lf3kqr2ad0pg6g1wlnim0822h8liw28k3l5msh")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/Text-Template") + (synopsis + "Expand template text with embedded Perl") + (description + "This is a library for generating letters, building HTML pages, or +filling in templates generally. A template is a piece of text that has little +Perl programs embedded in it here and there. When you fill in a template, you +evaluate the little programs and replace them with their values.") + (license perl-license))) + (define-public perl-text-unidecode (package (name "perl-text-unidecode") @@ -8366,6 +8836,30 @@ neither visible nor modifiable from Perl space).") on the YAML 1.0 specification.") (license (package-license perl)))) +(define-public perl-yaml-libyaml + (package + (name "perl-yaml-libyaml") + (version "0.65") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-" + version + ".tar.gz")) + (sha256 + (base32 + "0izhvz8f29x1f50hhwfgm0iq1lz7apjjvg77lmky949jr07hnwfv")))) + (build-system perl-build-system) + (home-page + "http://search.cpan.org/dist/YAML-LibYAML") + (synopsis + "Perl YAML Serialization using XS and libyaml") + (description + "@code{YAML::XS} is a Perl XS binding to libyaml which offers Perl the +best YAML support to date.") + (license perl-license))) + (define-public perl-yaml-tiny (package (name "perl-yaml-tiny") diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 2378acd975..410d23a6ab 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -65,14 +65,14 @@ (define-public libraw (package (name "libraw") - (version "0.18.2") + (version "0.18.5") (source (origin (method url-fetch) (uri (string-append "https://www.libraw.org/data/LibRaw-" version ".tar.gz")) (sha256 (base32 - "1imby9x88pjx4ad1frdi3bfb8dw90ccyj5pb6w3i6i0iijrnndnf")))) + "0y519nlvl4bfnnxbwry35f6gbcv6jbbpd2lmiwv6pbyzv4a7saps")))) (build-system gnu-build-system) (home-page "https://www.libraw.org") (synopsis "Raw image decoder") diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index d0afab0931..fdea6c6d8f 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -49,21 +49,10 @@ #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:)) -(define gd-for-php - (package - (inherit gd) - (source (origin - (inherit (package-source gd)) - (patches - (append - (origin-patches (package-source gd)) - (search-patches "gd-CVE-2017-7890.patch"))))))) - - (define-public php (package (name "php") - (version "7.1.8") + (version "7.1.10") (home-page "https://secure.php.net/") (source (origin (method url-fetch) @@ -71,7 +60,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1aramb6dm57pr2iz61id9vzfy7h5qkb6bf7dxhrwnjk0723qahw9")) + "02y52ml1svksx6fclg47vim2hnsva3531db7msrhpb9f39vzm3ib")) (modules '((guix build utils))) (snippet '(with-directory-excursion "ext" @@ -293,7 +282,7 @@ ("curl" ,curl) ("cyrus-sasl" ,cyrus-sasl) ("freetype" ,freetype) - ("gd" ,gd-for-php) + ("gd" ,gd-2.2.5) ("gdbm" ,gdbm) ("glibc" ,glibc) ("gmp" ,gmp) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6b9fe0325c..f1dc2da050 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com> +;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com> ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com> @@ -41,7 +41,7 @@ ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> -;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com> ;;; @@ -68,6 +68,7 @@ #:use-module (gnu packages attr) #:use-module (gnu packages backup) #:use-module (gnu packages bash) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) @@ -79,6 +80,7 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages graphviz) + #:use-module (gnu packages graphics) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) @@ -1248,6 +1250,33 @@ datetime module, available in Python 2.3+.") (define-public python2-parsedatetime (package-with-python2 python-parsedatetime)) +(define-public python-schedule + (package + (name "python-schedule") + (version "0.4.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "schedule" version)) + (sha256 + (base32 + "0vplyjcbfrq50sphlwya749z8p2pcyi2nycw3518i0qpd9a6189i")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-mock" ,python-mock))) + (home-page "https://github.com/dbader/schedule") + (synopsis "Schedule periodic function calls in Python") + (description + "Schedule is an in-process scheduler for periodic jobs that uses the +builder pattern for configuration. Schedule lets you run Python functions (or +any other callable) periodically at pre-determined intervals using a simple, +human-friendly syntax.") + (license license:expat))) + +(define-public python2-schedule + (package-with-python2 python-schedule)) + (define-public python-pandas (package (name "python-pandas") @@ -2811,13 +2840,13 @@ cutting and pasting that code over and over.") (define-public python-unidecode (package (name "python-unidecode") - (version "0.04.20") + (version "0.04.21") (source (origin (method url-fetch) (uri (pypi-uri "Unidecode" version)) (sha256 (base32 - "1q00i8gpsq3d9r0q8wk4b290fxl0kqlsdk7iadvli45in6s1hi7d")))) + "0lfhp9c5xrbpjvbpr12ji52g1lx04404bzzdg6pvabhzisw6l2i8")))) (build-system python-build-system) (home-page "https://pypi.python.org/pypi/Unidecode") (synopsis "ASCII transliterations of Unicode text") @@ -2826,7 +2855,7 @@ cutting and pasting that code over and over.") useful when integrating with legacy code that doesn't support Unicode, or for ease of entry of non-Roman names on a US keyboard, or when constructing ASCII machine identifiers from human-readable Unicode strings that should still be -somewhat intelligeble.") +somewhat intelligible.") (license license:gpl2+))) (define-public python2-unidecode @@ -2835,17 +2864,23 @@ somewhat intelligeble.") (define-public python-pyjwt (package (name "python-pyjwt") - (version "1.4.0") + (version "1.5.3") (source (origin (method url-fetch) (uri (pypi-uri "PyJWT" version)) (sha256 (base32 - "1556v2jppd8mjkkj66pxb5rcazm35jq81r233mdl8hfmz9n3icp1")))) + "1rxsg14i33vm2i6lz0my628108c81k43v10n4h3p0gx62xdyf2sh")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file-recursively + (find-files "." "\\.pyc$")) + #t)))) (build-system python-build-system) (native-inputs - `(("python-pytest" ,python-pytest) + `(("python-pytest" ,python-pytest-3.0) ("python-pytest-cov" ,python-pytest-cov) ("python-pytest-runner" ,python-pytest-runner))) (home-page "https://github.com/progrium/pyjwt") @@ -3030,15 +3065,27 @@ for Python.") (define-public python-jinja2 (package (name "python-jinja2") - (version "2.8") + (version "2.9.6") (source (origin (method url-fetch) (uri (pypi-uri "Jinja2" version)) (sha256 (base32 - "1x0v41lp5m1pjix3l46zx02b7lqp2hflgpnxwkywxynvi3zz47xw")))) + "1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; These files cannot be built with Python < 3.6. See + ;; https://github.com/pallets/jinja/issues/655 + ;; FIXME: Remove this when the "python" package is upgraded. + (add-after 'unpack 'delete-incompatible-files + (lambda _ + (for-each delete-file + '("jinja2/asyncsupport.py" + "jinja2/asyncfilters.py")) + #t))))) (propagated-inputs `(("python-markupsafe" ,python-markupsafe))) (home-page "http://jinja.pocoo.org/") @@ -3169,14 +3216,14 @@ reStructuredText.") (define-public python-pygments (package (name "python-pygments") - (version "2.1.3") + (version "2.2.0") (source (origin (method url-fetch) (uri (pypi-uri "Pygments" version)) (sha256 (base32 - "10axnp2wpjnq9g8wg53fx0c70dfxqrz498jyz8mrdx9a3flwir48")))) + "1k78qdvir1yb1c634nkv6rbga8wv4289xarghmsbbvzhvr311bnv")))) (build-system python-build-system) (arguments ;; FIXME: Tests require sphinx, which depends on this. @@ -3611,14 +3658,14 @@ is designed to have a low barrier to entry.") (define-public python-cython (package (name "python-cython") - (version "0.26") + (version "0.27") (source (origin (method url-fetch) (uri (pypi-uri "Cython" version)) (sha256 (base32 - "0riciynnr0r68cvg6r3gbhi9x7h44pdwb7926m6n5vfs5p1f492c")))) + "02y0pp1nx77b8s1mpxc6da2dccl6wd31pp4ksi9via479qcvacmr")))) (build-system python-build-system) ;; we need the full python package and not just the python-wrapper ;; because we need libpython3.3m.so @@ -3673,22 +3720,21 @@ between language specification and implementation aspects.") (define-public python-numpy (package (name "python-numpy") - (version "1.12.0") + (version "1.13.1") (source (origin (method url-fetch) - (uri (string-append - "https://github.com/numpy/numpy/archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (pypi-uri "numpy" version ".zip")) (sha256 (base32 - "025d4j4aakcp8w5i5diqh812cbbjgac7jszx1j56ivrbi1i8vv7d")))) + "1fsgkhh1vdkhmlz8vmdgxnj9n9yaanckxxzz9s0b4p08fqvjic69")))) (build-system python-build-system) (inputs `(("openblas" ,openblas) ("lapack" ,lapack))) (native-inputs - `(("python-cython" ,python-cython) + `(("unzip" ,unzip) + ("python-cython" ,python-cython) ("python-nose" ,python-nose) ("gfortran" ,gfortran))) (arguments @@ -3696,6 +3742,8 @@ between language specification and implementation aspects.") (modify-phases %standard-phases (add-before 'build 'set-environment-variables (lambda* (#:key inputs #:allow-other-keys) + ;; numpy's distutils uses $SHELL to run external commands. + (setenv "SHELL" "bash") (call-with-output-file "site.cfg" (lambda (port) (format port @@ -3762,6 +3810,71 @@ objects.") (define-public python2-munch (package-with-python2 python-munch)) +(define-public python-colormath + (package + (name "python-colormath") + (version "2.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "colormath" version)) + (sha256 + (base32 + "01wp5xwm0a89wdm1dc9rr1ij90idzdiiipxdj1yslhqzkhnjnfh0")))) + (build-system python-build-system) + (propagated-inputs + `(("python-networkx" ,python-networkx) + ("python-numpy" ,python-numpy))) + (home-page "https://github.com/gtaylor/python-colormath") + (synopsis "Color math and conversion library") + (description + "This is a Python library for color math and conversions.") + (license license:bsd-3))) + +(define-public python2-colormath + (package-with-python2 python-colormath)) + +(define-public python-spectra + (package + (name "python-spectra") + (version "0.0.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "spectra" version)) + (sha256 + (base32 + "0n87kzhpkml2s2q91rdkl8wz2kkv5b0bkrgww45lxa5vq34qh6w5")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "nosetests" "-v"))))))) + (propagated-inputs + `(("python-colormath" ,python-colormath))) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "http://github.com/jsvine/spectra") + (synopsis "Color scales and color conversion") + (description + "This package provides a Python library intended to make color math, +color scales, and color space conversion easy. It has support for: + +@enumerate +@item Color scales +@item Color ranges +@item Color blending +@item Brightening/darkening colors +@item Saturating/desaturating colors +@item Conversion to/from multiple color spaces. +@end enumerate\n") + (license license:expat))) + +(define-public python2-spectra + (package-with-python2 python-spectra)) + (define-public python2-fastlmm (package (name "python2-fastlmm") @@ -4313,33 +4426,56 @@ operators such as union, intersection, and difference.") (define-public python-rpy2 (package (name "python-rpy2") - (version "2.7.6") + (version "2.9.0") (source (origin (method url-fetch) (uri (pypi-uri "rpy2" version)) (sha256 (base32 - "0nhan2qvrw7b7gg5zddwa22kybdv3x1g26vkd7q8lvnkgzrs4dga")))) + "0bqihjrdqwj5r1h86shvfb1p5hfr4a6klv1v54bzfr9r144w3rni")))) (build-system python-build-system) (arguments - '(#:phases + '(#:modules ((ice-9 ftw) + (srfi srfi-1) + (srfi srfi-26) + (guix build utils) + (guix build python-build-system)) + #:phases (modify-phases %standard-phases - (delete 'check) - (add-after 'install 'check + ;; Without this phase the test loader cannot find the directories, in + ;; which it is supposed to look for test files. + (add-after 'unpack 'fix-tests + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "rpy/tests.py" + (("loader.discover\\(") + "loader.discover(rpy_root + '/' +")) + #t)) + (replace 'check (lambda* (#:key outputs inputs #:allow-other-keys) - ;; It's easier to run tests after install. - ;; Make installed package available for running the tests - (add-installed-pythonpath inputs outputs) + (let ((cwd (getcwd))) + (setenv "PYTHONPATH" + (string-append cwd "/build/" + (find (cut string-prefix? "lib" <>) + (scandir (string-append cwd "/build"))) + ":" + (getenv "PYTHONPATH")))) (zero? (system* "python" "-m" "rpy2.tests" "-v"))))))) (propagated-inputs - `(("python-six" ,python-six))) + `(("python-six" ,python-six) + ("python-jinja2" ,python-jinja2) + ("python-pytz" ,python-pytz))) (inputs `(("readline" ,readline) ("icu4c" ,icu4c) ("pcre" ,pcre) ("r-minimal" ,r-minimal) - ("r-survival" ,r-survival))) + ("r-survival" ,r-survival) + ("r-ggplot2" ,r-ggplot2) + ("r-rsqlite" ,r-rsqlite) + ("r-dplyr" ,r-dplyr) + ("r-dbplyr" ,r-dbplyr) + ("python-numpy" ,python-numpy))) (native-inputs `(("zlib" ,zlib))) (home-page "http://rpy.sourceforge.net/") @@ -4348,14 +4484,10 @@ operators such as union, intersection, and difference.") low-level interface to R from Python, a proposed high-level interface, including wrappers to graphical libraries, as well as R-like structures and functions.") - (license license:gpl3+))) - -(define-public python2-rpy2 - (let ((rpy2 (package-with-python2 python-rpy2))) - (package (inherit rpy2) - (propagated-inputs - `(("python2-singledispatch" ,python2-singledispatch) - ,@(package-propagated-inputs rpy2)))))) + ;; Any of these licenses can be picked for the R interface. The whole + ;; project is released under GPLv2+ according to the license declaration + ;; in "setup.py". + (license (list license:mpl2.0 license:gpl2+ license:lgpl2.1+)))) (define-public python-scipy (package @@ -5652,13 +5784,13 @@ tools for mocking system commands and recording calls to those.") (define-public python-ipython (package (name "python-ipython") - (version "5.2.2") + (version "5.3.0") (source (origin (method url-fetch) (uri (pypi-uri "ipython" version ".tar.gz")) (sha256 - (base32 "1qhjwa9cyz1np7rhv3p4ip13lkgbqsad62l24xkwiq1ic2gwiqbf")))) + (base32 "079wyjir4a9qx6kvx096b1asm63djbidk65z3ykcbnlngmg62pmz")))) (build-system python-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -5873,6 +6005,37 @@ and written in Python.") (define-public python2-html5lib-0.9 (package-with-python2 python-html5lib-0.9)) +(define-public python-html5-parser + (package + (name "python-html5-parser") + (version "0.4.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "html5-parser" version)) + (sha256 + (base32 + "1d8sxhl41ffh7qlk7wlsy17xw6slzx5v1yna9s72wx5qrpaa3wxr")))) + (build-system python-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libxml2" ,libxml2))) + (propagated-inputs + `(("python-lxml" ,python-lxml) + ("python-beautifulsoup4" ,python-beautifulsoup4))) + (home-page "https://html5-parser.readthedocs.io") + (synopsis "Fast C-based HTML5 parsing for Python") + (description "This package provides a fast implementation of the HTML5 +parsing spec for Python. Parsing is done in C using a variant of the gumbo +parser. The gumbo parse tree is then transformed into an lxml tree, also in +C, yielding parse times that can be a thirtieth of the html5lib parse times.") + ;; src/as-python-tree.[c|h] are licensed GPL3. The other files + ;; indicate ASL2.0, including the LICENSE file for the whole project. + (license (list license:asl2.0 license:gpl3)))) + +(define-public python2-html5-parser + (package-with-python2 python-html5-parser)) + (define-public python-webencodings (package (name "python-webencodings") @@ -6104,6 +6267,16 @@ implementation of D-Bus.") (arguments `(#:phases (modify-phases %standard-phases + (replace 'build + (lambda _ + (zero? + (system* "python" "setup.py" "build" "--enable-all-extensions")))) + (add-after 'build 'build-test-helper + (lambda _ + (zero? + (system + (string-append "gcc -fPIC -shared -o ./testextension.sqlext " + "-I. -Isqlite3 src/testextension.c") )))) (delete 'check) (add-after 'install 'check (lambda* (#:key inputs outputs #:allow-other-keys) @@ -6123,14 +6296,14 @@ translate the complete SQLite API into Python.") (define-public python-lxml (package (name "python-lxml") - (version "3.6.0") + (version "3.8.0") (source (origin (method url-fetch) (uri (pypi-uri "lxml" version)) (sha256 (base32 - "1pvbmiy2m7jwv493kilbghhj2pkh8wy1na3ji350vhzhlwlclx4w")))) + "15nvf6n285n282682qyw3wihsncb0x5amdhyi4b83bfa2nz74vvk")))) (build-system python-build-system) (inputs `(("libxml2" ,libxml2) @@ -7809,14 +7982,14 @@ message digests and key derivation functions.") (define-public python-pyopenssl (package (name "python-pyopenssl") - (version "17.2.0") + (version "17.3.0") (source (origin (method url-fetch) (uri (pypi-uri "pyOpenSSL" version)) (sha256 (base32 - "0d283g4zi0hr9papd24mjl70mi15gyzq6fx618rizi87dgipqqax")))) + "0xkc1wfnpg6abzllivg3ylhc63npjdy1v81f4kc08bm8cj80nqr9")))) (build-system python-build-system) (arguments '(#:phases @@ -9096,16 +9269,13 @@ with python-requests.") (define-public python-click-threading (package (name "python-click-threading") - (version "0.2.0") + (version "0.4.3") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/" - "fe/b7/e7f609d18a2a351cb71616adcf54df1acd82f83cb9b5936935a4d20e2c23/" - "click-threading-" version ".tar.gz")) + (uri (pypi-uri "click-threading" version)) (sha256 (base32 - "18bcqikxwb3drb8rf60cclxkxw52521b38ax3byah6j8cn8y9p4j")))) + "0xs4bg2ws0zgyiplk312l049hi23c2zqf1g771rjhh5vr2msk4cg")))) (build-system python-build-system) (propagated-inputs `(("python-click" ,python-click))) @@ -9118,13 +9288,13 @@ applications.") (define-public python-click-log (package (name "python-click-log") - (version "0.1.8") + (version "0.2.0") (source (origin (method url-fetch) (uri (pypi-uri "click-log" version)) (sha256 (base32 - "14ikfjfgnzf21mjniq9lfk2igzykgzfvwwrk85nw2b9fq44109sp")))) + "1bjrfxji1yv4fj0g78ri2yfgn2wbivn8g69fxfinxvxpmighhshp")))) (build-system python-build-system) (propagated-inputs `(("python-click" ,python-click))) @@ -9329,13 +9499,13 @@ processes across test runs.") (define-public python-icalendar (package (name "python-icalendar") - (version "3.11.6") + (version "3.11.7") (source (origin (method url-fetch) (uri (pypi-uri "icalendar" version)) (sha256 (base32 - "1ny9mbm9zgghl612b8wc4ap52bz3kgl486d7f307gxjmlqgz3i64")))) + "0ahf1i98wjizhld2qd7v2vmvzsmdw08mmins82bf3fpbnp2sxbgc")))) (build-system python-build-system) (propagated-inputs `(("python-dateutil" ,python-dateutil) @@ -9756,14 +9926,14 @@ Pytest but stripped of Pytest specific details.") (define-public python-tox (package (name "python-tox") - (version "2.3.1") + (version "2.8.0") (source (origin (method url-fetch) (uri (pypi-uri "tox" version)) (sha256 (base32 - "1vj73ar4rimq3fwy5r2z3jv4g9qbh8rmpmncsc00g0k310acqzxz")))) + "00lrql2cfzhb712v70inac6mrgdv8s8fmvz7qpggkk623hkm2pgc")))) (build-system python-build-system) (arguments ;; FIXME: Tests require pytest-timeout, which itself requires @@ -9775,7 +9945,8 @@ Pytest but stripped of Pytest specific details.") ("python-virtualenv" ,python-virtualenv))) (native-inputs `(; FIXME: Missing: ("python-pytest-timeout" ,python-pytest-timeout) - ("python-pytest" ,python-pytest))) ; >= 2.3.5 + ("python-pytest" ,python-pytest) ; >= 2.3.5 + ("python-setuptools-scm" ,python-setuptools-scm))) (home-page "http://tox.testrun.org/") (synopsis "Virtualenv-based automation of test activities") (description "Tox is a generic virtualenv management and test command line @@ -9815,14 +9986,14 @@ document.") (define-public python-botocore (package (name "python-botocore") - (version "1.5.26") + (version "1.7.9") (source (origin (method url-fetch) (uri (pypi-uri "botocore" version)) (sha256 (base32 - "1b7l48hr88galrrc5q6k21z3sdadzxc87ppzs7k9fz4p1w8bfnvb")))) + "02b1bw25r1wdjs5yppb1h9igf11wj092biriv2yg8hzp5r0wrkmg")))) (build-system python-build-system) (arguments ;; FIXME: Many tests are failing. @@ -9849,14 +10020,14 @@ interface to the Amazon Web Services (AWS) API.") (define-public awscli (package (name "awscli") - (version "1.11.63") + (version "1.11.151") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "1r8aqv8w27k76lcsfk83w6qw9lz8gk2ibzwacp5wjhpp2gik911m")))) + "0h6rirbfy0f9cxm7ikll0kr720dircfmxf2vslmhn4n325831wsp")))) (build-system python-build-system) (propagated-inputs `(("python-colorama" ,python-colorama) @@ -11815,20 +11986,22 @@ Wikipedia code samples at (define-public python-cleo (package (name "python-cleo") - (version "0.4.1") + (version "0.6.1") (source (origin (method url-fetch) (uri (pypi-uri "cleo" version)) (sha256 (base32 - "1k2dcl6mqpn5bljyl6w42rqyd9mb3y9kh2mg7m2x3kfjwvg0rpva")))) + "0q1cf0szr0d54am4pypzwdnm74zpladdsinad94c2fz5i06fdpf7")))) (build-system python-build-system) (native-inputs `(;; For testing ("python-mock" ,python-mock) + ("python-pytest-mock" ,python-pytest-mock) ("python-pytest" ,python-pytest))) (propagated-inputs - `(("python-psutil" ,python-psutil) + `(("python-backpack" ,python-backpack) + ("python-pastel" ,python-pastel) ("python-pylev" ,python-pylev))) (home-page "https://github.com/sdispater/cleo") (synopsis "Command-line arguments library for Python") @@ -11989,13 +12162,13 @@ addresses, and phone numbers.") (define-public python-pyaml (package (name "python-pyaml") - (version "15.8.2") + (version "17.7.2") (source (origin (method url-fetch) (uri (pypi-uri "pyaml" version)) (sha256 (base32 - "1f5m28vkh4ksq3d80d8mmd2z8wxvc3mgy2pmrv2751dm2xgznm4w")))) + "132grrw0ajq4nrappi3ldbkb952k7yn9b6c7csi2rmvzm1g6ppp2")))) (build-system python-build-system) (native-inputs `(("python-unidecode" ,python-unidecode))) @@ -12011,6 +12184,32 @@ YAML-serialized data.") (define-public python2-pyaml (package-with-python2 python-pyaml)) +(define-public python-backpack + (package + (name "python-backpack") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "backpack" version)) + (sha256 + (base32 + "14rq1mvm0jda90lcx9gyyby9dvq4x3js2cmxvd6vl4686ixwyqh1")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-nose" ,python-nose))) + (propagated-inputs + `(("python-simplejson" ,python-simplejson))) + (home-page "https://github.com/sdispater/backpack") + (synopsis "Utilities for working with Python collections") + (description "Backpack provides some useful utilities for working with +collections of data.") + (license license:expat))) + +(define-public python2-backpack + (package-with-python2 python-backpack)) + (define-public python-flexmock (package (name "python-flexmock") @@ -12032,44 +12231,6 @@ mocks, stubs and fakes.") (define-public python2-flexmock (package-with-python2 python-flexmock)) -(define-public python-orator - (package - (name "python-orator") - (version "0.8.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "orator" version)) - (sha256 - (base32 - "1li49irsqha17nrda4nsb48biyy0rarp9pphf0jpqwm5zr8hv569")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ; no tests - (propagated-inputs - `(("python-arrow" ,python-arrow) - ("python-blinker" ,python-blinker) - ("python-cleo" ,python-cleo) - ("python-faker" ,python-faker) - ("python-inflection" ,python-inflection) - ("python-lazy-object-proxy" ,python-lazy-object-proxy) - ("python-pyaml" ,python-pyaml) - ("python-simplejson" ,python-simplejson) - ("python-wrapt" ,python-wrapt))) - (home-page "https://orator-orm.com/") - (synopsis "ActiveRecord ORM for Python") - (description - "Orator provides a simple ActiveRecord-like Object Relational Mapping -implementation for Python.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-orator)))))) - -(define-public python2-orator - (let ((base (package-with-python2 (strip-python2-variant python-orator)))) - (package - (inherit base) - (propagated-inputs - `(("python2-ipaddress" ,python2-ipaddress) - ,@(package-propagated-inputs base)))))) - (define-public python-prompt-toolkit (package (name "python-prompt-toolkit") @@ -13070,16 +13231,40 @@ replay them during future tests. It is designed to work with python-requests.") (define-public python2-betamax (package-with-python2 python-betamax)) +(define-public python-betamax-matchers + (package + (name "python-betamax-matchers") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "betamax-matchers" version)) + (sha256 + (base32 + "07qpwjyq2i2aqhz5iwghnj4pqr2ys5n45v1vmpcfx9r5mhwrsq43")))) + (build-system python-build-system) + (propagated-inputs + `(("python-betamax" ,python-betamax) + ("python-requests-toolbelt" ,python-requests-toolbelt))) + (home-page "https://github.com/sigmavirus24/betamax_matchers") + (synopsis "VCR imitation for python-requests") + (description "@code{betamax-matchers} provides a set of Matchers for +Betamax.") + (license license:asl2.0))) + +(define-public python2-betamax-matchers + (package-with-python2 python-betamax-matchers)) + (define-public python-s3transfer (package (name "python-s3transfer") - (version "0.1.10") + (version "0.1.11") (source (origin (method url-fetch) (uri (pypi-uri "s3transfer" version)) (sha256 (base32 - "1h8g9bknvxflxkpbnxyfxmk8pvgykbbk9ljdvhqh6z4vjc2926ms")))) + "0yfrfnf404cxzn3iswibqjxklsl0b1lwgqiml6pwiqj79a7zbwbn")))) (build-system python-build-system) (arguments `(#:phases @@ -13992,7 +14177,22 @@ parse many formal languages.") "1i9gik0xrj6jmi95s5w988jl1y265baz5xm5pbqdyvsh8h9ln6yq")))) (build-system python-build-system) (arguments - `(#:python ,python-2)) + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + ;; check phase needs to be run before the build phase. If not, + ;; coverage-test-runner looks for tests for the built source files, + ;; and fails. + (delete 'check) + (add-before 'build 'check + (lambda _ + ;; Disable python3 tests + (substitute* "check" + (("python3") "# python3")) + (zero? (system* "./check"))))))) + (native-inputs + `(("python2-coverage-test-runner" ,python2-coverage-test-runner) + ("python2-pep8" ,python2-pep8))) (propagated-inputs `(("python2-pyaml" ,python2-pyaml))) (home-page "https://liw.fi/cliapp/") @@ -14017,8 +14217,20 @@ iterating over input files.") (base32 "0vivqbw7ddhsq1zj3g9cvvv4f0phl0pis2smsnwcr2szz2fk3hl6")))) (build-system python-build-system) + (native-inputs + `(("python2-coverage-test-runner" ,python2-coverage-test-runner) + ("python2-pep8" ,python2-pep8))) (arguments - `(#:python ,python-2)) + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + ;; check phase needs to be run before the build phase. If not, + ;; coverage-test-runner looks for tests for the built source files, + ;; and fails. + (delete 'check) + (add-before 'build 'check + (lambda _ + (zero? (system* "make" "check"))))))) (home-page "https://liw.fi/ttystatus/") (synopsis "Python library for showing progress reporting and status updates on terminals") @@ -14065,12 +14277,26 @@ happens using the @code{logging} library.") (uri (string-append "http://git.liw.fi/cgi-bin/cgit/cgit.cgi/larch/snapshot/larch-" version ".tar.gz")) + (patches (search-patches + "python2-larch-coverage-4.0a6-compatibility.patch")) (sha256 (base32 "1p4knkkavlqymgciz2wbcnfrdgdbafhg14maplnk4vbw0q8xs663")))) (build-system python-build-system) (arguments - `(#:python ,python-2)) + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + ;; check phase needs to be run before the build phase. If not, + ;; coverage-test-runner looks for tests for the built source files, + ;; and fails. + (delete 'check) + (add-before 'build 'check + (lambda _ + (zero? (system* "make" "check"))))))) + (native-inputs + `(("cmdtest" ,cmdtest) + ("python2-coverage-test-runner" ,python2-coverage-test-runner))) (propagated-inputs `(("python2-tracing" ,python2-tracing))) (home-page "https://liw.fi/larch/") @@ -15917,6 +16143,51 @@ pure Python module.") (define-public python2-rencode (package-with-python2 python-rencode)) +(define-public python-xenon + (package + (name "python-xenon") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "xenon" version)) + (sha256 + (base32 + "14kby2y48vp3sgwxqlm5d5789yibqwb1qli5fwcmdqg3iayrbklc")))) + (build-system python-build-system) + (native-inputs + `(("python-pyyaml" ,python-pyyaml) + ("python-radon" ,python-radon) + ("python-requests" ,python-requests) + ("python-flake8" ,python-flake8) + ("python-tox" ,python-tox))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'patch-test-requirements + (lambda* (#:key inputs #:allow-other-keys) + ;; Update requirements from dependency==version to + ;; dependency>=version. + (substitute* "requirements.txt" + (("==") ">=") + ((",<1.5.0") "")) + ;; Remove httpretty dependency for tests. + (substitute* "setup.py" + (("httpretty") "")) + #t))))) + (home-page "https://xenon.readthedocs.org/") + (synopsis "Monitor code metrics for Python on your CI server") + (description + "Xenon is a monitoring tool based on Radon. It monitors code complexity. +Ideally, @code{xenon} is run every time code is committed. Through command +line options, various thresholds can be set for the complexity of code. It +will fail (i.e. it will exit with a non-zero exit code) when any of these +requirements is not met.") + (license license:expat))) + +(define-public python2-xenon + (package-with-python2 python-xenon)) + (define-public python-flask-principal (package (name "python-flask-principal") @@ -15966,3 +16237,68 @@ authentication for Flask routes.") (define-public python2-flask-httpauth (package-with-python2 python-flask-httpauth)) + +(define-public python-pysocks + (package + (name "python-pysocks") + (version "1.6.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PySocks" version)) + (sha256 + (base32 + "1krkiss578zqwcg4c8iqz1hwscwhsvy2djp3xyvps5gsgvr2j0yh")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) + (home-page "https://github.com/Anorov/PySocks") + (synopsis "SOCKS client module") + (description "@code{pysocks} is an updated and semi-actively maintained +version of @code{SocksiPy} with bug fixes and extra features.") + (license license:bsd-3))) + +(define-public python2-pysocks + (package-with-python2 python-pysocks)) + +(define-public python-pyaes + (package + (name "python-pyaes") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyaes" version)) + (sha256 + (base32 + "0bp9bjqy1n6ij1zb86wz9lqa1dhla8qr1d7w2kxyn7jbj56sbmcw")))) + (build-system python-build-system) + (home-page "https://github.com/ricmoo/pyaes") + (synopsis "Implementation of AES in Python") + (description "This package contains a pure-Python implementation of the +AES block cipher algorithm and the common modes of operation (CBC, CFB, CTR, +ECB and OFB).") + (license license:expat))) + +(define-public python2-pyaes + (package-with-python2 python-pyaes)) + +(define-public python-uritemplate + (package + (name "python-uritemplate") + (version "3.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "uritemplate" version)) + (sha256 + (base32 + "0781gm9g34wa0asc19dx81ng0nqq07igzv3bbvdqmz13pv7469n0")))) + (build-system python-build-system) + (home-page "https://uritemplate.readthedocs.org") + (synopsis "Library to deal with URI Templates") + (description "@code{uritemplate} provides Python library to deal with URI +Templates.") + (license license:bsd-2))) + +(define-public python2-uritemplate + (package-with-python2 python-uritemplate)) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 3e3588a505..bc275ebb09 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -46,6 +46,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gperf) + #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) @@ -776,7 +777,15 @@ developers using C++ or QML, a CSS & JavaScript like language.") (("spectrum") "#")))))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) - ((#:tests? _ #f) #f))) ; TODO: Enable the tests + ((#:phases phases) + `(modify-phases ,phases + (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)))))))) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -786,7 +795,10 @@ developers using C++ or QML, a CSS & JavaScript like language.") `(("alsa-lib" ,alsa-lib) ("mesa" ,mesa) ("pulseaudio" ,pulseaudio) - ("qtbase" ,qtbase))))) + ("qtbase" ,qtbase) + ;; Gstreamer is needed for the mediaplayer plugin + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base))))) (define-public qtwayland (package (inherit qtsvg) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 243ff9e5db..0193076291 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -49,7 +49,7 @@ (define-public ruby (package (name "ruby") - (replacement ruby-2.4.1) + (replacement ruby-2.4.2) (version "2.4.0") (source (origin @@ -103,11 +103,11 @@ a focus on simplicity and productivity.") (home-page "https://ruby-lang.org") (license license:ruby))) -(define-public ruby-2.4.1 +(define-public ruby-2.4.2 (package (inherit ruby) (name "ruby") - (version "2.4.1") + (version "2.4.2") (source (origin (method url-fetch) @@ -116,7 +116,7 @@ a focus on simplicity and productivity.") "/ruby-" version ".tar.xz")) (sha256 (base32 - "0m763zf2v0jhrha3cx21g4dif6vc9gm714invs8h3sg35ncskj2g")) + "0dgp4ypk3smrsbh2c249n5pl6nqhpd2igq9484dbsh81sf08k2kl")) (modules '((guix build utils))) (snippet `(begin ;; Remove bundled libffi @@ -126,7 +126,7 @@ a focus on simplicity and productivity.") (define-public ruby-2.3 (package (inherit ruby) - (version "2.3.4") + (version "2.3.5") (source (origin (method url-fetch) @@ -135,7 +135,7 @@ a focus on simplicity and productivity.") "/ruby-" version ".tar.xz")) (sha256 (base32 - "132p5kc1sx97svbx04g40pz5pr7p8f6jlmnq5r2prlcz5q1xj71l")) + "1npzcnq5kh0f9y88w5gj4v6ln8csr91361k3r43dmhlhn6mpsfkx")) (modules '((guix build utils))) (snippet `(begin ;; Remove bundled libffi @@ -144,7 +144,7 @@ a focus on simplicity and productivity.") (define-public ruby-2.2 (package (inherit ruby) - (version "2.2.7") + (version "2.2.8") (source (origin (method url-fetch) @@ -153,7 +153,7 @@ a focus on simplicity and productivity.") "/ruby-" version ".tar.xz")) (sha256 (base32 - "0lyb7gnbbhs3a3v9grsjgbaixm20wxz6x3h0czyrxnj3cpp8lk13")))))) + "1c31slidv2bdnnir3qfmdjs193b5s2ycb9pnf1lc55kk0cazrsip")))))) (define-public ruby-2.1 (package (inherit ruby) @@ -216,6 +216,32 @@ a focus on simplicity and productivity.") (("/bin/sh") (which "sh")))) %standard-phases))))) +(define-public ruby-highline + (package + (name "ruby-highline") + (version "1.7.8") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "highline" version)) + (sha256 + (base32 + "1nf5lgdn6ni2lpfdn4gk3gi47fmnca2bdirabbjbz1fk9w4p8lkr")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ;; TODO: NameError: uninitialized constant SPEC + (native-inputs + `(("bundler" ,bundler) + ("ruby-code-statistics" ,ruby-code-statistics))) + (synopsis + "HighLine helps you build command-line interfaces") + (description + "HighLine provides a high-level IO library that provides validation, +type conversion, and more for command-line interfaces. HighLine also includes +a menu system for providing multiple options to the user.") + (home-page "https://github.com/JEG2/highline") + (license (list license:gpl2 license:ruby)))) + (define-public ruby-hoe (package (name "ruby-hoe") @@ -660,6 +686,34 @@ complexity.") (home-page "https://github.com/ThoughtWorksStudios/saikuro_treemap") (license license:expat))) +(define-public ruby-options + (package + (name "ruby-options") + (version "2.3.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "options" version)) + (sha256 + (base32 + "1s650nwnabx66w584m1cyw82icyym6hv5kzfsbp38cinkr5klh9j")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f ;; TODO: NameError: uninitialized constant Config + #:phases + (modify-phases %standard-phases + (add-before 'check 'set-LIB + (lambda _ + ;; This is used in the Rakefile, and setting it avoids an issue + ;; with running the tests. + (setenv "LIB" "options")))))) + (synopsis "Ruby library to parse options from *args cleanly") + (description + "The @code{options} library helps with parsing keyword options in Ruby +functions.") + (home-page "https://github.com/ahoward/options") + (license license:ruby))) + (define-public ruby-orderedhash (package (name "ruby-orderedhash") @@ -947,6 +1001,41 @@ Ruby Gems.") (home-page "https://github.com/postmodern/rubygems-tasks") (license license:expat))) +(define-public ruby-rubyzip + (package + (name "ruby-rubyzip") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rubyzip" version)) + (sha256 + (base32 + "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'patch-tests + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "test/gentestfiles.rb" + (("/usr/bin/zip") + (string-append + (assoc-ref inputs "zip") "/bin/zip"))) + (substitute* "test/input_stream_test.rb" + (("/usr/bin/env ruby") (which "ruby"))) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-simplecov" ,ruby-simplecov) + ("zip" ,zip) + ("unzip" ,unzip))) + (synopsis "Ruby module is for reading and writing zip files") + (description + "The rubyzip module provides ways to read from and create zip files.") + (home-page "http://github.com/rubyzip/rubyzip") + (license license:bsd-2))) + (define-public ruby-ffi (package (name "ruby-ffi") @@ -1865,6 +1954,28 @@ net/http library.") (home-page "https://github.com/nicksieger/multipart-post") (license license:expat))) +(define-public ruby-multi-json + (package + (name "ruby-multi-json") + (version "1.12.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "multi_json" version)) + (sha256 + (base32 + "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ;; No testsuite included in the gem. + (synopsis "Common interface to multiple JSON libraries for Ruby") + (description + "This package provides a common interface to multiple JSON libraries, +including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, +NSJSONSerialization, gson.rb, JrJackson, and OkJson.") + (home-page "http://github.com/intridea/multi_json") + (license license:expat))) + (define-public ruby-arel (package (name "ruby-arel") @@ -2018,14 +2129,14 @@ extract comments.") (define-public ruby-coderay (package (name "ruby-coderay") - (version "1.1.1") + (version "1.1.2") (source (origin (method url-fetch) (uri (rubygems-uri "coderay" version)) (sha256 (base32 - "1x6z923iwr1hi04k6kz5a6llrixflz8h5sskl9mhaaxy9jx2x93r")))) + "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; missing test files @@ -2035,6 +2146,37 @@ for select languages.") (home-page "http://coderay.rubychan.de") (license license:expat))) +(define-public ruby-progress_bar + (package + (name "ruby-progress_bar") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "progress_bar" version)) + (sha256 + (base32 + "1qc40mr6p1z9a3vlpnsg1zfgk1qswviql2a31y63wpv3vr6b5f48")))) + (build-system ruby-build-system) + (arguments + '(#:test-target "spec")) + (propagated-inputs + `(("ruby-highline" ,ruby-highline) + ("ruby-options" ,ruby-options))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec) + ("ruby-timecop" ,ruby-timecop))) + (synopsis + "Ruby library for displaying progress bars") + (description + "ProgressBar is a simple library for displaying progress bars. The +maximum value is configurable, and additional information can be displayed +like the percentage completion, estimated time remaining, elapsed time and +rate.") + (home-page "https://github.com/paul/progress_bar") + (license license:wtfpl2))) + (define-public ruby-pry (package (name "ruby-pry") @@ -2565,14 +2707,14 @@ you about the changes.") (define-public ruby-activesupport (package (name "ruby-activesupport") - (version "5.1.3") + (version "5.1.4") (source (origin (method url-fetch) (uri (rubygems-uri "activesupport" version)) (sha256 (base32 - "16r18n6b1nlky0xx2lw8c1f15gr2vm34xz5g4byjcxf88m1s07xh")))) + "0sgf4rsfr7jcaqsx0wwzx4l4k9xsjlwv0mzl08pxiyp1qzyx8scr")))) (build-system ruby-build-system) (arguments `(#:phases @@ -3579,6 +3721,57 @@ It has built-in support for the legacy @code{cookies.txt} and (home-page "https://github.com/sparklemotion/http-cookie") (license license:expat))) +(define-public ruby-httpclient + (package + (name "ruby-httpclient") + (version "2.8.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "httpclient" version)) + (sha256 + (base32 + "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99")))) + (build-system ruby-build-system) + (arguments + '(;; TODO: Some tests currently fail + ;; ------ + ;; 211 tests, 729 assertions, 13 failures, 4 errors, 0 pendings, + ;; 2 omissions, 0 notifications + ;; 91.866% passed + ;; ------ + ;; 6.49 tests/s, 22.41 assertions/s + #:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (zero? + (system* "ruby" + "-Ilib" + "test/runner.rb")) + #t))) + (add-after 'install 'wrap-bin-httpclient + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/httpclient") + `("GEM_HOME" ":" prefix (,(getenv "GEM_HOME")))) + #t))))) + (native-inputs + `(("ruby-rack" ,ruby-rack))) + (synopsis + "Make HTTP requests with support for HTTPS, Cookies, authentication and more") + (description + "The @code{httpclient} ruby library provides functionality related to +HTTP. Compared to the @code{net/http} library, @{httpclient} also provides +Cookie, multithreading and authentication (digest, NTLM) support. + +Also provided is a @command{httpclient} command, which can perform HTTP +requests either using arguments or with an interactive prompt.") + (home-page "https://github.com/nahi/httpclient") + (license license:ruby))) + (define-public ruby-ansi (package (name "ruby-ansi") @@ -4275,3 +4468,24 @@ really opens up the email messages you are parsing, if you know what you are doing, you can fiddle with every last bit of your email directly.") (home-page "https://github.com/mikel/mail") (license license:expat))) + +(define-public ruby-code-statistics + (package + (name "ruby-code-statistics") + (version "0.2.13") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "code_statistics" version)) + (sha256 + (base32 + "07rdpsbwbmh4vp8nxyh308cj7am2pbrfhv9v5xr2d5gq8hnnsm93")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Not all test code is included in gem. + (synopsis "Port of the rails 'rake stats' method") + (description + "This gem is a port of the rails 'rake stats' method so it can be made +more robust and work for non rails projects.") + (home-page "http://github.com/danmayer/code_statistics") + (license license:expat))) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 116d7f60ec..392f9a3500 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -34,6 +34,7 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages cups) #:use-module (gnu packages databases) + #:use-module (gnu packages docbook) #:use-module (gnu packages tls) #:use-module (gnu packages popt) #:use-module (gnu packages pkg-config) @@ -42,7 +43,8 @@ #:use-module (gnu packages kerberos) #:use-module (gnu packages linux) #:use-module (gnu packages perl) - #:use-module (gnu packages python)) + #:use-module (gnu packages python) + #:use-module (gnu packages xml)) (define-public cifs-utils (package @@ -71,7 +73,7 @@ `(#:phases (modify-phases %standard-phases ;; The 6.7 tarball is missing ‘install.sh’. Create it. - (add-before 'configure 'autoreconf + (add-after 'unpack 'autoreconf (lambda _ (zero? (system* "autoreconf" "-i")))) (add-before 'configure 'set-root-sbin @@ -149,18 +151,29 @@ anywhere.") (define-public samba (package (name "samba") - (version "4.6.7") + (version "4.6.8") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 (base32 - "1ynxndfk45zkkylz3jsrx42a7kmm42jddk5bdhihyf88vs9l7wly")))) + "0pap686cl0j5c9v1v09krpqdk416x3851fbcap5ysp1zajrfw7aq")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'locate-docbook-stylesheets + (lambda* (#:key inputs #:allow-other-keys) + ;; XXX for some reason XML_CATALOG_FILES is not respected. + (substitute* '("buildtools/wafsamba/samba_conftests.py" + "buildtools/wafsamba/wafsamba.py" + "docs-xml/xslt/man.xsl") + (("http://docbook.sourceforge.net/release/xsl/current/") + (string-append (assoc-ref inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl) "/"))) + #t)) (replace 'configure ;; samba uses a custom configuration script that runs waf. (lambda* (#:key outputs #:allow-other-keys) @@ -203,7 +216,9 @@ anywhere.") ("tevent" ,tevent) ("tdb" ,tdb))) (native-inputs - `(("perl" ,perl) + `(("docbook-xsl" ,docbook-xsl) ;for generating manpages + ("xsltproc" ,libxslt) ;ditto + ("perl" ,perl) ("pkg-config" ,pkg-config) ("python" ,python-2))) ; incompatible with Python 3 (home-page "https://www.samba.org/") diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index ef67595a89..0a92b73e34 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -85,7 +86,8 @@ view to show two terminals at once.") (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (install-file "dtach" (string-append out "/bin")))))) + (install-file "dtach" (string-append out "/bin")) + (install-file "dtach.1" (string-append out "/share/man/man1")))))) ;; No check target. #:tests? #f)) (home-page "http://dtach.sourceforge.net/") diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index cc8c0630bb..62da3be0fd 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -264,15 +264,17 @@ conflict with slocate compatibility.") ;; building: xpdf, catdoc, MP3::Tag, Spreadsheet::ParseExcel, ;; HTML::Entities. (inputs - `(("libxml" ,libxml2) - ("zlib" ,zlib) - ("perl" ,perl) + `(("perl" ,perl) ("perl-uri" ,perl-uri) ("perl-html-parser" ,perl-html-parser) ("perl-html-tagset" ,perl-html-tagset) ("perl-mime-types" ,perl-mime-types))) (arguments - `(#:phases (modify-phases %standard-phases + `(;; XXX: This fails to build with zlib (API mismatch) and tests fail + ;; with libxml2, so disable both. + #:configure-flags (list (string-append "--without-zlib") + (string-append "--without-libxml2")) + #:phases (modify-phases %standard-phases (add-after 'install 'wrap-programs (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 8032e3181d..1866926129 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -127,7 +127,7 @@ such as compact binary encodings, XML, or JSON.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'autoconf + (add-after 'unpack 'autoconf (lambda _ (system* "autoreconf" "-vfi")))))) (home-page "http://www.msgpack.org") @@ -263,7 +263,7 @@ that implements both the msgpack and msgpack-rpc specifications.") (define-public jsoncpp (package (name "jsoncpp") - (version "1.8.0") + (version "1.8.2") (source (origin (method url-fetch) (uri (string-append @@ -272,7 +272,7 @@ that implements both the msgpack and msgpack-rpc specifications.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1g35ci93s03wph4kabi46iz42wgyfbn2763cklf15h7hrdi29ssx")))) + "1vwf0yrv5540ygfnxikirbs63awsdzn7dabkia3g0bnz43p5l7w1")))) (build-system cmake-build-system) (home-page "https://github.com/open-source-parsers/jsoncpp") (arguments @@ -359,14 +359,14 @@ However, “Memory efficiency” and “Speed” have not been primary goals.") (define-public python-ruamel.yaml (package (name "python-ruamel.yaml") - (version "0.15.19") + (version "0.15.33") (source (origin (method url-fetch) (uri (pypi-uri "ruamel.yaml" version)) (sha256 (base32 - "0qx779avw8d1vsjqyi7z21h1g5ykp8paqavgj0lzbp8h7bw9vpgv")))) + "1s4b0zwn9pkk4xxjhx77giyfddc738drd6vgraw6n2syvj03s31d")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 09a6c3a03f..f03d7c4a9d 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -430,7 +430,7 @@ use of experts and novices alike.") (delete-file-recursively "rx") (symlink rxpath "rx")) #t)) - (add-before 'configure 'autoreconf + (add-after 'unpack 'autoreconf (lambda _ (zero? (system* "autoreconf"))))))) (inputs diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 3ecc1ee8ba..2d515ec7a5 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016 Christopher Baines <mail@cbaines.net> +;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> ;;; ;;; This file is part of GNU Guix. ;;; @@ -122,3 +123,37 @@ Before each prompt, direnv checks for the existence of a .envrc file in the current and parent directories. This file is then used to alter the environmental variables of the current shell.") (license expat))) + +(define-public fzy + (package + (name "fzy") + (version "0.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/jhawthorn/fzy/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1xfgxqbkcpi2n4381kj3fq4026qs6by7xhl5gn0fgp3dh232c63j")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags (list "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/jhawthorn/fzy") + (synopsis "Fast fuzzy text selector for the terminal with an advanced +scoring algorithm") + (description + "Most other fuzzy matchers sort based on the length of a match. fzy tries +to find the result the user intended. It does this by favouring matches on +consecutive letters and starts of words. This allows matching using acronyms +or different parts of the path. + +fzy is designed to be used both as an editor plugin and on the command +line. Rather than clearing the screen, fzy displays its interface directly +below the current cursor position, scrolling the screen if necessary.") + (license expat))) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm new file mode 100644 index 0000000000..de07b68440 --- /dev/null +++ b/gnu/packages/simulation.scm @@ -0,0 +1,212 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Paul Garlick <pgarlick@tourbillion-technology.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages simulation) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages bison) + #:use-module (gnu packages boost) + #:use-module (gnu packages compression) + #:use-module (gnu packages flex) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gl) + #:use-module (gnu packages graphics) + #:use-module (gnu packages gtk) + #:use-module (gnu packages linux) + #:use-module (gnu packages m4) + #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages readline) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module (guix download) + #:use-module (guix build utils) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 regex) + #:use-module (srfi srfi-1)) + +(define-public openfoam + (package + (name "openfoam") + (version "4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://dl.openfoam.org/source/" + (string-map (lambda (x) (if (eq? x #\.) #\- x)) version))) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0cgxh4h2hf50qbvvdg5miwc2nympb0nrv3md96vb3gbs9vk8vq9d")) + (patches (search-patches "openfoam-4.1-cleanup.patch")))) + (build-system gnu-build-system) + (inputs + `(("boost" ,boost) + ("cgal" ,cgal) + ("flex" ,flex) + ("git" ,git) + ("gmp" ,gmp) + ("libxt" ,libxt) + ("metis" ,metis) + ("mpfr" ,mpfr) + ("ncurses" ,ncurses) + ("readline" ,readline) + ("scotch" ,pt-scotch32) + ("zlib" ,zlib))) + (native-inputs + `(("bison" ,bison))) + (propagated-inputs + `(("gzip" ,gzip) + ("gnuplot" ,gnuplot) + ("openmpi" ,openmpi))) + (arguments + `( ;; Executable files and shared libraries are located in the 'platforms' + ;; subdirectory. + #:strip-directories (list (string-append + "lib/OpenFOAM-" ,version + "/platforms/linux64GccDPInt32Opt/bin") + (string-append + "lib/OpenFOAM-" ,version + "/platforms/linux64GccDPInt32Opt/lib")) + #:tests? #f ; no tests to run + + #:modules ((ice-9 ftw) + (ice-9 regex) + (guix build gnu-build-system) + (guix build utils)) + + #:phases (modify-phases %standard-phases + (add-after 'unpack 'rename-build-directory + (lambda _ + (chdir "..") + ;; Use 'OpenFOAM-version' convention to match the file + ;; name expectations in the build phase. + (let ((unpack-dir (string-append + (getcwd) "/" + (list-ref (scandir (getcwd) (lambda (name) + (string-match "^OpenFOAM" name))) 0))) + (build-dir (string-append + (getcwd) "/OpenFOAM-" ,version))) + (rename-file unpack-dir build-dir) ; rename build directory + (chdir (basename build-dir))) ; move to build directory + #t)) + (delete 'configure) ; no configure phase + (replace 'build + (lambda _ + (let ((libraries '("boost" "cgal" "gmp" "metis" "mpfr" "scotch"))) + ;; set variables to define store paths + (for-each (lambda (library) + (setenv (string-append + (string-upcase library) "_ROOT") + (assoc-ref %build-inputs library))) libraries)) + ;; set variables to define package versions + (setenv "SCOTCHVERSION" ,(package-version scotch)) + (setenv "METISVERSION" ,(package-version metis)) + ;; set variable to pass extra 'rpath' arguments to linker + (setenv "LDFLAGS" + (string-append + "-Wl," + "-rpath=" %output "/lib/OpenFOAM-" ,version + "/platforms/linux64GccDPInt32Opt/lib," + "-rpath=" %output "/lib/OpenFOAM-" ,version + "/platforms/linux64GccDPInt32Opt/lib/dummy")) + ;; compile OpenFOAM libraries and applications + (zero? (system (format #f + "source ./etc/bashrc && ./Allwmake -j~a" + (parallel-job-count)))))) + (add-after 'build 'update-configuration-files + (lambda _ + ;; record store paths and package versions in + ;; configuration files + (substitute* "etc/config.sh/CGAL" + (("$BOOST_ROOT") (getenv "BOOST_ROOT"))) + (substitute* "etc/config.sh/CGAL" + (("$CGAL_ROOT") (getenv "CGAL_ROOT"))) + (substitute* "etc/config.sh/metis" + (("$METIS_ROOT") (getenv "METIS_ROOT"))) + (substitute* "etc/config.sh/metis" + (("$METISVERSION") (getenv "METISVERSION"))) + (substitute* "etc/config.sh/scotch" + (("$SCOTCH_ROOT") (getenv "SCOTCH_ROOT"))) + (substitute* "etc/config.sh/scotch" + (("$SCOTCHVERSION") (getenv "SCOTCHVERSION"))) + (substitute* "etc/config.sh/settings" + (("$GMP_ROOT") (getenv "GMP_ROOT"))) + (substitute* "etc/config.sh/settings" + (("$MPFR_ROOT") (getenv "MPFR_ROOT"))) + ;; reset lockDir variable to refer to write-enabled + ;; directory + (substitute* "wmake/wmake" + ((" lockDir=.*$") + " lockDir=$HOME/.$WM_PROJECT/.wmake\n")) + (substitute* "wmake/wmakeScheduler" + (("lockDir=.*$") + "lockDir=$HOME/.$WM_PROJECT/.wmake\n")) + (substitute* "wmake/wmakeSchedulerUptime" + (("lockDir=.*$") + "lockDir=$HOME/.$WM_PROJECT/.wmake\n")) + #t)) + (replace 'install + (lambda _ + ;; use 'OpenFOAM-version' convention + (let ((install-dir (string-append + %output "/lib/OpenFOAM-" ,version))) + (mkdir-p install-dir) ; create install directory + ;; move contents of build directory to install directory + (copy-recursively "." install-dir)))) + (add-after 'install 'add-symbolic-link + (lambda _ + ;; add symbolic link for standard 'bin' directory + (symlink + (string-append "./lib/OpenFOAM-" ,version + "/platforms/linux64GccDPInt32Opt/bin") + (string-append %output "/bin")) + #t))))) + ;; Note: + ;; Tutorial files are installed read-only in /gnu/store. + ;; To allow write permissions on files copied from the store a + ;; 'chmod' step is needed before running the applications. For + ;; example, from a user's login: + ;; $ source $GUIX_PROFILE/lib/OpenFOAM-4.1/etc/bashrc + ;; $ mkdir -p $FOAM_RUN + ;; $ cd $FOAM_RUN + ;; $ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily . + ;; $ cd pitzDaily + ;; $ chmod -R u+w . + ;; $ blockMesh + (synopsis "Framework for numerical simulation of fluid flow") + (description "OpenFOAM provides a set of solvers and methods for tackling +problems in the field of Computational Fluid Dynamics (CFD). It is written in +C++. Governing equations such as the Navier-Stokes equations can be solved in +integral form. Physical processes such as phase change, droplet transport and +chemical reaction can be modelled. Numerical methods are included to deal with +sharp gradients, such as those encountered in flows with shock waves and flows +with gas/liquid interfaces. Large problems may be split into smaller, connected +problems for efficient solution on parallel systems.") + (license license:gpl3+) + (home-page "https://openfoam.org"))) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index ad3032e2ec..f0ad6cffb7 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -65,7 +65,7 @@ (define-public pspp (package (name "pspp") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) @@ -73,7 +73,7 @@ version ".tar.gz")) (sha256 (base32 - "10yb8nknh33c1y2ji3gww5dcnx9n3nqgsj6yfb4wibdjypa1m68v")))) + "1r8smr5057993h90nx0mdnff8nxw9x546zzh6qpy4h3xblp1la5s")))) (build-system gnu-build-system) (inputs `(("cairo" ,cairo) @@ -106,7 +106,7 @@ be output in text, PostScript, PDF or HTML.") (define-public r-minimal (package (name "r-minimal") - (version "3.4.0") + (version "3.4.2") (source (origin (method url-fetch) (uri (string-append "mirror://cran/src/base/R-" @@ -114,7 +114,7 @@ be output in text, PostScript, PDF or HTML.") version ".tar.gz")) (sha256 (base32 - "14cb8bwi3akvdb6934kqic2862f2qgav6cq4g0h7gi2p4ka9x3i8")))) + "0r0cv2kc3x5z9xycpnxx6fbvv22psw2m342jhpslbxkc8g1307lp")))) (build-system gnu-build-system) (arguments `(#:disallowed-references (,tzdata-2017a) @@ -185,6 +185,14 @@ be output in text, PostScript, PDF or HTML.") (substitute* "src/library/tools/Makefile.in" (("(install_package_description\\(.*\"')\\)\"" line prefix) (string-append prefix ", builtStamp='1970-01-01')\""))) + + ;; R bundles an older version of help2man, which does not respect + ;; SOURCE_DATE_EPOCH. We cannot just use the latest help2man, + ;; because that breaks a test. + (with-fluids ((%default-port-encoding "ISO-8859-1")) + (substitute* "tools/help2man.pl" + (("my \\$date = strftime \"%B %Y\", localtime" line) + (string-append line " 1")))) #t)) (add-before 'configure 'set-default-pager ;; Set default pager to "cat", because otherwise it is "false", @@ -447,14 +455,14 @@ also flexible enough to handle most nonstandard requirements.") (define-public r-matrix (package (name "r-matrix") - (version "1.2-10") + (version "1.2-11") (source (origin (method url-fetch) (uri (cran-uri "Matrix" version)) (sha256 (base32 - "0r3qjcz92xwgdzrfz444mqzwnja5sv9abaf252fh6k48qbyahahh")))) + "1yvd6fx3n99j4gvzrng43ji38pr5h8y03kijccgjdalym2hcp36g")))) (properties `((upstream-name . "Matrix"))) (build-system r-build-system) (propagated-inputs @@ -492,14 +500,14 @@ nonlinear mixed-effects models.") (define-public r-mgcv (package (name "r-mgcv") - (version "1.8-18") + (version "1.8-22") (source (origin (method url-fetch) (uri (cran-uri "mgcv" version)) (sha256 (base32 - "011mgcypr56xvm9nizsfsb2285kzql93x0d3lzg849g39vbpp4s2")))) + "1546p6aflg3z6xl2mns1n2c3j8q2spr9cjggj9rn33vrrhsv4fss")))) (build-system r-build-system) (propagated-inputs `(("r-matrix" ,r-matrix) @@ -992,13 +1000,13 @@ using just two functions: melt and dcast (or acast).") (define-public r-scales (package (name "r-scales") - (version "0.4.1") + (version "0.5.0") (source (origin (method url-fetch) (uri (cran-uri "scales" version)) (sha256 - (base32 "1lqccfmqdwrw0cjyqvw2zvgpk2jvnqrfb303l1raqyyf3zxqhav4")))) + (base32 "0zg9wfzmsdjxpbld0nzv7hcpq5r0wazqxmn7grvvif2agj0w1z6v")))) (build-system r-build-system) (propagated-inputs `(("r-dichromat" ,r-dichromat) @@ -1006,7 +1014,9 @@ using just two functions: melt and dcast (or acast).") ("r-munsell" ,r-munsell) ("r-plyr" ,r-plyr) ("r-rcolorbrewer" ,r-rcolorbrewer) - ("r-rcpp" ,r-rcpp))) + ("r-rcpp" ,r-rcpp) + ("r-r6" ,r-r6) + ("r-viridislite" ,r-viridislite))) (home-page "https://github.com/hadley/scales") (synopsis "Scale functions for visualization") (description @@ -1050,14 +1060,14 @@ aesthetic attributes.") (define-public r-gdtools (package (name "r-gdtools") - (version "0.1.5") + (version "0.1.6") (source (origin (method url-fetch) (uri (cran-uri "gdtools" version)) (sha256 (base32 - "09y9x09gri33ghhrvjjnj5k5rk0kdpsk3wq02cln8gmywd6728vk")))) + "103wnc8sq0iwcnj4j14hd420d2dqdyf13s3f25icsznrlyzdkhf5")))) (build-system r-build-system) (native-inputs `(("r-rcpp" ,r-rcpp) @@ -1076,14 +1086,14 @@ and to generate base64 encoded string from raster matrix.") (define-public r-svglite (package (name "r-svglite") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) (uri (cran-uri "svglite" version)) (sha256 (base32 - "1s1gvmlmmna5y4jsn9h6438pg5b86fl4nwfvkgm6n4h6ljfgqyx3")))) + "1bws3lc4hlhln11zd7lalhiyc43yk6c6vrzy41fkxk1dkjazfx51")))) (build-system r-build-system) (native-inputs `(("r-rcpp" ,r-rcpp))) (propagated-inputs @@ -1159,13 +1169,13 @@ R/DBMS implementations.") (define-public r-bh (package (name "r-bh") - (version "1.62.0-1") + (version "1.65.0-1") (source (origin (method url-fetch) (uri (cran-uri "BH" version)) (sha256 (base32 - "01vfdpfznd4ynqql33z238xr262mvy3i80lyi8l3a3p3hi0a262p")))) + "0n6byzrvl1w4hjdxz479q4a7w1118f9ckqc4gqydq7lgzs5agfl2")))) (build-system r-build-system) (home-page "https://github.com/eddelbuettel/bh") (synopsis "R package providing subset of Boost headers") @@ -1300,13 +1310,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.") (define-public r-knitr (package (name "r-knitr") - (version "1.16") + (version "1.17") (source (origin (method url-fetch) (uri (cran-uri "knitr" version)) (sha256 (base32 - "02balmhvc955rkqv4v0wkxbw4vjphydajgcpy4ml0s3b4sziyj0h")))) + "00gljbz57n9lkvbd6az4n37gpbs8vg3fxx5p9biamhmhqyra514l")))) (build-system r-build-system) (propagated-inputs `(("r-evaluate" ,r-evaluate) @@ -1414,13 +1424,13 @@ you call it again with the same arguments it returns the pre-computed value.") (define-public r-crayon (package (name "r-crayon") - (version "1.3.2") + (version "1.3.4") (source (origin (method url-fetch) (uri (cran-uri "crayon" version)) (sha256 (base32 - "0s2yam18slph7xsw4pyc9f92gdyf609r5w92yax69zh57kb7asws")))) + "0s7s6vc3ww8pzanpjisym4jjvwcc5pi2qg8srx7jqlz9j3wrnvpw")))) (build-system r-build-system) (propagated-inputs `(("r-memoise" ,r-memoise))) @@ -1502,13 +1512,13 @@ defined in different packages.") (define-public r-rlang (package (name "r-rlang") - (version "0.1.1") + (version "0.1.2") (source (origin (method url-fetch) (uri (cran-uri "rlang" version)) (sha256 (base32 - "0grwqy3zkvz96mvpwfbfyqid4jkfrqh3ldy2n6dpv2kjd1fzj0ar")))) + "1yc5qyq6h0nrya7m2fqnfv19zh5xwsl28jx6zi2g1zz6ra4cvkwh")))) (build-system r-build-system) (home-page "http://rlang.tidyverse.org") (synopsis "Functions for base types, core R and Tidyverse features") @@ -1520,14 +1530,14 @@ like tidy evaluation.") (define-public r-tibble (package (name "r-tibble") - (version "1.3.3") + (version "1.3.4") (source (origin (method url-fetch) (uri (cran-uri "tibble" version)) (sha256 (base32 - "1bhq4pm56l7l6s1k44ajrcr7hz56h37m9ck4zji9f8xfdqschbl0")))) + "02vn6yqzcvmazy5jaqar3wwbrmh83a1bfgsqgk0hgz38i80zgvm7")))) (build-system r-build-system) (propagated-inputs `(("r-rlang" ,r-rlang) @@ -1542,13 +1552,13 @@ and printing capabilities than traditional data frames.") (define-public r-dplyr (package (name "r-dplyr") - (version "0.7.2") + (version "0.7.3") (source (origin (method url-fetch) (uri (cran-uri "dplyr" version)) (sha256 (base32 - "0jpb32ca1c0mr660igna4yw4fmzydzfhxshd0g8wgmggkynx2qi2")))) + "0wz5vrcsxzmxpxvs1raz9kyfc7mq3591nadq4rb4hx4sc97ysrxf")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) @@ -1575,6 +1585,36 @@ matter where it is stored, whether in a data frame, a data table or database.") (license license:expat))) +(define-public r-dbplyr + (package + (name "r-dbplyr") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "dbplyr" version)) + (sha256 + (base32 + "17gn8vr4a6m9ynarjbm9xsrhcvgn5lnxhb2qhiiglmhh5mm4a7kv")))) + (build-system r-build-system) + (propagated-inputs + `(("r-assertthat" ,r-assertthat) + ("r-dbi" ,r-dbi) + ("r-dplyr" ,r-dplyr) + ("r-glue" ,r-glue) + ("r-purrr" ,r-purrr) + ("r-r6" ,r-r6) + ("r-rlang" ,r-rlang) + ("r-tibble" ,r-tibble))) + (home-page "https://github.com/tidyverse/dbplyr") + (synopsis "Dplyr back end for databases") + (description + "This package provides a dplyr back end for databases that allows you to +work with remote database tables as if they are in-memory data frames. Basic +features works with any database that has a @code{DBI} back end; more advanced +features require SQL translation to be provided by the package author.") + (license license:expat))) + (define-public r-acepack (package (name "r-acepack") @@ -1844,14 +1884,14 @@ chain.") (define-public r-ade4 (package (name "r-ade4") - (version "1.7-6") + (version "1.7-8") (source (origin (method url-fetch) (uri (cran-uri "ade4" version)) (sha256 (base32 - "0lnc37d6waajmagy8qvw206pyc4vgrpzl3hk3j9frh6wa0b8x140")))) + "1a5p3wf8l9cp1bjp57b1pc5bqs39kw1v21i4waj9j18wawzlmpb6")))) (build-system r-build-system) (home-page "http://pbil.univ-lyon1.fr/ADE-4") (synopsis "Multivariate data analysis and graphical display") @@ -1953,14 +1993,14 @@ limited to R.") (define-public r-backports (package (name "r-backports") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (cran-uri "backports" version)) (sha256 (base32 - "1kcz6j82by28cjk5wi2j6dfqdin1kib4y7d2r4h3zabcxmk6jly5")))) + "15w8psmv203wzijrk4hvwaw3i4byh2m5s09yrkqwhfckhaj82kj9")))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/backports") (synopsis "Reimplementations of functions introduced since R 3.0.0") @@ -1976,14 +2016,14 @@ R version.") (define-public r-checkmate (package (name "r-checkmate") - (version "1.8.3") + (version "1.8.4") (source (origin (method url-fetch) (uri (cran-uri "checkmate" version)) (sha256 (base32 - "04rxabzamhv6ybynx627sxk02qvq8znkv0y10vmq67xx6pxhqvla")))) + "1xpq73myr39i33mwihvy494sam77hb3z15yr172a31d8wn1qi53g")))) (build-system r-build-system) (propagated-inputs `(("r-backports" ,r-backports))) @@ -2117,16 +2157,15 @@ other packages.") (define-public r-commonmark (package (name "r-commonmark") - (version "1.2") + (version "1.4") (source (origin (method url-fetch) (uri (cran-uri "commonmark" version)) (sha256 (base32 - "12q5mncxvkwdxc35is6y5idx8a1h99hyz5x6ri0arni6k25krchk")))) + "1vb8r9khpvcf0q7acv8rsplfjjwcll302bg5kp596cvn6aacypl6")))) (build-system r-build-system) - ;;(inputs `(("zlib" ,zlib))) (home-page "http://cran.r-project.org/web/packages/commonmark") (synopsis "CommonMark and Github Markdown Rendering in R") (description @@ -2169,17 +2208,17 @@ collation, and NAMESPACE files.") (define-public r-openssl (package (name "r-openssl") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) (uri (cran-uri "openssl" version)) (sha256 (base32 - "0ffwllii8xl6sa2v66134g0fwaw1y3zn3mvaa4nrc120vv5d3mkd")))) + "178fcp9f245i0k9s2w45kbw0ml0r9pfc73ak8hvicw4jz639wzb9")))) (build-system r-build-system) (inputs - `(("openssl" ,openssl))) + `(("libressl" ,libressl))) (home-page "https://github.com/jeroenooms/openssl") (synopsis "Toolkit for encryption, signatures and certificates") (description @@ -2198,22 +2237,20 @@ integers.") (define-public r-httr (package (name "r-httr") - (version "1.2.1") + (version "1.3.1") (source (origin (method url-fetch) (uri (cran-uri "httr" version)) (sha256 (base32 - "03kkjlhyvvi5znwaxfm6cmdsg3q7ivwsvkzgabhjdj2jxs80pfg7")))) + "0n7jz2digbgv48rbr9vmzv4vmf4rahl9jjy31izs7sxj4rs4s4r2")))) (build-system r-build-system) (propagated-inputs `(("r-curl" ,r-curl) - ("r-digest" ,r-digest) ("r-jsonlite" ,r-jsonlite) ("r-openssl" ,r-openssl) ("r-mime" ,r-mime) - ("r-r6" ,r-r6) - ("r-stringr" ,r-stringr))) + ("r-r6" ,r-r6))) (home-page "https://github.com/hadley/httr") (synopsis "Tools for working with URLs and HTTP") (description @@ -2252,13 +2289,13 @@ pure C implementation of the Git core methods.") (define-public r-rstudioapi (package (name "r-rstudioapi") - (version "0.6") + (version "0.7") (source (origin (method url-fetch) (uri (cran-uri "rstudioapi" version)) (sha256 (base32 - "1zkvz72z6nw0xc8bhb21y5x1nk6avijs0w8n4vsbvw9sn76wc96s")))) + "133s75q2hr6jg28m1wvs96qrbc9c4vw87migwhkjqb88xxvbqhd5")))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/rstudioapi") (synopsis "Safely access the RStudio API") @@ -2358,13 +2395,13 @@ disk (or a connection).") (define-public r-plotrix (package (name "r-plotrix") - (version "3.6-5") + (version "3.6-6") (source (origin (method url-fetch) (uri (cran-uri "plotrix" version)) (sha256 (base32 - "01655y3qzy0283ppc85bi0g42g20zrqzcl0qb30cl6rcbflhymlb")))) + "07hywp3ym0gbpqdj3f4vhr0bhmynhby8vh6p1b9cm2hv26pzs9q4")))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/plotrix") (synopsis "Various plotting functions") @@ -2417,13 +2454,13 @@ well as additional utilities such as panel and axis annotation functions.") (define-public r-rcpparmadillo (package (name "r-rcpparmadillo") - (version "0.7.900.2.0") + (version "0.7.960.1.2") (source (origin (method url-fetch) (uri (cran-uri "RcppArmadillo" version)) (sha256 (base32 - "01qsff2p1fp5i9lq7rsykrskgr6smz24ddspbl5ad9a8rkmczwyv")))) + "0kg8vbamaz3413h283f23hzgqkmfpf6fs0vbklmpj0l3ricvp9cc")))) (properties `((upstream-name . "RcppArmadillo"))) (build-system r-build-system) (propagated-inputs @@ -2558,13 +2595,13 @@ variety of formats.") (define-public r-gridextra (package (name "r-gridextra") - (version "2.2.1") + (version "2.3") (source (origin (method url-fetch) (uri (cran-uri "gridExtra" version)) (sha256 (base32 - "0638ihwl00j76ivaxxhxvi8z573lwy1jym3srr78mx6dbdd4bzj4")))) + "0fwfk3cdwxxim7nd55pn7m31bcaqj48y06j7an2k1v1pybk0rdl1")))) (properties `((upstream-name . "gridExtra"))) (build-system r-build-system) (propagated-inputs @@ -2732,13 +2769,13 @@ plotted and compared with the asymptotic curve.") (define-public r-lambda-r (package (name "r-lambda-r") - (version "1.1.9") + (version "1.2") (source (origin (method url-fetch) (uri (cran-uri "lambda.r" version)) (sha256 (base32 - "1j6287iqvs3ill6r5g6ksf5809qp0l0nf20ib8266m1r09lc9j14")))) + "0vql32np716dpd0kjn7s7wgawd02ysgp2a5il4kb19nlw661ii3x")))) (properties `((upstream-name . "lambda.r"))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/lambda.r") @@ -2799,14 +2836,14 @@ statements.") (define-public r-segmented (package (name "r-segmented") - (version "0.5-2.1") + (version "0.5-2.2") (source (origin (method url-fetch) (uri (cran-uri "segmented" version)) (sha256 (base32 - "1i576xksc761nyv2dmq86nwbgqvp0plz6bjcn69nkdwq2wbizmw8")))) + "1wdjxkgqjqw5q2nywmgkf6y21lb0alhvaqg0m0dr2xyxf1ii79rs")))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/segmented") (synopsis "Regression models with breakpoints estimation") @@ -2929,14 +2966,14 @@ parallel.") (define-public r-doparallel (package (name "r-doparallel") - (version "1.0.10") + (version "1.0.11") (source (origin (method url-fetch) (uri (cran-uri "doParallel" version)) (sha256 (base32 - "1mddx25l25pw9d0csnx2q203dbg5hbrhkr1f08kw0p02a1lln0kh")))) + "0sppgxk3d8mfsrb3cjdyn0mv0s4i7pcy8g8c3cjzbr6k8vmx5jsc")))) (properties `((upstream-name . "doParallel"))) (build-system r-build-system) (propagated-inputs @@ -3049,14 +3086,14 @@ analysis of large sparse or dense matrices.") (define-public r-glmnet (package (name "r-glmnet") - (version "2.0-10") + (version "2.0-13") (source (origin (method url-fetch) (uri (cran-uri "glmnet" version)) (sha256 (base32 - "07n2hz4fvjyv0siai8z8wqwfj8d58i8n1vzf1ckdfzp4kxa3z08d")))) + "1zdqp6wnqxzp5qn2ky47phbkrxv3cpgbwmdp896h3xxjvp58sa7k")))) (build-system r-build-system) (inputs `(("gfortran" ,gfortran))) @@ -3520,22 +3557,51 @@ perceived by readers with the most common form of color blindness. This is the 'lite' version of the more complete @code{viridis} package.") (license license:expat))) +(define-public r-tidyselect + (package + (name "r-tidyselect") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "tidyselect" version)) + (sha256 + (base32 + "1h10qc5bxk5v0zhmip3gwnzy50fs2gbdvcg2163is0k9a8rifq9r")))) + (build-system r-build-system) + (propagated-inputs + `(("r-glue" ,r-glue) + ("r-purrr" ,r-purrr) + ("r-rcpp" ,r-rcpp) + ("r-rlang" ,r-rlang))) + (home-page "http://cran.r-project.org/web/packages/tidyselect") + (synopsis "Select from a set of strings") + (description + "This package provides a backend for the selecting functions of the +tidyverse. It makes it easy to implement select-like functions in your own +packages in a way that is consistent with other tidyverse interfaces for +selection.") + (license license:gpl3))) + (define-public r-tidyr (package (name "r-tidyr") - (version "0.6.3") + (version "0.7.1") (source (origin (method url-fetch) (uri (cran-uri "tidyr" version)) (sha256 (base32 - "14s57zrjm2phiy600z9ivq4az71z0ggmp6nj0js7yrybxf0dlah6")))) + "18fii18f967xaw6swn0w744sncx37rfq6gd8d9dccrpyf8647hmr")))) (build-system r-build-system) (propagated-inputs `(("r-dplyr" ,r-dplyr) - ("r-lazyeval" ,r-lazyeval) ("r-magrittr" ,r-magrittr) + ("r-glue" ,r-glue) + ("r-purrr" ,r-purrr) + ("r-rlang" ,r-rlang) + ("r-tidyselect" ,r-tidyselect) ("r-rcpp" ,r-rcpp) ("r-stringi" ,r-stringi) ("r-tibble" ,r-tibble))) @@ -3906,14 +3972,14 @@ routines.") (define-public r-fastcluster (package (name "r-fastcluster") - (version "1.1.22") + (version "1.1.24") (source (origin (method url-fetch) (uri (cran-uri "fastcluster" version)) (sha256 (base32 - "006k9isra5biyavqwci61avladw19mhp6kmkjj3777rl1r4r8b9z")))) + "15drhl22wm8whsy6b3vv754skfddiydb068zn1whrw5sknvkkjc2")))) (build-system r-build-system) (home-page "http://danifold.net/fastcluster.html") (synopsis "Fast hierarchical clustering routines") @@ -4995,14 +5061,14 @@ algorithms.") (define-public r-lme4 (package (name "r-lme4") - (version "1.1-13") + (version "1.1-14") (source (origin (method url-fetch) (uri (cran-uri "lme4" version)) (sha256 (base32 - "13j4a721rx0272pdxrz6nabjv56xb6srklq5w4z1abc82lyvda2z")))) + "1vars93604q7kyz6y1f8f886l05jkgj8bs78033l2czypvzki5la")))) (build-system r-build-system) (native-inputs `(("r-rcpp" ,r-rcpp) @@ -5075,24 +5141,25 @@ to Applied regression, Second Edition, Sage, 2011.") (define-public r-caret (package (name "r-caret") - (version "6.0-76") + (version "6.0-77") (source (origin (method url-fetch) (uri (cran-uri "caret" version)) (sha256 (base32 - "1w31xzpmj8p6r6s7s1vwnjxainq54bbh4cqm177ba0myv69hh8cc")))) + "05c504567s2nppzfgi36mhszbym2pr80nf50dgxcxfx030721v5y")))) (build-system r-build-system) (propagated-inputs - `(("r-car" ,r-car) - ("r-foreach" ,r-foreach) + `(("r-foreach" ,r-foreach) ("r-ggplot2" ,r-ggplot2) ("r-lattice" ,r-lattice) ("r-modelmetrics" ,r-modelmetrics) ("r-nlme" ,r-nlme) ("r-plyr" ,r-plyr) - ("r-reshape2" ,r-reshape2))) + ("r-recipes" ,r-recipes) + ("r-reshape2" ,r-reshape2) + ("r-withr" ,r-withr))) (home-page "https://github.com/topepo/caret") (synopsis "Classification and regression training") (description @@ -5194,14 +5261,14 @@ multivariate case.") (define-public r-tclust (package (name "r-tclust") - (version "1.2-7") + (version "1.3-1") (source (origin (method url-fetch) (uri (cran-uri "tclust" version)) (sha256 (base32 - "1mvqr280c6kwpg98byd0r1y0qf238xn2x15y8npqch6lpcszlb3x")))) + "1li62wynv81kb17fx7nk63a26qlb78l8fdf63in8yzcl7fkpji7y")))) (build-system r-build-system) (propagated-inputs `(("r-cluster" ,r-cluster) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index a914d41c43..66e9c4eddb 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -35,14 +35,14 @@ (define-public owncloud-client (package (name "owncloud-client") - (version "2.3.1") + (version "2.3.3") (source (origin (method url-fetch) (uri (string-append "https://download.owncloud.com/desktop/stable/" "owncloudclient-" version ".tar.xz")) (sha256 - (base32 "051rky4rpm73flxxkhfdxqq23ncnk4ixhscbg74w82sa4d93f54k")) + (base32 "1r5ddln1wc9iyjizgqb104i0r6qhzsmm2wdnxfaif119cv0vphda")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index 80c45c396c..8ac0524fc6 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -1,4 +1,4 @@ -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; 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 @@ -38,7 +38,8 @@ (method url-fetch) (uri (string-append "https://newsbeuter.org/downloads/newsbeuter-" version ".tar.gz")) - (patches (search-patches "newsbeuter-CVE-2017-12904.patch")) + (patches (search-patches "newsbeuter-CVE-2017-12904.patch" + "newsbeuter-CVE-2017-14500.patch")) (sha256 (base32 "1j1x0hgwxz11dckk81ncalgylj5y5fgw5bcmp9qb5hq9kc0vza3l")))) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index de888891c4..0231360aa8 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> -;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -190,7 +190,7 @@ interfaces (GUIs) in the Tcl language.") (define-public perl-tk (package (name "perl-tk") - (version "804.033") + (version "804.034") (source (origin (method url-fetch) (uri (string-append @@ -198,7 +198,7 @@ interfaces (GUIs) in the Tcl language.") version ".tar.gz")) (sha256 (base32 - "1bc8bacsf95598yimrxijymb3advrgan73pqxj75qmd20ydnwxc4")))) + "1qiz55dmw7hm1wgpjdzf2jffwcj0hisr3kf80qi8lli3qx2b39py")))) (build-system perl-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libx11" ,libx11) @@ -247,6 +247,51 @@ interfaces (GUIs) in the Tcl language.") utility functions and modules all written in high-level Tcl.") (license (package-license tcl)))) +(define-public tklib + (package + (name "tklib") + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append "https://core.tcl.tk/tklib/tarball/tklib-" + version ".tar.gz?uuid=tklib-0-6")) + (sha256 + (base32 + "03y0bzgwbh7nnyqkh8n00bbkq2fyblq39s3bdb6mawna0bbn0wwg")))) + (build-system gnu-build-system) + (native-inputs + `(("tcl" ,tcl))) + (propagated-inputs + `(("tcllib" ,tcllib) + ("tk" ,tk))) ; for "wish" + (native-search-paths + (list (search-path-specification + (variable "TCLLIBPATH") + (separator " ") + (files (list (string-append "lib/tklib" version)))))) + (home-page "https://www.tcl.tk/software/tklib/") + (synopsis "Tk utility modules for Tcl") + (description "Tklib is a collection of common utility functions and +modules for Tk, all written in high-level Tcl. Examples of provided widgets: +@enumerate +@item @code{chatwidget} +@item @code{datefield} +@item @code{tooltip} +@item @code{cursor} +@item @code{ipentry} +@item @code{tablelist} +@item @code{history} +@item @code{tkpiechart} +@item @code{ico} +@item @code{crosshair} +@item @code{ntext} +@item @code{plotchart} +@item @code{ctext} +@item @code{autosscroll} +@item @code{canvas} +@end enumerate") + (license (package-license tcl)))) + (define-public tclxml (package (name "tclxml") @@ -262,9 +307,10 @@ utility functions and modules all written in high-level Tcl.") (build-system gnu-build-system) (native-inputs `(("tcl" ,tcl) - ("tcllib" ,tcllib) ("libxml2" ,libxml2) ("libxslt" ,libxslt))) + (propagated-inputs + `(("tcllib" ,tcllib))) ; uri (native-search-paths (list (search-path-specification (variable "TCLLIBPATH") diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index c3bf203602..5751015260 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -272,7 +272,7 @@ and a supporting cryptographic kernel.") ("libtool" ,libtool))) (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'autoconf + (add-after 'unpack 'autoconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (home-page "https://gitlab.savoirfairelinux.com/sflphone/libiax2") diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index df093c293d..a9682b685c 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016 Mckinley Olsen <mck.olsen@gmail.com> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016 David Craven <david@craven.ch> -;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017 José Miguel Sánchez García <jmi2k@openmailbox.org> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index f12746c83f..a38b2afc0c 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3589,6 +3589,26 @@ technical illustrations. Its output is scalable PostScript or SVG, rather than the bitmaps Metafont creates.") (license license:lppl))) +(define-public texlive-latex-acmart + (package + (name "texlive-latex-acmart") + (version "1.45") + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "acmart")) + (sha256 + (base32 + "10zs8ga88ksypv1v4p6mynmfa7749q2hgxlr4shnwfjd9wrb421q")) + (file-name (string-append name "-" version "-checkout")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/acmart")) + (home-page "http://www.ctan.org/pkg/acmart") + (synopsis "Class for typesetting publications of ACM") + (description + "This package provides a class for typesetting publications of the +Association for Computing Machinery (ACM).") + (license license:lppl1.3+))) + (define-public texlive-latex-varwidth (package (name "texlive-latex-varwidth") diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm index 5bf3a97e81..29455b911d 100644 --- a/gnu/packages/texinfo.scm +++ b/gnu/packages/texinfo.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> @@ -31,6 +31,7 @@ #:use-module (gnu packages ncurses)) (define-public texinfo + ;; TODO: Merge with 'texinfo-latest' on the next core-updates. (package (name "texinfo") (version "6.4") @@ -63,6 +64,19 @@ their source and the command-line Info reader. The emphasis of the language is on expressing the content semantically, avoiding physical markup commands.") (license gpl3+))) +(define-public texinfo-latest + ;; TODO: Turn this into 'texinfo' on the next core-updates cycle. + (package (inherit texinfo) + (version "6.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/texinfo/texinfo-" + version ".tar.xz")) + (sha256 + (base32 + "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp")))) + (native-inputs '()))) + (define-public texinfo-5 (package (inherit texinfo) (version "5.2") diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 537d013345..3359ab4845 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -579,7 +579,7 @@ categories.") `(#:tests? #f ; FIXME maketest.sh does not work. #:phases (modify-phases %standard-phases - (add-before 'configure 'autoreconf + (add-after 'unpack 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vif"))))))) (native-inputs diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index ba54d1d00f..4d3da87174 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,7 +22,9 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (guix build-system python) + #:use-module (gnu packages python)) (define-public time (package @@ -55,3 +58,57 @@ program uses. The display output of the program can be customized or saved to a file.") (license gpl2+))) + +(define-public python-pytzdata + (package + (name "python-pytzdata") + (version "2017.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytzdata" version)) + (sha256 + (base32 + "1c1az8spm2d3km6qhjy69y4dlj71p6984l48mizr83nh4f0ipld4")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-nose" ,python-nose))) + (home-page "https://github.com/sdispater/pytzdata") + (synopsis "Timezone database for Python") + (description + "This library provides a timezone database for Python.") + (license expat))) + +(define-public python2-tzdata + (package-with-python2 python-pytzdata)) + +(define-public python-pendulum + (package + (name "python-pendulum") + (version "1.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pendulum" version)) + (sha256 + (base32 + "1fj36yxi2f4lzchzd8ny1qjl67dbypnk0gn8qwad2w78579m8m8z")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-nose" ,python-nose))) + (propagated-inputs + `(("python-dateutil" ,python-dateutil) + ("python-pytzdata" ,python-pytzdata) + ("python-tzlocal" ,python-tzlocal))) + (home-page "https://github.com/sdispater/pendulum") + (synopsis "Alternate API for Python datetimes") + (description "Pendulum is a drop-in replacement for the standard +@{datetime} class, providing an alternative API. As it inherits from the +standard @code{datetime} all @code{datetime} instances can be replaced by +Pendulum instances.") + (license expat))) + +(define-public python2-pendulum + (package-with-python2 python-pendulum)) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 111a1c3734..0e59d7df10 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> +;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> @@ -37,6 +37,7 @@ #:use-module (guix build-system cmake) #:use-module (gnu packages compression) #:use-module (gnu packages) + #:use-module (gnu packages dns) #:use-module (gnu packages guile) #:use-module (gnu packages libbsd) #:use-module (gnu packages libffi) @@ -229,6 +230,17 @@ required structures.") (inputs `(("guile" ,guile-2.0) ,@(alist-delete "guile" (package-inputs gnutls)))))) +(define-public gnutls/dane + ;; GnuTLS with build libgnutls-dane, implementing DNS-based + ;; Authentication of Named Entities. This is required for GNS functionality + ;; by GNUnet and gnURL. This is done in an extra package definition + ;; to have the choice between GnuTLS with Dane and without Dane. + (package + (inherit gnutls) + (name "gnutls-dane") + (inputs `(("unbound" ,unbound) + ,@(package-inputs gnutls))))) + (define-public openssl (package (name "openssl") @@ -486,13 +498,13 @@ netcat implementation that supports TLS.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.17.0") + (version "0.18.2") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) - (sha256 - (base32 - "0vmnv7qhdhl9qhq03v6zrcj1lsmpmpjb94s0xsc7piwqxfmf9jrw")))) + (sha256 + (base32 + "1xiy8m7501g5l9kpdmyvyz72nfnl72l19qkrf76fyvby7adzm3ki")))) (build-system python-build-system) (arguments `(#:phases @@ -529,9 +541,6 @@ netcat implementation that supports TLS.") (description "ACME protocol implementation in Python") (license license:asl2.0))) -(define-public python2-acme - (package-with-python2 python-acme)) - (define-public certbot (package (name "certbot") @@ -543,7 +552,7 @@ netcat implementation that supports TLS.") (uri (pypi-uri name version)) (sha256 (base32 - "173619jkq4bg88f6i837z3pcjkrfabrvv8vrpyx18k9i7xnb5xa3")))) + "16lw4n7kwnkvh9sz2f97c7ad1wwp33mg5fc332lpy5n17zpfc8h1")))) (build-system python-build-system) (arguments `(,@(substitute-keyword-arguments (package-arguments python-acme) @@ -763,7 +772,7 @@ then ported to the GNU / Linux environment.") (define-public mbedtls-apache (package (name "mbedtls-apache") - (version "2.5.1") + (version "2.6.0") (source (origin (method url-fetch) @@ -773,7 +782,7 @@ then ported to the GNU / Linux environment.") version "-apache.tgz")) (sha256 (base32 - "1yc1rj0izjihj9hbzvskpa4gjzqf4dm2i84nmmm2s9j1i66fp6jm")))) + "11wnj34rfqxjggmdgf042i49lr6civgbqwv2p7p8bn6k2919vg4r")))) (build-system cmake-build-system) (native-inputs `(("perl" ,perl))) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 64acb44490..e2123557c1 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -44,14 +44,14 @@ (define-public tor (package (name "tor") - (version "0.3.0.10") + (version "0.3.0.11") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "1cas30wk4bhcivi6l9dj7wwlz6pc2jj883x1vijax3b8l54nx3ls")))) + "1hjhxkkrx04ydiddhwb3z2xb0vkcwmn1x8jsdcp6kd6i1qa0fp1a")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-gcc-hardening" diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 36a6b7cd18..38756f06c2 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 André <eu@euandre.org> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> ;;; ;;; This file is part of GNU Guix. ;;; @@ -123,14 +124,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.14.1") + (version "2.14.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "1iic3wiihxp3l3k6d4z886v3869c3dzgddjxnd5124wy1rnlqwkg")))) + "18f70gfzwqd210806hmf94blcd7yv5h9ka6xqkpd2jhijqwp5sah")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -144,7 +145,7 @@ as well as the classic centralized workflow.") (sha256 (base32 - "1whlsiicayalym4hkf01zdiqpw37gdf7c52gw9ki7bv2x3hf3g3y")))))) + "1z05a7hxxndyby3dbj3gaw91sjwmky5d1yph96jmj0fhx78m1lvd")))))) (inputs `(("curl" ,curl) ("expat" ,expat) @@ -552,6 +553,44 @@ collaboration using typical untrusted file hosts or services.") a built-in cache to decrease server I/O pressure.") (license license:gpl2))) +(define-public python-ghp-import + (package + (name "python-ghp-import") + (version "0.5.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/davisp/ghp-import/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0x887v690xsac2hzjkpbvp3a6crh3m08mqbk3nb4xwc9dnk869q7")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'install 'install-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc")) + (licenses (string-append out "/share/licenses"))) + (install-file "README.md" doc) + (install-file "LICENSE" licenses))))))) + (home-page "https://github.com/davisp/ghp-import") + (synopsis "Copy directory to the gh-pages branch") + (description "Script that copies a directory to the gh-pages branch (by +default) of the repository.") + + ;; See <https://bugs.gnu.org/27913>. + (license (license:non-copyleft + "https://raw.githubusercontent.com/davisp/ghp-import/master/LICENSE" + "Tumbolia Public License")))) + +(define-public python2-ghp-import + (package-with-python2 + (strip-python2-variant python-ghp-import))) + (define-public shflags (package (name "shflags") @@ -639,6 +678,79 @@ subcommands helps automate some parts of the flow to make working with it a lot easier.") (license license:bsd-2))) +(define-public stgit + (package + (name "stgit") + (version "0.18") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ctmarinas/stgit/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "19fk6vw3pgp2a98wpd4j3kyiyll5dy9bi4921wq1mrky0l53mj00")))) + (build-system python-build-system) + (inputs + `(("git" ,git))) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; two tests will fail -> disable them. TODO: fix the failing tests + (delete-file "t/t3300-edit.sh") + (delete-file "t/t7504-commit-msg-hook.sh") + (zero? (system* "make" "test"))))))) + (home-page "http://procode.org/stgit/") + (synopsis "Stacked Git") + (description + "StGit is a command-line application that provides functionality similar +to Quilt (i.e., pushing/popping patches to/from a stack), but using Git +instead of @command{diff} and @command{patch}. StGit stores its patches in a +Git repository as normal Git commits, and provides a number of commands to +manipulate them in various ways.") + (license license:gpl2))) + +(define-public vcsh + (package + (name "vcsh") + (version "1.20151229") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/RichiH/vcsh/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1ym3swkh738c3vciffvlr96vqzhwmzkb8ajqzap8f0j9n039a1mf")))) + (build-system gnu-build-system) + (native-inputs + `(("which" ,which))) + (inputs + `(("git" ,git) + ("perl" ,perl) + ("perl-test-harness" ,perl-test-harness) + ("perl-shell-command" ,perl-shell-command) + ("perl-test-most" ,perl-test-most))) + (arguments + '(#:phases (modify-phases %standard-phases + (delete 'configure) + (delete 'build)) + #:make-flags (list (string-append "PREFIX=" + (assoc-ref %outputs "out"))) + #:test-target "test")) + (home-page "https://github.com/RichiH/vcsh") + (synopsis "Version control system for @code{$HOME}") + (description + "vcsh version-controls configuration files in several Git repositories, +all in one single directory. They all maintain their working trees without +clobbering each other or interfering otherwise. By default, all Git +repositories maintained via vcsh store the actual files in @code{$HOME}, +though this can be overridden.") + (license license:gpl2+))) + (define-public git-test-sequence (let ((commit "48e5a2f5a13a5f30452647237e23362b459b9c76")) (package @@ -1263,7 +1375,7 @@ output of the 'git' command.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (native-inputs `(("autoconf" ,autoconf) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9c728c174a..2b9f5aa06c 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> @@ -580,14 +580,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (define-public ffmpeg (package (name "ffmpeg") - (version "3.3.3") + (version "3.3.4") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "07is8msrhxr1dk6vgwa192k2pl2a0in1h9w8f9cknlvbvhn01afj")))) + "0mx9dvad3lkyhvsrblf280x2bz6dxajya1ylnspbdzldj0dpxfcq")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) @@ -749,14 +749,14 @@ audio/video codec library.") (define-public ffmpeg-2.8 (package (inherit ffmpeg) - (version "2.8.12") + (version "2.8.13") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "1gc32akvdms3rywphnap94lqqici8l5898a09ir1ad5rif5g24v2")))) + "0hyqr391pika4vgynv90bacz11wdpqcqfgj5h7g5jrmgvz6hgj68")))) (arguments (substitute-keyword-arguments (package-arguments ffmpeg) ((#:configure-flags flags) @@ -780,10 +780,7 @@ audio/video codec library.") "1a22b913p2227ljz89c4fgjlyln5gcz8z58w32r0wh4srnnd60y4")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("git" ,git) ; needed for a test - ("libtool" ,libtool) + `(("git" ,git) ; needed for a test ("pkg-config" ,pkg-config))) ;; FIXME: Add optional inputs once available. (inputs @@ -819,9 +816,8 @@ audio/video codec library.") ("perl" ,perl) ("pulseaudio" ,pulseaudio) ("python" ,python-wrapper) - ("qt" ,qt) ; FIXME: reenable modular qt after update - requires building - ;("qtbase" ,qtbase) with -std=gnu++11. - ;("qtx11extras" ,qtx11extras) + ("qtbase" ,qtbase) + ("qtx11extras" ,qtx11extras) ("sdl" ,sdl) ("sdl-image" ,sdl-image) ("speex" ,speex) @@ -829,33 +825,27 @@ audio/video codec library.") ("xcb-util-keysyms" ,xcb-util-keysyms))) (arguments `(#:configure-flags - `(;; Gross workaround for <https://trac.videolan.org/vlc/ticket/16907>. - ;; In our case, this led to a test failure: - ;; test_libvlc_equalizer: libvlc/equalizer.c:122: test_equalizer: Assertion `isnan(libvlc_audio_equalizer_get_amp_at_index (equalizer, u_bands))' failed. - "ac_cv_c_fast_math=no" - + `("CXXFLAGS=-std=gnu++11" ,(string-append "LDFLAGS=-Wl,-rpath -Wl," (assoc-ref %build-inputs "ffmpeg") "/lib")) ;needed for the tests #:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap - (lambda _ (zero? (system* "sh" "bootstrap")))) - (add-before 'bootstrap 'fix-livemedia-utils-prefix + (add-after 'unpack 'patch-source (lambda* (#:key inputs #:allow-other-keys) (let ((livemedia-utils (assoc-ref inputs "livemedia-utils"))) - (substitute* "configure.ac" + (substitute* "configure" (("LIVE555_PREFIX=\\$\\{LIVE555_PREFIX-\"/usr\"\\}") (string-append "LIVE555_PREFIX=" livemedia-utils))) + ;; Some of the tests require using the display to test out VLC, + ;; 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" + (("<qx11info_x11.h>") "<QtX11Extras/qx11info_x11.h>")) #t))) - (add-before 'configure 'remove-visual-tests - ;; Some of the tests require using the display to test out VLC, - ;; which fails in our sandboxed build system - (lambda _ - (substitute* "test/run_vlc.sh" - (("./vlc --ignore-config") "echo")) - #t)) (add-after 'install 'regenerate-plugin-cache (lambda* (#:key outputs #:allow-other-keys) ;; The 'install-exec-hook' rule in the top-level Makefile.am @@ -980,7 +970,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.26.0") + (version "0.27.0") (source (origin (method url-fetch) (uri (string-append @@ -988,7 +978,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "0ihvnwrp24jjf43k1hvy8n8w4ipl4z7apjppd4i0y9jzilsyzwys")) + "1754371fkva8aqxgbm50jxyvij7mnysq0538bf6zghbmigqqn79l")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs @@ -1121,7 +1111,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.08.27.1") + (version "2017.09.24") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1129,7 +1119,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "1b0ad0fkayj6l0cd2rkycn6lbms8ps0y887r407c850pmaw27n1j")))) + "0j2m75j0d1n83i7jzpkcj7ir0bkskj024j9b0yi88zipcg740wbx")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -1238,7 +1228,7 @@ other site that youtube-dl supports.") (define-public you-get (package (name "you-get") - (version "0.4.803") + (version "0.4.915") (source (origin (method url-fetch) (uri (string-append @@ -1247,7 +1237,7 @@ other site that youtube-dl supports.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1rjy809x67dadzvj3midkhcda2kp6rqmbj6rbhjd5f16rvqgn7jp")))) + "147qf8kdxjv9003fgx50ws0rmjjq98sv11q6c3sdwd29zylaj1ql")))) (build-system python-build-system) (arguments ;; no tests @@ -2260,12 +2250,13 @@ practically any type of media.") #:phases ;; build scripts not in root of archive (modify-phases %standard-phases - (add-before 'configure 'pre-configure + (add-after 'unpack 'change-to-build-dir (lambda _ - (chdir "Project/GNU/Library"))) - (add-before 'configure 'autogen + (chdir "Project/GNU/Library") + #t)) + (add-after 'change-to-build-dir 'autogen (lambda _ - (zero? (system* "./autogen.sh"))))))) + (zero? (system* "sh" "autogen.sh"))))))) (home-page "https://mediaarea.net/en/MediaInfo") (synopsis "Library for retrieving media metadata") (description "MediaInfo is a library used for retrieving technical @@ -2321,9 +2312,9 @@ MPEG-2, MPEG-4, DVD (VOB)... (add-before 'configure 'pre-configure (lambda _ (chdir "Project/GNU/CLI"))) - (add-before 'configure 'autogen + (add-after 'unpack 'autogen (lambda _ - (zero? (system* "./autogen.sh"))))))) + (zero? (system* "sh" "autogen.sh"))))))) (home-page "https://mediaarea.net/en/MediaInfo") (synopsis "Utility for reading media metadata") (description "MediaInfo is a utility used for retrieving technical diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 818d2d207f..dffd6d96c0 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -60,7 +60,7 @@ (define-public vim (package (name "vim") - (version "8.0.0808") + (version "8.0.1130") (source (origin (method url-fetch) (uri (string-append "https://github.com/vim/vim/archive/v" @@ -68,7 +68,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0qrn9fhq5wdrrf2qhpygwfm5rynl32l406xhbr7lg69r9wl8cjjn")))) + "0zqyk7086crc6q5fil38szppx9sgd14fs3wb9h4ak13jg6s2ir90")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -102,6 +102,27 @@ Vim is perfect for all kinds of text editing, from composing email to editing configuration files.") (license license:vim))) +(define-public xxd + (package (inherit vim) + (name "xxd") + (arguments + `(#:make-flags '("CC=gcc") + #:tests? #f ; there are none + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'chdir + (lambda _ + (chdir "src/xxd"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "xxd" bin) + #t)))))) + (synopsis "Hexdump utility from vim") + (description "This package provides the Hexdump utility xxd that comes +with the editor vim."))) + (define-public vim-full (package ;; This package should share its source with Vim, but it doesn't diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index d06c55bd57..344ffc786b 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -72,26 +72,16 @@ (define-public qemu (package (name "qemu") - (version "2.9.0") + (version "2.10.0") (source (origin (method url-fetch) - (uri (string-append "http://wiki.qemu-project.org/download/qemu-" + (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) - (patches (search-patches "qemu-CVE-2017-7493.patch" - "qemu-CVE-2017-8112.patch" - "qemu-CVE-2017-8309.patch" - "qemu-CVE-2017-8379.patch" - "qemu-CVE-2017-8380.patch" - "qemu-CVE-2017-9524.patch" - "qemu-CVE-2017-10664.patch" - "qemu-CVE-2017-10806.patch" - "qemu-CVE-2017-10911.patch" - "qemu-CVE-2017-11334.patch" - "qemu-CVE-2017-11434.patch" - "qemu-CVE-2017-12809.patch")) + (patches (search-patches "qemu-CVE-2017-13711.patch" + "qemu-CVE-2017-14167.patch")) (sha256 (base32 - "08mhfs0ndbkyqgw7fjaa9vjxf4dinrly656f6hjzvmaz7hzc677h")))) + "0dgk7zcni41nf1jp84y0m6dk2nb4frnh571m8hkiv0m4hz4imn2m")))) (build-system gnu-build-system) (arguments '(;; Running tests in parallel can occasionally lead to failures, like: @@ -323,14 +313,14 @@ manage system or application containers.") (define-public libvirt (package (name "libvirt") - (version "3.6.0") + (version "3.7.0") (source (origin (method url-fetch) (uri (string-append "https://libvirt.org/sources/libvirt-" version ".tar.xz")) (sha256 (base32 - "0gcyql5dp6j370kvik9hjhxirrg89m7l1q52yq0g75h7jpv9fb1s")))) + "1fk75cdzg59y9hnfdpdwv83fsc1yffy3lac4ch19zygfkqhcnysf")))) (build-system gnu-build-system) (arguments `(;; FAIL: virshtest @@ -377,7 +367,6 @@ manage system or application containers.") ("gnutls" ,gnutls) ("dbus" ,dbus) ("qemu" ,qemu) - ("polkit" ,polkit) ("libpcap" ,libpcap) ("libnl" ,libnl) ("libuuid" ,util-linux) @@ -385,8 +374,6 @@ manage system or application containers.") ("curl" ,curl) ("openssl" ,openssl) ("cyrus-sasl" ,cyrus-sasl) - ("perl" ,perl) - ("python" ,python-2) ("libyajl" ,libyajl) ("audit" ,audit) ("dmidecode" ,dmidecode) @@ -395,7 +382,11 @@ manage system or application containers.") ("iproute" ,iproute) ("iptables" ,iptables))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("xsltproc" ,libxslt) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("polkit" ,polkit) + ("python" ,python-2))) (home-page "https://libvirt.org") (synopsis "Simple API for virtualization") (description "Libvirt is a C toolkit to interact with the virtualization @@ -438,7 +429,7 @@ to integrate other virtualization mechanisms if needed.") ("intltool" ,intltool) ("glib" ,glib "bin") ("vala" ,vala))) - (home-page "http://libvirt.org") + (home-page "https://libvirt.org") (synopsis "GLib wrapper around libvirt") (description "libvirt-glib wraps the libvirt library to provide a high-level object-oriented API better suited for glib-based applications, via @@ -455,13 +446,13 @@ three libraries: (define-public python-libvirt (package (name "python-libvirt") - (version "3.4.0") + (version "3.7.0") (source (origin (method url-fetch) (uri (pypi-uri "libvirt-python" version)) (sha256 (base32 - "04dma3979171p9yf0cg7m03shk038hc9vyfm9lb8z60qyn0pg9xg")))) + "0vy0ai8z88yhzqfk1n08z1gda5flrqxcw9lg1012b3zg125qljhy")))) (build-system python-build-system) (arguments `(#:phases @@ -481,7 +472,7 @@ three libraries: (native-inputs `(("pkg-config" ,pkg-config) ("python-nose" ,python-nose))) - (home-page "http://libvirt.org") + (home-page "https://libvirt.org") (synopsis "Python bindings to libvirt") (description "This package provides Python bindings to the libvirt virtualization library.") @@ -493,7 +484,7 @@ virtualization library.") (define-public virt-manager (package (name "virt-manager") - (version "1.4.2") + (version "1.4.3") (source (origin (method url-fetch) (uri (string-append "https://virt-manager.org/download/sources" @@ -501,7 +492,7 @@ virtualization library.") version ".tar.gz")) (sha256 (base32 - "0x6mnqw8bng3r69pvmnq9q6yyhicxg22yz62b6dzbb4z16xl1r23")))) + "093azs8p4p7y4nf5j25xpsvdxww7gky1g0hs8mkcvmpxl2wjd0jj")))) (build-system python-build-system) (arguments `(#:python ,python-2 diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 61ebf0d5fa..40ee9d139c 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -153,7 +153,7 @@ and probably others.") (define-public openvpn (package (name "openvpn") - (version "2.4.3") + (version "2.4.4") (source (origin (method url-fetch) (uri (string-append @@ -161,14 +161,15 @@ and probably others.") version ".tar.xz")) (sha256 (base32 - "1yrnvvnap2ghqas10l8jfg3njx57b8swh3n9wyp556qqgz4mzq8m")))) + "102an395nv8l7qfx3syydzhmd9xfbycd6gvwy0h2kjz8w67ipkcn")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-iproute2=yes"))) (native-inputs `(("iproute2" ,iproute))) (inputs - `(("lzo" ,lzo) + `(("lz4" ,lz4) + ("lzo" ,lzo) ("openssl" ,openssl) ("linux-pam" ,linux-pam))) (home-page "https://openvpn.net/") diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm index 0489212197..a758f2920b 100644 --- a/gnu/packages/w3m.scm +++ b/gnu/packages/w3m.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index b5fb39b95a..3e91b4e89b 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. @@ -185,7 +185,7 @@ access.") (define-public qutebrowser (package (name "qutebrowser") - (version "0.10.1") + (version "0.11.0") (source (origin (method url-fetch) @@ -194,7 +194,7 @@ access.") "qutebrowser-" version ".tar.gz")) (sha256 (base32 - "05qryn56w2pbqhir4pl99idx7apx2xqw9f8wmbrhj59b1xgr3x2p")))) + "13ihx66jm1dd6vx8px7pm0kbzf2sf9x43hhivc1rp17kahnxxdyv")))) (build-system python-build-system) (native-inputs `(("asciidoc" ,asciidoc))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 13a46a5503..a2af98da53 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -13,13 +13,13 @@ ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org> -;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz> +;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> -;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -76,9 +76,11 @@ #:use-module (gnu packages java) #:use-module (gnu packages javascript) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages libidn) #:use-module (gnu packages libunistring) #:use-module (gnu packages lua) + #:use-module (gnu packages markup) #:use-module (gnu packages ncurses) #:use-module (gnu packages base) #:use-module (gnu packages perl) @@ -92,7 +94,8 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) - #:use-module (gnu packages statistics)) + #:use-module (gnu packages statistics) + #:use-module (gnu packages version-control)) (define-public httpd (package @@ -104,7 +107,8 @@ version ".tar.bz2")) (sha256 (base32 - "0fn1778mxhf78np2d8qlycg1c2ak18rxax41plahasca4clc3z3i")))) + "0fn1778mxhf78np2d8qlycg1c2ak18rxax41plahasca4clc3z3i")) + (patches (search-patches "httpd-CVE-2017-9798.patch")))) (build-system gnu-build-system) (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config' (inputs `(("apr" ,apr) @@ -157,10 +161,12 @@ and its related documentation.") (("/bin/sh") (which "sh"))) #t)) (replace 'configure + ;; The configure script is hand-written, not from GNU autotools. (lambda* (#:key outputs #:allow-other-keys) (let ((flags (list (string-append "--prefix=" (assoc-ref outputs "out")) "--with-http_ssl_module" + "--with-http_v2_module" "--with-pcre-jit" "--with-debug" ;; Even when not cross-building, we pass the @@ -185,6 +191,12 @@ and its related documentation.") (format #t "environment variable `CC' set to `gcc'~%") (format #t "configure flags: ~s~%" flags) (zero? (apply system* "./configure" flags))))) + (add-after 'install 'install-man-page + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man (string-append out "/share/man"))) + (install-file "objs/nginx.8" (string-append man "/man8")) + #t))) (add-after 'install 'fix-root-dirs (lambda* (#:key outputs #:allow-other-keys) ;; 'make install' puts things in strange places, so we need to @@ -1905,6 +1917,33 @@ string generation and manipulation, and processing and preparing HTTP headers.") (license l:perl-license))) +(define-public perl-cgi-session + (package + (name "perl-cgi-session") + (version "4.48") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-" + version + ".tar.gz")) + (sha256 + (base32 + "1xsl2pz1jrh127pq0b01yffnj4mnp9nvkp88h5mndrscq9hn8xa6")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (inputs `(("perl-cgi" ,perl-cgi))) + (home-page + "http://search.cpan.org/dist/CGI-Session") + (synopsis + "Persistent session data in CGI applications") + (description + "@code{CGI::Session} provides modular session management system across +HTTP requests.") + (license l:perl-license))) + (define-public perl-cgi-simple (package (name "perl-cgi-simple") @@ -2177,6 +2216,37 @@ composed of HTML::Element style components.") <form> ... </form> instance.") (license l:perl-license))) +(define-public perl-html-scrubber + (package + (name "perl-html-scrubber") + (version "0.15") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-" + version + ".tar.gz")) + (sha256 + (base32 + "1m1f8gm2jry42zxja05dxp2ck7y66m7i8vc38nj6hccnwlby6cvi")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-cpan-meta" ,perl-test-cpan-meta) + ("perl-test-eol" ,perl-test-eol) + ("perl-test-memory-cycle" ,perl-test-memory-cycle) + ("perl-test-notabs" ,perl-test-notabs))) + (inputs + `(("perl-html-parser" ,perl-html-parser))) + (home-page + "http://search.cpan.org/dist/HTML-Scrubber") + (synopsis + "Perl extension for scrubbing/sanitizing html") + (description + "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML.") + (license l:perl-license))) + (define-public perl-html-lint (package (name "perl-html-lint") @@ -2226,7 +2296,7 @@ in tables within an HTML document, either as text or encoded element trees.") (define-public perl-html-tree (package (name "perl-html-tree") - (version "5.06") + (version "5.07") (source (origin (method url-fetch) @@ -2234,7 +2304,7 @@ in tables within an HTML document, either as text or encoded element trees.") "HTML-Tree-" version ".tar.gz")) (sha256 (base32 - "0vjk4xrybjqs511qrh9cymhpbg9m3jjqr52qr035k6nzrccyndlw")))) + "1gyvm4qlwm9y6hczkpnrdfl303ggbybr0nqxdjw09hii8yw4sdzh")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) @@ -3380,10 +3450,18 @@ web browsing, used for automating interaction with websites.") (base32 "1yxplx1q1qk2fvnzqrbk01lz26fy1lyhay51a3ky7q3jgh9p01rb")))) (build-system perl-build-system) - (arguments - `(#:tests? #f)) ; Tests require further modules to be packaged (native-inputs - `(("perl-module-install" ,perl-module-install))) + `(("perl-class-errorhandler" ,perl-class-errorhandler) + ("perl-datetime" ,perl-datetime) + ("perl-datetime-format-mail" ,perl-datetime-format-mail) + ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf) + ("perl-feed-find" ,perl-feed-find) + ("perl-module-install" ,perl-module-install) + ("perl-module-pluggable" ,perl-module-pluggable) + ("perl-uri-fetch" ,perl-uri-fetch) + ("perl-test-simple" ,perl-test-simple) + ("perl-xml-atom" ,perl-xml-atom) + ("perl-xml-rss" ,perl-xml-rss))) (inputs `(("perl-data-page" ,perl-data-page) ("perl-libwww" ,perl-libwww) @@ -3500,13 +3578,13 @@ in systems and applications.") (define-public r-servr (package (name "r-servr") - (version "0.6") + (version "0.7") (source (origin (method url-fetch) (uri (cran-uri "servr" version)) (sha256 (base32 - "0sqz3wssxa19g9mpmf9s4gx2a5rvzl8nrd11qkgpz5v3iqsc6ysr")))) + "0rxh89csqlpyf9wv5wlymya9kbddj79mlmxz2x0xmls12gbrxaaa")))) (build-system r-build-system) (propagated-inputs `(("r-httpuv" ,r-httpuv) @@ -3995,6 +4073,74 @@ parse both valid and invalid web content. It is developed as part of the NetSurf project.") (license l:expat))) +(define-public ikiwiki + (package + (name "ikiwiki") + (version "3.20170111") + (source + (origin + (method url-fetch) + (uri (string-append "http://snapshot.debian.org/archive/debian/" + "20170111T215449Z/pool/main/i/ikiwiki/ikiwiki_" + version ".tar.xz")) + (sha256 + (base32 + "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz")))) + (build-system perl-build-system) + (arguments + `(;; Image tests fail + ;; + ;; Test Summary Report + ;; ------------------- + ;; t/img.t (Wstat: 2304 Tests: 62 Failed: 9) + ;; Failed tests: 21, 27-28, 30-35 + ;; Non-zero exit status: 9 + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (path (getenv "PERL5LIB"))) + (for-each (lambda (file) + (wrap-program file + `("PERL5LIB" ":" prefix (,path)))) + (find-files bin)) + #t)))))) + (native-inputs + `(("which" ,which) + ("perl-html-tagset" ,perl-html-tagset) + ("perl-timedate" ,perl-timedate) + ("perl-xml-sax" ,perl-xml-sax) + ("perl-xml-simple" ,perl-xml-simple) + ("gettext" ,gettext-minimal) + ("subversion" ,subversion) + ("git" ,git) + ("bazaar" ,bazaar) + ("cvs" ,cvs) + ("mercurial" ,mercurial))) + (inputs + `(("python" ,python-wrapper) + ("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-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-yaml-libyaml" ,perl-yaml-libyaml))) + (home-page "https://ikiwiki.info/") + (synopsis "Wiki compiler, capable of generating HTML") + (description + "Ikiwiki is a wiki compiler, capable of generating a static set of web +pages, but also incorporating dynamic features like a web based editor and +commenting.") + (license l:gpl2+))) + (define-public libwapcaplet (package (name "libwapcaplet") @@ -5047,3 +5193,78 @@ websites lacking feeds. Supported websites include Facebook, Twitter, Instagram and YouTube.") (license (list l:public-domain l:expat)))) ;; vendor/simplehtmldom/simple_html_dom.php + +(define-public linkchecker + (package + (name "linkchecker") + (version "9.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "LinkChecker" version)) + (sha256 + (base32 + "0v8pavf0bx33xnz1kwflv0r7lxxwj7vg3syxhy2wzza0wh6sc2pf")))) + (build-system python-build-system) + (inputs + `(("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))))) + (home-page "https://linkcheck.github.io/linkchecker") + (synopsis "Check websites for broken links") + (description "LinkChecker is a website validator. It checks for broken +links in websites. It is recursive and multithreaded providing output in +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 + +(define-public cadaver + (package + (name "cadaver") + (version "0.23.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.webdav.org/cadaver/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x")))) + (build-system gnu-build-system) + ;; TODO: Unbundle libneon and make build succeed with new neon. + (arguments + `(#:configure-flags (list "--with-ssl=openssl") + #:tests? #f)) ;No tests included + (native-inputs + `(("gettext" ,gnu-gettext) + ("pkg-config" ,pkg-config) + ("intltool" ,intltool))) + (inputs + `(("expat" ,expat) + ("openssl" ,openssl))) + (home-page "http://www.webdav.org/cadaver") + (synopsis "Command-line WebDAV client") + (description + "Cadaver is a command-line WebDAV client for Unix. It supports +file upload, download, on-screen display, namespace operations (move/copy), +collection creation and deletion, and locking operations.") + (license l:gpl2))) diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 5ab27b49f5..7b4b306e8f 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -46,6 +46,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages ruby) + #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) @@ -53,14 +54,14 @@ (define-public webkitgtk (package (name "webkitgtk") - (version "2.16.6") + (version "2.18.0") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "08abxbhi2n1pfby9f2c20z8mpmbvbs2z7vf0p5ckq4jkz46na8zw")))) + "1383wlv98l8fwmhzy0fad82a44h5svm89c1kpa03wsp37mmf90xm")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no tests @@ -69,7 +70,16 @@ "-DPORT=GTK" (string-append ; uses lib64 by default "-DLIB_INSTALL_DIR=" - (assoc-ref %outputs "out") "/lib")) + (assoc-ref %outputs "out") "/lib") + + ;; XXX Adding GStreamer GL support would apparently + ;; require adding gst-plugins-bad to the inputs, + ;; which might entail a security risk as a result of + ;; the plugins of dubious code quality that are + ;; included. More investigation is needed. For + ;; now, we explicitly disable it to prevent an error + ;; at configuration time. + "-DUSE_GSTREAMER_GL=OFF") #:phases (modify-phases %standard-phases (add-after @@ -112,6 +122,7 @@ ("libnotify" ,libnotify) ("libpng" ,libpng) ("libsecret" ,libsecret) + ("libtasn1" ,libtasn1) ("libwebp" ,libwebp) ("libxcomposite" ,libxcomposite) ("libxml2" ,libxml2) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 513b0eb999..a1637b9d78 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -55,14 +55,14 @@ (define-public wine (package (name "wine") - (version "2.0.1") + (version "2.0.2") (source (origin (method url-fetch) (uri (string-append "https://dl.winehq.org/wine/source/2.0" "/wine-" version ".tar.xz")) (sha256 (base32 - "10qm0xxqzvl4y3mhvaxcaacrcs8d5kdz5wf0gbxpmp36wnm4xyvc")))) + "16iwf48cfi39aqyy8131jz4x7lr551c9yc0mnks7g24j77sq867p")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 5ba29c3b3d..b7e44cd151 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -168,14 +168,14 @@ commands would.") (define-public i3-wm (package (name "i3-wm") - (version "4.13") + (version "4.14.1") (source (origin (method url-fetch) (uri (string-append "https://i3wm.org/downloads/i3-" version ".tar.bz2")) (sha256 (base32 - "12ngz32swh9n85xy0cz1lq16aqi9ys5hq19v589q9a97wn1k3hcl")))) + "1cazmfbbx6n8c81h6x6pdayq3mxs2ml3adz165z8vapkc72kl1nh")))) (build-system gnu-build-system) (arguments `(#:make-flags diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index edb70a37a8..7ca4986a0e 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -560,6 +560,41 @@ xedit, for example. The human factors crowd would agree it should make things less distracting.") (license license:public-domain))) +(define-public xautomation + (package + (name "xautomation") + (version "1.09") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.hoopajoo.net/static/projects/" + "xautomation-" version ".tar.gz")) + + (sha256 + (base32 + "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf")))) + (build-system gnu-build-system) + (inputs + `(("libpng" ,libpng) + ("libx11" ,libx11) + ("libxi" ,libxi) + ("libxtst" ,libxtst))) + (native-inputs + `(("inputproto" ,inputproto) + ("xextproto" ,xextproto) + ("xproto" ,xproto))) + (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 +do visual scraping to find things on the screen. The control interface +allows mouse movement, clicking, button up/down, key up/down, etc, and +uses the XTest extension so you don't have the annoying problems that +xse has when apps ignore sent events. The visgrep program can find +images inside of images and reports the coordinates, allowing progams +to find buttons, etc, on the screen to click on.") + (home-page "https://www.hoopajoo.net/projects/xautomation.html") + (license license:gpl2+))) + (define-public xlockmore (package (name "xlockmore") diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 35c425a89c..b936dc45d9 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Petter <petter@mykolab.ch> ;;; diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index f1b515703b..ff9862e4b9 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net> +;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -848,13 +849,13 @@ parsing/saving.") (define-public python-pyxb (package (name "python-pyxb") - (version "1.2.5") + (version "1.2.6") (source (origin (method url-fetch) (uri (pypi-uri "PyXB" version)) (sha256 (base32 - "0rzzwibfqa28gxgcxx4cybx1qcg0g6fand06ykj3gz7z5kp653sf")))) + "1d17pyixbfvjyi2lb0cfp0ch8wwdf44mmg3r5pwqhyyqs66z601a")))) (build-system python-build-system) (home-page "http://pyxb.sourceforge.net/") (synopsis "Python XML Schema Bindings") @@ -1170,14 +1171,14 @@ libxls cannot write Excel files.") (define-public freexl (package (name "freexl") - (version "1.0.2") + (version "1.0.4") (source (origin (method url-fetch) (uri (string-append "http://www.gaia-gis.it/gaia-sins/" name "-" version ".tar.gz")) (sha256 (base32 - "17a0yrjb0gln7819j0vp7y25imhvwpil2b0rm44mwgzml0a4i6mk")))) + "09bwzqjc41cc8qw8qkw9wq58rg9nax8r3fg19iny5vmw1c0z23sh")))) (build-system gnu-build-system) (home-page "https://www.gaia-gis.it/fossil/freexl/index") (synopsis "Read Excel files") diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index b72153894a..d66cf417f6 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2016, 2017 John Darrington <jmd@gnu.org> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> +;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,10 +40,12 @@ #:use-module (guix build-system python) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages anthy) #:use-module (gnu packages autotools) #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages emacs) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) @@ -54,6 +57,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages libbsd) + #:use-module (gnu packages libedit) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages m4) @@ -62,6 +66,7 @@ #: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 spice) #:use-module (gnu packages video) #:use-module (gnu packages xiph) @@ -2418,7 +2423,7 @@ including most mice, keyboards, tablets and touchscreens.") (define-public xf86-input-libinput (package (name "xf86-input-libinput") - (version "0.25.1") + (version "0.26.0") (source (origin (method url-fetch) (uri (string-append @@ -2426,7 +2431,7 @@ including most mice, keyboards, tablets and touchscreens.") name "-" version ".tar.bz2")) (sha256 (base32 - "1q67hjd67ni1nq7kgxdrrdgkyhzaqvvn2vlnsiiq9w4y3icpv7s8")))) + "0yrqs88b7yn9nljwlxzn76jfmvf0sh939kzij5b2jvr2qa7mbjmb")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -2646,7 +2651,7 @@ as USB mice.") (define-public xf86-video-ati (package (name "xf86-video-ati") - (version "7.9.0") + (version "7.10.0") (source (origin (method url-fetch) @@ -2656,7 +2661,7 @@ as USB mice.") ".tar.bz2")) (sha256 (base32 - "0xcq0lncb5p4sas5866qpkjyp1v8ksalw7m1gmqb3brhccp8gb9w")))) + "0yafix56vkqglw243cwb94nv91vbjv12sqh29x1bap0hwd1dclgf")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) ("xxf86driproto" ,xf86driproto) @@ -2885,8 +2890,8 @@ X server.") (define-public xf86-video-intel - (let ((commit "2100efa105e8c9615eda867d39471d78e500b1bb") - (revision "7")) + (let ((commit "c89905754b929f0421db7ea6d60b8942ccdbd8af") + (revision "8")) (package (name "xf86-video-intel") (version (string-append "2.99.917-" revision "-" @@ -2900,7 +2905,7 @@ X server.") (commit commit))) (sha256 (base32 - "15fg844msmixsvlxcd5wm2awmns652sxcxj2wmp6819lr32lc4ir")) + "1xiyxhlq88vvgjavhxdkk933b5q7vm4jn6db144a6sqzifwaj672")) (file-name (string-append name "-" version)))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) @@ -5073,8 +5078,21 @@ over Xlib, including: (base32 "162s1v901djr57gxmmk4airk8hiwcz79dqyz72972x1lw1k82yk7")) (patches - (search-patches "xorg-server-CVE-2017-10971.patch" - "xorg-server-CVE-2017-10972.patch")))) + (cons + ;; See: + ;; https://lists.fedoraproject.org/archives/list/devel@lists. + ;; fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/ + (origin + (method url-fetch) + (uri (string-append + "http://pkgs.fedoraproject.org/cgit/rpms/xorg-x11-server.git" + "/plain/06_use-intel-only-on-pre-gen4.diff")) + (sha256 + (base32 + "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q")) + (file-name "xorg-server-use-intel-only-on-pre-gen4.diff")) + (search-patches "xorg-server-CVE-2017-10971.patch" + "xorg-server-CVE-2017-10972.patch"))))) (build-system gnu-build-system) (propagated-inputs `(("dri2proto" ,dri2proto) @@ -5881,7 +5899,7 @@ basic eye-candy effects.") (define-public xpra (package (name "xpra") - (version "2.1.1") + (version "2.1.2") (source (origin (method url-fetch) @@ -5889,7 +5907,7 @@ basic eye-candy effects.") version ".tar.xz")) (sha256 (base32 - "0fgdddhafxnpjlw5nhfyfyimxp43hdn4yhp1vbsjrz3ypfsfhxq7")))) + "0a5ffs6gm7j7vzqdbhfmjn9z8qxm9m9as7a1vjmjx63yxv9jqihn")))) (build-system python-build-system) (inputs `(("ffmpeg", ffmpeg) ("flac", flac) @@ -5970,3 +5988,96 @@ disconnect from these programs and reconnect from the same or another machine, without losing any state. It can also be used to forward full desktops from X11 servers, Windows, or macOS.") (license license:gpl2+))) + +(define-public uim + (package + (name "uim") + (version "1.8.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/uim/uim/releases/download/uim-" + version "/uim-" version ".tar.bz2")) + (sha256 + (base32 + "0pr3rfqpxha8p6cxzdjsxbbmmr76riklzw36f68phd1zqw1sh7kv")))) + (build-system gnu-build-system) + (inputs + `(("anthy" ,anthy) + ("libedit" ,libedit) + ("libxft" ,libxft) + ("m17n-lib" ,m17n-lib))) + (native-inputs + `(("emacs" ,emacs-minimal) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (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 + (list "--with-anthy-utf8" + (string-append "--with-lispdir=" %output + "/share/emacs/site-lisp/guix.d") + ;; Set proper runpath + (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) + #:phases + (modify-phases %standard-phases + ;; Set path of uim-el-agent and uim-el-helper-agent executables + (add-after 'configure 'configure-uim-el + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "emacs/uim-var.el" + (("\"(uim-el-agent|uim-el-helper-agent)\"" _ executable) + (string-append "\"" (assoc-ref outputs "out") + "/bin/" executable "\""))) + #t)) + ;; Generate emacs autoloads for uim.el + (add-after 'install 'make-autoloads + (lambda* (#:key outputs #:allow-other-keys) + (emacs-generate-autoloads + ,name (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp")) + #t))))) + (home-page "https://github.com/uim/uim") + (synopsis "Multilingual input method framework") + (description "Uim is a multilingual input method library and environment. +It provides a simple, easily extensible and high code-quality input method +development platform, and useful input method environment for users of desktop +and embedded platforms.") + (license (list license:lgpl2.1+ ; scm/py.scm, pixmaps/*.{svg,png} (see pixmaps/README) + license:gpl2+ ; scm/pinyin-big5.scm + license:gpl3+ ; scm/elatin-rules.cm + license:public-domain ; scm/input-parse.scm, scm/match.scm + ;; gtk2/toolbar/eggtrayicon.{ch}, + ;; qt3/chardict/kseparator.{cpp,h}, + ;; qt3/pref/kseparator.{cpp,h} + license:lgpl2.0+ + ;; pixmaps/*.{svg,png} (see pixmaps/README), + ;; all other files + license:bsd-3)))) + +(define-public uim-gtk + (package + (inherit uim) + (name "uim-gtk") + (inputs + `(("gtk" ,gtk+) + ("gtk" ,gtk+-2) + ,@(package-inputs uim))) + (synopsis "Multilingual input method framework (GTK+ support)"))) + +(define-public uim-qt + (package + (inherit uim) + (name "uim-qt") + (inputs + `(("qt" ,qt-4) + ,@(package-inputs uim))) + (arguments + (substitute-keyword-arguments (package-arguments uim) + ((#:configure-flags configure-flags) + (append configure-flags (list "--with-qt4-immodule" + "--with-qt4"))))) + (synopsis "Multilingual input method framework (Qt support)"))) diff --git a/gnu/services.scm b/gnu/services.scm index 8ef1ae7c77..329b7b1513 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -23,6 +23,7 @@ #:use-module (guix store) #:use-module (guix records) #:use-module (guix profiles) + #:use-module (guix discovery) #:use-module (guix sets) #:use-module (guix ui) #:use-module ((guix utils) #:select (source-properties->location)) @@ -49,6 +50,11 @@ service-type-compose service-type-extend service-type-default-value + service-type-description + service-type-location + + %service-type-path + fold-service-types service service? @@ -91,7 +97,8 @@ %activation-service etc-service - file-union)) ;XXX: for lack of a better place + file-union ;XXX: for lack of a better place + directory-union)) ;;; Comment: ;;; @@ -145,7 +152,15 @@ ;; Optional default value for instances of this type. (default-value service-type-default-value ;Any - (default &no-default-value))) + (default &no-default-value)) + + ;; Meta-data. + (description service-type-description ;string + (default #f)) + (location service-type-location ;<location> + (default (and=> (current-source-location) + source-properties->location)) + (innate))) (define (write-service-type type port) (format port "#<service-type ~a ~a>" @@ -154,6 +169,27 @@ (set-record-type-printer! <service-type> write-service-type) +(define %distro-root-directory + ;; Absolute file name of the module hierarchy. + (dirname (search-path %load-path "guix.scm"))) + +(define %service-type-path + ;; Search path for service types. + (make-parameter `((,%distro-root-directory . "gnu/services") + (,%distro-root-directory . "gnu/system")))) + +(define* (fold-service-types proc seed + #:optional + (modules (all-modules (%service-type-path)))) + "For each service type exported by one of MODULES, call (PROC RESULT). SEED +is used as the initial value of RESULT." + (fold-module-public-variables (lambda (object result) + (if (service-type? object) + (proc object result) + result)) + '() + modules)) + ;; Services of a given type. (define-record-type <service> (make-service type value) diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm index 22814a6c09..0a3e9f66bc 100644 --- a/gnu/services/audio.scm +++ b/gnu/services/audio.scm @@ -45,9 +45,7 @@ (port mpd-configuration-port (default "6600")) (address mpd-configuration-address - (default "any")) - (pid-file mpd-configuration-pid-file - (default "/var/run/mpd.pid"))) + (default "any"))) (define (mpd-config->file config) (apply @@ -56,6 +54,7 @@ " type \"pulse\"\n" " name \"MPD\"\n" "}\n" + "pid_file \"" (mpd-file-name config "pid") "\"\n" (map (match-lambda ((config-name config-val) (string-append config-name " \"" (config-val config) "\"\n"))) @@ -63,10 +62,16 @@ ("music_directory" ,mpd-configuration-music-dir) ("playlist_directory" ,mpd-configuration-playlist-dir) ("port" ,mpd-configuration-port) - ("bind_to_address" ,mpd-configuration-address) - ("pid_file" ,mpd-configuration-pid-file))))) + ("bind_to_address" ,mpd-configuration-address))))) -(define (mpd-service config) +(define (mpd-file-name config file) + "Return a path in /var/run/mpd/ that is writable + by @code{user} from @code{config}." + (string-append "/var/run/mpd/" + (mpd-configuration-user config) + "/" file)) + +(define (mpd-shepherd-service config) (shepherd-service (documentation "Run the MPD (Music Player Daemon)") (provision '(mpd)) @@ -74,13 +79,27 @@ (list #$(file-append mpd "/bin/mpd") "--no-daemon" #$(mpd-config->file config)) - #:pid-file #$(mpd-configuration-pid-file config))) + #:pid-file #$(mpd-file-name config "pid") + #:log-file #$(mpd-file-name config "log"))) (stop #~(make-kill-destructor)))) +(define (mpd-service-activation config) + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (define %user + (getpw #$(mpd-configuration-user config))) + + (let ((directory #$(mpd-file-name config ""))) + (mkdir-p directory) + (chown directory (passwd:uid %user) (passwd:gid %user)))))) + (define mpd-service-type (service-type (name 'mpd) (extensions (list (service-extension shepherd-root-service-type - (compose list mpd-service)))) + (compose list mpd-shepherd-service)) + (service-extension activation-service-type + mpd-service-activation))) (default-value (mpd-configuration)))) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 5001298ab3..64620a9b0a 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -29,6 +29,7 @@ #:use-module (gnu services networking) #:use-module (gnu system pam) #:use-module (gnu system shadow) ; 'user-account', etc. + #:use-module (gnu system uuid) #:use-module (gnu system file-systems) ; 'file-system', etc. #:use-module (gnu system mapped-devices) #:use-module ((gnu system linux-initrd) @@ -47,6 +48,7 @@ #:select (mount-flags->bit-mask)) #:use-module (guix gexp) #:use-module (guix records) + #:use-module (guix modules) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match) @@ -57,8 +59,6 @@ user-unmount-service swap-service user-processes-service - session-environment-service - session-environment-service-type host-name-service console-keymap-service %default-console-font @@ -208,7 +208,10 @@ (list (service-extension etc-service-type file-systems->fstab))) (compose concatenate) - (extend append))) + (extend append) + (description + "Populate the @file{/etc/fstab} based on the given file +system objects."))) (define %root-file-system-shepherd-service (shepherd-service @@ -276,18 +279,12 @@ FILE-SYSTEM." "Return the shepherd service for @var{file-system}, or @code{#f} if @var{file-system} is not auto-mounted upon boot." (let ((target (file-system-mount-point file-system)) - (device (file-system-device file-system)) - (type (file-system-type file-system)) - (title (file-system-title file-system)) - (flags (file-system-flags file-system)) - (options (file-system-options file-system)) - (check? (file-system-check? file-system)) (create? (file-system-create-mount-point? file-system)) (dependencies (file-system-dependencies file-system)) (packages (file-system-packages (list file-system)))) (and (file-system-mount? file-system) - (with-imported-modules '((gnu build file-systems) - (guix build bournish)) + (with-imported-modules (source-module-closure + '((gnu build file-systems))) (shepherd-service (provision (list (file-system->shepherd-service-name file-system))) (requirement `(root-file-system @@ -310,8 +307,7 @@ FILE-SYSTEM." '#$packages)))) (lambda () (mount-file-system - `(#$device #$title #$target #$type #$flags - #$options #$check?) + '#$(file-system->spec file-system) #:root "/")) (lambda () (setenv "PATH" $PATH))) @@ -354,7 +350,10 @@ FILE-SYSTEM." (service-extension fstab-service-type identity))) (compose concatenate) - (extend append))) + (extend append) + (description + "Provide Shepherd services to mount and unmount the given +file systems, as well as corresponding @file{/etc/fstab} entries."))) (define user-unmount-service-type (shepherd-service-type @@ -550,7 +549,11 @@ stopped before 'kill' is called." (service-type (name 'urandom-seed) (extensions (list (service-extension shepherd-root-service-type - urandom-seed-shepherd-service))))) + urandom-seed-shepherd-service))) + (description + "Seed the @file{/dev/urandom} pseudo-random number +generator (RNG) with the value recorded when the system was last shut +down."))) (define (urandom-seed-service) (service urandom-seed-service-type #f)) @@ -595,39 +598,6 @@ to add @var{device} to the kernel's entropy pool. The service will fail if (rng-tools rng-tools) (device device)))) - -;;; -;;; System-wide environment variables. -;;; - -(define (environment-variables->environment-file vars) - "Return a file for pam_env(8) that contains environment variables VARS." - (apply mixed-text-file "environment" - (append-map (match-lambda - ((key . value) - (list key "=" value "\n"))) - vars))) - -(define session-environment-service-type - (service-type - (name 'session-environment) - (extensions - (list (service-extension - etc-service-type - (lambda (vars) - (list `("environment" - ,(environment-variables->environment-file vars))))))) - (compose concatenate) - (extend append))) - -(define (session-environment-service vars) - "Return a service that builds the @file{/etc/environment}, which can be read -by PAM-aware applications to set environment variables for sessions. - -VARS should be an association list in which both the keys and the values are -strings or string-valued gexps." - (service session-environment-service-type vars)) - ;;; ;;; Console & co. @@ -718,7 +688,15 @@ strings or string-valued gexps." (list (service-extension shepherd-root-service-type console-font-shepherd-services))) (compose concatenate) - (extend append))) + (extend append) + (description + "Install the given fonts on the specified ttys (fonts are per +virtual console on GNU/Linux). The value of this service is a list of +tty/font pairs like: + +@example +'((\"tty1\" . \"LatGrkCyr-8x16\")) +@end example\n"))) (define* (console-font-service tty #:optional (font "LatGrkCyr-8x16")) "This procedure is deprecated in favor of @code{console-font-service-type}. @@ -753,7 +731,10 @@ Return a service that sets up Unicode support in @var{tty} and loads (define login-service-type (service-type (name 'login) (extensions (list (service-extension pam-root-service-type - login-pam-service))))) + login-pam-service))) + (description + "Provide a console log-in service as specified by its +configuration value, a @code{login-configuration} object."))) (define* (login-service #:optional (config (login-configuration))) "Return a service configure login according to @var{config}, which specifies @@ -969,7 +950,10 @@ the message of the day, among other things." (define agetty-service-type (service-type (name 'agetty) (extensions (list (service-extension shepherd-root-service-type - agetty-shepherd-service))))) + agetty-shepherd-service))) + (description + "Provide console login using the @command{agetty} +program."))) (define* (agetty-service config) "Return a service to run agetty according to @var{config}, which specifies @@ -1020,7 +1004,10 @@ the tty to run, among other things." (define mingetty-service-type (service-type (name 'mingetty) (extensions (list (service-extension shepherd-root-service-type - mingetty-shepherd-service))))) + mingetty-shepherd-service))) + (description + "Provide console login using the @command{mingetty} +program."))) (define* (mingetty-service config) "Return a service to run mingetty according to @var{config}, which specifies @@ -1189,7 +1176,11 @@ the tty to run, among other things." (inherit config) (name-services (append (nscd-configuration-name-services config) - name-services))))))) + name-services))))) + (description + "Runs libc's @dfn{name service cache daemon} (nscd) with the +given configuration---an @code{<nscd-configuration>} object. @xref{Name +Service Switch}, for an example."))) (define* (nscd-service #:optional (config %nscd-default-configuration)) "Return a service that runs libc's name service cache daemon (nscd) with the @@ -1285,7 +1276,11 @@ information on the configuration file syntax." (extensions (list (service-extension etc-service-type security-limits) (service-extension pam-root-service-type - (lambda _ (list pam-extension)))))))) + (lambda _ (list pam-extension))))) + (description + "Install the specified resource usage limits by populating +@file{/etc/security/limits.conf} and using the @code{pam_limits} +authentication module.")))) (define* (pam-limits-service #:optional (limits '())) "Return a service that makes selected programs respect the list of @@ -1461,7 +1456,9 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (service-extension activation-service-type guix-activation) (service-extension profile-service-type (compose list guix-configuration-guix)))) - (default-value (guix-configuration)))) + (default-value (guix-configuration)) + (description + "Run the build daemon of GNU@tie{}Guix, aka. @command{guix-daemon}."))) (define* (guix-service #:optional (config %default-guix-configuration)) "Return a service that runs the Guix build daemon according to @@ -1559,7 +1556,10 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (const %guix-publish-accounts)) (service-extension activation-service-type guix-publish-activation))) - (default-value (guix-publish-configuration)))) + (default-value (guix-publish-configuration)) + (description + "Add a Shepherd service running @command{guix publish}, a +command that allows you to share pre-built binaries with others over HTTP."))) (define* (guix-publish-service #:key (guix guix) (port 80) (host "localhost")) "Return a service that runs @command{guix publish} listening on @var{host} @@ -1731,7 +1731,11 @@ item of @var{packages}." (($ <udev-configuration> udev initial-rules) (udev-configuration (udev udev) - (rules (append initial-rules rules))))))))) + (rules (append initial-rules rules))))))) + (description + "Run @command{udev}, which populates the @file{/dev} +directory dynamically. Get extra rules from the packages listed in the +@code{rules} field of its value, @code{udev-configuration} object."))) (define* (udev-service #:key (udev eudev) (rules '())) "Run @var{udev}, which populates the @file{/dev} directory dynamically. Get @@ -1802,7 +1806,12 @@ extra rules from the packages listed in @var{rules}." (service-type (name 'gpm) (extensions (list (service-extension shepherd-root-service-type - gpm-shepherd-service))))) + gpm-shepherd-service))) + (description + "Run GPM, the general-purpose mouse daemon, with the given +command-line options. GPM allows users to use the mouse in the console, +notably to select, copy, and paste text. The default options use the +@code{ps2} protocol, which works for both USB and PS/2 mice."))) (define* (gpm-service #:key (gpm gpm) (options '("-m" "/dev/input/mice" "-t" "ps2"))) diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 73a30b2402..c5e9fcbb22 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,7 +61,9 @@ (database cuirass-configuration-database ;string (file-name) (default "/var/run/cuirass/cuirass.db")) (port cuirass-configuration-port ;integer (port) - (default 8080)) + (default 8081)) + (host cuirass-configuration-host ;string + (default "localhost")) (specifications cuirass-configuration-specifications) ;gexp that evaluates to specification-alist (use-substitutes? cuirass-configuration-use-substitutes? ;boolean @@ -84,6 +87,7 @@ (interval (cuirass-configuration-interval config)) (database (cuirass-configuration-database config)) (port (cuirass-configuration-port config)) + (host (cuirass-configuration-host config)) (specs (cuirass-configuration-specifications config)) (use-substitutes? (cuirass-configuration-use-substitutes? config)) (one-shot? (cuirass-configuration-one-shot? config)) @@ -100,6 +104,7 @@ #$(scheme-file "cuirass-specs.scm" specs) "--database" #$database "--port" #$(number->string port) + "--listen" #$host "--interval" #$(number->string interval) #$@(if use-substitutes? '("--use-substitutes") '()) #$@(if one-shot? '("--one-shot") '()) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 0509bd8a44..527a3101cf 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com> +;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -384,32 +385,67 @@ site} for more information." ;;; Bluetooth. ;;; -(define (bluetooth-shepherd-service bluez) +(define-record-type* <bluetooth-configuration> + bluetooth-configuration make-bluetooth-configuration + bluetooth-configuration? + (bluez bluetooth-configuration-bluez (default bluez)) + (auto-enable? bluetooth-configuration-auto-enable? (default #f))) + +(define (bluetooth-configuration-file config) + "Return a configuration file for the systemd bluetooth service, as a string." + (string-append + "[Policy]\n" + "AutoEnable=" (bool (bluetooth-configuration-auto-enable? + config)))) + +(define (bluetooth-directory config) + (computed-file "etc-bluetooth" + #~(begin + (mkdir #$output) + (chdir #$output) + (call-with-output-file "main.conf" + (lambda (port) + (display #$(bluetooth-configuration-file config) + port)))))) + +(define (bluetooth-shepherd-service config) "Return a shepherd service for @command{bluetoothd}." (shepherd-service (provision '(bluetooth)) (requirement '(dbus-system udev)) (documentation "Run the bluetoothd daemon.") (start #~(make-forkexec-constructor - (string-append #$bluez "/libexec/bluetooth/bluetoothd"))) + (string-append #$(bluetooth-configuration-bluez config) + "/libexec/bluetooth/bluetoothd"))) (stop #~(make-kill-destructor)))) (define bluetooth-service-type (service-type (name 'bluetooth) (extensions - (list (service-extension dbus-root-service-type list) - (service-extension udev-service-type list) + (list (service-extension dbus-root-service-type + (compose list bluetooth-configuration-bluez)) + (service-extension udev-service-type + (compose list bluetooth-configuration-bluez)) + (service-extension etc-service-type + (lambda (config) + `(("bluetooth" + ,(bluetooth-directory config))))) (service-extension shepherd-root-service-type (compose list bluetooth-shepherd-service)))))) -(define* (bluetooth-service #:key (bluez bluez)) +(define* (bluetooth-service #:key (bluez bluez) (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. +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. Users need to be in the @code{lp} group to access the D-Bus service. " - (service bluetooth-service-type bluez)) + (service bluetooth-service-type + (bluetooth-configuration + (bluez bluez) + (auto-enable? auto-enable?)))) ;;; @@ -696,7 +732,8 @@ seats.)" ;; We need /run/user, /run/systemd, etc. (service-extension file-system-service-type - (const %elogind-file-systems)))))) + (const %elogind-file-systems)))) + (default-value (elogind-configuration)))) (define* (elogind-service #:key (config (elogind-configuration))) "Return a service that runs the @command{elogind} login and seat management @@ -809,8 +846,9 @@ with the administrator's password." (simple-service 'mtp udev-service-type (list libmtp)) ;; The D-Bus clique. + (service network-manager-service-type) + (service wpa-supplicant-service-type) ;needed by NetworkManager (avahi-service) - (wicd-service) (udisks-service) (upower-service) (accountsservice-service) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index b45008de64..42b96b417e 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -25,6 +25,7 @@ #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu services dbus) + #:use-module (gnu services base) #:use-module (gnu system shadow) #:use-module (gnu system pam) #:use-module (gnu packages admin) @@ -253,7 +254,12 @@ fe80::1%lo0 apps.facebook.com\n") (service-extension etc-service-type static-networking-etc-files))) (compose concatenate) - (extend append))) + (extend append) + (description + "Turn up the specified network interfaces upon startup, +with the given IP address, gateway, netmask, and so on. The value for +services of this type is a list of @code{static-networking} objects, one per +network interface."))) (define* (static-networking-service interface ip #:key @@ -422,7 +428,11 @@ restrict -6 ::1\n")) (service-extension account-service-type (const %ntp-accounts)) (service-extension activation-service-type - ntp-service-activation))))) + ntp-service-activation))) + (description + "Run the @command{ntpd}, the Network Time Protocol (NTP) +daemon of the @uref{http://www.ntp.org, Network Time Foundation}. The daemon +will keep the system clock synchronized with that of the given servers."))) (define* (ntp-service #:key (ntp ntp) (servers %ntp-servers) @@ -520,7 +530,11 @@ make an initial adjustment of more than 1,000 seconds." (inetd-configuration (inherit config) (entries (append (inetd-configuration-entries config) - entries))))))) + entries))))) + (description + "Start @command{inetd}, the @dfn{Internet superserver}. It is responsible +for listening on Internet sockets and spawning the corresponding services on +demand."))) ;;; @@ -671,7 +685,10 @@ HiddenServicePort ~a ~a~%" (hidden-services (append (tor-configuration-hidden-services config) services))))) - (default-value (tor-configuration)))) + (default-value (tor-configuration)) + (description + "Run the @uref{https://torproject.org, Tor} anonymous +networking daemon."))) (define* (tor-service #:optional (config-file (plain-file "empty" "")) @@ -691,7 +708,9 @@ and lines for hidden services added via @code{tor-hidden-service}. Run ;; A type that extends Tor with hidden services. (service-type (name 'tor-hidden-service) (extensions - (list (service-extension tor-service-type list))))) + (list (service-extension tor-service-type list))) + (description + "Define a new Tor @dfn{hidden service}."))) (define (tor-hidden-service name mapping) "Define a new Tor @dfn{hidden service} called @var{name} and implementing @@ -798,7 +817,10 @@ project's documentation} for more information." (const %bitlbee-accounts)) (service-extension activation-service-type (const %bitlbee-activation)))) - (default-value (bitlbee-configuration)))) + (default-value (bitlbee-configuration)) + (description + "Run @url{http://bitlbee.org,BitlBee}, a daemon that acts as +a gateway between IRC and chat networks."))) (define* (bitlbee-service #:key (bitlbee bitlbee) (interface "127.0.0.1") (port 6667) @@ -862,7 +884,10 @@ configuration file." (const %wicd-activation)) ;; Add Wicd to the global profile. - (service-extension profile-service-type list))))) + (service-extension profile-service-type list))) + (description + "Run @url{https://launchpad.net/wicd,Wicd}, a network +management daemon that aims to simplify wired and wireless networking."))) (define* (wicd-service #:key (wicd wicd)) "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network @@ -885,7 +910,9 @@ and @command{wicd-curses} user interfaces." (network-manager network-manager-configuration-network-manager (default network-manager)) (dns network-manager-configuration-dns - (default "default"))) + (default "default")) + (vpn-plugins network-manager-vpn-plugins ;list of <package> + (default '()))) (define %network-manager-activation ;; Activation gexp for NetworkManager. @@ -893,25 +920,38 @@ and @command{wicd-curses} user interfaces." (use-modules (guix build utils)) (mkdir-p "/etc/NetworkManager/system-connections"))) +(define (vpn-plugin-directory plugins) + "Return a directory containing PLUGINS, the NM VPN plugins." + (directory-union "network-manager-vpn-plugins" plugins)) + +(define network-manager-environment + (match-lambda + (($ <network-manager-configuration> network-manager dns vpn-plugins) + ;; Define this variable in the global environment such that + ;; "nmcli connection import type openvpn file foo.ovpn" works. + `(("NM_VPN_PLUGIN_DIR" + . ,(file-append (vpn-plugin-directory vpn-plugins) + "/lib/NetworkManager/VPN")))))) + (define network-manager-shepherd-service (match-lambda - (($ <network-manager-configuration> network-manager dns) - (let - ((conf (plain-file "NetworkManager.conf" - (string-append " -[main] -dns=" dns " -")))) - (list (shepherd-service - (documentation "Run the NetworkManager.") - (provision '(networking)) - (requirement '(user-processes dbus-system wpa-supplicant loopback)) - (start #~(make-forkexec-constructor - (list (string-append #$network-manager - "/sbin/NetworkManager") - (string-append "--config=" #$conf) - "--no-daemon"))) - (stop #~(make-kill-destructor)))))))) + (($ <network-manager-configuration> network-manager dns vpn-plugins) + (let ((conf (plain-file "NetworkManager.conf" + (string-append "[main]\ndns=" dns "\n"))) + (vpn (vpn-plugin-directory vpn-plugins))) + (list (shepherd-service + (documentation "Run the NetworkManager.") + (provision '(networking)) + (requirement '(user-processes dbus-system wpa-supplicant loopback)) + (start #~(make-forkexec-constructor + (list (string-append #$network-manager + "/sbin/NetworkManager") + (string-append "--config=" #$conf) + "--no-daemon") + #:environment-variables + (list (string-append "NM_VPN_PLUGIN_DIR=" #$vpn + "/lib/NetworkManager/VPN")))) + (stop #~(make-kill-destructor)))))))) (define network-manager-service-type (let @@ -929,9 +969,15 @@ dns=" dns " (service-extension polkit-service-type config->package) (service-extension activation-service-type (const %network-manager-activation)) + (service-extension session-environment-service-type + network-manager-environment) ;; Add network-manager to the system profile. (service-extension profile-service-type config->package))) - (default-value (network-manager-configuration))))) + (default-value (network-manager-configuration)) + (description + "Run @uref{https://wiki.gnome.org/Projects/NetworkManager, +NetworkManager}, a network management daemon that aims to simplify wired and +wireless networking.")))) ;;; @@ -985,7 +1031,10 @@ dns=" dns " connman-activation) ;; Add connman to the system profile. (service-extension profile-service-type - connman-package)))))) + connman-package))) + (description + "Run @url{https://01.org/connman,Connman}, +a network connection manager.")))) ;;; @@ -1071,6 +1120,10 @@ dns=" dns " (service-extension profile-service-type (compose list openvswitch-configuration-package)) (service-extension shepherd-root-service-type - openvswitch-shepherd-service))))) + openvswitch-shepherd-service))) + (description + "Run @uref{http://www.openvswitch.org, Open vSwitch}, a multilayer virtual +switch designed to enable massive network automation through programmatic +extension."))) ;;; networking.scm ends here diff --git a/gnu/services/rsync.scm b/gnu/services/rsync.scm new file mode 100644 index 0000000000..621e6c46d4 --- /dev/null +++ b/gnu/services/rsync.scm @@ -0,0 +1,172 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services rsync) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services shepherd) + #:use-module (gnu system shadow) + #:use-module (gnu packages rsync) + #:use-module (gnu packages admin) + #:use-module (guix records) + #:use-module (guix gexp) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match) + #:export (rsync-configuration + rsync-configuration? + rsync-service-type)) + +;;;; Commentary: +;;; +;;; This module implements a service that to run instance of Rsync, +;;; files synchronization tool. +;;; +;;;; Code: + +(define-record-type* <rsync-configuration> + rsync-configuration + make-rsync-configuration + rsync-configuration? + (package rsync-configuration-package ; package + (default rsync)) + (port-number rsync-configuration-port-number ; integer + (default 873)) + (pid-file rsync-configuration-pid-file ; string + (default "/var/run/rsyncd/rsyncd.pid")) + (lock-file rsync-configuration-lock-file ; string + (default "/var/run/rsyncd/rsyncd.lock")) + (log-file rsync-configuration-log-file ; string + (default "/var/log/rsyncd.log")) + (use-chroot? rsync-configuration-use-chroot? ; boolean + (default #t)) + (share-path rsync-configuration-share-path ; string + (default "/srv/rsyncd")) + (share-comment rsync-configuration-share-comment ; string + (default "Rsync share")) + (read-only? rsync-configuration-read-only? ; boolean + (default #f)) + (timeout rsync-configuration-timeout ; integer + (default 300)) + (user rsync-configuration-user ; string + (default "root")) + (group rsync-configuration-group ; string + (default "root")) + (uid rsync-configuration-uid ; string + (default "rsyncd")) + (gid rsync-configuration-gid ; string + (default "rsyncd"))) + +(define (rsync-account config) + "Return the user accounts and user groups for CONFIG." + (let ((rsync-user (if (rsync-configuration-uid config) + (rsync-configuration-uid config) + (rsync-configuration-user config))) + (rsync-group (if (rsync-configuration-gid config) + (rsync-configuration-gid config) + (rsync-configuration-group config)))) + (list (user-group (name rsync-group) (system? #t)) + (user-account + (name rsync-user) + (system? #t) + (group rsync-group) + (comment "rsyncd privilege separation user") + (home-directory (string-append "/var/run/" + rsync-user)) + (shell #~(string-append #$shadow "/sbin/nologin")))))) + +(define (rsync-activation config) + "Return the activation GEXP for CONFIG." + (with-imported-modules '((guix build utils)) + #~(begin + (let ((share-directory #$(rsync-configuration-share-path config)) + (user (getpw (if #$(rsync-configuration-uid config) + #$(rsync-configuration-uid config) + #$(rsync-configuration-user config)))) + (group (getpw (if #$(rsync-configuration-gid config) + #$(rsync-configuration-gid config) + #$(rsync-configuration-group config))))) + (mkdir-p (dirname #$(rsync-configuration-pid-file config))) + (and=> share-directory mkdir-p) + (chown share-directory + (passwd:uid user) + (group:gid group)))))) + +(define rsync-config-file + ;; Return the rsync configuration file corresponding to CONFIG. + (match-lambda + (($ <rsync-configuration> package port-number pid-file lock-file log-file + use-chroot? share-path share-comment read-only? + timeout user group uid gid) + (if (not (string=? user "root")) + (cond + ((<= port-number 1024) + (error (string-append "rsync-service: to run on port " + (number->string port-number) + ", user must be root."))) + (use-chroot? + (error (string-append "rsync-service: to run in a chroot" + ", user must be root."))) + (uid + (error "rsync-service: to use uid, user must be root.")) + (gid + (error "rsync-service: to use gid, user must be root.")))) + (mixed-text-file + "rsync.conf" + "# Generated by 'rsync-service'.\n\n" + "pid file = " pid-file "\n" + "lock file = " lock-file "\n" + "log file = " log-file "\n" + "port = " (number->string port-number) "\n" + "use chroot = " (if use-chroot? "true" "false") "\n" + (if uid (string-append "uid = " uid "\n") "") + "gid = " (if gid gid "nogroup") "\n" ; no group nobody + "\n" + "[files]\n" + "path = " share-path "\n" + "comment = " share-comment "\n" + "read only = " (if read-only? "true" "false") "\n" + "timeout = " (number->string timeout) "\n")))) + +(define (rsync-shepherd-service config) + "Return a <shepherd-service> for rsync with CONFIG." + (let* ((rsync (rsync-configuration-package config)) + (pid-file (rsync-configuration-pid-file config)) + (port-number (rsync-configuration-port-number config)) + (user (rsync-configuration-user config)) + (group (rsync-configuration-group config))) + (list (shepherd-service + (provision '(rsync)) + (documentation "Run rsync daemon.") + (start #~(make-forkexec-constructor + (list (string-append #$rsync "/bin/rsync") + "--config" #$(rsync-config-file config) + "--daemon") + #:pid-file #$pid-file + #:user #$user + #:group #$group)) + (stop #~(make-kill-destructor)))))) + +(define rsync-service-type + (service-type + (name 'rsync) + (extensions + (list (service-extension shepherd-root-service-type rsync-shepherd-service) + (service-extension account-service-type rsync-account) + (service-extension activation-service-type rsync-activation))) + (default-value (rsync-configuration)))) diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 18278502e4..9d713003c3 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -99,6 +99,8 @@ (default '())) (index nginx-server-configuration-index (default (list "index.html"))) + (try-files nginx-server-configuration-try-files + (default '())) (ssl-certificate nginx-server-configuration-ssl-certificate (default "/etc/nginx/cert.pem")) (ssl-certificate-key nginx-server-configuration-ssl-certificate-key @@ -179,6 +181,7 @@ of index files." (nginx-server-configuration-ssl-certificate-key server)) (root (nginx-server-configuration-root server)) (index (nginx-server-configuration-index server)) + (try-files (nginx-server-configuration-try-files server)) (server-tokens? (nginx-server-configuration-server-tokens? server)) (locations (nginx-server-configuration-locations server))) (define-syntax-parameter <> (syntax-rules ())) @@ -207,6 +210,9 @@ of index files." (and/l ssl-certificate-key " ssl_certificate_key " <> ";\n") " root " root ";\n" " index " (config-index-strings index) ";\n" + (if (not (nil? try-files)) + (and/l (config-index-strings try-files) " try_files " <> ";\n") + "") " server_tokens " (if server-tokens? "on" "off") ";\n" "\n" (map emit-nginx-location-config locations) @@ -262,7 +268,7 @@ of index files." (define nginx-activation (match-lambda (($ <nginx-configuration> nginx log-directory run-directory server-blocks - upstream-blocks config-file) + upstream-blocks file) #~(begin (use-modules (guix build utils)) @@ -281,7 +287,7 @@ of index files." (mkdir-p (string-append #$run-directory "/logs")) ;; Check configuration file syntax. (system* (string-append #$nginx "/sbin/nginx") - "-c" #$(or config-file + "-c" #$(or file (default-nginx-config nginx log-directory run-directory server-blocks upstream-blocks)) "-t"))))) @@ -289,14 +295,14 @@ of index files." (define nginx-shepherd-service (match-lambda (($ <nginx-configuration> nginx log-directory run-directory server-blocks - upstream-blocks config-file) + upstream-blocks file) (let* ((nginx-binary (file-append nginx "/sbin/nginx")) (nginx-action (lambda args #~(lambda _ (zero? (system* #$nginx-binary "-c" - #$(or config-file + #$(or file (default-nginx-config nginx log-directory run-directory server-blocks upstream-blocks)) #$@args)))))) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 5a8ee6cd40..6200fa302a 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -135,6 +135,7 @@ Section \"Files\" ModulePath \"" xf86-input-mouse "/lib/xorg/modules/input\" ModulePath \"" xf86-input-synaptics "/lib/xorg/modules/input\" ModulePath \"" xorg-server "/lib/xorg/modules\" + ModulePath \"" xorg-server "/lib/xorg/modules/drivers\" ModulePath \"" xorg-server "/lib/xorg/modules/extensions\" ModulePath \"" xorg-server "/lib/xorg/modules/multimedia\" EndSection diff --git a/gnu/system.scm b/gnu/system.scm index 6b35e3c0c7..8ab4801b74 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -54,6 +54,7 @@ #:use-module (gnu system locale) #:use-module (gnu system pam) #:use-module (gnu system linux-initrd) + #:use-module (gnu system uuid) #:use-module (gnu system file-systems) #:use-module (gnu system mapped-devices) #:use-module (ice-9 match) @@ -128,7 +129,14 @@ (define (bootable-kernel-arguments kernel-arguments system.drv root-device) "Prepend extra arguments to KERNEL-ARGUMENTS that allow SYSTEM.DRV to be booted from ROOT-DEVICE" - (cons* (string-append "--root=" root-device) + (cons* (string-append "--root=" + (if (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)) #~(string-append "--system=" #$system.drv) #~(string-append "--load=" #$system.drv "/boot") kernel-arguments)) @@ -226,6 +234,20 @@ directly by the user." (define (read-boot-parameters port) "Read boot parameters from PORT and return the corresponding <boot-parameters> object or #f if the format is unrecognized." + (define device-sexp->device + (match-lambda + (('uuid (? symbol? type) (? bytevector? bv)) + (bytevector->uuid bv type)) + ((? bytevector? bv) ;old format + (bytevector->uuid bv 'dce)) + ((? string? device) + device))) + + (define (ensure-not-/dev device) + (if (and (string? device) (string-prefix? "/" device)) + #f + device)) + (match (read port) (('boot-parameters ('version 0) ('label label) ('root-device root) @@ -233,7 +255,7 @@ directly by the user." rest ...) (boot-parameters (label label) - (root-device root) + (root-device (device-sexp->device root)) (bootloader-name (match (assq 'bootloader-name rest) @@ -260,15 +282,16 @@ directly by the user." file))) (store-device - (match (assq 'store rest) - (('store ('device device) _ ...) - device) - (_ ;the old format - ;; Root might be a device path like "/dev/sda1", which is not a - ;; suitable GRUB device identifier. - (if (string-prefix? "/" root) - #f - root)))) + ;; Linux device names like "/dev/sda1" are not suitable GRUB device + ;; identifiers, so we just filter them out. + (ensure-not-/dev + (match (assq 'store rest) + (('store ('device #f) _ ...) + root-device) + (('store ('device device) _ ...) + (device-sexp->device device)) + (_ ;the old format + root-device)))) (store-mount-point (match (assq 'store rest) @@ -289,16 +312,12 @@ The object has its kernel-arguments extended in order to make it bootable." (let* ((file (string-append system "/parameters")) (params (call-with-input-file file read-boot-parameters)) (root (boot-parameters-root-device params)) - (root-device (if (bytevector? root) - (uuid->string root) - root)) (kernel-arguments (boot-parameters-kernel-arguments params))) (if params (boot-parameters (inherit params) (kernel-arguments (bootable-kernel-arguments kernel-arguments - system - root-device))) + system root))) #f))) (define (boot-parameters->menu-entry conf) @@ -597,6 +616,10 @@ fi # See <http://bugs.gnu.org/22650>. umask 022 +# Allow Hunspell-based applications (IceCat, LibreOffice, etc.) to +# find dictionaries. +export DICPATH=\"$HOME/.guix-profile/share/hunspell:/run/current-system/profile/share/hunspell\" + # Allow GStreamer-based applications to find plugins. export GST_PLUGIN_PATH=\"$HOME/.guix-profile/lib/gstreamer-1.0\" @@ -629,6 +652,11 @@ fi\n"))) ("bashrc" ,#~#$bashrc) ("hosts" ,#~#$(or (operating-system-hosts-file os) (default-/etc/hosts (operating-system-host-name os)))) + ;; Write the operating-system-host-name to /etc/hostname to prevent + ;; NetworkManager from changing the system's hostname when connecting + ;; to certain networks. Some discussion at + ;; https://lists.gnu.org/archive/html/help-guix/2017-09/msg00037.html + ("hostname" ,(plain-file "hostname" (operating-system-host-name os))) ("localtime" ,(file-append tzdata "/share/zoneinfo/" (operating-system-timezone os))) ("sudoers" ,(operating-system-sudoers-file os)))))) @@ -875,9 +903,7 @@ listed in OS. The C library expects to find it under (mlet* %store-monad ((system (operating-system-derivation os)) (root-fs -> (operating-system-root-file-system os)) - (root-device -> (if (eq? 'uuid (file-system-title root-fs)) - (uuid->string (file-system-device root-fs)) - (file-system-device root-fs))) + (root-device -> (file-system-device root-fs)) (params (operating-system-boot-parameters os system root-device)) (entry -> (boot-parameters->menu-entry params)) (bootloader-conf -> (operating-system-bootloader os))) @@ -889,8 +915,7 @@ listed in OS. The C library expects to find it under "Given FS, a <file-system> object, return a value suitable for use as the device in a <menu-entry>." (case (file-system-title fs) - ((uuid) (file-system-device fs)) - ((label) (file-system-device fs)) + ((uuid label device) (file-system-device fs)) (else #f))) (define (operating-system-boot-parameters os system.drv root-device) @@ -917,6 +942,14 @@ kernel arguments for that derivation to <boot-parameters>." (store-device (fs->boot-device store)) (store-mount-point (file-system-mount-point store)))))) +(define (device->sexp device) + "Serialize DEVICE as an sexp (really, as an object with a read syntax.)" + (match device + ((? uuid? uuid) + `(uuid ,(uuid-type uuid) ,(uuid-bytevector uuid))) + (_ + device))) + (define* (operating-system-boot-parameters-file os #:optional (system.drv #f)) "Return a file that describes the boot parameters of OS. The primary use of this file is the reconstruction of GRUB menu entries for old configurations. @@ -934,15 +967,28 @@ being stored into the \"parameters\" file)." #~(boot-parameters (version 0) (label #$(boot-parameters-label params)) - (root-device #$(boot-parameters-root-device params)) + (root-device + #$(device->sexp + (boot-parameters-root-device params))) (kernel #$(boot-parameters-kernel params)) (kernel-arguments #$(boot-parameters-kernel-arguments params)) (initrd #$(boot-parameters-initrd params)) (bootloader-name #$(boot-parameters-bootloader-name params)) (store - (device #$(boot-parameters-store-device params)) + (device + #$(device->sexp (boot-parameters-store-device params))) (mount-point #$(boot-parameters-store-mount-point params)))) #:set-load-path? #f))) +(define-gexp-compiler (operating-system-compiler (os <operating-system>) + system target) + ((store-lift + (lambda (store) + ;; XXX: This is not super elegant but we can't pass SYSTEM and TARGET to + ;; 'operating-system-derivation'. + (run-with-store store (operating-system-derivation os) + #:system system + #:target target))))) + ;;; system.scm ends here diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl index 459d241885..7e0c8fbee0 100644 --- a/gnu/system/examples/bare-bones.tmpl +++ b/gnu/system/examples/bare-bones.tmpl @@ -3,7 +3,7 @@ (use-modules (gnu)) (use-service-modules networking ssh) -(use-package-modules admin) +(use-package-modules screen ssh) (operating-system (host-name "komputilo") @@ -40,7 +40,7 @@ %base-user-accounts)) ;; Globally-installed packages. - (packages (cons tcpdump %base-packages)) + (packages (cons* screen openssh %base-packages)) ;; Add services to the baseline: a DHCP client and ;; an SSH server. diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index bbac23fbdf..52f16676f5 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -20,9 +20,9 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (guix records) - #:use-module ((gnu build file-systems) - #:select (string->uuid uuid->string)) - #:re-export (string->uuid + #:use-module (gnu system uuid) + #:re-export (uuid ;backward compatibility + string->uuid uuid->string) #:export (<file-system> file-system @@ -44,7 +44,6 @@ file-system->spec spec->file-system specification->file-system-mapping - uuid %fuse-control-file-system %binary-format-file-system @@ -157,7 +156,10 @@ store--e.g., if FS is the root file system." initrd code." (match fs (($ <file-system> device title mount-point type flags options _ _ check?) - (list device title mount-point type flags options check?)))) + (list (if (uuid? device) + (uuid-bytevector device) + device) + title mount-point type flags options check?)))) (define (spec->file-system sexp) "Deserialize SEXP, a list, to the corresponding <file-system> object." @@ -186,20 +188,6 @@ TARGET in the other system." (target spec) (writable? writable?))))) -(define-syntax uuid - (lambda (s) - "Return the bytevector corresponding to the given UUID representation." - (syntax-case s () - ((_ str) - (string? (syntax->datum #'str)) - ;; A literal string: do the conversion at expansion time. - (let ((bv (string->uuid (syntax->datum #'str)))) - (unless bv - (syntax-violation 'uuid "invalid UUID" s)) - (datum->syntax #'str bv))) - ((_ str) - #'(string->uuid str))))) - ;;; ;;; Common file systems. diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 7f6ffe9582..eb362f91a8 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -31,6 +31,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages bootloaders) #:use-module (gnu packages linux) + #:use-module (gnu packages ssh) #:use-module (gnu packages cryptsetup) #:use-module (gnu packages package-management) #:use-module (gnu packages disk) @@ -214,6 +215,9 @@ You have been warned. Thanks for being so brave. (auto-login "root") (login-pause? #t)))) + (define bare-bones-os + (load "examples/bare-bones.tmpl")) + (list (mingetty-service (mingetty-configuration (tty "tty1") (auto-login "root"))) @@ -283,7 +287,11 @@ You have been warned. Thanks for being so brave. ;; connections to this system to work. (service special-files-service-type `(("/bin/sh" ,(file-append (canonical-package bash) - "/bin/sh"))))))) + "/bin/sh")))) + + ;; Keep a reference to BARE-BONES-OS to make sure it can be + ;; installed without downloading/building anything. + (service gc-root-service-type (list bare-bones-os))))) (define %issue ;; Greeting. @@ -337,9 +345,9 @@ Use Alt-F2 for documentation. (issue %issue) (services %installation-services) - ;; We don't need setuid programs so pass the empty list so we don't pull - ;; additional programs here. - (setuid-programs '()) + ;; We don't need setuid programs, except for 'passwd', which can be handy + ;; if one is to allow remote SSH login to the machine being installed. + (setuid-programs (list (file-append shadow "/bin/passwd"))) (pam-services ;; Explicitly allow for empty passwords. @@ -352,6 +360,7 @@ Use Alt-F2 for documentation. mdadm dosfstools ;mkfs.fat, for the UEFI boot partition btrfs-progs + openssh ;we already have sshd, having ssh/scp can help wireless-tools iw wpa-supplicant-minimal iproute ;; XXX: We used to have GNU fdisk here, but as of version ;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index 18b9f5b4b6..17cf6b7163 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017 Mark H Weaver <mhw@netris.org> ;;; @@ -24,6 +24,7 @@ #:use-module (guix modules) #:use-module (gnu services) #:use-module (gnu services shepherd) + #:use-module (gnu system uuid) #:autoload (gnu packages cryptsetup) (cryptsetup-static) #:autoload (gnu packages linux) (mdadm-static) #:use-module (srfi srfi-1) @@ -99,7 +100,9 @@ 'cryptsetup'." (with-imported-modules (source-module-closure '((gnu build file-systems))) - #~(let ((source #$source)) + #~(let ((source #$(if (uuid? source) + (uuid-bytevector source) + source))) ;; XXX: 'use-modules' should be at the top level. (use-modules (rnrs bytevectors) ;bytevector? ((gnu build file-systems) diff --git a/gnu/system/pam.scm b/gnu/system/pam.scm index eedf933946..13f76a50ed 100644 --- a/gnu/system/pam.scm +++ b/gnu/system/pam.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,6 +50,9 @@ unix-pam-service base-pam-services + session-environment-service + session-environment-service-type + pam-root-service-type pam-root-service)) @@ -278,6 +281,48 @@ authenticate to run COMMAND." ;;; +;;; System-wide environment variables. +;;; + +(define (environment-variables->environment-file vars) + "Return a file for pam_env(8) that contains environment variables VARS." + (apply mixed-text-file "environment" + (append-map (match-lambda + ((key . value) + (list key "=" value "\n"))) + vars))) + +(define session-environment-service-type + (service-type + (name 'session-environment) + (extensions + (list (service-extension + etc-service-type + (lambda (vars) + (list `("environment" + ,(environment-variables->environment-file vars))))))) + (compose concatenate) + (extend append) + (description + "Populate @file{/etc/environment}, which is honored by @code{pam_env}, +with the specified environment variables. The value of this service is a list +of name/value pairs for environments variables, such as: + +@example +'((\"TZ\" . \"Canada/Pacific\")) +@end example\n"))) + +(define (session-environment-service vars) + "Return a service that builds the @file{/etc/environment}, which can be read +by PAM-aware applications to set environment variables for sessions. + +VARS should be an association list in which both the keys and the values are +strings or string-valued gexps." + (service session-environment-service-type vars)) + + + +;;; ;;; PAM root service. ;;; diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm new file mode 100644 index 0000000000..6470abb8cc --- /dev/null +++ b/gnu/system/uuid.scm @@ -0,0 +1,283 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu system uuid) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (rnrs bytevectors) + #:use-module (ice-9 match) + #:use-module (ice-9 vlist) + #:use-module (ice-9 regex) + #:use-module (ice-9 format) + #:export (uuid + uuid? + uuid-type + uuid-bytevector + + bytevector->uuid + + uuid->string + dce-uuid->string + string->uuid + string->dce-uuid + string->iso9660-uuid + string->ext2-uuid + string->ext3-uuid + string->ext4-uuid + string->btrfs-uuid + string->fat32-uuid + iso9660-uuid->string + + ;; XXX: For lack of a better place. + sub-bytevector + latin1->string)) + + +;;; +;;; Tools that lack a better place. +;;; + +(define (sub-bytevector bv start size) + "Return a copy of the SIZE bytes of BV starting from offset START." + (let ((result (make-bytevector size))) + (bytevector-copy! bv start result 0 size) + result)) + +(define (latin1->string bv terminator) + "Return a string of BV, a latin1 bytevector, or #f. TERMINATOR is a predicate +that takes a number and returns #t when a termination character is found." + (let ((bytes (take-while (negate terminator) (bytevector->u8-list bv)))) + (if (null? bytes) + #f + (list->string (map integer->char bytes))))) + + +;;; +;;; DCE UUIDs. +;;; + +(define-syntax %network-byte-order + (identifier-syntax (endianness big))) + +(define (dce-uuid->string uuid) + "Convert UUID, a 16-byte bytevector, to its string representation, something +like \"6b700d61-5550-48a1-874c-a3d86998990e\"." + ;; See <https://tools.ietf.org/html/rfc4122>. + (let ((time-low (bytevector-uint-ref uuid 0 %network-byte-order 4)) + (time-mid (bytevector-uint-ref uuid 4 %network-byte-order 2)) + (time-hi (bytevector-uint-ref uuid 6 %network-byte-order 2)) + (clock-seq (bytevector-uint-ref uuid 8 %network-byte-order 2)) + (node (bytevector-uint-ref uuid 10 %network-byte-order 6))) + (format #f "~8,'0x-~4,'0x-~4,'0x-~4,'0x-~12,'0x" + time-low time-mid time-hi clock-seq node))) + +(define %uuid-rx + ;; The regexp of a UUID. + (make-regexp "^([[:xdigit:]]{8})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{12})$")) + +(define (string->dce-uuid str) + "Parse STR as a DCE UUID (see <https://tools.ietf.org/html/rfc4122>) and +return its contents as a 16-byte bytevector. Return #f if STR is not a valid +UUID representation." + (and=> (regexp-exec %uuid-rx str) + (lambda (match) + (letrec-syntax ((hex->number + (syntax-rules () + ((_ index) + (string->number (match:substring match index) + 16)))) + (put! + (syntax-rules () + ((_ bv index (number len) rest ...) + (begin + (bytevector-uint-set! bv index number + (endianness big) len) + (put! bv (+ index len) rest ...))) + ((_ bv index) + bv)))) + (let ((time-low (hex->number 1)) + (time-mid (hex->number 2)) + (time-hi (hex->number 3)) + (clock-seq (hex->number 4)) + (node (hex->number 5)) + (uuid (make-bytevector 16))) + (put! uuid 0 + (time-low 4) (time-mid 2) (time-hi 2) + (clock-seq 2) (node 6))))))) + + +;;; +;;; ISO-9660. +;;; + +;; <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-119.pdf>. + +(define %iso9660-uuid-rx + ;; Y m d H M S ss + (make-regexp "^([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})$")) +(define (string->iso9660-uuid str) + "Parse STR as a ISO9660 UUID (which is really a timestamp - see /dev/disk/by-uuid). +Return its contents as a 16-byte bytevector. Return #f if STR is not a valid +ISO9660 UUID representation." + (and=> (regexp-exec %iso9660-uuid-rx str) + (lambda (match) + (letrec-syntax ((match-numerals + (syntax-rules () + ((_ index (name rest ...) body) + (let ((name (match:substring match index))) + (match-numerals (+ 1 index) (rest ...) body))) + ((_ index () body) + body)))) + (match-numerals 1 (year month day hour minute second hundredths) + (string->utf8 (string-append year month day + hour minute second hundredths))))))) +(define (iso9660-uuid->string uuid) + "Given an UUID bytevector, return its timestamp string." + (define (digits->string bytes) + (latin1->string bytes (lambda (c) #f))) + (let* ((year (sub-bytevector uuid 0 4)) + (month (sub-bytevector uuid 4 2)) + (day (sub-bytevector uuid 6 2)) + (hour (sub-bytevector uuid 8 2)) + (minute (sub-bytevector uuid 10 2)) + (second (sub-bytevector uuid 12 2)) + (hundredths (sub-bytevector uuid 14 2)) + (parts (list year month day hour minute second hundredths))) + (string-append (string-join (map digits->string parts) "-")))) + + +;;; +;;; FAT32. +;;; + +(define-syntax %fat32-endianness + ;; Endianness of FAT file systems. + (identifier-syntax (endianness little))) + +(define (fat32-uuid->string uuid) + "Convert fat32 UUID, a 4-byte bytevector, to its string representation." + (let ((high (bytevector-uint-ref uuid 0 %fat32-endianness 2)) + (low (bytevector-uint-ref uuid 2 %fat32-endianness 2))) + (format #f "~:@(~x-~x~)" low high))) + +(define %fat32-uuid-rx + (make-regexp "^([[:xdigit:]]{4})-([[:xdigit:]]{4})$")) + +(define (string->fat32-uuid str) + "Parse STR, which is in FAT32 format, and return a bytevector or #f." + (match (regexp-exec %fat32-uuid-rx str) + (#f + #f) + (rx-match + (uint-list->bytevector (list (string->number + (match:substring rx-match 2) 16) + (string->number + (match:substring rx-match 1) 16)) + %fat32-endianness + 2)))) + + +;;; +;;; Generic interface. +;;; + +(define string->ext2-uuid string->dce-uuid) +(define string->ext3-uuid string->dce-uuid) +(define string->ext4-uuid string->dce-uuid) +(define string->btrfs-uuid string->dce-uuid) + +(define-syntax vhashq + (syntax-rules (=>) + ((_) + vlist-null) + ((_ (key others ... => value) rest ...) + (vhash-consq key value + (vhashq (others ... => value) rest ...))) + ((_ (=> value) rest ...) + (vhashq rest ...)))) + +(define %uuid-parsers + (vhashq + ('dce 'ext2 'ext3 'ext4 'btrfs 'luks => string->dce-uuid) + ('fat32 'fat => string->fat32-uuid) + ('iso9660 => string->iso9660-uuid))) + +(define %uuid-printers + (vhashq + ('dce 'ext2 'ext3 'ext4 'btrfs 'luks => dce-uuid->string) + ('iso9660 => iso9660-uuid->string) + ('fat32 'fat => fat32-uuid->string))) + +(define* (string->uuid str #:optional (type 'dce)) + "Parse STR as a UUID of the given TYPE. On success, return the +corresponding bytevector; otherwise return #f." + (match (vhash-assq type %uuid-parsers) + (#f #f) + ((_ . (? procedure? parse)) (parse str)))) + +;; High-level UUID representation that carries its type with it. +;; +;; This is necessary to serialize bytevectors with the right printer in some +;; circumstances. For instance, GRUB "search --fs-uuid" command compares the +;; string representation of UUIDs, not the raw bytes; thus, when emitting a +;; GRUB 'search' command, we need to procedure the right string representation +;; (see <https://debbugs.gnu.org/cgi/bugreport.cgi?msg=52;att=0;bug=27735>). +(define-record-type <uuid> + (make-uuid type bv) + uuid? + (type uuid-type) ;'dce | 'iso9660 | ... + (bv uuid-bytevector)) + +(define* (bytevector->uuid bv #:optional (type 'dce)) + "Return a UUID object make of BV and TYPE." + (make-uuid type bv)) + +(define-syntax uuid + (lambda (s) + "Return the UUID object corresponding to the given UUID representation." + (syntax-case s (quote) + ((_ str (quote type)) + (and (string? (syntax->datum #'str)) + (identifier? #'type)) + ;; A literal string: do the conversion at expansion time. + (let ((bv (string->uuid (syntax->datum #'str) + (syntax->datum #'type)))) + (unless bv + (syntax-violation 'uuid "invalid UUID" s)) + #`(make-uuid 'type #,(datum->syntax s bv)))) + ((_ str) + (string? (syntax->datum #'str)) + #'(uuid str 'dce)) + ((_ str) + #'(make-uuid 'dce (string->uuid str 'dce))) + ((_ str type) + #'(make-uuid type (string->uuid str type)))))) + +(define uuid->string + ;; Convert the given bytevector or UUID object, to the corresponding UUID + ;; string representation. + (match-lambda* + (((? bytevector? bv)) + (uuid->string bv 'dce)) + (((? bytevector? bv) type) + (match (vhash-assq type %uuid-printers) + (#f #f) + ((_ . (? procedure? unparse)) (unparse bv)))) + (((? uuid? uuid)) + (uuid->string (uuid-bytevector uuid) (uuid-type uuid))))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 4494af0031..78143e4f7a 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -57,9 +57,11 @@ #:use-module (gnu system file-systems) #:use-module (gnu system) #:use-module (gnu services) + #:use-module (gnu system uuid) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:export (expression->derivation-in-linux-vm @@ -192,6 +194,7 @@ made available under the /xchg CIFS share." os-drv bootcfg-drv bootloader + register-closures? (inputs '())) "Return a bootable, stand-alone iso9660 image. @@ -207,8 +210,13 @@ INPUTS is a list of inputs (as for packages)." (let ((inputs '#$(append (list qemu parted e2fsprogs dosfstools xorriso) (map canonical-package - (list sed grep coreutils findutils gawk)))) + (list sed grep coreutils findutils gawk)) + (if register-closures? (list guix) '()))) + + (graphs '#$(match inputs + (((names . _) ...) + names))) ;; This variable is unused but allows us to add INPUTS-TO-COPY ;; as inputs. (to-register @@ -222,8 +230,11 @@ INPUTS is a list of inputs (as for packages)." #$bootcfg-drv #$os-drv "/xchg/guixsd.iso" + #:register-closures? #$register-closures? + #:closures graphs #:volume-id #$file-system-label - #:volume-uuid #$file-system-uuid) + #:volume-uuid #$(and=> file-system-uuid + uuid-bytevector)) (reboot)))) #:system system #:make-disk-image? #f @@ -238,6 +249,7 @@ INPUTS is a list of inputs (as for packages)." (disk-image-format "qcow2") (file-system-type "ext4") file-system-label + file-system-uuid os-drv bootcfg-drv bootloader @@ -247,7 +259,10 @@ INPUTS is a list of inputs (as for packages)." "Return a bootable, stand-alone QEMU image of type DISK-IMAGE-FORMAT (e.g., 'qcow2' or 'raw'), with a root partition of type FILE-SYSTEM-TYPE. Optionally, FILE-SYSTEM-LABEL can be specified as the volume name for the root -partition. The returned image is a full disk image that runs OS-DERIVATION, +partition; likewise FILE-SYSTEM-UUID, if true, specifies the UUID of the root +partition (a UUID object). + +The returned image is a full disk image that runs OS-DERIVATION, with a GRUB installation that uses GRUB-CONFIGURATION as its configuration file (GRUB-CONFIGURATION must be the name of a file in the VM.) @@ -297,6 +312,8 @@ the image." (partitions (list (partition (size root-size) (label #$file-system-label) + (uuid #$(and=> file-system-uuid + uuid-bytevector)) (file-system #$file-system-type) (flags '(boot)) (initializer initialize)) @@ -334,6 +351,35 @@ the image." ;;; VM and disk images. ;;; +(define* (operating-system-uuid os #:optional (type 'dce)) + "Compute UUID object with a deterministic \"UUID\" for OS, of the given +TYPE (one of 'iso9660 or 'dce). Return a UUID object." + (if (eq? type 'iso9660) + (let ((pad (compose (cut string-pad <> 2 #\0) + number->string)) + (h (hash (operating-system-services os) 3600))) + (bytevector->uuid + (string->iso9660-uuid + (string-append "1970-01-01-" + (pad (hash (operating-system-host-name os) 24)) "-" + (pad (quotient h 60)) "-" + (pad (modulo h 60)) "-" + (pad (hash (operating-system-file-systems os) 100)))) + 'iso9660)) + (bytevector->uuid + (uint-list->bytevector + (list (hash file-system-type + (expt 2 32)) + (hash (operating-system-host-name os) + (expt 2 32)) + (hash (operating-system-services os) + (expt 2 32)) + (hash (operating-system-file-systems os) + (expt 2 32))) + (endianness little) + 4) + type))) + (define* (system-disk-image os #:key (name "disk-image") @@ -350,12 +396,20 @@ to USB sticks meant to be read-only." (if (string=? "iso9660" file-system-type) string-upcase identity)) + (define root-label - ;; Volume name of the root file system. Since we don't know which device - ;; will hold it, we use the volume name to find it (using the UUID would - ;; be even better, but somewhat less convenient.) + ;; Volume name of the root file system. (normalize-label "GuixSD_image")) + (define root-uuid + ;; UUID of the root file system, computed in a deterministic fashion. + ;; This is what we use to locate the root file system so it has to be + ;; different from the user's own file system UUIDs. + (operating-system-uuid os + (if (string=? file-system-type "iso9660") + 'iso9660 + 'dce))) + (define file-systems-to-keep (remove (lambda (fs) (string=? (file-system-mount-point fs) "/")) @@ -379,8 +433,8 @@ to USB sticks meant to be read-only." ;; Force our own root file system. (file-systems (cons (file-system (mount-point "/") - (device root-label) - (title 'label) + (device root-uuid) + (title 'uuid) (type file-system-type)) file-systems-to-keep))))) @@ -389,8 +443,9 @@ to USB sticks meant to be read-only." (if (string=? "iso9660" file-system-type) (iso9660-image #:name name #:file-system-label root-label - #:file-system-uuid #f + #:file-system-uuid root-uuid #:os-drv os-drv + #:register-closures? #t #:bootcfg-drv bootcfg #:bootloader (bootloader-configuration-bootloader (operating-system-bootloader os)) @@ -403,11 +458,9 @@ to USB sticks meant to be read-only." (operating-system-bootloader os)) #:disk-image-size disk-image-size #:disk-image-format "raw" - #:file-system-type (if (string=? "iso9660" - file-system-type) - "ext4" - file-system-type) + #:file-system-type file-system-type #:file-system-label root-label + #:file-system-uuid root-uuid #:copy-inputs? #t #:register-closures? #t #:inputs `(("system" ,os-drv) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 5b40d4514a..1bc7a70277 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -250,19 +250,8 @@ info --version") ;; It can take a while before the shell commands are executed. (marionette-eval '(use-modules (rnrs io ports)) marionette) - (marionette-eval - '(let loop ((i 0)) - (catch 'system-error - (lambda () - (call-with-input-file "/root/logged-in" - get-string-all)) - (lambda args - (if (and (< i 15) (= ENOENT (system-error-errno args))) - (begin - (sleep 1) - (loop (+ i 1))) - (apply throw args))))) - marionette))) + (wait-for-file "/root/logged-in" marionette + #:read 'get-string-all))) ;; There should be one utmpx entry for the user logged in on tty1. (test-equal "utmpx entry" @@ -555,11 +544,11 @@ in a loop. See <http://bugs.gnu.org/26931>.") (>= gid 100)))) ;; Last, the job that uses a command; allows us to test whether - ;; $PATH is sane. (Note that 'marionette-eval' stringifies objects - ;; that don't have a read syntax, hence the string.) + ;; $PATH is sane. (test-equal "root's job with command" - "#<eof>" - (wait-for-file "/root/witness-touch" marionette)) + "" + (wait-for-file "/root/witness-touch" marionette + #:read '(@ (ice-9 rdelim) read-string))) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm new file mode 100644 index 0000000000..be64c4e7e5 --- /dev/null +++ b/gnu/tests/desktop.scm @@ -0,0 +1,105 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu tests desktop) + #:use-module (gnu tests) + #:use-module (gnu services) + #:use-module (gnu services dbus) + #:use-module (gnu services desktop) + #:use-module (gnu system vm) + #:use-module (guix gexp) + #:use-module (srfi srfi-1) + #:export (%test-elogind)) + + +;;; +;;; Elogind. +;;; + +(define (run-elogind-test vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-64)) + + (define marionette + (make-marionette '(#$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "elogind") + + ;; Log in as root on tty1, and check what 'loginctl' returns. + (test-equal "login on tty1" + '(("c1" "0" "root" "seat0" "/dev/tty1") ;session + ("seat0") ;seat + ("0" "root")) ;user + + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; Now we can type. + (marionette-type "root\n" marionette) + (marionette-type "loginctl list-users --no-legend > users\n" + marionette) + (marionette-type "loginctl list-seats --no-legend > seats\n" + marionette) + (marionette-type "loginctl list-sessions --no-legend > sessions\n" + marionette) + + + ;; Read the three files. + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (let ((guest-file (lambda (file) + (string-tokenize + (wait-for-file file marionette + #:read 'get-string-all))))) + (list (guest-file "/root/sessions") + (guest-file "/root/seats") + (guest-file "/root/users"))))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "elogind" test)) + +(define %test-elogind + (system-test + (name "elogind") + (description + "Test whether we can log in when elogind is enabled, and whether +'loginctl' reports accurate user, session, and seat information.") + (value + (let ((os (marionette-operating-system + (simple-operating-system + (service elogind-service-type) + (service polkit-service-type) + (service dbus-root-service-type)) + #:imported-modules '((gnu services herd) + (guix combinators))))) + (run-elogind-test (virtual-machine os)))))) diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 866bf885ce..d0cc08f431 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -37,6 +37,7 @@ #:use-module (guix utils) #:export (%test-installed-os %test-installed-extlinux-os + %test-iso-image-installer %test-separate-store-os %test-separate-home-os %test-raid-root-os @@ -126,7 +127,11 @@ "Return a variant of OS where ROOTS are registered as GC roots." (operating-system (inherit os) - (services (cons (service gc-root-service-type roots) + + ;; We use this procedure for the installation OS, which already defines GC + ;; roots. Add ROOTS to those. + (services (cons (simple-service 'extra-root + gc-root-service-type roots) (operating-system-user-services os))))) @@ -196,6 +201,7 @@ reboot\n") (kernel-arguments '("console=ttyS0"))) #:imported-modules '((gnu services herd) (guix combinators)))) + (installation-disk-image-file-system-type "ext4") (target-size (* 1200 MiB))) "Run SCRIPT (a shell script following the GuixSD installation procedure) in OS to install TARGET-OS. Return a VM image of TARGET-SIZE bytes containing @@ -213,7 +219,9 @@ packages defined in installation-os." (image (system-disk-image (operating-system-with-gc-roots os (list target)) - #:disk-image-size (* 1500 MiB)))) + #:disk-image-size (* 1500 MiB) + #:file-system-type + installation-disk-image-file-system-type))) (define install (with-imported-modules '((guix build utils) (gnu build marionette)) @@ -229,16 +237,25 @@ packages defined in installation-os." (define marionette (make-marionette - (cons (which #$(qemu-command system)) - (cons* "-no-reboot" "-m" "800" - "-drive" - (string-append "file=" #$image - ",if=virtio,readonly") - "-drive" - (string-append "file=" #$output ",if=virtio") - (if (file-exists? "/dev/kvm") - '("-enable-kvm") - '()))))) + `(,(which #$(qemu-command system)) + "-no-reboot" + "-m" "800" + #$@(cond + ((string=? "ext4" installation-disk-image-file-system-type) + #~("-drive" + ,(string-append "file=" #$image + ",if=virtio,readonly"))) + ((string=? "iso9660" installation-disk-image-file-system-type) + #~("-cdrom" #$image)) + (else + (error + "unsupported installation-disk-image-file-system-type:" + installation-disk-image-file-system-type))) + "-drive" + ,(string-append "file=" #$output ",if=virtio") + ,@(if (file-exists? "/dev/kvm") + '("-enable-kvm") + '())))) (pk 'uname (marionette-eval '(uname) marionette)) @@ -314,6 +331,81 @@ per %test-installed-os, this test is expensive in terms of CPU and storage.") ;;; +;;; Installation through an ISO image. +;;; + +(define-os-with-source (%minimal-os-on-vda %minimal-os-on-vda-source) + ;; The OS we want to install. + (use-modules (gnu) (gnu tests) (srfi srfi-1)) + + (operating-system + (host-name "liberigilo") + (timezone "Europe/Paris") + (locale "en_US.UTF-8") + + (bootloader (grub-configuration (target "/dev/vda"))) + (kernel-arguments '("console=ttyS0")) + (file-systems (cons (file-system + (device "my-root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + (supplementary-groups '("wheel" "audio" "video")) + (home-directory "/home/alice")) + %base-user-accounts)) + (services (cons (service marionette-service-type + (marionette-configuration + (imported-modules '((gnu services herd) + (guix combinators))))) + %base-services)))) + +(define %simple-installation-script-for-/dev/vda + ;; Shell script of a simple installation. + "\ +. /etc/profile +set -e -x +guix --version + +export GUIX_BUILD_OPTIONS=--no-grafts +guix build isc-dhcp +parted --script /dev/vda mklabel gpt \\ + mkpart primary ext2 1M 3M \\ + mkpart primary ext2 3M 1G \\ + set 1 boot on \\ + set 1 bios_grub on +mkfs.ext4 -L my-root /dev/vda2 +mount /dev/vda2 /mnt +df -h /mnt +herd start cow-store /mnt +mkdir /mnt/etc +cp /etc/target-config.scm /mnt/etc/config.scm +guix system init /mnt/etc/config.scm /mnt --no-substitutes +sync +reboot\n") + +(define %test-iso-image-installer + (system-test + (name "iso-image-installer") + (description + "") + (value + (mlet* %store-monad ((image (run-install + %minimal-os-on-vda + %minimal-os-on-vda-source + #:script + %simple-installation-script-for-/dev/vda + #:installation-disk-image-file-system-type + "iso9660")) + (command (qemu-command/writable-image image))) + (run-basic-test %minimal-os-on-vda command name))))) + + +;;; ;;; Separate /home. ;;; diff --git a/gnu/tests/rsync.scm b/gnu/tests/rsync.scm new file mode 100644 index 0000000000..c97836788b --- /dev/null +++ b/gnu/tests/rsync.scm @@ -0,0 +1,126 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Christopher Baines <mail@cbaines.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu tests rsync) + #:use-module (gnu packages rsync) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system file-systems) + #:use-module (gnu system shadow) + #:use-module (gnu system vm) + #:use-module (gnu services) + #:use-module (gnu services rsync) + #:use-module (gnu services networking) + #:use-module (guix gexp) + #:use-module (guix store) + #:export (%test-rsync)) + +(define* (run-rsync-test rsync-os #:optional (rsync-port 873)) + "Run tests in %RSYNC-OS, which has rsync running and listening on +PORT." + (define os + (marionette-operating-system + rsync-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (port-forwardings '()))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (gnu build marionette)) + + (define marionette + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "rsync") + + ;; Wait for rsync to be up and running. + (test-eq "service running" + 'running! + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'rsync) + 'running!) + marionette)) + + ;; Make sure the PID file is created. + (test-assert "PID file" + (marionette-eval + '(file-exists? "/var/run/rsyncd/rsyncd.pid") + marionette)) + + (test-assert "Test file copied to share" + (marionette-eval + '(begin + (call-with-output-file "/tmp/input" + (lambda (port) + (display "test-file-contents\n" port))) + (zero? + (system* "rsync" "/tmp/input" + (string-append "rsync://localhost:" + (number->string #$rsync-port) + "/files/input")))) + marionette)) + + (test-equal "Test file correctly received from share" + "test-file-contents" + (marionette-eval + '(begin + (use-modules (ice-9 rdelim)) + (zero? + (system* "rsync" + (string-append "rsync://localhost:" + (number->string #$rsync-port) + "/files/input") + "/tmp/output")) + (call-with-input-file "/tmp/output" + (lambda (port) + (read-line port)))) + marionette)) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "rsync-test" test)) + +(define* %rsync-os + ;; Return operating system under test. + (let ((base-os + (simple-operating-system + (dhcp-client-service) + (service rsync-service-type)))) + (operating-system + (inherit base-os) + (packages (cons* rsync + (operating-system-packages base-os)))))) + +(define %test-rsync + (system-test + (name "rsync") + (description "Connect to a running RSYNC server.") + (value (run-rsync-test %rsync-os)))) diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm new file mode 100644 index 0000000000..d7754e460a --- /dev/null +++ b/guix/build-system/meson.scm @@ -0,0 +1,178 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix build-system meson) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:export (%meson-build-system-modules + meson-build-system)) + +;; Commentary: +;; +;; Standard build procedure for packages using Meson. This is implemented as an +;; extension of `gnu-build-system', with the option to turn on the glib/gtk +;; phases from `glib-or-gtk-build-system'. +;; +;; Code: + +(define %meson-build-system-modules + ;; Build-side modules imported by default. + `((guix build meson-build-system) + (guix build rpath) + ;; The modules from glib-or-gtk contains the modules from gnu-build-system, + ;; so there is no need to import that too. + ,@%glib-or-gtk-build-system-modules)) + +(define (default-ninja) + "Return the default ninja package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((module (resolve-interface '(gnu packages ninja)))) + (module-ref module 'ninja))) + +(define (default-meson) + "Return the default meson package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((module (resolve-interface '(gnu packages build-tools)))) + (module-ref module 'meson-for-build))) + +(define (default-patchelf) + "Return the default patchelf package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((module (resolve-interface '(gnu packages elf)))) + (module-ref module 'patchelf))) + +(define* (lower name + #:key source inputs native-inputs outputs system target + (meson (default-meson)) + (ninja (default-ninja)) + (glib-or-gtk? #f) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + `(#:source #:meson #:ninja #:inputs #:native-inputs #:outputs #:target)) + + (and (not target) ;; TODO: add support for cross-compilation. + (bag + (name name) + (system system) + (build-inputs `(("meson" ,meson) + ("ninja" ,ninja) + ;; Add patchelf for (guix build rpath) to work. + ("patchelf" ,(default-patchelf)) + ,@native-inputs)) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (outputs outputs) + (build meson-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define* (meson-build store name inputs + #:key (guile #f) + (outputs '("out")) + (configure-flags ''()) + (search-paths '()) + (build-type "plain") + (tests? #t) + (test-target "test") + (glib-or-gtk? #f) + (parallel-build? #t) + (parallel-tests? #f) + (validate-runpath? #t) + (patch-shebangs? #t) + (strip-binaries? #t) + (strip-flags ''("--strip-debug")) + (strip-directories ''("lib" "lib64" "libexec" + "bin" "sbin")) + (elf-directories ''("lib" "lib64" "libexec" + "bin" "sbin")) + (phases '(@ (guix build meson-build-system) + %standard-phases)) + (system (%current-system)) + (imported-modules %meson-build-system-modules) + (modules '((guix build meson-build-system) + (guix build utils)))) + "Build SOURCE using MESON, and with INPUTS, assuming that SOURCE +has a 'meson.build' file." + (define builder + `(let ((build-phases (if ,glib-or-gtk? + ,phases + (modify-phases ,phases + (delete 'glib-or-gtk-compile-schemas) + (delete 'glib-or-gtk-wrap))))) + (use-modules ,@modules) + (meson-build #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:outputs %outputs + #:inputs %build-inputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:phases build-phases + #:configure-flags ,configure-flags + #:build-type ,build-type + #:tests? ,tests? + #:test-target ,test-target + #:parallel-build? ,parallel-build? + #:parallel-tests? ,parallel-tests? + #:validate-runpath? ,validate-runpath? + #:patch-shebangs? ,patch-shebangs? + #:strip-binaries? ,strip-binaries? + #:strip-flags ,strip-flags + #:strip-directories ,strip-directories + #:elf-directories ,elf-directories))) + + (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 + #:system system + #:inputs inputs + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define meson-build-system + (build-system + (name 'meson) + (description "The standard Meson build system") + (lower lower))) + +;;; meson.scm ends here diff --git a/guix/build/download.scm b/guix/build/download.scm index 6ef6233346..9490f48055 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Steve Sprang <scs@stevesprang.com> +;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ #:use-module (guix base64) #:use-module (guix ftp-client) #:use-module (guix build utils) + #:use-module (guix utils) #:use-module (rnrs io ports) #:use-module (rnrs bytevectors) #:use-module (srfi srfi-1) @@ -44,7 +46,7 @@ url-fetch byte-count->string current-terminal-columns - progress-proc + progress-reporter/file uri-abbreviation nar-uri-abbreviation store-path-abbreviation)) @@ -147,65 +149,97 @@ Otherwise return STORE-PATH." (define time-monotonic time-tai)) (else #t)) -(define* (progress-proc file size - #:optional (log-port (current-output-port)) - #:key (abbreviation basename)) - "Return a procedure to show the progress of FILE's download, which is SIZE -bytes long. The returned procedure is suitable for use as an argument to -`dump-port'. The progress report is written to LOG-PORT, with ABBREVIATION -used to shorten FILE for display." - ;; XXX: Because of <http://bugs.gnu.org/19939> this procedure is often not - ;; called as frequently as we'd like too; this is especially bad with Nginx - ;; on hydra.gnu.org, which returns whole nars as a single chunk. - (let ((start-time #f)) - (let-syntax ((with-elapsed-time - (syntax-rules () - ((_ elapsed body ...) - (let* ((now (current-time time-monotonic)) - (elapsed (and start-time - (duration->seconds - (time-difference now - start-time))))) - (unless start-time - (set! start-time now)) - body ...))))) + +;; TODO: replace '(@ (guix build utils) dump-port))'. +(define* (dump-port* in out + #:key (buffer-size 16384) + (reporter (make-progress-reporter noop noop noop))) + "Read as much data as possible from IN and write it to OUT, using chunks of +BUFFER-SIZE bytes. After each successful transfer of BUFFER-SIZE bytes or +less, report the total number of bytes transferred to the REPORTER, which +should be a <progress-reporter> object." + (define buffer + (make-bytevector buffer-size)) + + (call-with-progress-reporter reporter + (lambda (report) + (let loop ((total 0) + (bytes (get-bytevector-n! in buffer 0 buffer-size))) + (or (eof-object? bytes) + (let ((total (+ total bytes))) + (put-bytevector out buffer 0 bytes) + (report total) + (loop total (get-bytevector-n! in buffer 0 buffer-size)))))))) + +(define (rate-limited proc interval) + "Return a procedure that will forward the invocation to PROC when the time +elapsed since the previous forwarded invocation is greater or equal to +INTERVAL (a time-duration object), otherwise does nothing and returns #f." + (let ((previous-at #f)) + (lambda args + (let* ((now (current-time time-monotonic)) + (forward-invocation (lambda () + (set! previous-at now) + (apply proc args)))) + (if previous-at + (let ((elapsed (time-difference now previous-at))) + (if (time>=? elapsed interval) + (forward-invocation) + #f)) + (forward-invocation)))))) + +(define* (progress-reporter/file file size + #:optional (log-port (current-output-port)) + #:key (abbreviation basename)) + "Return a <progress-reporter> object to show the progress of FILE's download, +which is SIZE bytes long. The progress report is written to LOG-PORT, with +ABBREVIATION used to shorten FILE for display." + (let ((start-time (current-time time-monotonic)) + (transferred 0)) + (define (render) + "Write the progress report to LOG-PORT." + (define elapsed + (duration->seconds + (time-difference (current-time time-monotonic) start-time))) (if (number? size) - (lambda (transferred cont) - (with-elapsed-time elapsed - (let* ((% (* 100.0 (/ transferred size))) - (throughput (if elapsed - (/ transferred elapsed) - 0)) - (left (format #f " ~a ~a" - (abbreviation file) - (byte-count->string size))) - (right (format #f "~a/s ~a ~a~6,1f%" - (byte-count->string throughput) - (seconds->string elapsed) - (progress-bar %) %))) - (display "\r\x1b[K" log-port) - (display (string-pad-middle left right - (current-terminal-columns)) - log-port) - (flush-output-port log-port) - (cont)))) - (lambda (transferred cont) - (with-elapsed-time elapsed - (let* ((throughput (if elapsed - (/ transferred elapsed) - 0)) - (left (format #f " ~a" - (abbreviation file))) - (right (format #f "~a/s ~a | ~a transferred" - (byte-count->string throughput) - (seconds->string elapsed) - (byte-count->string transferred)))) - (display "\r\x1b[K" log-port) - (display (string-pad-middle left right - (current-terminal-columns)) - log-port) - (flush-output-port log-port) - (cont)))))))) + (let* ((% (* 100.0 (/ transferred size))) + (throughput (/ transferred elapsed)) + (left (format #f " ~a ~a" + (abbreviation file) + (byte-count->string size))) + (right (format #f "~a/s ~a ~a~6,1f%" + (byte-count->string throughput) + (seconds->string elapsed) + (progress-bar %) %))) + (display "\r\x1b[K" log-port) + (display (string-pad-middle left right + (current-terminal-columns)) + log-port) + (flush-output-port log-port)) + (let* ((throughput (/ transferred elapsed)) + (left (format #f " ~a" + (abbreviation file))) + (right (format #f "~a/s ~a | ~a transferred" + (byte-count->string throughput) + (seconds->string elapsed) + (byte-count->string transferred)))) + (display "\r\x1b[K" log-port) + (display (string-pad-middle left right + (current-terminal-columns)) + log-port) + (flush-output-port log-port)))) + + (progress-reporter + (start render) + ;; Report the progress every 300ms or longer. + (report + (let ((rate-limited-render + (rate-limited render (make-time time-monotonic 300000000 0)))) + (lambda (value) + (set! transferred value) + (rate-limited-render)))) + ;; Don't miss the last report. + (stop render)))) (define* (uri-abbreviation uri #:optional (max-length 42)) "If URI's string representation is larger than MAX-LENGTH, return an @@ -263,9 +297,10 @@ out if the connection could not be established in less than TIMEOUT seconds." (dirname (uri-path uri))))) (call-with-output-file file (lambda (out) - (dump-port in out - #:buffer-size %http-receive-buffer-size - #:progress (progress-proc (uri-abbreviation uri) size)))) + (dump-port* in out + #:buffer-size %http-receive-buffer-size + #:reporter (progress-reporter/file + (uri-abbreviation uri) size)))) (ftp-close conn)) (newline) @@ -754,16 +789,18 @@ certificates; otherwise simply ignore them." (lambda (p) (if (port? bv-or-port) (begin - (dump-port bv-or-port p - #:buffer-size %http-receive-buffer-size - #:progress (progress-proc (uri-abbreviation uri) - size)) + (dump-port* bv-or-port p + #:buffer-size %http-receive-buffer-size + #:reporter (progress-reporter/file + (uri-abbreviation uri) size)) (newline)) (put-bytevector p bv-or-port)))) file)) ((301 ; moved permanently 302 ; found (redirection) - 307) ; temporary redirection + 303 ; see other + 307 ; temporary redirection + 308) ; permanent redirection (let ((uri (resolve-uri-reference (response-location resp) uri))) (format #t "following redirection to `~a'...~%" (uri->string uri)) @@ -860,8 +897,8 @@ otherwise simply ignore them." hashes)) content-addressed-mirrors)) - ;; Make this unbuffered so 'progress-proc' works as expected. _IOLBF means - ;; '\n', not '\r', so it's not appropriate here. + ;; Make this unbuffered so 'progress-report/file' works as expected. _IOLBF + ;; means '\n', not '\r', so it's not appropriate here. (setvbuf (current-output-port) _IONBF) (setvbuf (current-error-port) _IOLBF) @@ -876,8 +913,4 @@ otherwise simply ignore them." file url) #f)))) -;;; Local Variables: -;;; eval: (put 'with-elapsed-time 'scheme-indent-function 1) -;;; End: - ;;; download.scm ends here diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index bda699ddf4..2404dbddb4 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -110,22 +110,41 @@ store in '.el' files." (define source (getcwd)) - (define (install-file? file stat) - (let ((stripped-file (string-trim (string-drop file (string-length source)) #\/))) - (and (any (cut string-match <> stripped-file) include) - (not (any (cut string-match <> stripped-file) exclude))))) + (define* (install-file? file stat #:key verbose?) + (let* ((stripped-file (string-trim + (string-drop file (string-length source)) #\/))) + (define (match-stripped-file action regex) + (let ((result (string-match regex stripped-file))) + (when (and result verbose?) + (format #t "info: ~A ~A as it matches \"~A\"\n" + stripped-file action regex)) + result)) + + (when verbose? + (format #t "info: considering installing ~A\n" stripped-file)) + + (and (any (cut match-stripped-file "included" <>) include) + (not (any (cut match-stripped-file "excluded" <>) exclude))))) (let* ((out (assoc-ref outputs "out")) (elpa-name-ver (store-directory->elpa-name-version out)) - (target-directory (string-append out %install-suffix "/" elpa-name-ver))) - (for-each - (lambda (file) - (let* ((stripped-file (string-drop file (string-length source))) - (target-file (string-append target-directory stripped-file))) - (format #t "`~a' -> `~a'~%" file target-file) - (install-file file (dirname target-file)))) - (find-files source install-file?))) - #t) + (target-directory (string-append out %install-suffix "/" elpa-name-ver)) + (files-to-install (find-files source install-file?))) + (cond + ((not (null? files-to-install)) + (for-each + (lambda (file) + (let* ((stripped-file (string-drop file (string-length source))) + (target-file (string-append target-directory stripped-file))) + (format #t "`~a' -> `~a'~%" file target-file) + (install-file file (dirname target-file)))) + files-to-install) + #t) + (else + (format #t "error: No files found to install.\n") + (find-files source (lambda (file stat) + (install-file? file stat #:verbose? #t))) + #f)))) (define* (move-doc #:key outputs #:allow-other-keys) "Move info files from the ELPA package directory to the info directory." diff --git a/guix/build/meson-build-system.scm b/guix/build/meson-build-system.scm new file mode 100644 index 0000000000..2b92240c52 --- /dev/null +++ b/guix/build/meson-build-system.scm @@ -0,0 +1,150 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix build meson-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) + #:use-module (guix build utils) + #:use-module (guix build rpath) + #:use-module (guix build gremlin) + #:use-module (guix elf) + #:use-module (ice-9 match) + #:use-module (rnrs io ports) + #:use-module (srfi srfi-1) + #:export (%standard-phases + meson-build)) + +;; Commentary: +;; +;; Builder-side code of the standard meson build procedure. +;; +;; Code: + +(define* (configure #:key outputs configure-flags build-type + #:allow-other-keys) + "Configure the given package." + (let* ((out (assoc-ref outputs "out")) + (source-dir (getcwd)) + (build-dir "../build") + (prefix (assoc-ref outputs "out")) + (args `(,(string-append "--prefix=" prefix) + ,(string-append "--buildtype=" build-type) + ,@configure-flags + ,source-dir))) + (mkdir build-dir) + (chdir build-dir) + (zero? (apply system* "meson" args)))) + +(define* (build #:key parallel-build? + #:allow-other-keys) + "Build a given meson package." + (zero? (apply system* "ninja" + (if parallel-build? + `("-j" ,(number->string (parallel-job-count))) + '("-j" "1"))))) + +(define* (check #:key test-target parallel-tests? tests? + #:allow-other-keys) + (setenv "MESON_TESTTHREADS" + (if parallel-tests? + (number->string (parallel-job-count)) + "1")) + (if tests? + (zero? (system* "ninja" test-target)) + (begin + (format #t "test suite not run~%") + #t))) + +(define* (install #:rest args) + (zero? (system* "ninja" "install"))) + +(define* (fix-runpath #:key (elf-directories '("lib" "lib64" "libexec" + "bin" "sbin")) + outputs #:allow-other-keys) + "Try to make sure all ELF files in ELF-DIRECTORIES are able to find their +local dependencies in their RUNPATH, by searching for the needed libraries in +the directories of the package, and adding them to the RUNPATH if needed. +Also shrink the RUNPATH to what is needed, +since a lot of directories are left over from the build phase of meson, +for example libraries only needed for the tests." + + ;; Find the directories (if any) that contains DEP-NAME. The directories + ;; searched are the ones that ELF-FILES are in. + (define (find-deps dep-name elf-files) + (map dirname (filter (lambda (file) + (string=? dep-name (basename file))) + elf-files))) + + ;; Return a list of libraries that FILE needs. + (define (file-needed file) + (let* ((elf (call-with-input-file file + (compose parse-elf get-bytevector-all))) + (dyninfo (elf-dynamic-info elf))) + (if dyninfo + (elf-dynamic-info-needed dyninfo) + '()))) + + + ;; If FILE needs any libs that are part of ELF-FILES, the RUNPATH + ;; is modified accordingly. + (define (handle-file file elf-files) + (let* ((dep-dirs (concatenate (map (lambda (dep-name) + (find-deps dep-name elf-files)) + (file-needed file))))) + (unless (null? dep-dirs) + (augment-rpath file (string-join dep-dirs ":"))))) + + (define handle-output + (match-lambda + ((output . directory) + (let* ((elf-dirnames (map (lambda (subdir) + (string-append directory "/" subdir)) + elf-directories)) + (existing-elf-dirs (filter (lambda (dir) + (and (file-exists? dir) + (file-is-directory? dir))) + elf-dirnames)) + (elf-pred (lambda (name stat) + (elf-file? name))) + (elf-list (concatenate (map (lambda (dir) + (find-files dir elf-pred)) + existing-elf-dirs)))) + (for-each (lambda (elf-file) + (system* "patchelf" "--shrink-rpath" elf-file) + (handle-file elf-file elf-list)) + elf-list))))) + (for-each handle-output outputs) + #t) + +(define %standard-phases + ;; The standard-phases of glib-or-gtk contains a superset of the phases + ;; from the gnu-build-system. If the glib-or-gtk? key is #f (the default) + ;; then the extra phases will be removed again in (guix build-system meson). + (modify-phases glib-or-gtk:%standard-phases + (replace 'configure configure) + (replace 'build build) + (replace 'check check) + (replace 'install install) + (add-after 'strip 'fix-runpath fix-runpath))) + +(define* (meson-build #:key inputs phases + #:allow-other-keys #:rest args) + "Build the given package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; meson-build-system.scm ends here diff --git a/guix/cve.scm b/guix/cve.scm index 088e39837a..38e59944c8 100644 --- a/guix/cve.scm +++ b/guix/cve.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -229,11 +229,24 @@ the given TTL (fetch from the NIST web site when TTL has expired)." (now (current-time time-utc))) (< (+ (stat:mtime s) ttl) (time-second now)))) + (define (read* port) + ;; Disable read options to avoid populating the source property weak + ;; table, which speeds things up, saves memory, and works around + ;; <https://lists.gnu.org/archive/html/guile-devel/2017-09/msg00031.html>. + (let ((options (read-options))) + (dynamic-wind + (lambda () + (read-disable 'positions)) + (lambda () + (read port)) + (lambda () + (read-options options))))) + (catch 'system-error (lambda () (if (old? cache) (update-cache) - (match (call-with-input-file cache read) + (match (call-with-input-file cache read*) (('vulnerabilities 1 vulns) (map sexp->vulnerability vulns)) (x diff --git a/guix/download.scm b/guix/download.scm index 1dde2919a7..a1560de1a1 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -50,7 +50,7 @@ (let* ((gnu-mirrors '(;; This one redirects to a (supposedly) nearby and (supposedly) ;; up-to-date mirror. - "http://ftpmirror.gnu.org/" + "https://ftpmirror.gnu.org/gnu/" "ftp://ftp.cs.tu-berlin.de/pub/gnu/" "ftp://ftp.funet.fi/pub/mirrors/ftp.gnu.org/gnu/" diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 07e6909641..0de36f2f71 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -26,6 +26,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) + #:use-module (rnrs io ports) #:use-module (system foreign) #:use-module (guix http-client) #:use-module (guix ftp-client) @@ -34,6 +35,7 @@ #:use-module (guix records) #:use-module (guix upstream) #:use-module (guix packages) + #:use-module (guix zlib) #:export (gnu-package-name gnu-package-mundane-name gnu-package-copyright-holder @@ -58,7 +60,7 @@ gnu-package-name->name+version %gnu-updater - %gnome-updater + %gnu-ftp-updater %kde-updater %xorg-updater %kernel.org-updater)) @@ -433,6 +435,70 @@ hosted on ftp.gnu.org, or not under that name (this is the case for #:server server #:directory directory)))) +(define %gnu-file-list-uri + ;; URI of the file list for ftp.gnu.org. + (string->uri "https://ftp.gnu.org/find.txt.gz")) + +(define ftp.gnu.org-files + (mlambda () + "Return the list of files available at ftp.gnu.org." + + ;; XXX: Memoize the whole procedure to work around the fact that + ;; 'http-fetch/cached' caches the gzipped version. + + (define (trim-leading-components str) + ;; Trim the leading ".", if any, in "./gnu/foo". + (string-trim str (char-set #\.))) + + (define (string->lines str) + (string-tokenize str (char-set-complement (char-set #\newline)))) + + ;; Since https://ftp.gnu.org honors 'If-Modified-Since', the hard-coded + ;; TTL can be relatively short. + (let ((port (http-fetch/cached %gnu-file-list-uri #:ttl (* 15 60)))) + (map trim-leading-components + (call-with-gzip-input-port port + (compose string->lines get-string-all)))))) + +(define (latest-gnu-release package) + "Return the latest release of PACKAGE, a GNU package available via +ftp.gnu.org. + +This method does not rely on FTP access at all; instead, it browses the file +list available from %GNU-FILE-LIST-URI over HTTP(S)." + (let-values (((server directory) + (ftp-server/directory package)) + ((name) + (package-upstream-name package))) + (let* ((files (ftp.gnu.org-files)) + (relevant (filter (lambda (file) + (and (string-prefix? "/gnu" file) + (string-contains file directory) + (release-file? name (basename file)))) + files))) + (match (sort relevant (lambda (file1 file2) + (version>? (sans-extension (basename file1)) + (sans-extension (basename file2))))) + ((and tarballs (reference _ ...)) + (let* ((version (tarball->version reference)) + (tarballs (filter (lambda (file) + (string=? (sans-extension + (basename file)) + (sans-extension + (basename reference)))) + tarballs))) + (upstream-source + (package name) + (version version) + (urls (map (lambda (file) + (string-append "mirror://gnu/" + (string-drop file + (string-length "/gnu/")))) + tarballs)) + (signature-urls (map (cut string-append <> ".sig") urls))))) + (() + #f))))) + (define %package-name-rx ;; Regexp for a package name, e.g., "foo-X.Y". Since TeXmacs uses ;; "TeXmacs-X.Y-src", the `-src' suffix is allowed. @@ -445,6 +511,9 @@ hosted on ftp.gnu.org, or not under that name (this is the case for (values name+version #f) (values (match:substring match 1) (match:substring match 2))))) +(define gnome-package? + (url-prefix-predicate "mirror://gnome/")) + (define (pure-gnu-package? package) "Return true if PACKAGE is a non-Emacs and non-GNOME GNU package. This excludes AucTeX, for instance, whose releases are now uploaded to @@ -455,70 +524,9 @@ releases are on gnu.org." (not (gnome-package? package)) (gnu-package? package))) -(define (url-prefix-predicate prefix) - "Return a predicate that returns true when passed a package where one of its -source URLs starts with PREFIX." - (lambda (package) - (define matching-uri? - (match-lambda - ((? string? uri) - (string-prefix? prefix uri)) - (_ - #f))) - - (match (package-source package) - ((? origin? origin) - (match (origin-uri origin) - ((? matching-uri?) #t) - (_ #f))) - (_ #f)))) - (define gnu-hosted? (url-prefix-predicate "mirror://gnu/")) -(define gnome-package? - (url-prefix-predicate "mirror://gnome/")) - -(define (latest-gnome-release package) - "Return the latest release of PACKAGE, the name of a GNOME package." - (define %not-dot - (char-set-complement (char-set #\.))) - - (define (even-minor-version? version) - (match (string-tokenize version %not-dot) - (((= string->number major) (= string->number minor) . rest) - (and minor (even? minor))) - (_ - #t))) ;cross fingers - - (define (even-numbered? file) - ;; Return true if FILE somehow denotes an even-numbered file name. The - ;; trick here is that we want this to match both directories such as - ;; "3.18.6" and actual file names such as "gtk+-3.18.6.tar.bz2". - (let-values (((name version) (package-name->name+version file))) - (even-minor-version? (or version name)))) - - (define upstream-name - ;; Some packages like "NetworkManager" have camel-case names. - (package-upstream-name package)) - - (false-if-ftp-error - (latest-ftp-release upstream-name - #:server "ftp.gnome.org" - #:directory (string-append "/pub/gnome/sources/" - upstream-name) - - - ;; <https://www.gnome.org/gnome-3/source/> explains - ;; that odd minor version numbers represent development - ;; releases, which we are usually not interested in. - #:keep-file? even-numbered? - - ;; ftp.gnome.org provides no signatures, only - ;; checksums. - #:file->signature (const #f)))) - - (define (latest-kde-release package) "Return the latest release of PACKAGE, the name of an KDE.org package." (let ((uri (string->uri (origin-uri (package-source package))))) @@ -557,18 +565,23 @@ source URLs starts with PREFIX." ".sign")))))) (define %gnu-updater + ;; This is for everything at ftp.gnu.org. (upstream-updater (name 'gnu) (description "Updater for GNU packages") - (pred pure-gnu-package?) - (latest latest-release*))) + (pred gnu-hosted?) + (latest latest-gnu-release))) -(define %gnome-updater +(define %gnu-ftp-updater + ;; This is for GNU packages taken from alternate locations, such as + ;; alpha.gnu.org, ftp.gnupg.org, etc. It is obsolescent. (upstream-updater - (name 'gnome) - (description "Updater for GNOME packages") - (pred gnome-package?) - (latest latest-gnome-release))) + (name 'gnu-ftp) + (description "Updater for GNU packages only available via FTP") + (pred (lambda (package) + (and (not (gnu-hosted? package)) + (pure-gnu-package? package)))) + (latest latest-release*))) (define %kde-updater (upstream-updater diff --git a/guix/http-client.scm b/guix/http-client.scm index 3c5441c38c..59788c1f38 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2012, 2015 Free Software Foundation, Inc. +;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -259,7 +260,10 @@ Raise an '&http-get-error' condition if downloading fails." ((200) (values data (response-content-length resp))) ((301 ; moved permanently - 302) ; found (redirection) + 302 ; found (redirection) + 303 ; see other + 307 ; temporary redirection + 308) ; permanent redirection (let ((uri (resolve-uri-reference (response-location resp) uri))) (close-port port) (format #t (G_ "following redirection to `~a'...~%") @@ -302,14 +306,34 @@ Raise an '&http-get-error' condition if downloading fails." "Like 'http-fetch', return an input port, but cache its contents in ~/.cache/guix. The cache remains valid for TTL seconds." (let ((file (cache-file-for-uri uri))) - (define (update-cache) + (define (update-cache cache-port) + (define cache-time + (and cache-port + (stat:mtime (stat cache-port)))) + + (define headers + `((user-agent . "GNU Guile") + ,@(if cache-time + `((if-modified-since + . ,(time-utc->date (make-time time-utc 0 cache-time)))) + '()))) + ;; Update the cache and return an input port. - (let ((port (http-fetch uri #:text? text?))) - (mkdir-p (dirname file)) - (with-atomic-file-output file - (cut dump-port port <>)) - (close-port port) - (open-input-file file))) + (guard (c ((http-get-error? c) + (if (= 304 (http-get-error-code c)) ;"Not Modified" + (begin + (utime file) ;update FILE's mtime + cache-port) + (raise c)))) + (let ((port (http-fetch uri #:text? text? + #:headers headers))) + (mkdir-p (dirname file)) + (when cache-port + (close-port cache-port)) + (with-atomic-file-output file + (cut dump-port port <>)) + (close-port port) + (open-input-file file)))) (define (old? port) ;; Return true if PORT has passed TTL. @@ -321,13 +345,11 @@ Raise an '&http-get-error' condition if downloading fails." (lambda () (let ((port (open-input-file file))) (if (old? port) - (begin - (close-port port) - (update-cache)) + (update-cache port) port))) (lambda args (if (= ENOENT (system-error-errno args)) - (update-cache) + (update-cache #f) (apply throw args)))))) ;;; http-client.scm ends here diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 9ee69e5296..01acc6f36e 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -71,7 +71,7 @@ ;; mozilla_1_0 ("mozilla_1_1" 'mpl1.1) ("openssl" 'openssl) - ("perl_5" '(package-license perl)) ;GPL1+ and Artistic 1 + ("perl_5" 'perl-license) ;GPL1+ and Artistic 1 ("qpl_1_0" 'qpl) ;; ssleay ;; sun diff --git a/guix/import/gnome.scm b/guix/import/gnome.scm new file mode 100644 index 0000000000..1ade63e1af --- /dev/null +++ b/guix/import/gnome.scm @@ -0,0 +1,112 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix import gnome) + #:use-module (guix upstream) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix http-client) + #:use-module (json) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-34) + #:use-module (web uri) + #:use-module (ice-9 match) + #:export (%gnome-updater)) + +;;; Commentary: +;;; +;;; This package provides not an actual importer but simply an updater for +;;; GNOME packages. It grabs package meta-data from 'cache.json' files +;;; available on ftp.gnome.org. +;;; +;;; Code: + +(define (jsonish->upstream-source name jsonish) + "Return an <upstream-source> object for package NAME, using JSONISH as the +source for metadata." + (match jsonish + ((version . dictionary) + (upstream-source + (package name) + (version version) + (urls (filter-map (lambda (extension) + (match (hash-ref dictionary extension) + (#f + #f) + ((? string? relative-url) + (string-append "mirror://gnome/sources/" + name "/" relative-url)))) + '("tar.lz" "tar.xz" "tar.bz2" "tar.gz"))))))) + +(define (latest-gnome-release package) + "Return the latest release of PACKAGE, a GNOME package, or #f if it could +not be determined." + (define %not-dot + (char-set-complement (char-set #\.))) + + (define (even-minor-version? version) + (match (string-tokenize version %not-dot) + (((= string->number major) (= string->number minor) . rest) + (and minor (even? minor))) + (_ + #t))) ;cross fingers + + (define upstream-name + ;; Some packages like "NetworkManager" have camel-case names. + (package-upstream-name package)) + + (guard (c ((http-get-error? c) + (if (= 404 (http-get-error-code c)) + #f + (raise c)))) + (let* ((port (http-fetch/cached + (string->uri (string-append + "https://ftp.gnome.org/pub/gnome/sources/" + upstream-name "/cache.json")) + + ;; ftp.gnome.org supports 'if-Modified-Since', so the local + ;; cache can expire early. + #:ttl (* 60 10))) + (json (json->scm port))) + (close-port port) + (match json + ((4 (? hash-table? releases) _ ...) + (let* ((releases (hash-ref releases upstream-name)) + (latest (hash-fold (lambda (key value result) + (cond ((even-minor-version? key) + (match result + (#f + (cons key value)) + ((newest . _) + (if (version>? key newest) + (cons key value) + result)))) + (else + result))) + #f + releases))) + (and latest + (jsonish->upstream-source upstream-name latest)))))))) + +(define %gnome-updater + (upstream-updater + (name 'gnome) + (description "Updater for GNOME packages") + (pred (url-prefix-predicate "mirror://gnome/")) + (latest latest-gnome-release))) diff --git a/guix/import/print.scm b/guix/import/print.scm new file mode 100644 index 0000000000..0bec32c8dc --- /dev/null +++ b/guix/import/print.scm @@ -0,0 +1,164 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix import print) + #:use-module (guix base32) + #:use-module (guix utils) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (gnu packages) + #:use-module (srfi srfi-1) + #:use-module (guix import utils) + #:use-module (ice-9 control) + #:use-module (ice-9 match) + #:export (package->code)) + +;; FIXME: the quasiquoted arguments field may contain embedded package +;; objects, e.g. in #:disallowed-references; they will just be printed with +;; their usual #<package ...> representation, not as variable names. +(define (package->code package) + "Return an S-expression representing the source code that produces PACKAGE +when evaluated." + ;; The module in which the package PKG is defined + (define (package-module-name pkg) + (map string->symbol + (string-split (string-drop-right + (location-file (package-location pkg)) 4) + #\/))) + + ;; Return the first candidate variable name that is bound to VAL. + (define (variable-name val mod) + (match (let/ec return + (module-for-each (lambda (sym var) + (if (eq? val (variable-ref var)) + (return sym) + #f)) + (resolve-interface mod))) + ((? symbol? sym) sym) + (_ #f))) + + ;; Print either license variable name or the code for a license object + (define (license->code lic) + (let ((var (variable-name lic '(guix licenses)))) + (or var + `(license + (name ,(license-name lic)) + (uri ,(license-uri lic)) + (comment ,(license-comment lic)))))) + + (define (search-path-specification->code spec) + `(search-path-specification + (variable ,(search-path-specification-variable spec)) + (files (list ,@(search-path-specification-files spec))) + (separator ,(search-path-specification-separator spec)) + (file-type (quote ,(search-path-specification-file-type spec))) + (file-pattern ,(search-path-specification-file-pattern spec)))) + + (define (source->code source version) + (let ((uri (origin-uri source)) + (method (origin-method source)) + (sha256 (origin-sha256 source)) + (file-name (origin-file-name source)) + (patches (origin-patches source))) + `(origin + (method ,(procedure-name method)) + (uri (string-append ,@(factorize-uri uri version))) + (sha256 + (base32 + ,(format #f "~a" (bytevector->nix-base32-string sha256)))) + ;; FIXME: in order to be able to throw away the directory prefix, + ;; we just assume that the patch files can be found with + ;; "search-patches". + ,@(if (null? patches) '() + `((patches (search-patches ,@(map basename patches)))))))) + + (define (package-lists->code lsts) + (list 'quasiquote + (map (match-lambda + ((label pkg . out) + (let ((mod (package-module-name pkg))) + (list label + ;; FIXME: using '@ certainly isn't pretty, but it + ;; avoids having to import the individual package + ;; modules. + (list 'unquote + (list '@ mod (variable-name pkg mod))))))) + lsts))) + + (let ((name (package-name package)) + (version (package-version package)) + (source (package-source package)) + (build-system (package-build-system package)) + (arguments (package-arguments package)) + (inputs (package-inputs package)) + (propagated-inputs (package-propagated-inputs package)) + (native-inputs (package-native-inputs package)) + (outputs (package-outputs package)) + (native-search-paths (package-native-search-paths package)) + (search-paths (package-search-paths package)) + (replacement (package-replacement package)) + (synopsis (package-synopsis package)) + (description (package-description package)) + (license (package-license package)) + (home-page (package-home-page package)) + (supported-systems (package-supported-systems package)) + (properties (package-properties package))) + `(package + (name ,name) + (version ,version) + (source ,(source->code source version)) + ,@(match properties + (() '()) + (_ `((properties ,properties)))) + ,@(if replacement + `((replacement ,replacement)) + '()) + (build-system ,(symbol-append (build-system-name build-system) + '-build-system)) + ,@(match arguments + (() '()) + (args `((arguments ,(list 'quasiquote args))))) + ,@(match outputs + (("out") '()) + (outs `((outputs (list ,@outs))))) + ,@(match native-inputs + (() '()) + (pkgs `((native-inputs ,(package-lists->code pkgs))))) + ,@(match inputs + (() '()) + (pkgs `((inputs ,(package-lists->code pkgs))))) + ,@(match propagated-inputs + (() '()) + (pkgs `((propagated-inputs ,(package-lists->code pkgs))))) + ,@(if (lset= string=? supported-systems %supported-systems) + '() + `((supported-systems (list ,@supported-systems)))) + ,@(match (map search-path-specification->code native-search-paths) + (() '()) + (paths `((native-search-paths (list ,@paths))))) + ,@(match (map search-path-specification->code search-paths) + (() '()) + (paths `((search-paths (list ,@paths))))) + (home-page ,home-page) + (synopsis ,synopsis) + (description ,description) + (license ,(if (list? license) + `(list ,@(map license->code license)) + (license->code license)))))) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index be1980d08f..1e2f0c809d 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2016 David Craven <david@craven.ch> +;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,9 +26,17 @@ #:use-module (guix http-client) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix discovery) + #:use-module (guix build-system) + #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix download) + #:use-module (gnu packages) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) #:export (factorize-uri hash-table->alist @@ -45,7 +54,9 @@ license->symbol snake-case - beautify-description)) + beautify-description + + alist->package)) (define (factorize-uri uri version) "Factorize URI, a package tarball URI as a string, such that any occurrences @@ -241,3 +252,80 @@ package definition." (('package ('name (? string? name)) _ ...) `(define-public ,(string->symbol name) ,guix-package)))) + +(define (build-system-modules) + (all-modules (map (lambda (entry) + `(,entry . "guix/build-system")) + %load-path))) + +(define (lookup-build-system-by-name name) + "Return a <build-system> value for the symbol NAME, representing the name of +the build system." + (fold-module-public-variables (lambda (obj result) + (if (and (build-system? obj) + (eq? name (build-system-name obj))) + obj result)) + #f + (build-system-modules))) + +(define (specs->package-lists specs) + "Convert each string in the SPECS list to a list of a package label and a +package value." + (map (lambda (spec) + (let-values (((pkg out) (specification->package+output spec))) + (match out + (("out") (list (package-name pkg) pkg)) + (_ (list (package-name pkg) pkg out))))) + specs)) + +(define (source-spec->object source) + "Generate an <origin> object from a SOURCE specification. The SOURCE can +either be a simple URL string, #F, or an alist containing entries for each of +the expected fields of an <origin> object." + (match source + ((? string? source-url) + (let ((tarball (with-store store (download-to-store store source-url)))) + (origin + (method url-fetch) + (uri source-url) + (sha256 (base32 (guix-hash-url tarball)))))) + (#f #f) + (orig (let ((sha (match (assoc-ref orig "sha256") + ((("base32" . value)) + (base32 value)) + (_ #f)))) + (origin + (method (match (assoc-ref orig "method") + ("url-fetch" (@ (guix download) url-fetch)) + ("git-fetch" (@ (guix git-download) git-fetch)) + ("svn-fetch" (@ (guix svn-download) svn-fetch)) + ("hg-fetch" (@ (guix hg-download) hg-fetch)) + (_ #f))) + (uri (assoc-ref orig "uri")) + (sha256 sha)))))) + +(define (alist->package meta) + (package + (name (assoc-ref meta "name")) + (version (assoc-ref meta "version")) + (source (source-spec->object (assoc-ref meta "source"))) + (build-system + (lookup-build-system-by-name + (string->symbol (assoc-ref meta "build-system")))) + (native-inputs + (specs->package-lists (or (assoc-ref meta "native-inputs") '()))) + (inputs + (specs->package-lists (or (assoc-ref meta "inputs") '()))) + (propagated-inputs + (specs->package-lists (or (assoc-ref meta "propagated-inputs") '()))) + (home-page + (assoc-ref meta "home-page")) + (synopsis + (assoc-ref meta "synopsis")) + (description + (assoc-ref meta "description")) + (license + (let ((l (assoc-ref meta "license"))) + (or (module-ref (resolve-interface '(guix licenses) #:prefix 'license:) + (spdx-string->license l)) + (license:fsdg-compatible l)))))) diff --git a/guix/licenses.scm b/guix/licenses.scm index b7dadd9750..6de611da2b 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -41,6 +41,7 @@ cc0 cc-by2.0 cc-by3.0 cc-by4.0 cc-by-sa2.0 cc-by-sa3.0 cc-by-sa4.0 + cc-sampling-plus-1.0 cddl1.0 cecill cecill-b cecill-c artistic2.0 clarified-artistic @@ -206,6 +207,11 @@ at URI, which may be a file:// URI pointing the package's tree." "http://creativecommons.org/licenses/by/2.0/" "Creative Commons Attribution 2.0 Generic")) +(define cc-sampling-plus-1.0 + (license "CC-Sampling+ 1.0" + "https://creativecommons.org/licenses/sampling+/1.0" + "Creative Commons Sampling Plus 1.0")) + (define cddl1.0 (license "CDDL 1.0" "http://directory.fsf.org/wiki/License:CDDLv1.0" diff --git a/guix/memoization.scm b/guix/memoization.scm index 5cae283610..bf3b73d806 100644 --- a/guix/memoization.scm +++ b/guix/memoization.scm @@ -76,10 +76,11 @@ the result is returned via (apply values results)." exactly one value." ((_ cached () body ...) ;; The zero-argument case is equivalent to a promise. - (let ((result #f) (cached? #f)) + (let ((result #f) (cached? #f) + (compute (lambda () body ...))) (lambda () (unless cached? - (set! result (begin body ...)) + (set! result (compute)) (set! cached? #t)) result))) diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index 5ea19784dc..a569848ae3 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -54,7 +54,6 @@ `((system . ,(%current-system)) (substitutes? . #t) (graft? . #t) - (max-silent-time . 3600) (verbosity . 0))) (define (show-help) diff --git a/guix/scripts/copy.scm b/guix/scripts/copy.scm index 32438b99d9..9ffffe8ccd 100644 --- a/guix/scripts/copy.scm +++ b/guix/scripts/copy.scm @@ -151,7 +151,6 @@ Copy ITEMS to or from the specified host over SSH.\n")) `((system . ,(%current-system)) (substitutes? . #t) (graft? . #t) - (max-silent-time . 3600) (verbosity . 0))) diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm index f40213be33..8225f82bb9 100644 --- a/guix/scripts/download.scm +++ b/guix/scripts/download.scm @@ -49,7 +49,7 @@ ((or 'file #f) (copy-file (uri-path uri) file)) (_ - (url-fetch url file))) + (url-fetch url file #:mirrors %mirrors))) file)) (define* (download-to-store* url #:key (verify-certificate? #t)) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 95ba199d97..0d69218338 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -179,7 +179,6 @@ COMMAND or an interactive shell in that environment.\n")) `((system . ,(%current-system)) (substitutes? . #t) (graft? . #t) - (max-silent-time . 3600) (verbosity . 0))) (define (tag-package-arg opts arg) diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index 9bba074e8c..67bc7a7553 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -74,7 +74,7 @@ rather than \\n." ;;; (define importers '("gnu" "nix" "pypi" "cpan" "hackage" "stackage" "elpa" "gem" - "cran" "crate" "texlive")) + "cran" "crate" "texlive" "json")) (define (resolve-importer name) (let ((module (resolve-interface diff --git a/guix/scripts/import/json.scm b/guix/scripts/import/json.scm new file mode 100644 index 0000000000..8771e7b0eb --- /dev/null +++ b/guix/scripts/import/json.scm @@ -0,0 +1,102 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix scripts import json) + #:use-module (json) + #:use-module (guix ui) + #:use-module (guix utils) + #:use-module (guix scripts) + #:use-module (guix import utils) + #:use-module (guix import print) + #:use-module (guix scripts import) + #:use-module (guix packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9 gnu) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-37) + #:use-module (srfi srfi-41) + #:use-module (ice-9 match) + #:use-module (ice-9 rdelim) + #:use-module (ice-9 format) + #:export (guix-import-json)) + + +;;; +;;; Command-line options. +;;; + +(define %default-options + '()) + +(define (show-help) + (display (G_ "Usage: guix import json PACKAGE-FILE +Import and convert the JSON package definition in PACKAGE-FILE.\n")) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define %options + ;; Specification of the command-line options. + (cons* (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix import json"))) + %standard-import-options)) + + +;;; +;;; Entry point. +;;; + +(define (guix-import-json . args) + (define (parse-options) + ;; Return the alist of option values. + (args-fold* args %options + (lambda (opt name arg result) + (leave (G_ "~A: unrecognized option~%") name)) + (lambda (arg result) + (alist-cons 'argument arg result)) + %default-options)) + + (let* ((opts (parse-options)) + (args (filter-map (match-lambda + (('argument . value) + value) + (_ #f)) + (reverse opts)))) + (match args + ((file-name) + (catch 'json-invalid + (lambda () + (let ((json (json-string->scm + (with-input-from-file file-name read-string)))) + ;; TODO: also print define-module boilerplate + (package->code (alist->package (hash-table->alist json))))) + (lambda _ + (leave (G_ "invalid JSON in file '~a'~%") file-name)))) + (() + (leave (G_ "too few arguments~%"))) + ((many ...) + (leave (G_ "too many arguments~%")))))) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index aceafc674d..57bbeec465 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Alex Kost <alezost@gmail.com> +;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -411,7 +412,11 @@ for connections to complete; when TIMEOUT is #f, wait as long as needed." (close-connection port)))) (case (response-code response) - ((301 302 307) + ((301 ; moved permanently + 302 ; found (redirection) + 303 ; see other + 307 ; temporary redirection + 308) ; permanent redirection (let ((location (response-location response))) (if (or (not location) (member location visited)) (values 'http-response response) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index c269a1fefc..21fea446a6 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -263,7 +263,6 @@ the image." (system . ,(%current-system)) (substitutes? . #t) (graft? . #t) - (max-silent-time . 3600) (verbosity . 0) (symlinks . ()) (compressor . ,(first %compressors)))) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index fa45bd48a6..4adc705220 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -246,27 +246,8 @@ specified in MANIFEST, a manifest object." "Return two values: the list of packages whose name, synopsis, or description matches at least one of REGEXPS sorted by relevance, and the list of relevance scores." - (define (score str) - (let ((counts (filter-map (lambda (regexp) - (match (regexp-exec regexp str) - (#f #f) - (m (match:count m)))) - regexps))) - ;; Compute a score that's proportional to the number of regexps matched - ;; and to the number of matches for each regexp. - (* (length counts) (reduce + 0 counts)))) - - (define (package-score package) - (+ (* 3 (score (package-name package))) - (* 2 (match (package-synopsis package) - ((? string? str) (score (P_ str))) - (#f 0))) - (match (package-description package) - ((? string? str) (score (P_ str))) - (#f 0)))) - (let ((matches (fold-packages (lambda (package result) - (match (package-score package) + (match (package-relevance package regexps) ((? zero?) result) (score @@ -377,8 +358,7 @@ ENTRIES, a list of manifest entries, in the context of PROFILE." (define %default-options ;; Alist of default option values. - `((max-silent-time . 3600) - (verbosity . 0) + `((verbosity . 0) (graft? . #t) (substitutes? . #t))) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index a1deec8040..b1c87c870e 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -96,7 +96,6 @@ Install it by running: (system . ,(%current-system)) (substitutes? . #t) (graft? . #t) - (max-silent-time . 3600) (verbosity . 0))) (define (show-help) diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index 1e54d3f218..eade184e67 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -282,7 +282,7 @@ Report the size of PACKAGE and its dependencies.\n")) (define %default-options `((system . ,(%current-system)) - (profile<? . ,profile-closure<?))) + (profile<? . ,profile-self<?))) ;;; diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 0d36997bc4..3dcf42d0d1 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -34,7 +34,8 @@ #:use-module ((guix build utils) #:select (mkdir-p dump-port)) #:use-module ((guix build download) #:select (current-terminal-columns - progress-proc uri-abbreviation nar-uri-abbreviation + progress-reporter/file + uri-abbreviation nar-uri-abbreviation (open-connection-for-uri . guix:open-connection-for-uri) close-connection @@ -78,12 +79,13 @@ narinfo-signature narinfo-hash->sha256 - assert-valid-narinfo lookup-narinfos lookup-narinfos/diverse read-narinfo write-narinfo + + substitute-urls guix-substitute)) ;;; Comment: @@ -405,38 +407,41 @@ No authentication and authorization checks are performed here!" (let ((above-signature (string-take contents index))) (sha256 (string->utf8 above-signature))))))) -(define* (assert-valid-narinfo narinfo - #:optional (acl (current-acl)) - #:key verbose?) - "Raise an exception if NARINFO lacks a signature, has an invalid signature, -or is signed by an unauthorized key." - (let ((hash (narinfo-sha256 narinfo))) - (if (not hash) - (if %allow-unauthenticated-substitutes? - narinfo - (leave (G_ "substitute at '~a' lacks a signature~%") - (uri->string (narinfo-uri narinfo)))) - (let ((signature (narinfo-signature narinfo))) - (unless %allow-unauthenticated-substitutes? - (assert-valid-signature narinfo signature hash acl) - (when verbose? - (format (current-error-port) - (G_ "Found valid signature for ~a~%") - (narinfo-path narinfo)) - (format (current-error-port) - (G_ "From ~a~%") - (uri->string (narinfo-uri narinfo))))) - narinfo)))) - -(define* (valid-narinfo? narinfo #:optional (acl (current-acl))) +(define* (valid-narinfo? narinfo #:optional (acl (current-acl)) + #:key verbose?) "Return #t if NARINFO's signature is not valid." (or %allow-unauthenticated-substitutes? (let ((hash (narinfo-sha256 narinfo)) - (signature (narinfo-signature narinfo))) + (signature (narinfo-signature narinfo)) + (uri (uri->string (narinfo-uri narinfo)))) (and hash signature (signature-case (signature hash acl) (valid-signature #t) - (else #f)))))) + (invalid-signature + (when verbose? + (format (current-error-port) + "invalid signature for substitute at '~a'~%" + uri)) + #f) + (hash-mismatch + (when verbose? + (format (current-error-port) + "hash mismatch for substitute at '~a'~%" + uri)) + #f) + (unauthorized-key + (when verbose? + (format (current-error-port) + "substitute at '~a' is signed by an \ +unauthorized party~%" + uri)) + #f) + (corrupt-signature + (when verbose? + (format (current-error-port) + "corrupt signature for substitute at '~a'~%" + uri)) + #f)))))) (define (write-narinfo narinfo port) "Write NARINFO to PORT." @@ -706,30 +711,68 @@ information is available locally." (let ((missing (fetch-narinfos cache missing))) (append cached (or missing '())))))) -(define (lookup-narinfos/diverse caches paths) +(define (equivalent-narinfo? narinfo1 narinfo2) + "Return true if NARINFO1 and NARINFO2 are equivalent--i.e., if they describe +the same store item. This ignores unnecessary metadata such as the Nar URL." + (and (string=? (narinfo-hash narinfo1) + (narinfo-hash narinfo2)) + + ;; The following is not needed if all we want is to download a valid + ;; nar, but it's necessary if we want valid narinfo. + (string=? (narinfo-path narinfo1) + (narinfo-path narinfo2)) + (equal? (narinfo-references narinfo1) + (narinfo-references narinfo2)) + + (= (narinfo-size narinfo1) + (narinfo-size narinfo2)))) + +(define (lookup-narinfos/diverse caches paths authorized?) "Look up narinfos for PATHS on all of CACHES, a list of URLS, in that order. -That is, when a cache lacks a narinfo, look it up in the next cache, and so -on. Return a list of narinfos for PATHS or a subset thereof." +That is, when a cache lacks an AUTHORIZED? narinfo, look it up in the next +cache, and so on. + +Return a list of narinfos for PATHS or a subset thereof. The returned +narinfos are either AUTHORIZED?, or they claim a hash that matches an +AUTHORIZED? narinfo." + (define (select-hit result) + (lambda (path) + (match (vhash-fold* cons '() path result) + ((one) + one) + ((several ..1) + (let ((authorized (find authorized? (reverse several)))) + (and authorized + (find (cut equivalent-narinfo? <> authorized) + several))))))) + (let loop ((caches caches) (paths paths) - (result '())) + (result vlist-null) ;path->narinfo vhash + (hits '())) ;paths (match paths (() ;we're done - result) + ;; Now iterate on all the HITS, and return exactly one match for each + ;; hit: the first narinfo that is authorized, or that has the same hash + ;; as an authorized narinfo, in the order of CACHES. + (filter-map (select-hit result) hits)) (_ (match caches ((cache rest ...) (let* ((narinfos (lookup-narinfos cache paths)) - (hits (map narinfo-path narinfos)) - (missing (lset-difference string=? paths hits))) ;XXX: perf - (loop rest missing (append narinfos result)))) + (definite (map narinfo-path (filter authorized? narinfos))) + (missing (lset-difference string=? paths definite))) ;XXX: perf + (loop rest missing + (fold vhash-cons result + (map narinfo-path narinfos) narinfos) + (append definite hits)))) (() ;that's it - result)))))) + (filter-map (select-hit result) hits))))))) -(define (lookup-narinfo caches path) +(define (lookup-narinfo caches path authorized?) "Return the narinfo for PATH in CACHES, or #f when no substitute for PATH was found." - (match (lookup-narinfos/diverse caches (list path)) + (match (lookup-narinfos/diverse caches (list path) authorized?) ((answer) answer) (_ #f))) @@ -772,23 +815,25 @@ was found." (= (string-length file) 32))))) (narinfo-cache-directories directory))) -(define (progress-report-port report-progress port) - "Return a port that calls REPORT-PROGRESS every time something is read from -PORT. REPORT-PROGRESS is a two-argument procedure such as that returned by -`progress-proc'." - (define total 0) - (define (read! bv start count) - (let ((n (match (get-bytevector-n! port bv start count) - ((? eof-object?) 0) - (x x)))) - (set! total (+ total n)) - (report-progress total (const n)) - ;; XXX: We're not in control, so we always return anyway. - n)) - - (make-custom-binary-input-port "progress-port-proc" - read! #f #f - (cut close-connection port))) +(define (progress-report-port reporter port) + "Return a port that continuously reports the bytes read from PORT using +REPORTER, which should be a <progress-reporter> object." + (match reporter + (($ <progress-reporter> start report stop) + (let* ((total 0) + (read! (lambda (bv start count) + (let ((n (match (get-bytevector-n! port bv start count) + ((? eof-object?) 0) + (x x)))) + (set! total (+ total n)) + (report total) + n)))) + (start) + (make-custom-binary-input-port "progress-port-proc" + read! #f #f + (lambda () + (close-connection port) + (stop))))))) (define-syntax with-networking (syntax-rules () @@ -866,15 +911,15 @@ authorized substitutes." (match (string-tokenize command) (("have" paths ..1) ;; Return the subset of PATHS available in CACHE-URLS. - (let ((substitutable (lookup-narinfos/diverse cache-urls paths))) + (let ((substitutable (lookup-narinfos/diverse cache-urls paths valid?))) (for-each (lambda (narinfo) (format #t "~a~%" (narinfo-path narinfo))) - (filter valid? substitutable)) + substitutable) (newline))) (("info" paths ..1) ;; Reply info about PATHS if it's in CACHE-URLS. - (let ((substitutable (lookup-narinfos/diverse cache-urls paths))) - (for-each display-narinfo-data (filter valid? substitutable)) + (let ((substitutable (lookup-narinfos/diverse cache-urls paths valid?))) + (for-each display-narinfo-data substitutable) (newline))) (wtf (error "unknown `--query' command" wtf)))) @@ -883,10 +928,12 @@ authorized substitutes." #:key cache-urls acl) "Substitute STORE-ITEM (a store file name) from CACHE-URLS, and write it to DESTINATION as a nar file. Verify the substitute against ACL." - (let* ((narinfo (lookup-narinfo cache-urls store-item)) - (uri (narinfo-uri narinfo))) - ;; Make sure it is signed and everything. - (assert-valid-narinfo narinfo acl) + (let* ((narinfo (lookup-narinfo cache-urls store-item + (cut valid-narinfo? <> acl))) + (uri (and=> narinfo narinfo-uri))) + (unless uri + (leave (G_ "no valid substitute for '~a'~%") + store-item)) ;; Tell the daemon what the expected hash of the Nar itself is. (format #t "~a~%" (narinfo-hash narinfo)) @@ -903,21 +950,21 @@ DESTINATION as a nar file. Verify the substitute against ACL." (dl-size (or download-size (and (equal? comp "none") (narinfo-size narinfo)))) - (progress (progress-proc (uri->string uri) - dl-size - (current-error-port) - #:abbreviation - nar-uri-abbreviation))) - (progress-report-port progress raw))) + (reporter (progress-reporter/file + (uri->string uri) dl-size + (current-error-port) + #:abbreviation nar-uri-abbreviation))) + (progress-report-port reporter raw))) ((input pids) (decompressed-port (and=> (narinfo-compression narinfo) string->symbol) progress))) ;; Unpack the Nar at INPUT into DESTINATION. (restore-file input destination) + (close-port input) - ;; Skip a line after what 'progress-proc' printed, and another one to - ;; visually separate substitutions. + ;; Skip a line after what 'progress-reporter/file' printed, and another + ;; one to visually separate substitutions. (display "\n\n" (current-error-port)) (every (compose zero? cdr waitpid) pids)))) @@ -971,7 +1018,7 @@ substitutes may be unavailable\n"))))) found." (assoc-ref (daemon-options) option)) -(define %cache-urls +(define %default-substitute-urls (match (and=> (or (find-daemon-option "untrusted-substitute-urls") ;client (find-daemon-option "substitute-urls")) ;admin string-tokenize) @@ -982,6 +1029,10 @@ found." ;; daemon. '("http://hydra.gnu.org")))) +(define substitute-urls + ;; List of substitute URLs. + (make-parameter %default-substitute-urls)) + (define (client-terminal-columns) "Return the number of columns in the client's terminal, if it is known, or a default value." @@ -1010,15 +1061,15 @@ default value." ;; Starting from commit 22144afa in Nix, we are allowed to bail out directly ;; when we know we cannot substitute, but we must emit a newline on stdout ;; when everything is alright. - (when (null? %cache-urls) + (when (null? (substitute-urls)) (exit 0)) ;; Say hello (see above.) (newline) (force-output (current-output-port)) - ;; Sanity-check %CACHE-URLS so we can provide a meaningful error message. - (for-each validate-uri %cache-urls) + ;; Sanity-check SUBSTITUTE-URLS so we can provide a meaningful error message. + (for-each validate-uri (substitute-urls)) ;; Attempt to install the client's locale, mostly so that messages are ;; suitably translated. @@ -1038,7 +1089,7 @@ default value." (or (eof-object? command) (begin (process-query command - #:cache-urls %cache-urls + #:cache-urls (substitute-urls) #:acl acl) (loop (read-line))))))) (("--substitute" store-path destination) @@ -1047,7 +1098,7 @@ default value." ;; report displays nicely. (parameterize ((current-terminal-columns (client-terminal-columns))) (process-substitution store-path destination - #:cache-urls %cache-urls + #:cache-urls (substitute-urls) #:acl (current-acl)))) (("--version") (show-version-and-exit "guix substitute")) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 8793c40925..567d8bb643 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -41,6 +41,7 @@ #:use-module (gnu bootloader) #:use-module (gnu system file-systems) #:use-module (gnu system linux-container) + #:use-module (gnu system uuid) #:use-module (gnu system vm) #:use-module (gnu services) #:use-module (gnu services shepherd) @@ -72,7 +73,6 @@ "Read the operating-system declaration from FILE and return it." (load* file %user-module)) - ;;; ;;; Installation. @@ -530,7 +530,10 @@ list of services." ;; TRANSLATORS: Please preserve the two-space indentation. (format #t (G_ " label: ~a~%") label) (format #t (G_ " bootloader: ~a~%") bootloader-name) - (format #t (G_ " root device: ~a~%") root-device) + (format #t (G_ " root device: ~a~%") + (if (uuid? root-device) + (uuid->string root-device) + root-device)) (format #t (G_ " kernel: ~a~%") kernel)))) (define* (list-generations pattern #:optional (profile %system-profile)) @@ -748,6 +751,8 @@ Some ACTIONS support additional ARGS.\n")) (display (G_ "The valid values for ACTION are:\n")) (newline) (display (G_ "\ + search search for existing service types\n")) + (display (G_ "\ reconfigure switch to a new operating system configuration\n")) (display (G_ "\ roll-back switch to the previous operating system configuration\n")) @@ -864,7 +869,6 @@ Some ACTIONS support additional ARGS.\n")) (substitutes? . #t) (graft? . #t) (build-hook? . #t) - (max-silent-time . 3600) (verbosity . 0) (file-system-type . "ext4") (image-size . guess) @@ -934,6 +938,12 @@ resulting from command-line parsing." #:gc-root (assoc-ref opts 'gc-root))))) #:system system)))) +(define (resolve-subcommand name) + (let ((module (resolve-interface + `(guix scripts system ,(string->symbol name)))) + (proc (string->symbol (string-append "guix-system-" name)))) + (module-ref module proc))) + (define (process-command command args opts) "Process COMMAND, one of the 'guix system' sub-commands. ARGS is its argument list and OPTS is the option alist." @@ -946,6 +956,8 @@ argument list and OPTS is the option alist." ((pattern) pattern) (x (leave (G_ "wrong number of arguments~%")))))) (list-generations pattern))) + ((search) + (apply (resolve-subcommand "search") args)) ;; The following commands need to use the store, but they do not need an ;; operating system configuration file. ((switch-generation) @@ -975,7 +987,7 @@ argument list and OPTS is the option alist." (case action ((build container vm vm-image disk-image reconfigure init extension-graph shepherd-graph list-generations roll-back - switch-generation) + switch-generation search) (alist-cons 'action action result)) (else (leave (G_ "~a: unknown action~%") action)))))) diff --git a/guix/scripts/system/search.scm b/guix/scripts/system/search.scm new file mode 100644 index 0000000000..b4f790c9bf --- /dev/null +++ b/guix/scripts/system/search.scm @@ -0,0 +1,144 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix scripts system search) + #:use-module (guix ui) + #:use-module (guix utils) + #:use-module (gnu services) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) + #:use-module (ice-9 regex) + #:use-module (ice-9 match) + #:export (service-type->recutils + find-service-types + guix-system-search)) + +;;; Commentary: +;;; +;;; Implement the 'guix system search' command, which searches among the +;;; available service types. +;;; +;;; Code: + +(define service-type-name* + (compose symbol->string service-type-name)) + +(define* (service-type->recutils type port + #:optional (width (%text-width)) + #:key (extra-fields '())) + "Write to PORT a recutils record of TYPE, arranging to fit within WIDTH +columns." + (define width* + ;; The available number of columns once we've taken into account space for + ;; the initial "+ " prefix. + (if (> width 2) (- width 2) width)) + + (define (extensions->recutils extensions) + (let ((list (string-join (map (compose service-type-name* + service-extension-target) + extensions)))) + (string->recutils + (fill-paragraph list width* + (string-length "extends: "))))) + + ;; Note: Don't i18n field names so that people can post-process it. + (format port "name: ~a~%" (service-type-name type)) + (format port "location: ~a~%" + (or (and=> (service-type-location type) location->string) + (G_ "unknown"))) + + (format port "extends: ~a~%" + (extensions->recutils (service-type-extensions type))) + + (when (service-type-description type) + (format port "~a~%" + (string->recutils + (string-trim-right + (parameterize ((%text-width width*)) + (texi->plain-text + (string-append "description: " + (or (and=> (service-type-description type) P_) + "")))) + #\newline)))) + + (for-each (match-lambda + ((field . value) + (let ((field (symbol->string field))) + (format port "~a: ~a~%" + field + (fill-paragraph (object->string value) width* + (string-length field)))))) + extra-fields) + (newline port)) + +(define (service-type-description-string type) + "Return the rendered and localised description of TYPE, a service type." + (and=> (service-type-description type) + (compose texi->plain-text P_))) + +(define %service-type-metrics + ;; Metrics used to estimate the relevance of a search result. + `((,service-type-name* . 3) + (,service-type-description-string . 2) + (,(lambda (type) + (match (and=> (service-type-location type) location-file) + ((? string? file) + (basename file ".scm")) + (#f + ""))) + . 1))) + +(define (find-service-types regexps) + "Return two values: the list of service types whose name or description +matches at least one of REGEXPS sorted by relevance, and the list of relevance +scores." + (let ((matches (fold-service-types + (lambda (type result) + (match (relevance type regexps + %service-type-metrics) + ((? zero?) + result) + (score + (cons (list type score) result)))) + '()))) + (unzip2 (sort matches + (lambda (m1 m2) + (match m1 + ((type1 score1) + (match m2 + ((type2 score2) + (if (= score1 score2) + (string>? (service-type-name* type1) + (service-type-name* type2)) + (> score1 score2))))))))))) + + +(define (guix-system-search . args) + (with-error-handling + (let ((regexps (map (cut make-regexp* <> regexp/icase) args))) + (leave-on-EPIPE + (let-values (((services scores) + (find-service-types regexps))) + (for-each (lambda (service score) + (service-type->recutils service + (current-output-port) + #:extra-fields + `((relevance . ,score)))) + services + scores)))))) diff --git a/guix/store.scm b/guix/store.scm index 2563d26fa0..d571122021 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -40,6 +40,7 @@ #:use-module (ice-9 regex) #:use-module (ice-9 vlist) #:use-module (ice-9 popen) + #:use-module (ice-9 threads) #:use-module (web uri) #:export (%daemon-socket-uri %gc-roots-directory @@ -1428,7 +1429,8 @@ where FILE is the entry's absolute file name and STAT is the result of (define* (run-with-store store mval #:key (guile-for-build (%guile-for-build)) - (system (%current-system))) + (system (%current-system)) + (target #f)) "Run MVAL, a monadic value in the store monad, in STORE, an open store connection, and return the result." ;; Initialize the dynamic bindings here to avoid bad surprises. The @@ -1436,7 +1438,7 @@ connection, and return the result." ;; bind-time and not at call time, which can be disconcerting. (parameterize ((%guile-for-build guile-for-build) (%current-system system) - (%current-target-system #f)) + (%current-target-system target)) (call-with-values (lambda () (run-with-state mval store)) (lambda (result store) diff --git a/guix/ui.scm b/guix/ui.scm index b0108d0705..6dfc8c7a5b 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -79,12 +79,15 @@ read/eval-package-expression location->string fill-paragraph + %text-width texi->plain-text package-description-string package-synopsis-string string->recutils package->recutils package-specification->name+version+output + relevance + package-relevance string->generations string->duration matching-generations @@ -1024,6 +1027,47 @@ WIDTH columns. EXTRA-FIELDS is a list of symbol/value pairs to emit." extra-fields) (newline port)) +(define (relevance obj regexps metrics) + "Compute a \"relevance score\" for OBJ as a function of its number of +matches of REGEXPS and accordingly to METRICS. METRICS is list of +field/weight pairs, where FIELD is a procedure that returns a string +describing OBJ, and WEIGHT is a positive integer denoting the weight of this +field in the final score. + +A score of zero means that OBJ does not match any of REGEXPS. The higher the +score, the more relevant OBJ is to REGEXPS." + (define (score str) + (let ((counts (filter-map (lambda (regexp) + (match (regexp-exec regexp str) + (#f #f) + (m (match:count m)))) + regexps))) + ;; Compute a score that's proportional to the number of regexps matched + ;; and to the number of matches for each regexp. + (* (length counts) (reduce + 0 counts)))) + + (fold (lambda (metric relevance) + (match metric + ((field . weight) + (match (field obj) + (#f relevance) + (str (+ relevance + (* (score str) weight))))))) + 0 + metrics)) + +(define %package-metrics + ;; Metrics used to compute the "relevance score" of a package against a set + ;; of regexps. + `((,package-name . 3) + (,package-synopsis-string . 2) + (,package-description-string . 1))) + +(define (package-relevance package regexps) + "Return a score denoting the relevance of PACKAGE for REGEXPS. A score of +zero means that PACKAGE does not match any of REGEXPS." + (relevance package regexps %package-metrics)) + (define (string->generations str) "Return the list of generations matching a pattern in STR. This function accepts the following patterns: \"1\", \"1,2,3\", \"1..9\", \"1..\", \"..9\"." diff --git a/guix/upstream.scm b/guix/upstream.scm index 5083e6b805..6ad52ac960 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -45,6 +45,7 @@ upstream-source-signature-urls upstream-source-archive-types + url-prefix-predicate coalesce-sources upstream-updater @@ -81,6 +82,24 @@ (signature-urls upstream-source-signature-urls ;#f | list of strings (default #f))) +(define (url-prefix-predicate prefix) + "Return a predicate that returns true when passed a package where one of its +source URLs starts with PREFIX." + (lambda (package) + (define matching-uri? + (match-lambda + ((? string? uri) + (string-prefix? prefix uri)) + (_ + #f))) + + (match (package-source package) + ((? origin? origin) + (match (origin-uri origin) + ((? matching-uri?) #t) + (_ #f))) + (_ #f)))) + (define (upstream-source-archive-types release) "Return the available types of archives for RELEASE---a list of strings such as \"gz\" or \"xz\"." diff --git a/guix/utils.scm b/guix/utils.scm index ab43ed4008..de4aa65319 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -33,6 +33,7 @@ #:autoload (rnrs io ports) (make-custom-binary-input-port) #:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!)) #:use-module (guix memoization) + #:use-module (guix records) #:use-module ((guix build utils) #:select (dump-port mkdir-p)) #:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync)) #:use-module (ice-9 format) @@ -94,7 +95,13 @@ call-with-decompressed-port compressed-output-port call-with-compressed-output-port - canonical-newline-port)) + canonical-newline-port + + <progress-reporter> + progress-reporter + make-progress-reporter + progress-reporter? + call-with-progress-reporter)) ;;; @@ -700,7 +707,7 @@ failure." be determined." (syntax-case s () ((_) - (match (assq 'filename (syntax-source s)) + (match (assq 'filename (or (syntax-source s) '())) (('filename . (? string? file-name)) ;; If %FILE-PORT-NAME-CANONICALIZATION is 'relative, then FILE-NAME ;; can be relative. In that case, we try to find out at run time @@ -713,7 +720,7 @@ be determined." (dirname file-name)) (else #`(absolute-dirname #,file-name)))) - (_ + (#f #f)))))) ;; A source location. @@ -747,3 +754,26 @@ a location object." `((line . ,(and=> (location-line loc) 1-)) (column . ,(location-column loc)) (filename . ,(location-file loc)))) + + +;;; +;;; Progress reporter. +;;; + +(define-record-type* <progress-reporter> + progress-reporter make-progress-reporter progress-reporter? + (start progress-reporter-start) ; thunk + (report progress-reporter-report) ; procedure + (stop progress-reporter-stop)) ; thunk + +(define (call-with-progress-reporter reporter proc) + "Start REPORTER for progress reporting, and call @code{(@var{proc} report)} +with the resulting report procedure. When @var{proc} returns, the REPORTER is +stopped." + (match reporter + (($ <progress-reporter> start report stop) + (dynamic-wind start (lambda () (proc report)) stop)))) + +;;; Local Variables: +;;; eval: (put 'call-with-progress-reporter 'scheme-indent-function 1) +;;; End: diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index b8e0aca877..e3f767cc67 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -19,6 +19,7 @@ guix/scripts/pull.scm guix/scripts/substitute.scm guix/scripts/authenticate.scm guix/scripts/system.scm +guix/scripts/system/search.scm guix/scripts/lint.scm guix/scripts/publish.scm guix/scripts/edit.scm diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in index 32d34d6456..cfc542f50e 100644 --- a/po/packages/POTFILES.in +++ b/po/packages/POTFILES.in @@ -57,3 +57,5 @@ gnu/packages/webkit.scm gnu/packages/web.scm gnu/packages/wordnet.scm gnu/packages/xiph.scm +gnu/services/base.scm +gnu/services/networking.scm diff --git a/po/packages/fr.po b/po/packages/fr.po index 5c086c0771..b711d9b8b0 100644 --- a/po/packages/fr.po +++ b/po/packages/fr.po @@ -4,22 +4,44 @@ # Rémy Chevalier <remychevalier@laposte.net>, 2014. msgid "" msgstr "" -"Project-Id-Version: guix-packages 0.8\n" +"Project-Id-Version: guix-packages 0.13.0\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-11-10 15:37+0100\n" -"PO-Revision-Date: 2014-12-20 22:00+0100\n" -"Last-Translator: Rémy Chevalier <remychevalier@laposte.net>\n" +"POT-Creation-Date: 2017-05-10 23:22+0200\n" +"PO-Revision-Date: 2017-07-01 15:58+0200\n" +"Last-Translator: Julien Lepiller <julien@lepiller.eu>\n" "Language-Team: French <traduc@traduc.org>\n" "Language: fr\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" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: gnu/packages/aspell.scm:42 +#: gnu/packages/abiword.scm:115 +msgid "Word processing program" +msgstr "Éditeur de texte" + +#. TRANSLATORS: Dear translator, We would like to inform you that package +#. descriptions may occasionally include Texinfo markup. Texinfo markup +#. looks like "@code{rm -rf}", "@emph{important}", etc. When translating, +#. please leave markup as is. +#: gnu/packages/abiword.scm:124 +msgid "" +"AbiWord is a word processing program. It is rapidly\n" +"becoming a state of the art word processor, with lots of features useful for\n" +"your daily work, personal needs, or for just some good old typing fun." +msgstr "" +"AbiWord est un éditeur de texte. Il devient rapidement\n" +"un éditeur de texte de référence, avec beaucoup de fonctionnalités utiles\n" +"pour votre travail quotidien, vos besoins personnels ou juste pour\n" +"le plaisir de taper." + +#: gnu/packages/aspell.scm:57 gnu/packages/libreoffice.scm:711 msgid "Spell checker" msgstr "Correcteur orthographique" -#: gnu/packages/aspell.scm:44 +#: gnu/packages/aspell.scm:59 msgid "" "Aspell is a spell-checker which can be used either as a library or as\n" "a standalone program. Notable features of Aspell include its full support of\n" @@ -31,15 +53,841 @@ msgstr "" "des documents encodés UTF-8 et la possibilité d'utiliser plusieurs dictionnaires\n" "y compris personnels." -#: gnu/packages/aspell.scm:84 +#: gnu/packages/aspell.scm:100 msgid "This package provides a dictionary for the GNU Aspell spell checker." +msgstr "" +"Ce paquet fournit un dictionnaire pour le correcteur orthographique\n" +"GNU Aspell." + +#: gnu/packages/audio.scm:124 +msgid "Realtime modular synthesizer and effect processor" +msgstr "Synthétiseur modulaire en temps réel et traitement d'effets" + +#: gnu/packages/audio.scm:126 +msgid "" +"AlsaModularSynth is a digital implementation of a classical analog\n" +"modular synthesizer system. It uses virtual control voltages to control the\n" +"parameters of the modules. The control voltages which control the frequency\n" +"e.g. of the VCO (Voltage Controlled Oscillator) and VCF (Voltage Controlled\n" +"Filter) modules follow the convention of 1V / Octave." +msgstr "" +"AlsaModularSynth est une implémentation numérique d'un système de synthèse\n" +"modulaire analogue classique. Il permet de contrôler des tensiomètres virtuels\n" +"pour contrôler les paramètres des modules. Les tensiomètres qui contrôlent la\n" +"fréquence, par exemple du VCO (Oscillateur commandé en tension) ou du VCF\n" +"(Filtre contrôlé en tension) suivent la convention de 1 V / Octave." + +#: gnu/packages/audio.scm:163 +msgid "Library for audio labelling" +msgstr "Bibliothèque pour l'étiquetage de fichiers audio" + +#: gnu/packages/audio.scm:165 +msgid "" +"aubio is a tool designed for the extraction of annotations from audio\n" +"signals. Its features include segmenting a sound file before each of its\n" +"attacks, performing pitch detection, tapping the beat and producing MIDI\n" +"streams from live audio." +msgstr "" +"aubio est un outil conçu pour extraire des annotations depuis les signaux\n" +"audios. Ses fonctionnalités vont de la segmentation du fichier audio avant\n" +"chaque attaque, à la détection de ton, en passant par l'écoute du rhythme\n" +"et la production de fichiers MIDI à partir d'audio en direct." + +#: gnu/packages/audio.scm:266 +msgid "Digital audio workstation" +msgstr "" + +#: gnu/packages/audio.scm:268 +msgid "" +"Ardour is a multi-channel digital audio workstation, allowing users to\n" +"record, edit, mix and master audio and MIDI projects. It is targeted at audio\n" +"engineers, musicians, soundtrack editors and composers." +msgstr "" + +#: gnu/packages/audio.scm:340 +msgid "Software for recording and editing sounds" +msgstr "" + +#: gnu/packages/audio.scm:342 +msgid "" +"Audacity is a multi-track audio editor designed for recording, playing\n" +"and editing digital audio. It features digital effects and spectrum analysis\n" +"tools." +msgstr "" + +#: gnu/packages/audio.scm:377 +msgid "Tonewheel organ synthesizer" +msgstr "" + +#: gnu/packages/audio.scm:379 +msgid "" +"AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ\n" +"with drawbars, distortion and rotating speakers. The organ has three\n" +"sections, two polyphonic sections with nine drawbars each and one monophonic\n" +"bass section with five drawbars. A standalone JACK application and LV2\n" +"plugins are provided." +msgstr "" + +#: gnu/packages/audio.scm:416 +msgid "Audio plug-in pack for LV2 and JACK environments" +msgstr "" + +#: gnu/packages/audio.scm:418 +msgid "" +"Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.\n" +"The suite contains lots of effects (delay, modulation, signal processing,\n" +"filters, equalizers, dynamics, distortion and mastering effects),\n" +"instruments (SF2 player, organ simulator and a monophonic synthesizer) and\n" +"tools (analyzer, mono/stereo tools, crossovers)." +msgstr "" + +#: gnu/packages/audio.scm:470 +msgid "Software speech synthesizer" +msgstr "" + +#: gnu/packages/audio.scm:471 +msgid "" +"eSpeak is a software speech synthesizer for English and\n" +"other languages. eSpeak uses a \"formant synthesis\" method. This allows many\n" +"languages to be provided in a small size. The speech is clear, and can be used\n" +"at high speeds, but is not as natural or smooth as larger synthesizers which are\n" +"based on human speech recordings." +msgstr "" + +#: gnu/packages/audio.scm:518 +msgid "LV2 plugins for live use" +msgstr "" + +#: gnu/packages/audio.scm:520 +msgid "" +"The infamous plugins are a collection of LV2 audio plugins for live\n" +"performances. The plugins include a cellular automaton synthesizer, an\n" +"envelope follower, distortion effects, tape effects and more." +msgstr "" + +#: gnu/packages/audio.scm:561 +msgid "SWH plugins in LV2 format" +msgstr "" + +#: gnu/packages/audio.scm:563 +msgid "" +"Swh-plugins-lv2 is a collection of audio plugins in LV2 format. Plugin\n" +"classes include: dynamics (compressor, limiter), time (delay, chorus,\n" +"flanger), ringmodulator, distortion, filters, pitchshift, oscillators,\n" +"emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc." +msgstr "" + +#: gnu/packages/audio.scm:603 +msgid "Sound and music computing system" +msgstr "" + +#: gnu/packages/audio.scm:605 +msgid "" +"Csound is a user-programmable and user-extensible sound processing\n" +"language and software synthesizer." +msgstr "" + +#: gnu/packages/audio.scm:648 gnu/packages/audio.scm:2712 +msgid "C++ wrapper around the ALSA API" +msgstr "" + +#: gnu/packages/audio.scm:650 +msgid "" +"clalsadrv is a C++ wrapper around the ALSA API simplifying access to\n" +"ALSA PCM devices." +msgstr "" + +#: gnu/packages/audio.scm:687 +msgid "LADSPA ambisonics plugins" +msgstr "" + +#: gnu/packages/audio.scm:689 +msgid "" +"The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be\n" +"used within Ardour. Features include: mono and stereo to B-format panning,\n" +"horizontal rotator, square, hexagon and cube decoders." +msgstr "" + +#: gnu/packages/audio.scm:724 +msgid "Chorus, phaser, and vintage high-pass and low-pass filters" +msgstr "" + +#: gnu/packages/audio.scm:726 +msgid "" +"This package provides various LADSPA plugins. @code{cs_chorus} and\n" +"@code{cs_phaser} provide chorus and phaser effects, respectively;\n" +"@code{mvclpf24} provides four implementations of the low-pass filter used in\n" +"vintage Moog synthesizers; @code{mvchpf24} is based on the voltage-controlled\n" +"high-pass filter by Robert Moog. The filters attempt to accurately emulate\n" +"the non-linear circuit elements of their original analog counterparts." +msgstr "" + +#: gnu/packages/audio.scm:764 +msgid "LADSPA reverb plugin" +msgstr "" + +#: gnu/packages/audio.scm:766 +msgid "" +"This package provides a stereo reverb LADSPA plugin based on the\n" +"well-known greverb." +msgstr "" + +#: gnu/packages/audio.scm:800 +msgid "LADSPA four-band parametric equalizer plugin" +msgstr "" + +#: gnu/packages/audio.scm:802 +msgid "" +"This package provides a LADSPA plugin for a four-band parametric\n" +"equalizer. Each section has an active/bypass switch, frequency, bandwidth and\n" +"gain controls. There is also a global bypass switch and gain control.\n" +"\n" +"The 2nd order resonant filters are implemented using a Mitra-Regalia style\n" +"lattice filter, which is stable even while parameters are being changed.\n" +"\n" +"All switches and controls are internally smoothed, so they can be used 'live'\n" +"without any clicks or zipper noises. This makes this plugin suitable for use\n" +"in systems that allow automation of plugin control ports, such as Ardour, or\n" +"for stage use." +msgstr "" + +#: gnu/packages/audio.scm:845 +msgid "LADSPA stereo width plugin" +msgstr "" + +#: gnu/packages/audio.scm:847 +#, fuzzy +#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems." +msgid "" +"This package provides a LADSPA plugin to manipulate the stereo width of\n" +"audio signals." +msgstr "Ce paquet fournit des outils pour manipuler les systèmes de fichiers ext2/ext3/ext4" + +#: gnu/packages/audio.scm:882 +msgid "LADSPA plugin for synthesizer oscillators" +msgstr "" + +#: gnu/packages/audio.scm:884 +msgid "" +"The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:\n" +"\n" +"@enumerate\n" +"@item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum\n" +"@item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum\n" +"@item Rec-VCO, a square / rectange oscillator\n" +"@end enumerate\n" +"\n" +"\n" +"All oscillators are low-pass filtered to provide waveforms similar to the\n" +"output of analog synthesizers such as the Moog Voyager." +msgstr "" + +#: gnu/packages/audio.scm:926 +msgid "LADSPA Autowah effect plugin" +msgstr "" + +#: gnu/packages/audio.scm:928 +#, fuzzy +#| msgid "This package provides a dictionary for the GNU Aspell spell checker." +msgid "" +"This package provides a LADSPA plugin for a Wah effect with envelope\n" +"follower." msgstr "Ce paquet fournit un dictionnaire pour le correcteur orthographique Aspell" -#: gnu/packages/backup.scm:87 +#: gnu/packages/audio.scm:962 +msgid "LADSPA stereo reverb plugin" +msgstr "" + +#: gnu/packages/audio.scm:964 +#, fuzzy +#| msgid "This package provides an database interface for Perl." +msgid "This package provides a LADSPA plugin for a stereo reverb effect." +msgstr "Ce paquet fournit une interface de base de données pour Perl." + +#: gnu/packages/audio.scm:998 +msgid "SoundFont synthesizer" +msgstr "" + +#: gnu/packages/audio.scm:1000 +msgid "" +"FluidSynth is a real-time software synthesizer based on the SoundFont 2\n" +"specifications. FluidSynth reads and handles MIDI events from the MIDI input\n" +"device. It is the software analogue of a MIDI synthesizer. FluidSynth can\n" +"also play midifiles using a Soundfont." +msgstr "" + +#: gnu/packages/audio.scm:1032 +msgid "MPEG-4 and MPEG-2 AAC decoder" +msgstr "" + +#: gnu/packages/audio.scm:1034 +msgid "" +"FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,\n" +"PS, and DAB+." +msgstr "" + +#: gnu/packages/audio.scm:1063 +msgid "Signal processing language" +msgstr "" + +#: gnu/packages/audio.scm:1065 +msgid "Faust is a programming language for realtime audio signal processing." +msgstr "" + +#: gnu/packages/audio.scm:1130 +msgid "GUS compatible patches for MIDI players" +msgstr "" + +#: gnu/packages/audio.scm:1132 +msgid "" +"FreePats is a project to create a free and open set of GUS compatible\n" +"patches that can be used with softsynths such as Timidity and WildMidi." +msgstr "" + +#: gnu/packages/audio.scm:1184 +msgid "Virtual guitar amplifier" +msgstr "" + +#: gnu/packages/audio.scm:1185 +msgid "" +"Guitarix is a virtual guitar amplifier running JACK.\n" +"Guitarix takes the signal from your guitar as a mono-signal from your sound\n" +"card. The input is processed by a main amp and a rack-section. Both can be\n" +"routed separately and deliver a processed stereo-signal via JACK. You may\n" +"fill the rack with effects from more than 25 built-in modules including stuff\n" +"from a simple noise gate to modulation effects like flanger, phaser or\n" +"auto-wah." +msgstr "" + +#: gnu/packages/audio.scm:1241 +msgid "Audio effects processor" +msgstr "" + +#: gnu/packages/audio.scm:1243 +msgid "" +"Rakarrack is a richly featured multi-effects processor emulating a\n" +"guitar effects pedalboard. Effects include compressor, expander, noise gate,\n" +"equalizers, exciter, flangers, chorus, various delay and reverb effects,\n" +"distortion modules and many more. Most of the effects engine is built from\n" +"modules found in the excellent software synthesizer ZynAddSubFX. Presets and\n" +"user interface are optimized for guitar, but Rakarrack processes signals in\n" +"stereo while it does not apply internal band-limiting filtering, and thus is\n" +"well suited to all musical instruments and vocals." +msgstr "" + +#: gnu/packages/audio.scm:1294 +msgid "LV2 convolution reverb" +msgstr "" + +#: gnu/packages/audio.scm:1296 +msgid "" +"IR is a low-latency, real-time, high performance signal convolver\n" +"especially for creating reverb effects. It supports impulse responses with 1,\n" +"2 or 4 channels, in any soundfile format supported by libsndfile." +msgstr "" + +#: gnu/packages/audio.scm:1326 +msgid "JACK audio connection kit" +msgstr "" + +#: gnu/packages/audio.scm:1328 +msgid "" +"JACK is a low-latency audio server. It can connect a number of\n" +"different applications to an audio device, as well as allowing them to share\n" +"audio between themselves. JACK is different from other audio server efforts\n" +"in that it has been designed from the ground up to be suitable for\n" +"professional audio work. This means that it focuses on two key areas:\n" +"synchronous execution of all clients, and low latency operation." +msgstr "" + +#: gnu/packages/audio.scm:1434 +msgid "Simple LV2 host for JACK" +msgstr "" + +#: gnu/packages/audio.scm:1436 +msgid "" +"Jalv is a simple but fully featured LV2 host for JACK. It runs LV2\n" +"plugins and exposes their ports as JACK ports, essentially making any LV2\n" +"plugin function as a JACK application." +msgstr "" + +#: gnu/packages/audio.scm:1479 +msgid "Linux Audio Developer's Simple Plugin API (LADSPA)" +msgstr "" + +#: gnu/packages/audio.scm:1481 +msgid "" +"LADSPA is a standard that allows software audio processors and effects\n" +"to be plugged into a wide range of audio synthesis and recording packages." +msgstr "" + +#: gnu/packages/audio.scm:1517 +msgid "Audio application session manager" +msgstr "" + +#: gnu/packages/audio.scm:1519 +msgid "" +"LASH is a session management system for audio applications. It allows\n" +"you to save and restore audio sessions consisting of multiple interconneced\n" +"applications, restoring program state (i.e. loaded patches) and the\n" +"connections between them." +msgstr "" + +#: gnu/packages/audio.scm:1540 +msgid "Bauer stereophonic-to-binaural DSP" +msgstr "" + +#: gnu/packages/audio.scm:1542 +msgid "" +"The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is\n" +"designed to improve headphone listening of stereo audio records. Recommended\n" +"for headphone prolonged listening to disable superstereo fatigue without\n" +"essential distortions." +msgstr "" + +#: gnu/packages/audio.scm:1565 +#, fuzzy +#| msgid "Implementation of Scheme and related languages" +msgid "Implementation of the Open Sound Control protocol" +msgstr "Implantation de Scheme et d'autres langages associés" + +#: gnu/packages/audio.scm:1567 +msgid "" +"liblo is a lightweight library that provides an easy to use\n" +"implementation of the Open Sound Control (OSC) protocol." +msgstr "" + +#: gnu/packages/audio.scm:1589 +msgid "Python bindings for liblo" +msgstr "" + +#: gnu/packages/audio.scm:1591 +msgid "" +"Pyliblo is a Python wrapper for the liblo Open Sound Control (OSC)\n" +"library. It supports almost the complete functionality of liblo, allowing you\n" +"to send and receive OSC messages using a nice and simple Python API. Also\n" +"included are the command line utilities @code{send_osc} and @code{dump_osc}." +msgstr "" + +#: gnu/packages/audio.scm:1632 +msgid "Library to simplify use of LV2 plugins in applications" +msgstr "" + +#: gnu/packages/audio.scm:1634 +msgid "" +"Lilv is a C library to make the use of LV2 plugins as simple as possible\n" +"for applications. Lilv is the successor to SLV2, rewritten to be\n" +"significantly faster and have minimal dependencies." +msgstr "" + +#: gnu/packages/audio.scm:1660 +msgid "LV2 audio plugin specification" +msgstr "" + +#: gnu/packages/audio.scm:1662 +msgid "" +"LV2 is an open specification for audio plugins and host applications.\n" +"At its core, LV2 is a simple stable interface, accompanied by extensions which\n" +"add functionality to support the needs of increasingly powerful audio\n" +"software." +msgstr "" + +#: gnu/packages/audio.scm:1697 +msgid "LV2 port of the mda Piano plugin" +msgstr "Port LV2 du greffon mda Piano" + +#: gnu/packages/audio.scm:1698 +msgid "An LV2 port of the mda Piano VSTi." +msgstr "Un port LV2 du VSTi mda Piano." + +#: gnu/packages/audio.scm:1711 +msgid "LV2 port of the mda EPiano plugin" +msgstr "Port LV2 du greffon mda EPiano" + +#: gnu/packages/audio.scm:1712 +msgid "An LV2 port of the mda EPiano VSTi." +msgstr "Un port LV2 du VSTi mda EPiano." + +#: gnu/packages/audio.scm:1757 +msgid "C++ libraries for LV2 plugins" +msgstr "" + +#: gnu/packages/audio.scm:1759 +msgid "" +"The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and\n" +"extensions into easy to use C++ classes. It is the successor of\n" +"lv2-c++-tools." +msgstr "" + +#: gnu/packages/audio.scm:1800 +msgid "3D audio API" +msgstr "" + +#: gnu/packages/audio.scm:1802 +msgid "" +"OpenAL provides capabilities for playing audio in a virtual 3D\n" +"environment. Distance attenuation, doppler shift, and directional sound\n" +"emitters are among the features handled by the API. More advanced effects,\n" +"including air absorption, occlusion, and environmental reverb, are available\n" +"through the EFX extension. It also facilitates streaming audio, multi-channel\n" +"buffers, and audio capture." +msgstr "" + +#: gnu/packages/audio.scm:1832 +msgid "Free implementation of OpenAL's ALUT standard" +msgstr "" + +#: gnu/packages/audio.scm:1833 +msgid "freealut is the OpenAL Utility Toolkit." +msgstr "" + +#: gnu/packages/audio.scm:1862 +msgid "Modular patch bay for audio and MIDI systems" +msgstr "" + +#: gnu/packages/audio.scm:1864 +msgid "" +"Patchage is a modular patch bay for audio and MIDI systems based on JACK\n" +"and ALSA." +msgstr "" + +#: gnu/packages/audio.scm:1890 +msgid "Jack server control application" +msgstr "" + +#: gnu/packages/audio.scm:1891 +msgid "" +"Control a Jack server. Allows you to plug various sources\n" +"into various outputs and to start, stop and configure jackd" +msgstr "" + +#: gnu/packages/audio.scm:1917 +msgid "Real-time audio utility library" +msgstr "" + +#: gnu/packages/audio.scm:1919 +msgid "" +"Raul (Real-time Audio Utility Library) is a C++ utility library primarily\n" +"aimed at audio/musical applications." +msgstr "" + +#: gnu/packages/audio.scm:1962 +msgid "Audio time-stretching and pitch-shifting library" +msgstr "" + +#: gnu/packages/audio.scm:1964 +msgid "" +"Rubber Band is a library and utility program that permits changing the\n" +"tempo and pitch of an audio recording independently of one another." +msgstr "" + +#: gnu/packages/audio.scm:2012 +msgid "Cross-platform MIDI library for C++" +msgstr "" + +#: gnu/packages/audio.scm:2014 +msgid "" +"RtMidi is a set of C++ classes (RtMidiIn, RtMidiOut, and API specific\n" +"classes) that provide a common cross-platform API for realtime MIDI\n" +"input/output." +msgstr "" + +#: gnu/packages/audio.scm:2039 +msgid "Library for serialising LV2 atoms to/from RDF" +msgstr "" + +#: gnu/packages/audio.scm:2041 +msgid "" +"Sratom is a library for serialising LV2 atoms to/from RDF, particularly\n" +"the Turtle syntax." +msgstr "" + +#: gnu/packages/audio.scm:2065 +msgid "Library for loading and wrapping LV2 plugin UIs" +msgstr "" + +#: gnu/packages/audio.scm:2067 +msgid "" +"Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.\n" +"\n" +"Suil makes it possible to load a UI of a toolkit in a host using another\n" +"toolkit. The API is designed such that hosts do not need to explicitly\n" +"support specific toolkits – if Suil supports a particular toolkit, then UIs in\n" +"that toolkit will work in all hosts that use Suil automatically.\n" +"\n" +"Suil currently supports every combination of Gtk 2, Qt 4, and X11." +msgstr "" + +#: gnu/packages/audio.scm:2124 +msgid "Software synthesizer for playing MIDI files" +msgstr "" + +#: gnu/packages/audio.scm:2126 +msgid "" +"TiMidity++ is a software synthesizer. It can play MIDI files by\n" +"converting them into PCM waveform data; give it a MIDI data along with digital\n" +"instrument data files, then it synthesizes them in real-time, and plays. It\n" +"can not only play sounds, but also can save the generated waveforms into hard\n" +"disks as various audio file formats." +msgstr "" + +#: gnu/packages/audio.scm:2165 +msgid "Modular and extensible audio processing system" +msgstr "" + +#: gnu/packages/audio.scm:2167 +msgid "" +"Vamp is an audio processing plugin system for plugins that extract\n" +"descriptive information from audio data — typically referred to as audio\n" +"analysis plugins or audio feature extraction plugins." +msgstr "" + +#: gnu/packages/audio.scm:2206 +msgid "Library for time stretching and pitch scaling of audio" +msgstr "" + +#: gnu/packages/audio.scm:2208 +msgid "" +"SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time\n" +"stretching and pitch scaling of audio. This package contains the library." +msgstr "" + +#: gnu/packages/audio.scm:2227 +msgid "Hybrid lossless audio codec" +msgstr "" + +#: gnu/packages/audio.scm:2229 +msgid "" +"WavPack is an audio compression format with lossless, lossy and hybrid\n" +"compression modes. This package contains command-line programs and library to\n" +"encode and decode wavpack files." +msgstr "" + +#: gnu/packages/audio.scm:2248 +msgid "Mod file playing library" +msgstr "" + +#: gnu/packages/audio.scm:2250 +msgid "" +"Libmodplug renders mod music files as raw audio data, for playing or\n" +"conversion. mod, .s3m, .it, .xm, and a number of lesser-known formats are\n" +"supported. Optional features include high-quality resampling, bass expansion,\n" +"surround and reverb." +msgstr "" + +#: gnu/packages/audio.scm:2269 +msgid "Module player library" +msgstr "" + +#: gnu/packages/audio.scm:2271 +msgid "" +"Libxmp is a library that renders module files to PCM data. It supports\n" +"over 90 mainstream and obscure module formats including Protracker (MOD),\n" +"Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT)." +msgstr "" + +#: gnu/packages/audio.scm:2294 +msgid "Extended module player" +msgstr "" + +#: gnu/packages/audio.scm:2296 +msgid "" +"Xmp is a portable module player that plays over 90 mainstream and\n" +"obscure module formats, including Protracker MOD, Fasttracker II XM, Scream\n" +"Tracker 3 S3M and Impulse Tracker IT files." +msgstr "" + +#: gnu/packages/audio.scm:2328 +msgid "Audio processing library for changing tempo, pitch and playback rate" +msgstr "" + +#: gnu/packages/audio.scm:2330 +msgid "" +"SoundTouch is an audio processing library for changing the tempo, pitch\n" +"and playback rates of audio streams or audio files. It is intended for\n" +"application developers writing sound processing tools that require tempo/pitch\n" +"control functionality, or just for playing around with the sound effects." +msgstr "" + +#: gnu/packages/audio.scm:2367 +msgid "Sound processing utility" +msgstr "" + +#: gnu/packages/audio.scm:2369 +msgid "" +"SoX (Sound eXchange) is a command line utility that can convert\n" +"various formats of computer audio files to other formats. It can also\n" +"apply various effects to these sound files, and, as an added bonus, SoX\n" +"can play and record audio files." +msgstr "" + +#: gnu/packages/audio.scm:2392 +msgid "One-dimensional sample-rate conversion library" +msgstr "" + +#: gnu/packages/audio.scm:2394 +msgid "" +"The SoX Resampler library (libsoxr) performs one-dimensional sample-rate\n" +"conversion. It may be used, for example, to resample PCM-encoded audio." +msgstr "" + +#: gnu/packages/audio.scm:2424 +msgid "MPEG Audio Layer 2 (MP2) encoder" +msgstr "" + +#: gnu/packages/audio.scm:2426 +msgid "" +"TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on\n" +"tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and\n" +"portions of LAME." +msgstr "" + +#: gnu/packages/audio.scm:2466 +msgid "Audio I/O library" +msgstr "" + +#: gnu/packages/audio.scm:2468 +msgid "" +"PortAudio is a portable C/C++ audio I/O library providing a simple API\n" +"to record and/or play sound using a callback function or a blocking read/write\n" +"interface." +msgstr "" + +#: gnu/packages/audio.scm:2498 +msgid "Graphical user interface for FluidSynth" +msgstr "" + +#: gnu/packages/audio.scm:2500 +msgid "" +"Qsynth is a GUI front-end application for the FluidSynth SoundFont\n" +"synthesizer written in C++." +msgstr "" + +#: gnu/packages/audio.scm:2538 +msgid "Networked audio system" +msgstr "" + +#: gnu/packages/audio.scm:2540 +msgid "" +"RSound allows you to send audio from an application and transfer it\n" +"directly to a different computer on your LAN network. It is an audio daemon\n" +"with a much different focus than most other audio daemons." +msgstr "" + +#: gnu/packages/audio.scm:2571 +msgid "JACK audio frequency analyzer and display" +msgstr "" + +#: gnu/packages/audio.scm:2573 +msgid "" +"XJackFreak is an audio analysis and equalizing tool for the Jack Audio\n" +"Connection Kit. It can display the FFT of any input, modify it and output the\n" +"result." +msgstr "" + +#: gnu/packages/audio.scm:2619 +msgid "Fast, partitioned convolution engine library" +msgstr "" + +#: gnu/packages/audio.scm:2621 +msgid "" +"Zita convolver is a C++ library providing a real-time convolution\n" +"engine." +msgstr "" + +#: gnu/packages/audio.scm:2666 +#, fuzzy +#| msgid "Library for accessing zip files" +msgid "C++ library for resampling audio signals" +msgstr "Bibliothèque de manipulation des fichiers zip" + +#: gnu/packages/audio.scm:2668 +msgid "" +"Libzita-resampler is a C++ library for resampling audio signals. It is\n" +"designed to be used within a real-time processing context, to be fast, and to\n" +"provide high-quality sample rate conversion." +msgstr "" + +#: gnu/packages/audio.scm:2714 +msgid "" +"Zita-alsa-pcmi is a C++ wrapper around the ALSA API. It provides easy\n" +"access to ALSA PCM devices, taking care of the many functions required to\n" +"open, initialise and use a hw: device in mmap mode, and providing floating\n" +"point audio data." +msgstr "" + +#: gnu/packages/audio.scm:2745 +msgid "Cue and toc file parsers and utilities" +msgstr "" + +#: gnu/packages/audio.scm:2746 +msgid "" +"Cuetools is a set of programs that are useful for manipulating\n" +"and using CUE sheet (cue) files and Table of Contents (toc) files. CUE and TOC\n" +"files are a way to represent the layout of a data or audio CD in a\n" +"machine-readable ASCII format." +msgstr "" + +#: gnu/packages/audio.scm:2765 +msgid "WAVE audio data processing tool" +msgstr "" + +#: gnu/packages/audio.scm:2766 +msgid "" +"shntool is a multi-purpose WAVE data processing and reporting\n" +"utility. File formats are abstracted from its core, so it can process any file\n" +"that contains WAVE data, compressed or not---provided there exists a format\n" +"module to handle that particular file type." +msgstr "" + +#: gnu/packages/audio.scm:2803 +msgid "DTS Coherent Acoustics decoder" +msgstr "" + +#: gnu/packages/audio.scm:2804 +msgid "" +"Dcadec is a DTS Coherent Acoustics surround sound decoder\n" +"with support for HD extensions." +msgstr "" + +#: gnu/packages/audio.scm:2825 +msgid "Tool to adjust loudness of media files" +msgstr "" + +#: gnu/packages/audio.scm:2827 +msgid "" +"BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its\n" +"flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the\n" +"loudness of audio and video files to the same level." +msgstr "" + +#: gnu/packages/audio.scm:2858 +msgid "Lightweight audio filtering library" +msgstr "" + +#: gnu/packages/audio.scm:2859 +msgid "" +"An easy to use audio filtering library made from webrtc\n" +"code, used in @code{libtoxcore}." +msgstr "" + +#: gnu/packages/audio.scm:2903 +#, fuzzy +#| msgid "Multi-format archive and compression library" +msgid "GSM 06.10 lossy speech compression library" +msgstr "Bibliothèque de compression et d'archivage multi-format" + +#: gnu/packages/audio.scm:2904 +msgid "" +"This C library provides an encoder and a decoder for the GSM\n" +"06.10 RPE-LTP lossy speech compression algorithm." +msgstr "" + +#: gnu/packages/backup.scm:108 msgid "Encrypted backup using rsync algorithm" msgstr "Système de sauvegarde chiffrée utilisant l'algorithme rsync" -#: gnu/packages/backup.scm:89 +#: gnu/packages/backup.scm:110 msgid "" "Duplicity backs up directories by producing encrypted tar-format volumes\n" "and uploading them to a remote or local file server. Because duplicity uses\n" @@ -55,13 +903,30 @@ msgstr "" "dernière sauvegarde. L'utilisation de GnuPG pour chiffrer ou signer ces archives\n" "permet de prévenir tout rique d'espionnage ou d'altération par le serveur." -#: gnu/packages/backup.scm:123 +#: gnu/packages/backup.scm:147 +msgid "File verification and repair tool" +msgstr "" + +#: gnu/packages/backup.scm:148 +msgid "" +"Par2cmdline is a tool for generating RAID-like PAR2 recovery\n" +"files using Reed-Solomon coding. PAR2 files can be stored along side backups\n" +"or distributed files for recovering from bitrot." +msgstr "" + +#: gnu/packages/backup.scm:179 msgid "Simple incremental backup tool" msgstr "Outil simple de sauvegarde incrémentale" -#: gnu/packages/backup.scm:125 +#: gnu/packages/backup.scm:181 +#, fuzzy +#| msgid "" +#| "Hdup2 is a backup utilty, its aim is to make backup really simple. The\n" +#| "backup scheduling is done by means of a cron job. It supports an\n" +#| "include/exclude mechanism, remote backups, encrypted backups and split\n" +#| "backups (called chunks) to allow easy burning to CD/DVD." msgid "" -"Hdup2 is a backup utilty, its aim is to make backup really simple. The\n" +"Hdup2 is a backup utility, its aim is to make backup really simple. The\n" "backup scheduling is done by means of a cron job. It supports an\n" "include/exclude mechanism, remote backups, encrypted backups and split\n" "backups (called chunks) to allow easy burning to CD/DVD." @@ -71,11 +936,11 @@ msgstr "" "d'inclusion et d'exclusion, les sauvegardes distantes, chiffrées ou\n" "morcelées (appellées chunks) permettant un gravure sur CD/DVD aisée." -#: gnu/packages/backup.scm:178 +#: gnu/packages/backup.scm:235 msgid "Multi-format archive and compression library" msgstr "Bibliothèque de compression et d'archivage multi-format" -#: gnu/packages/backup.scm:180 +#: gnu/packages/backup.scm:237 msgid "" "Libarchive provides a flexible interface for reading and writing\n" "archives in various formats such as tar and cpio. Libarchive also supports\n" @@ -93,15 +958,21 @@ msgstr "" "l'archive en continu. Notez qu'il n'existe pour l'instant aucun support intégré\n" "pour les accès aléatoires ou les modifications ponctuelles." -#: gnu/packages/backup.scm:243 +#: gnu/packages/backup.scm:314 msgid "Provide a list of files to backup" msgstr "Fournit une liste des fichiers à sauvegarder" -#: gnu/packages/backup.scm:245 +#: gnu/packages/backup.scm:316 +#, fuzzy +#| msgid "" +#| "Rdup is a utility inspired by rsync and the plan9 way of doing backups.\n" +#| "Rdup itself does not backup anything, it only print a list of absolute\n" +#| "filenames to standard output. Auxiliary scripts are needed that act on this\n" +#| "list and implement the backup strategy." msgid "" "Rdup is a utility inspired by rsync and the plan9 way of doing backups.\n" "Rdup itself does not backup anything, it only print a list of absolute\n" -"filenames to standard output. Auxiliary scripts are needed that act on this\n" +"file names to standard output. Auxiliary scripts are needed that act on this\n" "list and implement the backup strategy." msgstr "" "Rdup est un utilitaire inspiré par rsync et par la façon dont plan9 réalise\n" @@ -109,11 +980,11 @@ msgstr "" "liste de fichiers sur la sortie standard. Des scripts auxiliaires utilisant\n" "cette liste et implantant la stratégie de sauvegarde sont nécessaires." -#: gnu/packages/backup.scm:275 +#: gnu/packages/backup.scm:346 msgid "Tar-compatible archiver" msgstr "Archiveur compatible avec le format tar" -#: gnu/packages/backup.scm:277 +#: gnu/packages/backup.scm:348 msgid "" "Btar is a tar-compatible archiver which allows arbitrary compression and\n" "ciphering, redundancy, differential backup, indexed extraction, multicore\n" @@ -125,11 +996,24 @@ msgstr "" "l'extraction indexée, la compression multi-coeurs, la sérialisation des entrées-\n" "sorties et la tolérance aux erreurs d'archivage partielles." -#: gnu/packages/backup.scm:305 +#: gnu/packages/backup.scm:374 msgid "Local/remote mirroring+incremental backup" msgstr "Sauvegarde mirroir/incrémentales, locales ou distantes" -#: gnu/packages/backup.scm:307 +#: gnu/packages/backup.scm:376 +#, fuzzy +#| msgid "" +#| "Rdiff-backup backs up one directory to another, possibly over a network.\n" +#| "The target directory ends up a copy of the source directory, but extra reverse\n" +#| "diffs are stored in a special subdirectory of that target directory, so you\n" +#| "can still recover files lost some time ago. The idea is to combine the best\n" +#| "features of a mirror and an incremental backup. Rdiff-backup also preserves\n" +#| "subdirectories, hard links, dev files, permissions, uid/gid ownership,\n" +#| "modification times, extended attributes, acls, and resource forks. Also,\n" +#| "rdiff-backup can operate in a bandwidth efficient manner over a pipe, like\n" +#| "rsync. Thus you can use rdiff-backup and ssh to securely back a hard drive up\n" +#| "to a remote location, and only the differences will be transmitted. Finally,\n" +#| "rdiff-backup is easy to use and settings have sensical defaults." msgid "" "Rdiff-backup backs up one directory to another, possibly over a network.\n" "The target directory ends up a copy of the source directory, but extra reverse\n" @@ -141,7 +1025,7 @@ msgid "" "rdiff-backup can operate in a bandwidth efficient manner over a pipe, like\n" "rsync. Thus you can use rdiff-backup and ssh to securely back a hard drive up\n" "to a remote location, and only the differences will be transmitted. Finally,\n" -"rdiff-backup is easy to use and settings have sensical defaults." +"rdiff-backup is easy to use and settings have sensible defaults." msgstr "" "Rdiff-backup sauvegarde un répertoire vers un autre, éventuellement sur un\n" "réseau. Le répertoire cible devient une copie du répertoire source, mais le\n" @@ -156,11 +1040,123 @@ msgstr "" "différence sera transmise. Enfin, rdiff-backup est simple d'utilisation et la\n" "configuration par défaut sera généralement suffisante." -#: gnu/packages/base.scm:56 +#: gnu/packages/backup.scm:418 +msgid "Deduplicating snapshot backup utility based on rsync" +msgstr "Utilitaire de sauvegarde dédupliquées basé sur rsync" + +#: gnu/packages/backup.scm:419 +msgid "" +"rsnapshot is a filesystem snapshot utility based on rsync.\n" +"rsnapshot makes it easy to make periodic snapshots of local machines, and\n" +"remote machines over SSH. To reduce the disk space required for each backup,\n" +"rsnapshot uses hard links to deduplicate identical files." +msgstr "" +"rsnapshot est un outil d'instantané du système de fichier basé sur rsync\n" +"rsnapshot rend facile la prise périodique d'instantanés des machines locales\n" +"et des machines distantes par SSH. Pour réduire l'espace disque nécessaire\n" +"pour chaque sauvegarde, rsnapshot utilise des liens en dur pour dédupliquer\n" +"les fichiers identiques." + +#: gnu/packages/backup.scm:454 +msgid "Tools & library for data backup and distributed storage" +msgstr "Outils et bibliothèque pour la sauvegarde de données et le stockage distribué" + +#: gnu/packages/backup.scm:456 +msgid "" +"Libchop is a set of utilities and library for data backup and\n" +"distributed storage. Its main application is @command{chop-backup}, an\n" +"encrypted backup program that supports data integrity checks, versioning,\n" +"distribution among several sites, selective sharing of stored data, adaptive\n" +"compression, and more. The library itself implements storage techniques such\n" +"as content-addressable storage, content hash keys, Merkle trees, similarity\n" +"detection, and lossless compression." +msgstr "" +"Libchop est un ensemble d'utilitaires et de bibliothèques pour la sauvegarde\n" +"de donées et le stockage distribué. Son application principale est\n" +"@command{chop-backup}, un programme de sauvegarde chiffrée qui supporte la\n" +"vérification d'intégrité, le versionnement, la distribution sur plusieurs\n" +"sites, le partage des données stockées, la compression adaptative et bien\n" +"plus. La bibliothèque elle-même implémente des techniques de stockage comme\n" +"le stockage adressable par contenu, le clefs de hash, les arbres de Merkle,\n" +"la détection de similarité et la compression sans perte." + +#: gnu/packages/backup.scm:553 +msgid "Deduplicated, encrypted, authenticated and compressed backups" +msgstr "Sauvegardes dédupliquées, chiffrées, authentifiées et compressées" + +#: gnu/packages/backup.scm:554 +msgid "" +"Borg is a deduplicating backup program. Optionally, it\n" +"supports compression and authenticated encryption. The main goal of Borg is to\n" +"provide an efficient and secure way to backup data. The data deduplication\n" +"technique used makes Borg suitable for daily backups since only changes are\n" +"stored. The authenticated encryption technique makes it suitable for backups\n" +"to not fully trusted targets. Borg is a fork of Attic." +msgstr "" +"Borg est un programme de sauvegarde dédupliquées. Éventuellement, il supporte\n" +"la compression et le chiffrement authentifié. Le but principal de Borg est\n" +"de fournir une manière efficace et sûre de sauvegarder les données. La\n" +"technique de déduplication de données utilisée rend Borg adapté aux sauvegardes\n" +"quotidiennes puisque seuls les changements sont stockés. La technique de\n" +"chiffrement authentifié le rend adapté aux sauvegardes vers des cibles qui ne\n" +"sont pas de confiance. Borg est un fork de Attic." + +#: gnu/packages/backup.scm:600 +msgid "Deduplicating backup program" +msgstr "Programme de sauvegardes dédupliquées" + +#: gnu/packages/backup.scm:601 +msgid "" +"Attic is a deduplicating backup program. The main goal of\n" +"Attic is to provide an efficient and secure way to backup data. The data\n" +"deduplication technique used makes Attic suitable for daily backups since only\n" +"changes are stored." +msgstr "" +"Attic est un programme de sauvegardes dédupliquées. Le but principal de Attic\n" +"est de fournir une méthode éfficace et sûre pour sauvegarder ses données. La\n" +"technique de déduplication de données utilisée par Attic le rend adapté aux\n" +"sauvegardes quotidiennes car seuls les changements sont stockés." + +#: gnu/packages/backup.scm:631 +msgid "WIM file manipulation library and utilities" +msgstr "Bibliothèque et utilitaires de manipulation de fichiers WIM" + +#: gnu/packages/backup.scm:632 +msgid "" +"wimlib is a C library and set of command-line utilities for\n" +"creating, modifying, extracting, and mounting archives in the Windows Imaging\n" +"Format (@dfn{WIM files}). It can capture and apply WIMs directly from and to\n" +"NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes." +msgstr "" +"Wimlib est une bibliothèque C et un ensemble d'outils en ligne de commande\n" +"pour créer, modifier, extraire et monter des archives dans le Format d'Image\n" +"Windows (@dfn{fichiers WIM}). Il peut capturer et appliquer des WIM\n" +"directement depuis ou sur des volumes NTFS avec @code{ntfs-3g}, et préserve\n" +"les attributs spécifiques à NTFS." + +#: gnu/packages/backup.scm:689 +msgid "Easy and secure backup program" +msgstr "Programme de sauvegarde sécurisées et faciles" + +#: gnu/packages/backup.scm:690 +msgid "" +"Obnam is an easy, secure backup program. Features\n" +"include snapshot backups, data de-duplication and encrypted backups\n" +"using GnuPG. Backups can be stored on local hard disks, or online via\n" +"the SSH SFTP protocol. The backup server, if used, does not require\n" +"any special software, on top of SSH." +msgstr "" +"Obnam est un programme de sauvegardes sécurisées et faciles. Il permet la\n" +"sauvegarde d'instantanées, la déduplication de données et le chiffrement des\n" +"sauvegardes avec GnuPG. Les sauvegardes sont stockées sur les disques locaux\n" +"ou en ligne avec le protocole SSH SFTP. Le serveur de sauvegarde, s'il est\n" +"utilisé, ne requiert aucun programme spécifique en dehors de SSH." + +#: gnu/packages/base.scm:71 msgid "Hello, GNU world: An example GNU package" msgstr "Hello, GNU world: Un exemple de paquet GNU" -#: gnu/packages/base.scm:58 +#: gnu/packages/base.scm:73 msgid "" "GNU Hello prints the message \"Hello, world!\" and then exits. It\n" "serves as an example of standard GNU coding practices. As such, it supports\n" @@ -170,11 +1166,11 @@ msgstr "" "d'exemple pour les pratiques de programmation GNU standard. Il supporte\n" "les arguments en ligne de commande, plusieurs langages, etc." -#: gnu/packages/base.scm:76 +#: gnu/packages/base.scm:107 msgid "Print lines matching a pattern" msgstr "Affiche les lignes correspondant à un pattern donné" -#: gnu/packages/base.scm:78 +#: gnu/packages/base.scm:109 msgid "" "grep is a tool for finding text inside files. Text is found by\n" "matching a pattern provided by the user in one or many files. The pattern\n" @@ -192,11 +1188,11 @@ msgstr "" "les numéros de ligne. GNU grep offre de nombreuses extensions, incluant par exemple\n" "la recherche récursive sur des répertoires." -#: gnu/packages/base.scm:100 +#: gnu/packages/base.scm:131 msgid "Stream editor" msgstr "Éditeur de flux" -#: gnu/packages/base.scm:115 +#: gnu/packages/base.scm:153 msgid "" "Sed is a non-interactive, text stream editor. It receives a text\n" "input from a file or from standard input and it then applies a series of text\n" @@ -210,11 +1206,11 @@ msgstr "" "des morceaux de texte dans un flux. L'implantation GNU ajoute plusieurs extensions\n" "à l'utilitaire standard." -#: gnu/packages/base.scm:135 +#: gnu/packages/base.scm:193 msgid "Managing tar archives" msgstr "Gestion d'archives tar" -#: gnu/packages/base.scm:137 +#: gnu/packages/base.scm:195 msgid "" "Tar provides the ability to create tar archives, as well as the\n" "ability to extract, update or list files in an existing archive. It is\n" @@ -230,11 +1226,11 @@ msgstr "" "les permissions et les dates de création/modification. GNU tar ajoute de\n" "nombreuses extensions à l'utilaire standard." -#: gnu/packages/base.scm:161 +#: gnu/packages/base.scm:218 msgid "Apply differences to originals, with optional backups" msgstr "Applique les différences aux originaux, avec sauvegardes optionnelles" -#: gnu/packages/base.scm:163 +#: gnu/packages/base.scm:220 msgid "" "Patch is a program that applies changes to files based on differences\n" "laid out as by the program \"diff\". The changes may be applied to one or more\n" @@ -248,15 +1244,22 @@ msgstr "" "accepte différents formats diff. Il peut aussi être utilisé pour annuler des\n" "différences appliquées antérieurement." -#: gnu/packages/base.scm:183 +#: gnu/packages/base.scm:240 msgid "Comparing and merging files" msgstr "Comparaison et fusion des fichiers" -#: gnu/packages/base.scm:185 +#: gnu/packages/base.scm:242 +#, fuzzy +#| msgid "" +#| "GNU Diffutils is a package containing tools for finding the\n" +#| "differences between files. The \"diff\" command is used to show how two files\n" +#| "differ, while \"cmp\" shows the offsets and line numbers where they differ. \n" +#| "\"diff3\" allows you to compare three files. Finally, \"sdiff\" offers an\n" +#| "interactive means to merge two files." msgid "" "GNU Diffutils is a package containing tools for finding the\n" "differences between files. The \"diff\" command is used to show how two files\n" -"differ, while \"cmp\" shows the offsets and line numbers where they differ. \n" +"differ, while \"cmp\" shows the offsets and line numbers where they differ.\n" "\"diff3\" allows you to compare three files. Finally, \"sdiff\" offers an\n" "interactive means to merge two files." msgstr "" @@ -266,11 +1269,11 @@ msgstr "" "numéros de lignes et décalages où ils diffèrent. \"diff3\" permet de comparer\n" "trois fichiers. Enfin, \"sdiff\" offre un moyen interactif de fusionner deux fichiers." -#: gnu/packages/base.scm:212 +#: gnu/packages/base.scm:274 msgid "Operating on files matching given criteria" msgstr "Opération sur les fichiers correspondant au critère donné" -#: gnu/packages/base.scm:214 +#: gnu/packages/base.scm:276 msgid "" "Findutils supplies the basic file directory searching utilities of the\n" "GNU system. It consists of two primary searching utilities: \"find\"\n" @@ -286,11 +1289,11 @@ msgstr "" "sont inclus : \"updatedb\" met à jour la base de données et \"xargs\" peut être utilisé \n" "pour appliquer des commandes avec des arguments longs et arbitraires" -#: gnu/packages/base.scm:264 +#: gnu/packages/base.scm:356 msgid "Core GNU utilities (file, text, shell)" msgstr "Utilitaires GNU (fichier, texte, shell)" -#: gnu/packages/base.scm:266 +#: gnu/packages/base.scm:358 msgid "" "GNU Coreutils includes all of the basic command-line tools that are\n" "expected in a POSIX system. These provide the basic file, shell and text\n" @@ -302,11 +1305,11 @@ msgstr "" "de fichiers, du shell et de textes d'un système GNU. Ils offrent pour la plupart\n" "des fonctionnalités étendues au-delà de ce qui est défini dans le standard POSIX." -#: gnu/packages/base.scm:300 +#: gnu/packages/base.scm:423 msgid "Remake files automatically" msgstr "Recompiler les fichiers automatiquement" -#: gnu/packages/base.scm:302 +#: gnu/packages/base.scm:425 msgid "" "Make is a program that is used to control the production of\n" "executables or other files from their source files. The process is\n" @@ -323,11 +1326,11 @@ msgstr "" "regénérés. GNU make possède beaucoup d'extensions en plus de\n" "l'utilitaire standard." -#: gnu/packages/base.scm:347 +#: gnu/packages/base.scm:471 msgid "Binary utilities: bfd gas gprof ld" msgstr "Utilitaires binaires: bfd gas gprof ld" -#: gnu/packages/base.scm:349 +#: gnu/packages/base.scm:473 msgid "" "GNU Binutils is a collection of tools for working with binary files.\n" "Perhaps the most notable are \"ld\", a linker, and \"as\", an assembler.\n" @@ -343,11 +1346,25 @@ msgstr "" "des archives. La bibliothèque \"bfd\", permettant de travailler avec des exécutables et des\n" "des formats objet, est aussi incluse." -#: gnu/packages/base.scm:491 +#: gnu/packages/base.scm:547 +msgid "The linker wrapper" +msgstr "L'enveloppe de l'éditeur de lien" + +#: gnu/packages/base.scm:549 +msgid "" +"The linker wrapper (or 'ld-wrapper') wraps the linker to add any\n" +"missing '-rpath' flags, and to detect any misuse of libraries outside of the\n" +"store." +msgstr "" +"L'enveloppe de l'éditeur de lien (ou « ld-wrapper ») enveloppe l'éditeur de\n" +"liens pour ajouter les drapeaux « -rpath » manquants et pour détecter la\n" +"mauvaise utilisation de bibliothèques en dehors du store." + +#: gnu/packages/base.scm:744 msgid "The GNU C Library" msgstr "La bibliothèque GNU C" -#: gnu/packages/base.scm:493 +#: gnu/packages/base.scm:746 msgid "" "Any Unix-like operating system needs a C library: the library which\n" "defines the \"system calls\" and other basic facilities such as open, malloc,\n" @@ -361,11 +1378,47 @@ msgstr "" "telles que open, malloc, printf, exit, ... La bibliothèque GNU C est utilisée comme\n" "bibliothèque C dans les systèmes GNU et la plupart des systèmes basés sur le noyau Linux." -#: gnu/packages/base.scm:562 +#: gnu/packages/base.scm:826 +msgid "The GNU C Library (GNU Hurd variant)" +msgstr "La bibliothèque GNU C (variante GNU Hurd)" + +#: gnu/packages/base.scm:910 +msgid "All the locales supported by the GNU C Library" +msgstr "" + +#: gnu/packages/base.scm:912 +msgid "" +"This package provides all the locales supported by the GNU C Library,\n" +"more than 400 in total. To use them set the 'LOCPATH' environment variable to\n" +"the 'share/locale' sub-directory of this package." +msgstr "" + +#: gnu/packages/base.scm:980 +msgid "Small sample of UTF-8 locales" +msgstr "" + +#: gnu/packages/base.scm:982 +msgid "" +"This package provides a small sample of UTF-8 locales mostly useful in\n" +"test environments." +msgstr "" + +#: gnu/packages/base.scm:1000 +msgid "Find full path of shell commands" +msgstr "" + +#: gnu/packages/base.scm:1002 +msgid "" +"The which program finds the location of executables in PATH, with a\n" +"variety of options. It is an alternative to the shell \"type\" built-in\n" +"command." +msgstr "" + +#: gnu/packages/base.scm:1107 msgid "Database of current and historical time zones" msgstr "Base de données des fuseaux horaires courant et historiques" -#: gnu/packages/base.scm:563 +#: gnu/packages/base.scm:1108 msgid "" "The Time Zone Database (often called tz or zoneinfo)\n" "contains code and data that represent the history of local time for many\n" @@ -379,11 +1432,612 @@ msgstr "" "pour refléter les changements effectués par les entités politiques aux limites de ces zones,\n" "les décalages UTC et les changements d'heures." -#: gnu/packages/databases.scm:83 +#: gnu/packages/base.scm:1159 +msgid "Character set conversion library" +msgstr "Bibliothèque de conversion de jeux de caractères" + +#: gnu/packages/base.scm:1161 +msgid "" +"libiconv provides an implementation of the iconv function for systems\n" +"that lack it. iconv is used to convert between character encodings in a\n" +"program. It supports a wide variety of different encodings." +msgstr "" + +#: gnu/packages/bittorrent.scm:107 +msgid "Fast and easy BitTorrent client" +msgstr "" + +#: gnu/packages/bittorrent.scm:109 +msgid "" +"Transmission is a BitTorrent client that comes with graphical,\n" +"textual, and Web user interfaces. Transmission also has a daemon for\n" +"unattended operations. It supports local peer discovery, full encryption,\n" +"DHT, µTP, PEX and Magnet Links." +msgstr "" + +#: gnu/packages/bittorrent.scm:141 +msgid "BitTorrent library of rtorrent" +msgstr "" + +#: gnu/packages/bittorrent.scm:143 +msgid "" +"LibTorrent is a BitTorrent library used by and developed in parallel\n" +"with the BitTorrent client rtorrent. It is written in C++ with emphasis on\n" +"speed and efficiency." +msgstr "" + +#: gnu/packages/bittorrent.scm:170 +msgid "BitTorrent client with ncurses interface" +msgstr "" + +#: gnu/packages/bittorrent.scm:172 +msgid "" +"rTorrent is a BitTorrent client with an ncurses interface. It supports\n" +"full encryption, DHT, PEX, and Magnet Links. It can also be controlled via\n" +"XML-RPC over SCGI." +msgstr "" + +#: gnu/packages/bittorrent.scm:215 gnu/packages/bittorrent.scm:256 +msgid "Console client for the Transmission BitTorrent daemon" +msgstr "" + +#: gnu/packages/bittorrent.scm:216 +msgid "" +"Tremc is a console client, with a curses interface, for the\n" +"Transmission BitTorrent daemon." +msgstr "" + +#: gnu/packages/bittorrent.scm:257 +msgid "" +"Transmission-remote-cli is a console client, with a curses\n" +"interface, for the Transmission BitTorrent daemon. This package is no longer\n" +"maintained upstream." +msgstr "" + +#: gnu/packages/bittorrent.scm:305 +msgid "Utility for parallel downloading files" +msgstr "" + +#: gnu/packages/bittorrent.scm:307 +msgid "" +"Aria2 is a lightweight, multi-protocol & multi-source command-line\n" +"download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.\n" +"Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces." +msgstr "" + +#: gnu/packages/bittorrent.scm:340 +msgid "Universal download manager with GTK+ interface" +msgstr "" + +#: gnu/packages/bittorrent.scm:342 +msgid "" +"uGet is portable download manager with GTK+ interface supporting\n" +"HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection\n" +"downloads, download scheduling, download rate limiting." +msgstr "" + +#: gnu/packages/bittorrent.scm:370 +msgid "Utility to create BitTorrent metainfo files" +msgstr "" + +#: gnu/packages/bittorrent.scm:371 +msgid "" +"mktorrent is a simple command-line utility to create\n" +"BitTorrent @dfn{metainfo} files, often known simply as @dfn{torrents}, from\n" +"both single files and whole directories. It can add multiple trackers and web\n" +"seed URLs, and set the @code{private} flag to disallow advertisement through\n" +"the distributed hash table (DHT) and Peer Exchange. Hashing is multi-threaded\n" +"and will take advantage of multiple processor cores where possible." +msgstr "" + +#: gnu/packages/bittorrent.scm:412 +msgid "Feature complete BitTorrent implementation" +msgstr "" + +#: gnu/packages/bittorrent.scm:414 +msgid "" +"libtorrent-rasterbar is a feature complete C++ BitTorrent implementation\n" +"focusing on efficiency and scalability. It runs on embedded devices as well as\n" +"desktops." +msgstr "" + +#: gnu/packages/certs.scm:66 +msgid "Python script to extract .pem data from certificate collection" +msgstr "" + +#: gnu/packages/certs.scm:68 +msgid "" +"certdata2pem.py is a Python script to transform X.509 certificate\n" +"\"source code\" as contained, for example, in the Mozilla sources, into\n" +".pem formatted certificates." +msgstr "" + +#: gnu/packages/certs.scm:137 +msgid "CA certificates from Mozilla" +msgstr "" + +#: gnu/packages/certs.scm:139 +msgid "" +"This package provides certificates for Certification Authorities (CA)\n" +"taken from the NSS package and thus ultimately from the Mozilla project." +msgstr "" + +#: gnu/packages/certs.scm:195 +msgid "Let's Encrypt root and intermediate certificates" +msgstr "" + +#: gnu/packages/certs.scm:196 +msgid "" +"This package provides a certificate store containing only the\n" +"Let's Encrypt root and intermediate certificates. It is intended to be used\n" +"within Guix." +msgstr "" + +#: gnu/packages/compression.scm:88 +msgid "Compression library" +msgstr "Bibliothèque de compression" + +#: gnu/packages/compression.scm:90 +msgid "" +"zlib is designed to be a free, general-purpose, legally unencumbered --\n" +"that is, not covered by any patents -- lossless data-compression library for\n" +"use on virtually any computer hardware and operating system. The zlib data\n" +"format is itself portable across platforms. Unlike the LZW compression method\n" +"used in Unix compress(1) and in the GIF image format, the compression method\n" +"currently used in zlib essentially never expands the data. (LZW can double or\n" +"triple the file size in extreme cases.) zlib's memory footprint is also\n" +"independent of the input data and can be reduced, if necessary, at some cost\n" +"in compression." +msgstr "" + +#: gnu/packages/compression.scm:121 +msgid "Zip Compression library" +msgstr "" + +#: gnu/packages/compression.scm:123 +msgid "" +"Minizip is a minimalistic library that supports compressing,\n" +"extracting and viewing ZIP archives. This version is extracted from\n" +"the @code{zlib} source." +msgstr "" + +#: gnu/packages/compression.scm:142 +msgid "Replacement for Sun's 'jar' utility" +msgstr "" + +#: gnu/packages/compression.scm:144 +msgid "" +"FastJar is an attempt to create a much faster replacement for Sun's 'jar'\n" +"utility. Instead of being written in Java, FastJar is written in C." +msgstr "" + +#: gnu/packages/compression.scm:178 +msgid "C library for manipulating POSIX tar files" +msgstr "Bibliothèque C pour manipuler des fichiers tar POSIX" + +#: gnu/packages/compression.scm:180 +msgid "" +"libtar is a C library for manipulating POSIX tar files. It handles\n" +"adding and extracting files to/from a tar archive." +msgstr "" + +#: gnu/packages/compression.scm:197 +msgid "General file (de)compression (using lzw)" +msgstr "" + +#: gnu/packages/compression.scm:202 +msgid "" +"GNU Gzip provides data compression and decompression utilities; the\n" +"typical extension is \".gz\". Unlike the \"zip\" format, it compresses a single\n" +"file; as a result, it is often used in conjunction with \"tar\", resulting in\n" +"\".tar.gz\" or \".tgz\", etc." +msgstr "" + +#: gnu/packages/compression.scm:278 +msgid "High-quality data compression program" +msgstr "" + +#: gnu/packages/compression.scm:280 +msgid "" +"bzip2 is a freely available, patent free (see below), high-quality data\n" +"compressor. It typically compresses files to within 10% to 15% of the best\n" +"available techniques (the PPM family of statistical compressors), whilst\n" +"being around twice as fast at compression and six times faster at\n" +"decompression." +msgstr "" + +#: gnu/packages/compression.scm:301 +msgid "Parallel bzip2 compression utility" +msgstr "" + +#: gnu/packages/compression.scm:303 +msgid "" +"lbzip2 is a multi-threaded compression utility with support for the\n" +"bzip2 compressed file format. lbzip2 can process standard bz2 files in\n" +"parallel. It uses POSIX threading model (pthreads), which allows it to take\n" +"full advantage of symmetric multiprocessing (SMP) systems. It has been proven\n" +"to scale linearly, even to over one hundred processor cores. lbzip2 is fully\n" +"compatible with bzip2 – both at file format and command line level." +msgstr "" + +#: gnu/packages/compression.scm:333 +msgid "Parallel bzip2 implementation" +msgstr "" + +#: gnu/packages/compression.scm:335 +msgid "" +"Pbzip2 is a parallel implementation of the bzip2 block-sorting file\n" +"compressor that uses pthreads and achieves near-linear speedup on SMP machines.\n" +"The output of this version is fully compatible with bzip2 v1.0.2 (i.e. anything\n" +"compressed with pbzip2 can be decompressed with bzip2)." +msgstr "" + +#: gnu/packages/compression.scm:356 +msgid "General-purpose data compression" +msgstr "" + +#: gnu/packages/compression.scm:358 +msgid "" +"XZ Utils is free general-purpose data compression software with high\n" +"compression ratio. XZ Utils were written for POSIX-like systems, but also\n" +"work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.\n" +"\n" +"The core of the XZ Utils compression code is based on LZMA SDK, but it has\n" +"been modified quite a lot to be suitable for XZ Utils. The primary\n" +"compression algorithm is currently LZMA2, which is used inside the .xz\n" +"container format. With typical files, XZ Utils create 30 % smaller output\n" +"than gzip and 15 % smaller output than bzip2." +msgstr "" + +#: gnu/packages/compression.scm:386 +msgid "Data compression library suitable for real-time data de-/compression" +msgstr "" + +#: gnu/packages/compression.scm:388 +msgid "" +"LZO is a data compression library which is suitable for data\n" +"de-/compression in real-time. This means it favours speed over\n" +"compression ratio.\n" +"\n" +"LZO is written in ANSI C. Both the source code and the compressed data\n" +"format are designed to be portable across platforms." +msgstr "" + +#: gnu/packages/compression.scm:424 +msgid "Python bindings for the LZO data compression library" +msgstr "Liaisons python pour la bibliothèque de compression LZO" + +#: gnu/packages/compression.scm:426 +msgid "" +"Python-LZO provides Python bindings for LZO, i.e. you can access\n" +"the LZO library from your Python scripts thereby compressing ordinary\n" +"Python strings." +msgstr "" + +#: gnu/packages/compression.scm:449 +msgid "Compress or expand files" +msgstr "Compresse et décompresse des fichiers" + +#: gnu/packages/compression.scm:451 +msgid "" +"Lzop is a file compressor which is very similar to gzip. Lzop uses the\n" +"LZO data compression library for compression services, and its main advantages\n" +"over gzip are much higher compression and decompression speed (at the cost of\n" +"some compression ratio)." +msgstr "" + +#: gnu/packages/compression.scm:470 +msgid "Lossless data compressor based on the LZMA algorithm" +msgstr "" + +#: gnu/packages/compression.scm:472 +msgid "" +"Lzip is a lossless data compressor with a user interface similar to the\n" +"one of gzip or bzip2. Lzip decompresses almost as fast as gzip and compresses\n" +"more than bzip2, which makes it well suited for software distribution and data\n" +"archiving. Lzip is a clean implementation of the LZMA algorithm." +msgstr "" + +#: gnu/packages/compression.scm:504 +msgid "Archives in shell scripts, uuencode/uudecode" +msgstr "" + +#: gnu/packages/compression.scm:506 +msgid "" +"GNU sharutils is a package for creating and manipulating shell\n" +"archives that can be readily emailed. A shell archive is a file that can be\n" +"processed by a Bourne-type shell to unpack the original collection of files.\n" +"This package is mostly for compatibility and historical interest." +msgstr "" + +#: gnu/packages/compression.scm:537 +msgid "Library for SoundFont decompression" +msgstr "" + +#: gnu/packages/compression.scm:539 +msgid "" +"SfArkLib is a C++ library for decompressing SoundFont files compressed\n" +"with the sfArk algorithm." +msgstr "" + +#: gnu/packages/compression.scm:572 +msgid "Basic sfArk decompressor" +msgstr "" + +#: gnu/packages/compression.scm:573 +msgid "" +"SfArk extractor converts SoundFonts in the compressed legacy\n" +"sfArk file format to the uncompressed sf2 format." +msgstr "" + +#: gnu/packages/compression.scm:590 +msgid "Compression tools for some formats used by Microsoft" +msgstr "" + +#: gnu/packages/compression.scm:592 +msgid "" +"The purpose of libmspack is to provide both compression and\n" +"decompression of some loosely related file formats used by Microsoft." +msgstr "" + +#: gnu/packages/compression.scm:611 +msgid "Low-level interface to bzip2 compression library" +msgstr "" + +#: gnu/packages/compression.scm:612 +msgid "" +"This module provides a Perl interface to the bzip2\n" +"compression library." +msgstr "" + +#: gnu/packages/compression.scm:646 +msgid "Low-level interface to zlib compression library" +msgstr "" + +#: gnu/packages/compression.scm:647 +msgid "" +"This module provides a Perl interface to the zlib\n" +"compression library." +msgstr "" + +#: gnu/packages/compression.scm:668 +msgid "IO Interface to compressed files/buffers" +msgstr "" + +#: gnu/packages/compression.scm:669 +msgid "" +"IO-Compress provides a Perl interface to allow reading and\n" +"writing of compressed data created with the zlib and bzip2 libraries." +msgstr "" + +#: gnu/packages/compression.scm:697 +msgid "Compression algorithm focused on speed" +msgstr "" + +#: gnu/packages/compression.scm:698 +msgid "" +"LZ4 is a lossless compression algorithm, providing\n" +"compression speed at 400 MB/s per core (0.16 Bytes/cycle). It also features an\n" +"extremely fast decoder, with speed in multiple GB/s per core (0.71 Bytes/cycle).\n" +"A high compression derivative, called LZ4_HC, is also provided. It trades CPU\n" +"time for compression ratio." +msgstr "" + +#: gnu/packages/compression.scm:722 +msgid "LZ4 Bindings for Python" +msgstr "" + +#: gnu/packages/compression.scm:724 +msgid "" +"This package provides python bindings for the lz4 compression library\n" +"by Yann Collet. The project contains bindings for the LZ4 block format and\n" +"the LZ4 frame format." +msgstr "" + +#: gnu/packages/compression.scm:764 +msgid "Tools to create and extract squashfs file systems" +msgstr "" + +#: gnu/packages/compression.scm:766 +msgid "" +"Squashfs is a highly compressed read-only file system for Linux. It uses\n" +"zlib to compress files, inodes, and directories. All blocks are packed to\n" +"minimize the data overhead, and block sizes of between 4K and 1M are supported.\n" +"It is intended to be used for archival use, for live CDs, and for embedded\n" +"systems where low overhead is needed. This package allows you to create and\n" +"extract such file systems." +msgstr "" + +#: gnu/packages/compression.scm:803 +msgid "Parallel implementation of gzip" +msgstr "" + +#: gnu/packages/compression.scm:805 +msgid "" +"This package provides a parallel implementation of gzip that exploits\n" +"multiple processors and multiple cores when compressing data." +msgstr "" + +#: gnu/packages/compression.scm:829 +msgid "Parallel indexing implementation of LZMA" +msgstr "" + +#: gnu/packages/compression.scm:831 +msgid "" +"The existing XZ Utils provide great compression in the .xz file format,\n" +"but they produce just one big block of compressed data. Pixz instead produces\n" +"a collection of smaller blocks which makes random access to the original data\n" +"possible and can compress in parallel. This is especially useful for large\n" +"tarballs." +msgstr "" + +#: gnu/packages/compression.scm:872 +msgid "Implementation of the Brotli compression algorithm" +msgstr "" + +#: gnu/packages/compression.scm:874 +msgid "" +"Brotli is a general-purpose lossless compression algorithm. It is\n" +"similar in speed to deflate but offers denser compression. This package\n" +"provides encoder and a decoder libraries: libbrotlienc and libbrotlidec,\n" +"respectively, based on the reference implementation from Google." +msgstr "" + +#: gnu/packages/compression.scm:898 +msgid "Tool to unpack Cabinet archives" +msgstr "" + +#: gnu/packages/compression.scm:899 +msgid "Extracts files out of Microsoft Cabinet (.cab) archives" +msgstr "" + +#: gnu/packages/compression.scm:931 +msgid "Delta encoder for binary files" +msgstr "" + +#: gnu/packages/compression.scm:932 +msgid "" +"xdelta encodes only the differences between two binary files\n" +"using the VCDIFF algorithm and patch file format described in RFC 3284. It can\n" +"also be used to apply such patches. xdelta is similar to @command{diff} and\n" +"@command{patch}, but is not limited to plain text and does not generate\n" +"human-readable output." +msgstr "" + +#: gnu/packages/compression.scm:964 +msgid "Large file compressor with a very high compression ratio" +msgstr "" + +#: gnu/packages/compression.scm:965 +msgid "" +"lrzip is a compression utility that uses long-range\n" +"redundancy reduction to improve the subsequent compression ratio of\n" +"larger files. It can then further compress the result with the ZPAQ or\n" +"LZMA algorithms for maximum compression, or LZO for maximum speed. This\n" +"choice between size or speed allows for either better compression than\n" +"even LZMA can provide, or a higher speed than gzip while compressing as\n" +"well as bzip2." +msgstr "" + +#: gnu/packages/compression.scm:989 +msgid "Fast compressor/decompressor" +msgstr "" + +#: gnu/packages/compression.scm:990 +msgid "" +"Snappy is a compression/decompression library. It does not\n" +"aim for maximum compression, or compatibility with any other compression library;\n" +"instead, it aims for very high speeds and reasonable compression. For instance,\n" +"compared to the fastest mode of zlib, Snappy is an order of magnitude faster\n" +"for most inputs, but the resulting compressed files are anywhere from 20% to\n" +"100% bigger." +msgstr "" + +#: gnu/packages/compression.scm:1058 +msgid "Command-line file archiver with high compression ratio" +msgstr "" + +#: gnu/packages/compression.scm:1059 +msgid "" +"p7zip is a command-line port of 7-Zip, a file archiver that\n" +"handles the 7z format which features very high compression ratios." +msgstr "" + +#: gnu/packages/compression.scm:1098 +msgid "Compressed C++ iostream" +msgstr "" + +#: gnu/packages/compression.scm:1099 +msgid "" +"gzstream is a small library for providing zlib\n" +"functionality in a C++ iostream." +msgstr "" + +#: gnu/packages/compression.scm:1146 +msgid "Incremental journaling archiver" +msgstr "" + +#: gnu/packages/compression.scm:1147 +msgid "" +"ZPAQ is a command-line archiver for realistic situations with\n" +"many duplicate and already compressed files. It backs up only those files\n" +"modified since the last update. All previous versions remain untouched and can\n" +"be independently recovered. Identical files are only stored once (known as\n" +"@dfn{de-duplication}). Archives can also be encrypted.\n" +"\n" +"ZPAQ is intended to back up user data, not entire operating systems. It ignores\n" +"owner and group IDs, ACLs, extended attributes, or special file types like\n" +"devices, sockets, or named pipes. It does not follow or restore symbolic links\n" +"or junctions, and always follows hard links." +msgstr "" + +#: gnu/packages/compression.scm:1175 +msgid "RAR archive extraction tool" +msgstr "" + +#: gnu/packages/compression.scm:1176 +msgid "" +"Unrar is a simple command-line program to list and extract\n" +"RAR archives." +msgstr "" + +#: gnu/packages/compression.scm:1212 +msgid "Zstandard real-time compression algorithm" +msgstr "" + +#: gnu/packages/compression.scm:1213 +msgid "" +"Zstandard (@command{zstd}) is a lossless compression algorithm\n" +"that combines very fast operation with a compression ratio comparable to that of\n" +"zlib. In most scenarios, both compression and decompression can be performed in\n" +"‘real time’. The compressor can be configured to provide the most suitable\n" +"trade-off between compression ratio and speed, without affecting decompression\n" +"speed." +msgstr "" + +#: gnu/packages/compression.scm:1252 +msgid "Threaded implementation of the Zstandard compression algorithm" +msgstr "" + +#: gnu/packages/compression.scm:1253 +msgid "" +"Parallel Zstandard (PZstandard or @command{pzstd}) is a\n" +"multi-threaded implementation of the @uref{http://zstd.net/, Zstandard\n" +"compression algorithm}. It is fully compatible with the original Zstandard file\n" +"format and command-line interface, and can be used as a drop-in replacement.\n" +"\n" +"Compression is distributed over multiple processor cores to improve performance,\n" +"as is the decompression of data compressed in this manner. Data compressed by\n" +"other implementations will only be decompressed by two threads: one performing\n" +"the actual decompression, the other input and output." +msgstr "" + +#: gnu/packages/databases.scm:120 +msgid "Clustered RDF storage and query engine" +msgstr "" + +#: gnu/packages/databases.scm:121 +msgid "" +"4store is a RDF/SPARQL store written in C, supporting\n" +"either single machines or networked clusters." +msgstr "" + +#: gnu/packages/databases.scm:140 +msgid "Hash library of database functions compatible with traditional dbm" +msgstr "" + +#: gnu/packages/databases.scm:142 +msgid "" +"GDBM is a library for manipulating hashed databases. It is used to\n" +"store key/value pairs in a file in a manner similar to the Unix dbm library\n" +"and provides interfaces to the traditional file format." +msgstr "" + +#: gnu/packages/databases.scm:193 msgid "Berkeley database" msgstr "Base de données Berkeley" -#: gnu/packages/databases.scm:85 +#: gnu/packages/databases.scm:195 msgid "" "Berkeley DB is an embeddable database allowing developers the choice of\n" "SQL, Key/Value, XML/XQuery or Java Object storage for their data model." @@ -392,11 +2046,21 @@ msgstr "" "le choix de SQL, clé/valeur, XML/XQuery ou Java Object Storage pour leur\n" "modèle de données." -#: gnu/packages/databases.scm:143 +#: gnu/packages/databases.scm:286 +msgid "Fast key-value storage library" +msgstr "" + +#: gnu/packages/databases.scm:288 +msgid "" +"LevelDB is a fast key-value storage library that provides an ordered\n" +"mapping from string keys to string values." +msgstr "" + +#: gnu/packages/databases.scm:365 msgid "Fast, easy to use, and popular database" msgstr "Base de données rapide, facile d'utilisation et populaire" -#: gnu/packages/databases.scm:145 +#: gnu/packages/databases.scm:367 msgid "" "MySQL is a fast, reliable, and easy to use relational database\n" "management system that supports the standardized Structured Query\n" @@ -405,11 +2069,21 @@ msgstr "" "MySQL est un système de gestion de base de données relationnelle rapide,\n" " fiable et facile d'emploi, supportant le SQL standardisé." -#: gnu/packages/databases.scm:166 +#: gnu/packages/databases.scm:443 +msgid "SQL database server" +msgstr "" + +#: gnu/packages/databases.scm:445 +msgid "" +"MariaDB is a multi-user and multi-threaded SQL database server, designed\n" +"as a drop-in replacement of MySQL." +msgstr "" + +#: gnu/packages/databases.scm:475 msgid "Powerful object-relational database system" msgstr "Système de base de données relationnelle puissant" -#: gnu/packages/databases.scm:168 +#: gnu/packages/databases.scm:477 msgid "" "PostgreSQL is a powerful object-relational database system. It is fully\n" "ACID compliant, has full support for foreign keys, joins, views, triggers, and\n" @@ -425,11 +2099,25 @@ msgstr "" "INTERVAL et TIMESTAMP. Il supporte aussi le stockage binaire de grands objets, dont\n" "les images, le son et la vidéo." -#: gnu/packages/databases.scm:203 +#: gnu/packages/databases.scm:503 +msgid "Key-value database" +msgstr "Base de données clef-valeur" + +#: gnu/packages/databases.scm:504 +msgid "" +"QDBM is a library of routines for managing a\n" +"database. The database is a simple data file containing key-value\n" +"pairs. Every key and value is serial bytes with variable length.\n" +"Binary data as well as character strings can be used as a key or a\n" +"value. There is no concept of data tables or data types. Records are\n" +"organized in a hash table or B+ tree." +msgstr "" + +#: gnu/packages/databases.scm:559 msgid "Manipulate plain text files as databases" msgstr "Manipule les fichiers texte comme des bases de données" -#: gnu/packages/databases.scm:205 +#: gnu/packages/databases.scm:561 msgid "" "GNU Recutils is a set of tools and libraries for creating and\n" "manipulating text-based, human-editable databases. Despite being text-based,\n" @@ -444,11 +2132,41 @@ msgstr "" "les timestamps et plus encore. De nombreux types de champs sont supportés, tout comme\n" "le chiffrement." -#: gnu/packages/databases.scm:243 +#: gnu/packages/databases.scm:637 +msgid "Persistent key-value store for fast storage" +msgstr "" + +#: gnu/packages/databases.scm:639 +msgid "" +"RocksDB is a library that forms the core building block for a fast\n" +"key-value server, especially suited for storing data on flash drives. It\n" +"has a @dfn{Log-Structured-Merge-Database} (LSM) design with flexible tradeoffs\n" +"between @dfn{Write-Amplification-Factor} (WAF), @dfn{Read-Amplification-Factor}\n" +"(RAF) and @dfn{Space-Amplification-Factor} (SAF). It has multi-threaded\n" +"compactions, making it specially suitable for storing multiple terabytes of\n" +"data in a single database. RocksDB is partially based on @code{LevelDB}." +msgstr "" + +#: gnu/packages/databases.scm:698 +msgid "Command-line tool for accessing SPARQL endpoints over HTTP" +msgstr "" + +#: gnu/packages/databases.scm:699 +msgid "" +"Sparql-query is a command-line tool for accessing SPARQL\n" +"endpoints over HTTP. It has been intentionally designed to 'feel' similar to\n" +"tools for interrogating SQL databases. For example, you can enter a query over\n" +"several lines, using a semi-colon at the end of a line to indicate the end of\n" +"your query. It also supports readline so that you can more easily recall and\n" +"edit previous queries, even across sessions. It can be used non-interactively,\n" +"for example from a shell script." +msgstr "" + +#: gnu/packages/databases.scm:741 msgid "The SQLite database management system" msgstr "Le système de gestion de bases de données SQLite" -#: gnu/packages/databases.scm:245 +#: gnu/packages/databases.scm:743 msgid "" "SQLite is a software library that implements a self-contained, serverless,\n" "zero-configuration, transactional SQL database engine. SQLite is the most\n" @@ -456,11 +2174,11 @@ msgid "" "is in the public domain." msgstr "SQLite est une bibliothèque logicielle implantant" -#: gnu/packages/databases.scm:280 +#: gnu/packages/databases.scm:778 msgid "Trivial database" msgstr "Base de données triviale" -#: gnu/packages/databases.scm:282 +#: gnu/packages/databases.scm:780 msgid "" "TDB is a Trivial Database. In concept, it is very much like GDBM,\n" "and BSD's DB except that it allows multiple simultaneous writers and uses\n" @@ -472,33 +2190,144 @@ msgstr "" "accès simultanés en écriture et utilise un verrouillage interne pour éviter les\n" "empiétements. Notez que TDB est aussi très léger." -#: gnu/packages/databases.scm:301 +#: gnu/packages/databases.scm:799 msgid "Database independent interface for Perl" msgstr "Interface de base de données pour Perl" -#: gnu/packages/databases.scm:302 +#: gnu/packages/databases.scm:800 msgid "This package provides an database interface for Perl." msgstr "Ce paquet fournit une interface de base de données pour Perl." -#: gnu/packages/databases.scm:321 +#: gnu/packages/databases.scm:847 +msgid "Extensible and flexible object <-> relational mapper" +msgstr "" + +#: gnu/packages/databases.scm:848 +msgid "" +"An SQL to OO mapper with an object API inspired by\n" +"Class::DBI (with a compatibility layer as a springboard for porting) and a\n" +"resultset API that allows abstract encapsulation of database operations. It\n" +"aims to make representing queries in your code as perl-ish as possible while\n" +"still providing access to as many of the capabilities of the database as\n" +"possible, including retrieving related records from multiple tables in a\n" +"single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",\n" +"\"ORDER BY\" and \"HAVING\" support." +msgstr "" + +#: gnu/packages/databases.scm:878 +msgid "Cursor with built-in caching support" +msgstr "" + +#: gnu/packages/databases.scm:879 +msgid "" +"DBIx::Class::Cursor::Cached provides a cursor class with\n" +"built-in caching support." +msgstr "" + +#: gnu/packages/databases.scm:899 +msgid "Introspect many-to-many relationships" +msgstr "" + +#: gnu/packages/databases.scm:900 +msgid "" +"Because the many-to-many relationships are not real\n" +"relationships, they can not be introspected with DBIx::Class. Many-to-many\n" +"relationships are actually just a collection of convenience methods installed\n" +"to bridge two relationships. This DBIx::Class component can be used to store\n" +"all relevant information about these non-relationships so they can later be\n" +"introspected and examined." +msgstr "" + +#: gnu/packages/databases.scm:957 +msgid "Create a DBIx::Class::Schema based on a database" +msgstr "" + +#: gnu/packages/databases.scm:958 +msgid "" +"DBIx::Class::Schema::Loader automates the definition of a\n" +"DBIx::Class::Schema by scanning database table definitions and setting up the\n" +"columns, primary keys, unique constraints and relationships." +msgstr "" + +#: gnu/packages/databases.scm:982 +msgid "DBI PostgreSQL interface" +msgstr "Interface DBI PostgreSQL" + +#: gnu/packages/databases.scm:983 +msgid "" +"This package provides a PostgreSQL driver for the Perl5\n" +"@dfn{Database Interface} (DBI)." +msgstr "" +"Ce paquet fournit un pilote PostgreSQL pour la @dfn{Database Interface}\n" +"(DBI) de Perl5." + +#: gnu/packages/databases.scm:1006 +msgid "DBI MySQL interface" +msgstr "Interface DBI MySQL" + +#: gnu/packages/databases.scm:1007 +msgid "" +"This package provides a MySQL driver for the Perl5\n" +"@dfn{Database Interface} (DBI)." +msgstr "" +"Ce paquet fournit un pilote MySQL pour la @dfn{Database Interface}\n" +"(DBI) de Perl5." + +#: gnu/packages/databases.scm:1026 msgid "SQlite interface for Perl" msgstr "Interface SQLite pour Perl" -#: gnu/packages/databases.scm:322 +#: gnu/packages/databases.scm:1027 msgid "" "DBD::SQLite is a Perl DBI driver for SQLite, that includes\n" "the entire thing in the distribution. So in order to get a fast transaction\n" "capable RDBMS working for your Perl project you simply have to install this\n" "module, and nothing else." msgstr "" -"DBD::SQLite est driver DBI pour SQLite écrit en Perl. Il suffit d'installer ce\n" -"module dans votre projet Perl pour obtenir une" +"DBD::SQLite est un pilote DBI pour SQLite en Perl, qui contient la totalité\n" +"de la distribution. Donc il suffit d'installer ce module dans votre projet\n" +"pour obtenir un RDBMS capable de transactions rapides et rien d'autre." + +#: gnu/packages/databases.scm:1057 +msgid "Generate SQL from Perl data structures" +msgstr "" + +#: gnu/packages/databases.scm:1058 +msgid "" +"This module was inspired by the excellent DBIx::Abstract.\n" +"While based on the concepts used by DBIx::Abstract, the concepts used have\n" +"been modified to make the SQL easier to generate from Perl data structures.\n" +"The underlying idea is for this module to do what you mean, based on the data\n" +"structures you provide it, so that you don't have to modify your code every\n" +"time your data changes." +msgstr "" + +#: gnu/packages/databases.scm:1087 +msgid "Split SQL code into atomic statements" +msgstr "" + +#: gnu/packages/databases.scm:1088 +msgid "" +"This module tries to split any SQL code, even including\n" +"non-standard extensions, into the atomic statements it is composed of." +msgstr "" -#: gnu/packages/databases.scm:342 +#: gnu/packages/databases.scm:1106 +msgid "SQL tokenizer" +msgstr "" + +#: gnu/packages/databases.scm:1107 +msgid "" +"SQL::Tokenizer is a tokenizer for SQL queries. It does not\n" +"claim to be a parser or query verifier. It just creates sane tokens from a\n" +"valid SQL query." +msgstr "" + +#: gnu/packages/databases.scm:1125 msgid "Data source abstraction library" msgstr "Bibliothèque d'abstraction de source de données" -#: gnu/packages/databases.scm:343 +#: gnu/packages/databases.scm:1126 msgid "" "Unixodbc is a library providing an API with which to access\n" "data sources. Data sources include SQL Servers and any software with an ODBC\n" @@ -508,11 +2337,1328 @@ msgstr "" "d'accéder à des sources de données. Ces sources incluent des serveurs SQL\n" "où tout logiciel avec un driver ODBC." -#: gnu/packages/gcc.scm:254 +#: gnu/packages/databases.scm:1150 +msgid "In-memory key/value and document store" +msgstr "" + +#: gnu/packages/databases.scm:1152 +msgid "" +"UnQLite is an in-process software library which implements a\n" +"self-contained, serverless, zero-configuration, transactional NoSQL\n" +"database engine. UnQLite is a document store database similar to\n" +"MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store\n" +"similar to BerkeleyDB, LevelDB, etc." +msgstr "" + +#: gnu/packages/databases.scm:1180 +msgid "Key-value cache and store" +msgstr "" + +#: gnu/packages/databases.scm:1181 +msgid "" +"Redis is an advanced key-value cache and store. Redis\n" +"supports many data structures including strings, hashes, lists, sets, sorted\n" +"sets, bitmaps and hyperloglogs." +msgstr "" + +#: gnu/packages/databases.scm:1207 +msgid "Kyoto Cabinet is a modern implementation of the DBM database" +msgstr "" + +#: gnu/packages/databases.scm:1209 +msgid "" +"Kyoto Cabinet is a standalone file-based database that supports Hash\n" +"and B+ Tree data storage models. It is a fast key-value lightweight\n" +"database and supports many programming languages. It is a NoSQL database." +msgstr "" + +#: gnu/packages/databases.scm:1235 +msgid "Tokyo Cabinet is a modern implementation of the DBM database" +msgstr "" + +#: gnu/packages/databases.scm:1237 +msgid "" +"Tokyo Cabinet is a library of routines for managing a database.\n" +"The database is a simple data file containing records, each is a pair of a\n" +"key and a value. Every key and value is serial bytes with variable length.\n" +"Both binary data and character string can be used as a key and a value.\n" +"There is neither concept of data tables nor data types. Records are\n" +"organized in hash table, B+ tree, or fixed-length array." +msgstr "" + +#: gnu/packages/databases.scm:1272 +msgid "NoSQL data engine" +msgstr "" + +#: gnu/packages/databases.scm:1274 +msgid "" +"WiredTiger is an extensible platform for data management. It supports\n" +"row-oriented storage (where all columns of a row are stored together),\n" +"column-oriented storage (where columns are stored in groups, allowing for\n" +"more efficient access and storage of column subsets) and log-structured merge\n" +"trees (LSM), for sustained throughput under random insert workloads." +msgstr "" + +#: gnu/packages/databases.scm:1310 +msgid "Perl5 access to Berkeley DB version 1.x" +msgstr "" + +#: gnu/packages/databases.scm:1312 +msgid "The DB::File module provides Perl bindings to the Berkeley DB version 1.x." +msgstr "" + +#: gnu/packages/databases.scm:1339 +msgid "Lightning memory-mapped database library" +msgstr "" + +#: gnu/packages/databases.scm:1340 +msgid "Lightning memory-mapped database library." +msgstr "" + +#: gnu/packages/databases.scm:1369 +msgid "C++ connector for PostgreSQL" +msgstr "" + +#: gnu/packages/databases.scm:1371 +msgid "" +"Libpqxx is a C++ library to enable user programs to communicate with the\n" +"PostgreSQL database back-end. The database back-end can be local or it may be\n" +"on another machine, accessed via TCP/IP." +msgstr "" + +#: gnu/packages/databases.scm:1394 +msgid "Small object-relational mapping utility" +msgstr "" + +#: gnu/packages/databases.scm:1396 +msgid "" +"Peewee is a simple and small ORM (object-relation mapping) tool. Peewee\n" +"handles converting between pythonic values and those used by databases, so you\n" +"can use Python types in your code without having to worry. It has built-in\n" +"support for sqlite, mysql and postgresql. If you already have a database, you\n" +"can autogenerate peewee models using @code{pwiz}, a model generator." +msgstr "" + +#: gnu/packages/databases.scm:1443 +msgid "Library providing transparent encryption of SQLite database files" +msgstr "" + +#: gnu/packages/databases.scm:1444 +msgid "" +"SQLCipher is an implementation of SQLite, extended to\n" +"provide transparent 256-bit AES encryption of database files. Pages are\n" +"encrypted before being written to disk and are decrypted when read back. It’s\n" +"well suited for protecting embedded application databases and for mobile\n" +"development." +msgstr "" + +#: gnu/packages/databases.scm:1476 +msgid "Python ODBC Library" +msgstr "La bibliothèque Python ODBC" + +#: gnu/packages/databases.scm:1477 +msgid "" +"@code{python-pyodbc-c} provides a Python DB-API driver\n" +"for ODBC." +msgstr "" + +#: gnu/packages/databases.scm:1514 +msgid "Read Microsoft Access databases" +msgstr "" + +#: gnu/packages/databases.scm:1515 +msgid "" +"MDB Tools is a set of tools and applications to read the\n" +"proprietary MDB file format used in Microsoft's Access database package. This\n" +"includes programs to export schema and data from Microsoft's Access database\n" +"file format to other databases such as MySQL, Oracle, Sybase, PostgreSQL,\n" +"etc., and an SQL engine for performing simple SQL queries." +msgstr "" + +#: gnu/packages/debug.scm:78 +msgid "Heuristical file minimizer" +msgstr "" + +#: gnu/packages/debug.scm:80 +msgid "" +"Delta assists you in minimizing \"interesting\" files subject to a test\n" +"of their interestingness. A common such situation is when attempting to\n" +"isolate a small failure-inducing substring of a large input that causes your\n" +"program to exhibit a bug." +msgstr "" + +#: gnu/packages/debug.scm:134 +msgid "Reducer for interesting code" +msgstr "" + +#: gnu/packages/debug.scm:136 +msgid "" +"C-Reduce is a tool that takes a large C or C++ program that has a\n" +"property of interest (such as triggering a compiler bug) and automatically\n" +"produces a much smaller C/C++ program that has the same property. It is\n" +"intended for use by people who discover and report bugs in compilers and other\n" +"tools that process C/C++ code." +msgstr "" + +#: gnu/packages/debug.scm:251 +msgid "Security-oriented fuzzer" +msgstr "" + +#: gnu/packages/debug.scm:253 +msgid "" +"American fuzzy lop is a security-oriented fuzzer that employs a novel\n" +"type of compile-time instrumentation and genetic algorithms to automatically\n" +"discover clean, interesting test cases that trigger new internal states in the\n" +"targeted binary. This substantially improves the functional coverage for the\n" +"fuzzed code. The compact synthesized corpora produced by the tool are also\n" +"useful for seeding other, more labor- or resource-intensive testing regimes\n" +"down the road." +msgstr "" + +#: gnu/packages/debug.scm:305 +msgid "Expose race conditions in Makefiles" +msgstr "" + +#: gnu/packages/debug.scm:307 +msgid "" +"Stress Make is a customized GNU Make that explicitely manages the order\n" +"in which concurrent jobs are run to provoke erroneous behavior into becoming\n" +"manifest. It can run jobs in the order in which they're launched, in backwards\n" +"order, or in random order. The thought is that if code builds correctly with\n" +"Stress Make, then it is likely that the @code{Makefile} contains no race\n" +"conditions." +msgstr "" + +#: gnu/packages/debug.scm:334 +msgid "Transparent application input fuzzer" +msgstr "" + +#: gnu/packages/debug.scm:335 +msgid "" +"Zzuf is a transparent application input fuzzer. It works by\n" +"intercepting file operations and changing random bits in the program's\n" +"input. Zzuf's behaviour is deterministic, making it easy to reproduce bugs." +msgstr "" + +#: gnu/packages/dejagnu.scm:77 +msgid "GNU software testing framework" +msgstr "" + +#: gnu/packages/dejagnu.scm:79 +msgid "" +"DejaGnu is a framework for testing software. In effect, it serves as\n" +"a front-end for all tests written for a program. Thus, each program can have\n" +"multiple test suites, which are then all managed by a single harness." +msgstr "" + +#: gnu/packages/games.scm:196 +msgid "Free content game based on the Doom engine" +msgstr "Jeu au contenu libre basé sur le moteur Doom" + +#: gnu/packages/games.scm:198 +msgid "" +"The Freedoom project aims to create a complete free content first person\n" +"shooter game. Freedoom by itself is just the raw material for a game: it must\n" +"be paired with a compatible game engine (such as @code{prboom-plus}) to be\n" +"played. Freedoom complements the Doom engine with free levels, artwork, sound\n" +"effects and music to make a completely free game." +msgstr "" +"Le projet Freedoom cherche à créer un jeu de tir en vue subjective au contenu\n" +"entièrement libre. Freedoom en soit n'est que le matériel de base pour un jeu, il\n" +"doit être utilisé avec un moteur de jeu compatible (comme @code{prboom-plus})\n" +"pour être jouable. Freedoom complète le moteur Doom sur trois niveaux : les\n" +"graphismes, les effets sonores et la musique pour faire un jeu entièrement libre." + +#: gnu/packages/games.scm:229 +msgid "Backgammon game" +msgstr "Jeu de backgammon" + +#: gnu/packages/games.scm:230 +msgid "" +"The GNU backgammon application can be used for playing, analyzing and\n" +"teaching the game. It has an advanced evaluation engine based on artificial\n" +"neural networks suitable for both beginners and advanced players. In\n" +"addition to a command-line interface, it also features an attractive, 3D\n" +"representation of the playing board." +msgstr "" +"L'application GNU backgammon peut être utilisée pour jouer, analyser et\n" +"apprendre le jeu. Il possède un moteur d'analyse avancé basé sur des réseaux\n" +"neuronaux artificiels adaptés aux débutants et au joueurs avancés. En plus\n" +"d'une interface en ligne de commande, il possède aussi une représentation 3D\n" +"attractive du plateau de jeu." + +#: gnu/packages/games.scm:259 +msgid "3d Rubik's cube game" +msgstr "Jeu de Rubik's cube en 3d" + +#: gnu/packages/games.scm:261 +msgid "" +"GNUbik is a puzzle game in which you must manipulate a cube to make\n" +"each of its faces have a uniform color. The game is customizable, allowing\n" +"you to set the size of the cube (the default is 3x3) or to change the colors.\n" +"You may even apply photos to the faces instead of colors. The game is\n" +"scriptable with Guile." +msgstr "" +"GNUbik est un jeu de réflexion dans lequel vous devez manipuler un cube pour\n" +"que chaque face ait une unique couleur. Le jeu est personnalisable, ce qu vous\n" +"permet de changer la taille du cube (par défaut 3×3) ou les couleurs. Vous\n" +"pouvez même utiliser des photos pour les faces à la place des couleurs. Le jeu\n" +"peut être scripté avec Guile." + +#: gnu/packages/games.scm:283 +msgid "The game of Shogi (Japanese chess)" +msgstr "Le jeu de Shōgi (les échecs japonais)" + +#: gnu/packages/games.scm:284 +msgid "" +"GNU Shogi is a program that plays the game Shogi (Japanese\n" +"Chess). It is similar to standard chess but this variant is far more complicated." +msgstr "" +"GNU Shogi est un programme qui joue au Shōgi (les échecs japonais).\n" +"Il est similaire aux échecs standards mais cette variante est bien plus complexe." + +#: gnu/packages/games.scm:327 +msgid "Version of the classic 3D shoot'em'up game Doom" +msgstr "Version du jeu classique de shoot'em'up Doom en 3D" + +#: gnu/packages/games.scm:329 +msgid "PrBoom+ is a Doom source port developed from the original PrBoom project." +msgstr "" +"PrBoom+ est un port des sources de Doom développé à partir du projet\n" +"PrBoom original." + +#: gnu/packages/games.scm:349 +msgid "User interface for gnushogi" +msgstr "Interface pour gnushogi" + +#: gnu/packages/games.scm:350 +msgid "A graphical user interface for the package @code{gnushogi}." +msgstr "Une interface utilisateur graphique pour le paquet @code{gnushogi}" + +#: gnu/packages/games.scm:399 +msgid "GNU/Linux port of the indie game \"l'Abbaye des Morts\"" +msgstr "Port GNU/Linux du jeu indépendant « l'Abbaye des Morts »" + +#: gnu/packages/games.scm:400 +msgid "" +"L'Abbaye des Morts is a 2D platform game set in 13th century\n" +"France. The Cathars, who preach about good Christian beliefs, were being\n" +"expelled by the Catholic Church out of the Languedoc region in France. One of\n" +"them, called Jean Raymond, found an old church in which to hide, not knowing\n" +"that beneath its ruins lay buried an ancient evil." +msgstr "" + +#: gnu/packages/games.scm:452 +msgid "Dungeon exploration roguelike" +msgstr "Roguelike d'exploration de donjon" + +#: gnu/packages/games.scm:453 +msgid "" +"Angband is a Classic dungeon exploration roguelike. Explore\n" +"the depths below Angband, seeking riches, fighting monsters, and preparing to\n" +"fight Morgoth, the Lord of Darkness." +msgstr "" +"Angband est un roguelike d'exploration de donjon classique. Explorez les profondeurs\n" +"en dessous d'Angband, cherchez des richesses, combattez des montres et préparez-vous\n" +"à combattre Morgoth, le Seigneur des Ténèbres." + +#: gnu/packages/games.scm:493 +msgid "Lemmings clone" +msgstr "Clone de Lemmings" + +#: gnu/packages/games.scm:495 +msgid "" +"Pingus is a free Lemmings-like puzzle game in which the player takes\n" +"command of a bunch of small animals and has to guide them through levels.\n" +"Since the animals walk on their own, the player can only influence them by\n" +"giving them commands, like build a bridge, dig a hole, or redirect all animals\n" +"in the other direction. Multiple such commands are necessary to reach the\n" +"level's exit. The game is presented in a 2D side view." +msgstr "" +"Pingus est un jeu de réflexion similaire à Lemmings dans lequel le joueur prend\n" +"le contrôle d'un groupe de petits animaux et doit les guider à travers les niveaux.\n" +"Comme les animaux marchent tous seuls, le joueur ne peut que les influencer en\n" +"leur donnant des ordres. Plusieurs de ces ordres sont nécessaires pour atteindre\n" +"la fin du niveau. Le jeu est présenté en 2D, en vue de côté." + +#: gnu/packages/games.scm:517 +msgid "Convert English text to humorous dialects" +msgstr "Convertit du texte en anglais vers des dialectes rigolos" + +#: gnu/packages/games.scm:518 +msgid "" +"The GNU Talk Filters are programs that convert English text\n" +"into stereotyped or otherwise humorous dialects. The filters are provided as\n" +"a C library, so they can easily be integrated into other programs." +msgstr "" +"Les filtres GNU Talk sont des programmes qui convertissent du texte en anglais\n" +"vers des dialectes stéréotypés ou rigolos. Les filtres sont fournis en tant que\n" +"bibliothèques C, pour qu'ils puissent être facilement intégrés à d'autres programmes." + +#: gnu/packages/games.scm:550 +msgid "Simulate the display from \"The Matrix\"" +msgstr "Simule l'affichage comme dans « Matrix »" + +#: gnu/packages/games.scm:551 +msgid "" +"CMatrix simulates the display from \"The Matrix\" and is\n" +"based on the screensaver from the movie's website. It works with terminal\n" +"settings up to 132x300 and can scroll lines all at the same rate or\n" +"asynchronously and at a user-defined speed." +msgstr "" +"CMatrix simule l'affichage du film « Matrix » et se base sur l'économiseur\n" +"d'écran du site du film. Il fonctionne avec les terminaux jusqu'à 132×300 et\n" +"peut faire défiler les lignes à la même vitesse ou de manière asynchrone\n" +"à une vitesse définie par l'utilisateur." + +#: gnu/packages/games.scm:571 +msgid "Full chess implementation" +msgstr "Implémentation complète du jeu d'échecs" + +#: gnu/packages/games.scm:572 +msgid "" +"GNU Chess is a chess engine. It allows you to compete\n" +"against the computer in a game of chess, either through the default terminal\n" +"interface or via an external visual interface such as GNU XBoard." +msgstr "" +"GNU Chess est un moteur de jeu d'échecs. Il vous permet de\n" +"vous comparer à l'ordinateur au jeu d'échecs, soit à travers l'interface\n" +"textuelle par défaut soit via une interface visuelle externe comme\n" +"GNU XBoard." + +#: gnu/packages/games.scm:600 +msgid "Twisted adventures of young pig farmer Dink Smallwood" +msgstr "" + +#: gnu/packages/games.scm:602 +msgid "" +"GNU FreeDink is a free and portable re-implementation of the engine\n" +"for the role-playing game Dink Smallwood. It supports not only the original\n" +"game data files but it also supports user-produced game mods or \"D-Mods\".\n" +"To that extent, it also includes a front-end for managing all of your D-Mods." +msgstr "" + +#: gnu/packages/games.scm:627 +msgid "Game data for GNU Freedink" +msgstr "Données de jeu pour GNU Freedink" + +#: gnu/packages/games.scm:629 +msgid "This package contains the game data of GNU Freedink." +msgstr "Ce paquet continet les données du jeu GNU Freedink." + +#: gnu/packages/games.scm:681 +msgid "Graphical user interface for chess programs" +msgstr "Interface utilisateur Graphique pour les programmes d'échecs." + +#: gnu/packages/games.scm:682 +msgid "" +"GNU XBoard is a graphical board for all varieties of chess,\n" +"including international chess, xiangqi (Chinese chess), shogi (Japanese chess)\n" +"and Makruk. Several lesser-known variants are also supported. It presents a\n" +"fully interactive graphical interface and it can load and save games in the\n" +"Portable Game Notation." +msgstr "" +"GNU XBoard est un plateau graphique pour toutes les variantes des échecs,\n" +"dont les échecs internationals, le xiangqi (les échecs chinois), le shōgi (les\n" +"échecs japonais) et le Makruk. Plusieurs variantes moins connues sont aussi\n" +"supportées. Il présente une interface utilisateur complètement interactive et\n" +"peut charger et sauvegarder les jeux dans la Notation de Jeu Universelle." + +#: gnu/packages/games.scm:735 +msgid "Ball and paddle game" +msgstr "" + +#: gnu/packages/games.scm:736 +msgid "" +"XBoing is a blockout type game where you have a paddle which\n" +"you control to bounce a ball around the game zone destroying blocks with a\n" +"proton ball. Each block carries a different point value. The more blocks you\n" +"destroy, the better your score. The person with the highest score wins." +msgstr "" + +#: gnu/packages/games.scm:768 +msgid "Typing tutor" +msgstr "Tutorial pour apprendre à taper" + +#: gnu/packages/games.scm:770 +msgid "" +"GNU Typist is a universal typing tutor. It can be used to learn and\n" +"practice touch-typing. Several tutorials are included; in addition to\n" +"tutorials for the standard QWERTY layout, there are also tutorials for the\n" +"alternative layouts Dvorak and Colemak, as well as for the numpad. Tutorials\n" +"are primarily in English, however some in other languages are provided." +msgstr "" + +#: gnu/packages/games.scm:817 +msgid "3D game engine written in C++" +msgstr "Moteur de jeu 3D écrit en C++" + +#: gnu/packages/games.scm:819 +msgid "" +"The Irrlicht Engine is a high performance realtime 3D engine written in\n" +"C++. Features include an OpenGL renderer, extensible materials, scene graph\n" +"management, character animation, particle and other special effects, support\n" +"for common mesh file formats, and collision detection." +msgstr "" +"Le moteur Irrlicht est un moteur 3D en temps réel performant écrit en C++.\n" +"Ses fonctionnalités incluent le rendu OpenGL, l'extension des matériaux, la\n" +"gestion de graphes de scènes, l'animation des personnages, les particules et autres\n" +"effets spéciaux, le support pour des formats de fichiers graphiques usuels et la\n" +"détection de collision." + +#: gnu/packages/games.scm:871 +msgid "2D space shooter" +msgstr "Jeu de tir spatial en 2D" + +#: gnu/packages/games.scm:873 +msgid "" +"M.A.R.S. is a 2D space shooter with pretty visual effects and\n" +"attractive physics. Players can battle each other or computer controlled\n" +"enemies in different game modes such as space ball, death match, team death\n" +"match, cannon keep, and grave-itation pit." +msgstr "" + +#: gnu/packages/games.scm:914 +msgid "Main game data for the Minetest game engine" +msgstr "Données principales du jeu pour le moteur de jeu Minetest" + +#: gnu/packages/games.scm:916 +msgid "Game data for the Minetest infinite-world block sandox game." +msgstr "" + +#: gnu/packages/games.scm:968 +msgid "Infinite-world block sandbox game" +msgstr "" + +#: gnu/packages/games.scm:970 +msgid "" +"Minetest is a sandbox construction game. Players can create and destroy\n" +"various types of blocks in a three-dimensional open world. This allows\n" +"forming structures in every possible creation, on multiplayer servers or as a\n" +"single player. Mods and texture packs allow players to personalize the game\n" +"in different ways." +msgstr "" + +#: gnu/packages/games.scm:1009 +msgid "Curses Implementation of the Glk API" +msgstr "Implémentation en Curses de l'API Glk" + +#: gnu/packages/games.scm:1011 +msgid "" +"Glk defines a portable API for applications with text UIs. It was\n" +"primarily designed for interactive fiction, but it should be suitable for many\n" +"interactive text utilities, particularly those based on a command line.\n" +"This is an implementation of the Glk library which runs in a terminal window,\n" +"using the @code{curses.h} library for screen control." +msgstr "" +"Glk définie une API portable pour les applications avec des interfaces textuelles.\n" +"Elle a été principalement conçue pour la fiction interactive, mais devrait convenir\n" +"à beaucoup d'utilitaires textuels interactifs, en particuliers ceux basés sur une\n" +"ligne de commande. Ceci est une implémentation de la bibliothèque Gtk qui\n" +"tourne dans une fenêtre de terminal et qui utilise la bibliothèque @code{curses.h}\n" +"pour le contrôle de l'écran." + +#: gnu/packages/games.scm:1049 +msgid "Interpreter for Glulx VM" +msgstr "Interpréteur pour Glulx VM" + +#: gnu/packages/games.scm:1051 +msgid "" +"Glulx is a 32-bit portable virtual machine intended for writing and\n" +"playing interactive fiction. It was designed by Andrew Plotkin to relieve\n" +"some of the restrictions in the venerable Z-machine format. This is the\n" +"reference interpreter, using the Glk API." +msgstr "" +"Glulx est une machine virtuelle 32-bit portable destinée à l'écriture et\n" +"au jeu de fictions interactives. Elle a été conçue par Andrew Plotkin pour\n" +"relacher certaines contraintes du vénérable format Z-machine. C'est l'interpréteur\n" +"de référence, qui utilise l'API Glk." + +#: gnu/packages/games.scm:1087 +msgid "Z-machine interpreter" +msgstr "Interpréteur Z-machine" + +#: gnu/packages/games.scm:1089 +msgid "" +"Fizmo is a console-based Z-machine interpreter. It is used to play\n" +"interactive fiction, also known as text adventures, which were implemented\n" +"either by Infocom or created using the Inform compiler." +msgstr "" +"Fizmo est un interpréteur Z-machine en console. Il est utilisé pour jouer\n" +"à des fictions interactives, aussi connues sous le nom d'aventures textuelles,\n" +"qui étaient implémentées soit par Infocom ou crées avec le compilateur Inform." + +#: gnu/packages/games.scm:1142 +msgid "Reference frontend for the libretro API" +msgstr "Interface de référence pour l'API libretro" + +#: gnu/packages/games.scm:1144 +msgid "" +"Libretro is a simple but powerful development interface that allows for\n" +"the easy creation of emulators, games and multimedia applications that can plug\n" +"straight into any libretro-compatible frontend. RetroArch is the official\n" +"reference frontend for the libretro API, currently used by most as a modular\n" +"multi-system game/emulator system." +msgstr "" +"Libretro est une interface de développement simple mais puissante qui permet\n" +"de créer facilement des émulateurs, des jeux et des applications multimédia qui peuvent\n" +"se brancher directement sur une interface compatible avec libretro. RetroArch est\n" +"l'interface de référence officielle pour l'API libretro, actuellement utilisée par la plupart comme\n" +"un système de jeu/d'émulateur multi-système modulaire." + +#: gnu/packages/games.scm:1164 +msgid "Play the game of Go" +msgstr "Jouer au jeu de Go" + +#: gnu/packages/games.scm:1166 +msgid "" +"GNU Go is a program that plays the game of Go, in which players\n" +"place stones on a grid to form territory or capture other stones. While\n" +"it can be played directly from the terminal, rendered in ASCII characters,\n" +"it is also possible to play GNU Go with 3rd party graphical interfaces or\n" +"even in Emacs. It supports the standard game storage format (SGF, Smart\n" +"Game Format) and inter-process communication format (GMP, Go Modem\n" +"Protocol)." +msgstr "" +"GNU Go est un programme qui joue au jeu de Go, dans lequel les joueurs\n" +"placent des pierres sur une grille pour former des territoires ou capturer\n" +"d'autres pierres. Tandis qu'il peut être joué directement à partir du terminal,\n" +"avec un rendu en caractères ASCII, il est aussi possible de jouer à GNU Go avec\n" +"une interface graphique tierce ou même dans Emacs. Il supporte le format\n" +"de stockage standard pour les jeux (SGF, Smart Game Format) et le format\n" +"de communication inter-processus (GMP, Go Modem Protocol)." + +#: gnu/packages/games.scm:1194 +msgid "High speed arctic racing game based on Tux Racer" +msgstr "" + +#: gnu/packages/games.scm:1196 +msgid "" +"Extreme Tux Racer, or etracer as it is called for short, is\n" +"a simple OpenGL racing game featuring Tux, the Linux mascot. The goal of the\n" +"game is to slide down a snow- and ice-covered mountain as quickly as possible,\n" +"avoiding the trees and rocks that will slow you down.\n" +"\n" +"Collect herrings and other goodies while sliding down the hill, but avoid fish\n" +"bones.\n" +"\n" +"This game is based on the GPL version of the famous game TuxRacer." +msgstr "" + +#: gnu/packages/games.scm:1276 +msgid "3D kart racing game" +msgstr "Jeu de course de karts en 3D" + +#: gnu/packages/games.scm:1277 +msgid "" +"SuperTuxKart is a 3D kart racing game, with a focus on\n" +"having fun over realism. You can play with up to 4 friends on one PC, racing\n" +"against each other or just trying to beat the computer; single-player mode is\n" +"also available." +msgstr "" +"SuperTuxKart est un jeu de course de karts en 3D, qui préfère le plaisir\n" +"au réalisme. Vous pouvez jouer avec jusqu'à 4 amis sur un PC, de faire\n" +"la courses les uns contre les autres ou d'essayer de battre l'ordinateur. Un\n" +"mode solo est aussi disponible." + +#: gnu/packages/games.scm:1309 +msgid "Game of jumping to the next floor, trying not to fall" +msgstr "Un jeu où on saute à l'étage au dessus en essayent de ne pas tomber" + +# replay en français ? +#: gnu/packages/games.scm:1311 +msgid "" +"GNUjump is a simple, yet addictive game in which you must jump from\n" +"platform to platform to avoid falling, while the platforms drop at faster rates\n" +"the higher you go. The game features multiplayer, unlimited FPS, smooth floor\n" +"falling, themeable graphics and sounds, and replays." +msgstr "" +"GNUJump est un jeu simple mais addictif dans lequel vous devez sauter de\n" +"plateforme en plateforme pour éviter de tomber tandis que les plateformes\n" +"tombent de plus en plus vite au fur et à mesure que vous motez. Le jeu\n" +"propose du multijoueur, des FPS illimités, une chute douce du sol des\n" +"graphismes et des sons personnalisables et des replays." + +#: gnu/packages/games.scm:1354 +msgid "Turn-based strategy game" +msgstr "Jeu de stratégie en tour par tour" + +#: gnu/packages/games.scm:1356 +msgid "" +"The Battle for Wesnoth is a fantasy, turn based tactical strategy game,\n" +"with several single player campaigns, and multiplayer games (both networked and\n" +"local).\n" +"\n" +"Battle for control on a range of maps, using variety of units which have\n" +"advantages and disadvantages against different types of attacks. Units gain\n" +"experience and advance levels, and are carried over from one scenario to the\n" +"next campaign." +msgstr "" +"La battaille pour Wesnoth est un jeu de stratégie tactique en tour par tour dans un\n" +"monde fantasy, avec plusieurs campagnes solo et des jeux multijoueurs (en réseau\n" +"ou en local).\n" +"\n" +"Combattez pour contrôler plusieurs cartes, avec différentes unités qui ont des\n" +"avantages et des inconvénient contre certains types d'attaques. Les unités\n" +"gagnent de l'expérience et augmentent de niveau, et sont rejoués d'un scénario\n" +"à la campagne suivante." + +#: gnu/packages/games.scm:1400 +msgid "X86 emulator with CGA/EGA/VGA/etc. graphics and sound" +msgstr "Émulateur X86 avec CGA/EGA/VGA/etc. graphiques et sons" + +#: gnu/packages/games.scm:1401 +msgid "" +"DOSBox is a DOS-emulator that uses the SDL library. DOSBox\n" +"also emulates CPU:286/386 realmode/protected mode, Directory\n" +"FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a\n" +"SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with\n" +"older games." +msgstr "" +"DOSBox est un émulateur DOS qui utilise la bibliothèque SDL. DOSBox\n" +"émule aussi les modes réels et protégés des CPU 286 et 386, Directory\n" +"FileSystem/XMS/EMS, les graphiques Tandy/Hercules/CGA/EGA/VGA/VESA,\n" +"une carte SoundBlaster/Gravis Ultra pour une excellente compatibilité du son\n" +"avec les plus vieux jeux." + +#: gnu/packages/games.scm:1446 +msgid "Mouse and keyboard discovery for children" +msgstr "Découverte de la souris et du clavier pour les enfants" + +#: gnu/packages/games.scm:1448 +msgid "" +"Gamine is a game designed for young children who are learning to use the\n" +"mouse and keyboard. The child uses the mouse to draw colored dots and lines\n" +"on the screen and keyboard to display letters." +msgstr "" +"Gamine est un jeu destiné au jeunes enfants qui apprennent à utiliser la\n" +"souris et le clavier. L'enfant utilise la souris pour dessiner des points colorés\n" +"et des lignes sur l'écran et le clavier pour afficher des lettres." + +#: gnu/packages/games.scm:1480 +msgid "Puzzle game with a cat in lead role" +msgstr "" + +#: gnu/packages/games.scm:1481 +msgid "" +"Project Raincat is a game developed by Carnegie Mellon\n" +"students through GCS during the Fall 2008 semester. Raincat features game\n" +"play inspired from classics Lemmings and The Incredible Machine. The project\n" +"proved to be an excellent learning experience for the programmers. Everything\n" +"is programmed in Haskell." +msgstr "" + +# Traductino officielle du nom du jeu ? +#: gnu/packages/games.scm:1516 +msgid "Client for 'The Mana World' and similar games" +msgstr "Client pour « the Mana World » et des jeux similaires" + +#: gnu/packages/games.scm:1518 +msgid "" +"ManaPlus is a 2D MMORPG client for game servers. It is the only\n" +"fully supported client for @uref{http://www.themanaworld.org, The mana\n" +"world}, @uref{http://evolonline.org, Evol Online} and\n" +"@uref{http://landoffire.org, Land of fire}." +msgstr "" +"ManaPlus est un client MMORPG 2D pour les serveurs de jeux. Il est le seul\n" +"client entièrement supporté par @uref{http://www.themanaworld.org, the Mana World},\n" +"@uref{http://evolonline.org, Evol Online} et @uref{http://landoffire.org, Land of fire}." + +#: gnu/packages/games.scm:1568 +msgid "Nintendo 64 emulator core library" +msgstr "Bibliothèque de cœur de l'émulateur de Nintendo 64" + +#: gnu/packages/games.scm:1570 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"core library." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient la\n" +"bibliothèque de cœur." + +#: gnu/packages/games.scm:1614 gnu/packages/games.scm:1659 +#: gnu/packages/games.scm:1701 gnu/packages/games.scm:1743 +#: gnu/packages/games.scm:2059 +msgid "Mupen64Plus SDL input plugin" +msgstr "Greffon d'entrée SDL de Mupen64Plus" + +#: gnu/packages/games.scm:1616 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"SDL audio plugin." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"greffon SDL audio." + +#: gnu/packages/games.scm:1661 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"SDL input plugin." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"greffon d'entrée SDL." + +#: gnu/packages/games.scm:1703 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"high-level emulation (HLE) RSP processor plugin." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"greffon de traitement RSP d'émulation haut-niveau (HLE)." + +#: gnu/packages/games.scm:1745 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"Z64 RSP processor plugin." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"greffon de traitement RSP Z64." + +#: gnu/packages/games.scm:1789 gnu/packages/games.scm:1843 +#: gnu/packages/games.scm:1893 gnu/packages/games.scm:1941 +msgid "Mupen64Plus Rice Video plugin" +msgstr "Greffon vidéo Rice pour Mupen64Plus" + +#: gnu/packages/games.scm:1791 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"Arachnoid video plugin." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"greffon vidéo Arachnoid." + +#: gnu/packages/games.scm:1845 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"Glide64 video plugin." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"greffon vidéo Glide64." + +#: gnu/packages/games.scm:1895 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"Glide64MK2 video plugin." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"greffon vidéo Glide64MK2." + +#: gnu/packages/games.scm:1943 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"Rice Video plugin." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"greffon vidéo Rice." + +#: gnu/packages/games.scm:1995 +msgid "Mupen64Plus Z64 video plugin" +msgstr "Greffon vidéo Z64 pour Mupen64Plus" + +#: gnu/packages/games.scm:1997 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"Z64 video plugin." +msgstr "" +"Mupen64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"greffon vidéo Z64." + +#: gnu/packages/games.scm:2061 +msgid "" +"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n" +"which is capable of accurately playing many games. This package contains the\n" +"command line user interface. Installing this package is the easiest way\n" +"towards a working Mupen64Plus for casual users." +msgstr "" +"Mupens64Plus est un émulateur Nintendo 64 (N64) multi-plateforme basé sur des\n" +"greffons capable de lancer fidèlement plusieurs jeux. Ce paquet contient le\n" +"l'interface en ligne de commande. L'installation de ce paquet est la meilleure\n" +"manière d'avoir un Mupen64Plus fonctionnel pour les utilisateurs occasionnels." + +#: gnu/packages/games.scm:2118 +msgid "Nintendo Entertainment System (NES/Famicom) emulator" +msgstr "Émulateur Nintendo Entertainement System (NES/Famicom)" + +#: gnu/packages/games.scm:2120 +msgid "" +"Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment\n" +"System (NES/Famicom) emulator Nestopia, with enhancements from members of the\n" +"emulation community. It provides highly accurate emulation." +msgstr "" +"Nestopia UE (Undead Edition) est un fork de l'émulateur NES/Famicom Nestopia, avec\n" +"des améliorations des membres de la communauté de l'émulation. Il fournit\n" +"une émulation très fidèle." + +#: gnu/packages/games.scm:2150 +msgid "Video game console emulator front-end" +msgstr "Interface d'émulateur de jeux en console" + +#: gnu/packages/games.scm:2151 +msgid "" +"EmulationStation provides a graphical front-end to a large\n" +"number of video game console emulators. It features an interface that is\n" +"usable with any game controller that has at least 4 buttons, theming support,\n" +"and a game metadata scraper." +msgstr "" +"EmulationStation fournit une interface graphique pour un grand\n" +"nombre d'émulateurs de jeux vidéos en console. Il fournit une interface\n" +"utilisable avec n'importe quelle manette de jeu avec au moins 4 boutons et\n" +"qui permet la personnalisation et un recycleur de métadonnées de jeux." + +#: gnu/packages/games.scm:2203 +msgid "Transportation economics simulator" +msgstr "Simulateur de l'économie du transport" + +#: gnu/packages/games.scm:2204 +msgid "" +"OpenTTD is a game in which you transport goods and\n" +"passengers by land, water and air. It is a re-implementation of Transport\n" +"Tycoon Deluxe with many enhancements including multiplayer mode,\n" +"internationalization support, conditional orders and the ability to clone,\n" +"autoreplace and autoupdate vehicles. This package only includes the game engine. When you start\n" +"it you will be prompted to download a graphics set." +msgstr "" +"OpenTTD est un jeu dans lequel vous transportez des biens et des\n" +"passagers sur terres, sur mer et dans les airs. C'est une ré-implémentation\n" +"de Transport Tycoon Deluxe avec plusieurs améliorations comme le mode multi-joueur,\n" +"le support de la régionalisation, les ordres conditionnels et la possibilité de\n" +"cloner, de replacer et de mettre à jour automatiquement les véhicules Ce paquet\n" +"ne contient que le moteur de jeu. Lorsque vous le démarrez, il vous sera demandé de télécharger\n" +"un thème graphique." + +#: gnu/packages/games.scm:2259 +msgid "Pinball simulator" +msgstr "" + +#: gnu/packages/games.scm:2260 +msgid "" +"The Emilia Pinball Project is a pinball simulator. There\n" +"are only two levels to play with, but they are very addictive." +msgstr "" + +#: gnu/packages/games.scm:2281 +msgid "Board game inspired by The Settlers of Catan" +msgstr "" + +#: gnu/packages/games.scm:2282 +msgid "" +"Pioneers is an emulation of the board game The Settlers of\n" +"Catan. It can be played on a local network, on the internet, and with AI\n" +"players." +msgstr "" + +#: gnu/packages/games.scm:2316 +msgid "Nintendo DS emulator" +msgstr "" + +#: gnu/packages/games.scm:2318 +msgid "DeSmuME is an emulator for the Nintendo DS handheld gaming console." +msgstr "" + +#: gnu/packages/games.scm:2356 +msgid "Logic puzzle game" +msgstr "" + +#: gnu/packages/games.scm:2357 +msgid "" +"The goal of this logic game is to open all cards in a 6x6\n" +"grid, using a number of hints as to their relative position. The game idea\n" +"is attributed to Albert Einstein." +msgstr "" + +#: gnu/packages/games.scm:2386 +msgid "MUD and telnet client" +msgstr "" + +#: gnu/packages/games.scm:2388 +msgid "" +"POWWOW is a client software which can be used for telnet as well as for\n" +"@dfn{Multi-User Dungeon} (MUD). Additionally it can serve as a nice client for\n" +"the chat server psyced with the specific config located at\n" +"http://lavachat.symlynx.com/unix/" +msgstr "" + +#: gnu/packages/games.scm:2533 +msgid "Arena shooter derived from the Cube 2 engine" +msgstr "" + +#: gnu/packages/games.scm:2535 +msgid "" +"Red Eclipse is an arena shooter, created from the Cube2 engine.\n" +"Offering an innovative parkour system and distinct but all potent weapons,\n" +"Red Eclipse provides fast paced and accessible gameplay." +msgstr "" + +#: gnu/packages/games.scm:2629 +msgid "Nintendo multi-system emulator" +msgstr "" + +#: gnu/packages/games.scm:2631 +msgid "" +"higan (formerly bsnes) is an emulator for multiple Nintendo video game\n" +"consoles, including the Nintendo Entertainment System (NES/Famicom), Super\n" +"Nintendo Entertainment System (SNES/Super Famicom), Game Boy, Game Boy\n" +"Color (GBC), and Game Boy Advance (GBA). It also supports the subsystems\n" +"Super Game Boy, BS-X Satellaview, and Sufami Turbo." +msgstr "" + +#: gnu/packages/games.scm:2689 +msgid "Text adventure game" +msgstr "" + +#: gnu/packages/games.scm:2691 +msgid "" +"Grue Hunter is a text adventure game written in Perl. You must make\n" +"your way through an underground cave system in search of the Grue. Can you\n" +"capture it and get out alive?" +msgstr "" + +#: gnu/packages/games.scm:2740 +msgid "3D Real-time strategy and real-time tactics game" +msgstr "" + +#: gnu/packages/games.scm:2742 +msgid "" +"Warzone 2100 offers campaign, multi-player, and single-player skirmish\n" +"modes. An extensive tech tree with over 400 different technologies, combined\n" +"with the unit design system, allows for a wide variety of possible units and\n" +"tactics." +msgstr "" + +#: gnu/packages/games.scm:2775 +msgid "2D scrolling shooter game" +msgstr "" + +#: gnu/packages/games.scm:2777 +msgid "" +"In the year 2579, the intergalactic weapons corporation, WEAPCO, has\n" +"dominated the galaxy. Guide Chris Bainfield and his friend Sid Wilson on\n" +"their quest to liberate the galaxy from the clutches of WEAPCO. Along the\n" +"way, you will encounter new foes, make new allies, and assist local rebels\n" +"in strikes against the evil corporation." +msgstr "" + +#: gnu/packages/games.scm:2808 +msgid "Fast-paced, arcade-style, top-scrolling space shooter" +msgstr "" + +#: gnu/packages/games.scm:2810 +msgid "" +"In this game you are the captain of the cargo ship Chromium B.S.U. and\n" +"are responsible for delivering supplies to the troops on the front line. Your\n" +"ship has a small fleet of robotic fighters which you control from the relative\n" +"safety of the Chromium vessel." +msgstr "" + +#: gnu/packages/games.scm:2885 +msgid "Drawing software for children" +msgstr "" + +#: gnu/packages/games.scm:2887 +msgid "" +"Tux Paint is a free drawing program designed for young children (kids\n" +"ages 3 and up). It has a simple, easy-to-use interface; fun sound effects;\n" +"and an encouraging cartoon mascot who helps guide children as they use the\n" +"program. It provides a blank canvas and a variety of drawing tools to help\n" +"your child be creative." +msgstr "" + +#: gnu/packages/games.scm:2925 +msgid "Stamp images for Tux Paint" +msgstr "" + +#: gnu/packages/games.scm:2927 +msgid "" +"This package contains a set of \"Rubber Stamp\" images which can be used\n" +"with the \"Stamp\" tool within Tux Paint." +msgstr "" + +#: gnu/packages/games.scm:2974 +msgid "Configure Tux Paint" +msgstr "" + +#: gnu/packages/games.scm:2976 +msgid "Tux Paint Config is a graphical configuration editor for Tux Paint." +msgstr "" + +#: gnu/packages/games.scm:3008 +msgid "2D platformer game" +msgstr "" + +#: gnu/packages/games.scm:3009 +msgid "" +"SuperTux is a free classic 2D jump'n run sidescroller game\n" +"in a style similar to the original Super Mario games covered under\n" +"the GNU GPL." +msgstr "" + +#: gnu/packages/games.scm:3043 +msgid "MUD client" +msgstr "" + +#: gnu/packages/games.scm:3045 +msgid "" +"TinTin++ is a MUD client which supports MCCP (Mud Client Compression Protocol),\n" +"MMCP (Mud Master Chat Protocol), xterm 256 colors, most TELNET options used by MUDs,\n" +"as well as those required to login via telnet on Linux / Mac OS X servers, and an\n" +"auto mapper with a VT100 map display." +msgstr "" + +#: gnu/packages/games.scm:3082 +msgid "Programming game" +msgstr "" + +#: gnu/packages/games.scm:3083 +msgid "" +"Learn programming, playing with ants and spider webs ;-)\n" +"Your robot ant can be programmed in many languages: OCaml, Python, C, C++,\n" +"Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog. Experienced\n" +"programmers may also add their own favorite language." +msgstr "" + +#: gnu/packages/games.scm:3127 +msgid "Keyboard mashing and doodling game for babies" +msgstr "" + +#: gnu/packages/games.scm:3128 +msgid "" +"Bambam is a simple baby keyboard (and gamepad) masher\n" +"application that locks the keyboard and mouse and instead displays bright\n" +"colors, pictures, and sounds." +msgstr "" + +#: gnu/packages/games.scm:3171 +msgid "Arcade-style fire fighting game" +msgstr "" + +#: gnu/packages/games.scm:3173 +msgid "" +"Mr. Rescue is an arcade styled 2d action game centered around evacuating\n" +"civilians from burning buildings. The game features fast paced fire\n" +"extinguishing action, intense boss battles, a catchy soundtrack and lots of\n" +"throwing people around in pseudo-randomly generated buildings." +msgstr "" + +#: gnu/packages/games.scm:3279 +msgid "Non-euclidean graphical rogue-like game" +msgstr "" + +#: gnu/packages/games.scm:3281 +msgid "" +"HyperRogue is a game in which the player collects treasures and fights\n" +"monsters -- rogue-like but for the fact that it is played on the hyperbolic\n" +"plane and not in euclidean space.\n" +"\n" +"In HyperRogue, the player can move through different parts of the world, which\n" +"are home to particular creatures and may be subject to their own rules of\n" +"\"physics\".\n" +"\n" +"While the game can use ASCII characters to display the the classical rogue\n" +"symbols, it still needs graphics to render the non-euclidean world." +msgstr "" + +#: gnu/packages/games.scm:3324 +msgid "Shooter with space station destruction" +msgstr "" + +#: gnu/packages/games.scm:3326 +msgid "" +"Kobo Deluxe is an enhanced version of Akira Higuchi's XKobo graphical game\n" +"for Un*x systems with X11." +msgstr "" + +#: gnu/packages/games.scm:3354 +msgid "Turn based empire building strategy game" +msgstr "" + +#: gnu/packages/games.scm:3355 +msgid "" +"Freeciv is a turn based empire building strategy game\n" +"inspired by the history of human civilization. The game commences in\n" +"prehistory and your mission is to lead your tribe from the Stone Age\n" +"to the Space Age." +msgstr "" + +#: gnu/packages/games.scm:3386 +msgid "Recreation of data decryption effect in \"Sneakers\"" +msgstr "" + +#: gnu/packages/games.scm:3388 +msgid "" +"@code{No More Secrets} provides a command line tool called \"nms\"\n" +"that recreates the famous data decryption effect seen on screen in the 1992\n" +"movie \"Sneakers\".\n" +"\n" +"This command works on piped data. Pipe any ASCII or UTF-8 text to nms, and\n" +"it will apply the hollywood effect, initially showing encrypted data, then\n" +"starting a decryption sequence to reveal the original plaintext characters." +msgstr "" + +#: gnu/packages/games.scm:3415 +msgid "Data files for MegaGlest" +msgstr "Fichiers de données pour MegaGlest" + +#: gnu/packages/games.scm:3416 +msgid "This package contains the data files required for MegaGlest." +msgstr "Ce paquet contient les fichiers de données requis par MegaGlest." + +#: gnu/packages/games.scm:3469 +msgid "3D real-time strategy (RTS) game" +msgstr "" + +#: gnu/packages/games.scm:3470 +msgid "" +"MegaGlest is a cross-platform 3D real-time strategy (RTS)\n" +"game, where you control the armies of one of seven different factions: Tech,\n" +"Magic, Egypt, Indians, Norsemen, Persian or Romans." +msgstr "" + +#: gnu/packages/games.scm:3520 +msgid "Side-scrolling physics platformer with a ball of tar" +msgstr "" + +#: gnu/packages/games.scm:3521 +msgid "" +"In FreeGish you control Gish, a ball of tar who lives\n" +"happily with his girlfriend Brea, until one day a mysterious dark creature\n" +"emerges from a sewer hole and pulls her below ground." +msgstr "" + +#: gnu/packages/games.scm:3555 +msgid "Classic overhead run-and-gun game" +msgstr "" + +#: gnu/packages/games.scm:3556 +msgid "" +"C-Dogs SDL is a classic overhead run-and-gun game,\n" +"supporting up to 4 players in co-op and deathmatch modes. Customize your\n" +"player, choose from many weapons, and blast, slide and slash your way through\n" +"over 100 user-created campaigns." +msgstr "" + +#: gnu/packages/games.scm:3656 +msgid "3D puzzle game" +msgstr "" + +#: gnu/packages/games.scm:3657 +msgid "" +"Kiki the nano bot is a 3D puzzle game. It is basically a\n" +"mixture of the games Sokoban and Kula-World. Your task is to help Kiki, a\n" +"small robot living in the nano world, repair its maker." +msgstr "" + +#: gnu/packages/games.scm:3747 +msgid "2D retro multiplayer shooter game" +msgstr "" + +#: gnu/packages/games.scm:3748 +msgid "" +"Teeworlds is an online multiplayer game. Battle with up to\n" +"16 players in a variety of game modes, including Team Deathmatch and Capture\n" +"The Flag. You can even design your own maps!" +msgstr "" + +#: gnu/packages/games.scm:3801 +msgid "Puzzle game with a dexterity component" +msgstr "" + +#: gnu/packages/games.scm:3802 +msgid "" +"Enigma is a puzzle game with 550 unique levels. The object\n" +"of the game is to find and uncover pairs of identically colored ‘Oxyd’ stones.\n" +"Simple? Yes. Easy? Certainly not! Hidden traps, vast mazes, laser beams,\n" +"and most of all, countless hairy puzzles usually block your direct way to the\n" +"Oxyd stones. Enigma’s game objects (and there are hundreds of them, lest you\n" +"get bored) interact in many unexpected ways, and since many of them follow the\n" +"laws of physics (Enigma’s special laws of physics, that is), controlling them\n" +"with the mouse isn’t always trivial." +msgstr "" + +#: gnu/packages/games.scm:3873 +msgid "Puzzle game" +msgstr "" + +#: gnu/packages/games.scm:3874 +msgid "" +"Fish Fillets NG is strictly a puzzle game. The goal in\n" +"every of the seventy levels is always the same: find a safe way out. The fish\n" +"utter witty remarks about their surroundings, the various inhabitants of their\n" +"underwater realm quarrel among themselves or comment on the efforts of your\n" +"fish. The whole game is accompanied by quiet, comforting music." +msgstr "" + +#: gnu/packages/games.scm:3938 +msgid "Roguelike dungeon crawler game" +msgstr "" + +#: gnu/packages/games.scm:3939 +msgid "" +"Dungeon Crawl Stone Soup is a roguelike adventure through\n" +"dungeons filled with dangerous monsters in a quest to find the mystifyingly\n" +"fabulous Orb of Zot." +msgstr "" + +#: gnu/packages/games.scm:3979 +msgid "Cross-platform third-person action game" +msgstr "" + +#: gnu/packages/games.scm:3980 +msgid "" +"Lugaru is a third-person action game. The main character,\n" +"Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills.\n" +"In his quest to find those responsible for slaughtering his village, he uncovers\n" +"a far-reaching conspiracy involving the corrupt leaders of the rabbit republic\n" +"and the starving wolves from a nearby den. Turner takes it upon himself to\n" +"fight against their plot and save his fellow rabbits from slavery." +msgstr "" + +#: gnu/packages/games.scm:4031 +msgid "Data files for 0ad" +msgstr "" + +#: gnu/packages/games.scm:4032 +msgid "0ad-data provides the data files required by the game 0ad." +msgstr "" + +#: gnu/packages/games.scm:4154 +msgid "3D real-time strategy game of ancient warfare" +msgstr "" + +#: gnu/packages/games.scm:4155 +msgid "" +"0 A.D. is a real-time strategy (RTS) game of ancient\n" +"warfare. It's a historically-based war/economy game that allows players to\n" +"relive or rewrite the history of twelve ancient civilizations, each depicted\n" +"at their peak of economic growth and military prowess.\n" +"\n" +"0ad needs a window manager that supports 'Extended Window Manager Hints'." +msgstr "" + +#: gnu/packages/gcc.scm:337 msgid "GNU Compiler Collection" msgstr "GNU Compiler Collection" -#: gnu/packages/gcc.scm:256 +#: gnu/packages/gcc.scm:339 msgid "" "GCC is the GNU Compiler Collection. It provides compiler front-ends\n" "for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and\n" @@ -522,13 +3668,25 @@ msgstr "" "pour plusieurs langages, dont C, C++, Objective-C, Fortran, Java, Ada,\n" "et Go. Il inclut également le support de bibliothèques pour ces langages." -#: gnu/packages/gcc.scm:340 +#: gnu/packages/gcc.scm:442 +msgid "GNU C++ standard library" +msgstr "Bibliothèque standard C++ GNU" + +#: gnu/packages/gcc.scm:477 +msgid "Collection of subroutines used by various GNU programs" +msgstr "Collection de sous-routines utilisées par divers programmes GNU" + +#: gnu/packages/gcc.scm:742 +msgid "GNU libstdc++ documentation" +msgstr "Documentation de GNU libstdc++" + +#: gnu/packages/gcc.scm:811 msgid "Manipulating sets and relations of integer points bounded by linear constraints" msgstr "" "Manipulation des ensembles et relations d'entiers liés par des\n" "contraintes linéaires." -#: gnu/packages/gcc.scm:343 +#: gnu/packages/gcc.scm:814 msgid "" "isl is a library for manipulating sets and relations of integer points\n" "bounded by linear constraints. Supported operations on sets include\n" @@ -540,11 +3698,11 @@ msgid "" "dependence analysis and bounds on piecewise step-polynomials." msgstr "" -#: gnu/packages/gcc.scm:375 +#: gnu/packages/gcc.scm:846 msgid "Library to generate code for scanning Z-polyhedra" -msgstr "" +msgstr "Bibliothèque poru générer du code pour analyser des Z-polyhèdres" -#: gnu/packages/gcc.scm:377 +#: gnu/packages/gcc.scm:848 msgid "" "CLooG is a free software library to generate code for scanning\n" "Z-polyhedra. That is, it finds a code (e.g., in C, FORTRAN...) that\n" @@ -559,35 +3717,2017 @@ msgid "" "effective code." msgstr "CLooG est bibliothèque logiciel libre permettant de générer du code" -#: gnu/packages/gettext.scm:74 -msgid "Tools and documentation for translation" -msgstr "Outils et documentation pour la traduction" +#: gnu/packages/gcc.scm:903 +msgid "Reference manual for the C programming language" +msgstr "Manuel de référence pour le langage de programmation C" -#: gnu/packages/gettext.scm:76 -#, fuzzy -#| msgid "" -#| "GNU Gettext is a package providing a framework for translating the\n" -#| "textual output of programs into multiple languages. It provides translators\n" -#| "with the means to create message catalogs, as well as an Emacs mode to work\n" -#| "with them, and a runtime library to load translated messages from the\n" -#| "catalogs. Nearly all GNU packages use Gettext." +#: gnu/packages/gcc.scm:905 +msgid "" +"This is a reference manual for the C programming language, as\n" +"implemented by the GNU C Compiler (gcc). As a reference, it is not intended\n" +"to be a tutorial of the language. Rather, it outlines all of the constructs\n" +"of the language. Library functions are not included." +msgstr "" +"Ceci est le manuel de référence pour le langage de programmation C, tel\n" +"qu'implémenté par le Compilateur C GNU (gcc). En tant que référence, il\n" +"n'est pas conçu comme un tutoriel du langage. Il précise plutôt les\n" +"constructions du langage. Les fonctions des bibliothèques ne sont pas incluses." + +#: gnu/packages/gettext.scm:91 +msgid "Tools and documentation for translation (used to build other packages)" +msgstr "Outils et documentation pour la traduction (utilisés pour construire d'autres paquets)" + +#: gnu/packages/gettext.scm:93 msgid "" "GNU Gettext is a package providing a framework for translating the\n" "textual output of programs into multiple languages. It provides translators\n" -"with the means to create message catalogs, as well as an Emacs mode to work\n" -"with them, and a runtime library to load translated messages from the\n" -"catalogs. Nearly all GNU packages use Gettext." +"with the means to create message catalogs, and a runtime library to load\n" +"translated messages from the catalogs. Nearly all GNU packages use Gettext." msgstr "" "GNU Gettext est un paquet fournissant un framework pour la traduction de\n" "sorties textuelles de programmes vers de nombreux langages. Il fournit\n" -"des traducteur dans le but de créer des catalogues de messages, ainsi qu'un\n" -"mode Emacs pour travailler avec ceux-ci, et une bibliothèque pour charger lesmessages depuis les catalogues. Presque tous les paquets GNU utilisent Gettext." +"aux traducteurs des moyens de créer des catalogues de messages et une\n" +"bibliothèque pour charger les messages traduits depuis les catalogues.\n" +"Presque tous les paquets GNU utilisent Gettext." + +#: gnu/packages/gettext.scm:123 +msgid "Tools and documentation for translation" +msgstr "Outils et documentation pour la traduction" + +#: gnu/packages/gettext.scm:181 +msgid "Scripts to ease maintenance of translations" +msgstr "Scripts pour faciliter la maintenance des traductions" + +#: gnu/packages/gettext.scm:183 +msgid "" +"The po4a (PO for anything) project goal is to ease translations (and\n" +"more interestingly, the maintenance of translations) using gettext tools on\n" +"areas where they were not expected like documentation." +msgstr "" +"Le but du projet po4a (PO pour tout) est de faciliter la traduction (et mieux,\n" +"la maintenance des traductions) en utilisant les outils gettext dans des domaines\n" +"pour lesquels ils n'étaient pas conçus, comme la documentation." + +#: gnu/packages/gimp.scm:60 +msgid "Image pixel format conversion library" +msgstr "Bibliothèque de conversion des formats d'images pixelisés" + +#: gnu/packages/gimp.scm:62 +msgid "" +"Babl is a dynamic, any to any, pixel format translation library.\n" +"It allows converting between different methods of storing pixels known as\n" +"pixel formats that have with different bitdepths and other data\n" +"representations, color models and component permutations.\n" +"\n" +"A vocabulary to formulate new pixel formats from existing primitives is\n" +"provided as well as the framework to add new color models and data types." +msgstr "" +"Babl est une bibliothèque de traduction de n'importe quel format pixelisé vers\n" +"n'importe quel format pixelisé. Elle permet la conversion entre différentes méthodes\n" +"de stockage des pixels connus comme les formats pixelisés qui ont différentes\n" +"profondeurs d'autres représentations de données, des modèles de couleurs et des\n" +"permutations de composants.\n" +"\n" +"Un vocabulaire pour décrire de nouveaux formats pixelisés à partir de primitives\n" +"existantes est aussi fournit ainsi que le cadre pour ajouter de nouveaux modèles\n" +"de couleurs et des types de données." + +#: gnu/packages/gimp.scm:118 +msgid "Graph based image processing framework" +msgstr "" + +#: gnu/packages/gimp.scm:119 +msgid "" +"GEGL (Generic Graphics Library) provides infrastructure to\n" +"do demand based cached non destructive image editing on larger than RAM\n" +"buffers." +msgstr "" + +#: gnu/packages/gimp.scm:179 +msgid "GNU Image Manipulation Program" +msgstr "Programme de Manipulation d'Image GNU" + +#: gnu/packages/gimp.scm:181 +msgid "" +"GIMP is an application for image manipulation tasks such as photo\n" +"retouching, composition and authoring. It supports all common image formats\n" +"as well as specialized ones. It features a highly customizable interface\n" +"that is extensible via a plugin system." +msgstr "" + +#: gnu/packages/gimp.scm:229 +msgid "GIMP plug-in to edit image in fourier space" +msgstr "Greffon GIMP pour éditer des images en espace de fourier" + +#: gnu/packages/gimp.scm:231 +msgid "" +"This package provides a simple plug-in to apply the fourier transform on\n" +"an image, allowing you to work with the transformed image inside GIMP. You\n" +"can draw or apply filters in fourier space and get the modified image with an\n" +"inverse fourier transform." +msgstr "" +"Ce paquet fournit un simple greffon pour appliquer la transformée de fourier à une\n" +"image, ce qui vous permet de travailler avec l'image transformée dans GIMP. Vous\n" +"pouvez dessiner ou appliquer des filtres en espace de fourier et récupérer l'image\n" +"modifiée avec n'importe quel transformée de fourier inverse." + +#: gnu/packages/gnome.scm:184 +msgid "CD/DVD burning tool for Gnome" +msgstr "" + +#: gnu/packages/gnome.scm:185 +msgid "" +"Brasero is an application to burn CD/DVD for the Gnome\n" +"Desktop. It is designed to be as simple as possible and has some unique\n" +"features to enable users to create their discs easily and quickly." +msgstr "" + +#: gnu/packages/gnome.scm:232 +msgid "Diagram creation for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:233 +msgid "" +"Dia can be used to draw different types of diagrams, and\n" +"includes support for UML static structure diagrams (class diagrams), entity\n" +"relationship modeling, and network diagrams. The program supports various file\n" +"formats like PNG, SVG, PDF and EPS." +msgstr "" + +#: gnu/packages/gnome.scm:254 +msgid "Bootstrap GNOME modules built from Git" +msgstr "" + +#: gnu/packages/gnome.scm:255 +msgid "" +"gnome-common contains various files needed to bootstrap\n" +"GNOME modules built from Git. It contains a common \"autogen.sh\" script that\n" +"can be used to configure a source directory checked out from Git and some\n" +"commonly used macros." +msgstr "" + +#: gnu/packages/gnome.scm:296 +msgid "Libgnome-desktop, gnome-about, and desktop-wide documents" +msgstr "" + +#: gnu/packages/gnome.scm:298 +msgid "" +"The libgnome-desktop library provides API shared by several applications\n" +"on the desktop, but that cannot live in the platform for various reasons.\n" +"There is no API or ABI guarantee, although we are doing our best to provide\n" +"stability. Documentation for the API is available with gtk-doc.\n" +"\n" +"The gnome-about program helps find which version of GNOME is installed." +msgstr "" + +#: gnu/packages/gnome.scm:331 +msgid "Documentation utilities for the Gnome project" +msgstr "Utilitaires de documentation pour le projet Gnome" + +#: gnu/packages/gnome.scm:333 +msgid "" +"Gnome-doc-utils is a collection of documentation utilities for the\n" +"Gnome project. It includes xml2po tool which makes it easier to translate\n" +"and keep up to date translations of documentation." +msgstr "" + +#: gnu/packages/gnome.scm:371 +msgid "Disk management utility for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:372 +msgid "Disk management utility for GNOME." +msgstr "" + +#: gnu/packages/gnome.scm:414 +msgid "Libraries for displaying certificates and accessing key stores" +msgstr "" + +#: gnu/packages/gnome.scm:416 +msgid "" +"The GCR package contains libraries used for displaying certificates and\n" +"accessing key stores. It also provides the viewer for crypto files on the\n" +"GNOME Desktop." +msgstr "" + +#: gnu/packages/gnome.scm:445 +msgid "Accessing passwords from the GNOME keyring" +msgstr "" + +#: gnu/packages/gnome.scm:447 +msgid "Client library to access passwords from the GNOME keyring." +msgstr "" + +#: gnu/packages/gnome.scm:509 +msgid "Daemon to store passwords and encryption keys" +msgstr "" + +#: gnu/packages/gnome.scm:511 +msgid "" +"gnome-keyring is a program that keeps passwords and other secrets for\n" +"users. It is run as a daemon in the session, similar to ssh-agent, and other\n" +"applications locate it via an environment variable or D-Bus.\n" +"\n" +"The program can manage several keyrings, each with its own master password,\n" +"and there is also a session keyring which is never stored to disk, but\n" +"forgotten when the session ends." +msgstr "" + +#: gnu/packages/gnome.scm:584 +msgid "GNOME's document viewer" +msgstr "" + +#: gnu/packages/gnome.scm:586 +msgid "" +"Evince is a document viewer for multiple document formats. It\n" +"currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal\n" +"of Evince is to replace the multiple document viewers that exist\n" +"on the GNOME Desktop with a single simple application." +msgstr "" + +#: gnu/packages/gnome.scm:615 +msgid "GNOME settings for various desktop components" +msgstr "" + +#: gnu/packages/gnome.scm:617 +msgid "" +"Gsettings-desktop-schemas contains a collection of GSettings schemas\n" +"for settings shared by various components of the GNOME desktop." +msgstr "" + +#: gnu/packages/gnome.scm:651 +msgid "Utility to implement the Freedesktop Icon Naming Specification" +msgstr "" + +#: gnu/packages/gnome.scm:653 +msgid "" +"To help with the transition to the Freedesktop Icon Naming\n" +"Specification, the icon naming utility maps the icon names used by the\n" +"GNOME and KDE desktops to the icon names proposed in the specification." +msgstr "" + +#: gnu/packages/gnome.scm:675 +msgid "Utilities for working with desktop entries" +msgstr "" + +#: gnu/packages/gnome.scm:677 +msgid "" +"This package contains a few command line utilities for working with\n" +"desktop entries:\n" +"\n" +"desktop-file-validate: validates a desktop file and prints warnings/errors\n" +" about desktop entry specification violations.\n" +"\n" +"desktop-file-install: installs a desktop file to the applications directory,\n" +" optionally munging it a bit in transit.\n" +"\n" +"update-desktop-database: updates the database containing a cache of MIME types\n" +" handled by desktop files." +msgstr "" + +#: gnu/packages/gnome.scm:716 +msgid "GNOME icon theme" +msgstr "" + +#: gnu/packages/gnome.scm:718 +msgid "Icons for the GNOME desktop." +msgstr "" + +#: gnu/packages/gnome.scm:755 +msgid "Tango icon theme" +msgstr "" + +#: gnu/packages/gnome.scm:756 +msgid "" +"This is an icon theme that follows the Tango visual\n" +"guidelines." +msgstr "" + +#: gnu/packages/gnome.scm:782 +msgid "Database of common MIME types" +msgstr "" + +#: gnu/packages/gnome.scm:784 +msgid "" +"The shared-mime-info package contains the core database of common types\n" +"and the update-mime-database command used to extend it. It requires glib2 to\n" +"be installed for building the update command. Additionally, it uses intltool\n" +"for translations, though this is only a dependency for the maintainers. This\n" +"database is translated at Transifex." +msgstr "" + +#: gnu/packages/gnome.scm:808 +msgid "Freedesktop icon theme" +msgstr "" + +#: gnu/packages/gnome.scm:810 +msgid "Freedesktop icon theme." +msgstr "" + +#: gnu/packages/gnome.scm:838 +msgid "GNOME desktop notification library" +msgstr "" + +#: gnu/packages/gnome.scm:840 +msgid "" +"Libnotify is a library that sends desktop notifications to a\n" +"notification daemon, as defined in the Desktop Notifications spec. These\n" +"notifications can be used to inform the user about an event or display\n" +"some form of information without getting in the user's way." +msgstr "" + +#: gnu/packages/gnome.scm:872 +msgid "GObject plugin system" +msgstr "" + +#: gnu/packages/gnome.scm:874 +msgid "" +"Libpeas is a gobject-based plugin engine, targeted at giving every\n" +"application the chance to assume its own extensibility. It also has a set of\n" +"features including, but not limited to: multiple extension points; on-demand\n" +"(lazy) programming language support for C, Python and JS; simplicity of the\n" +"API." +msgstr "" + +#: gnu/packages/gnome.scm:903 +msgid "OpenGL extension to GTK+" +msgstr "" + +#: gnu/packages/gnome.scm:904 +msgid "" +"GtkGLExt is an OpenGL extension to GTK+. It provides\n" +"additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget\n" +"API add-ons to make GTK+ widgets OpenGL-capable." +msgstr "" + +#: gnu/packages/gnome.scm:947 +msgid "GTK+ rapid application development tool" +msgstr "" + +#: gnu/packages/gnome.scm:948 +msgid "" +"Glade is a rapid application development (RAD) tool to\n" +"enable quick & easy development of user interfaces for the GTK+ toolkit and\n" +"the GNOME desktop environment." +msgstr "" + +#: gnu/packages/gnome.scm:974 +msgid "CSS2 parsing and manipulation library" +msgstr "" + +#: gnu/packages/gnome.scm:976 +msgid "" +"Libcroco is a standalone CSS2 parsing and manipulation library.\n" +"The parser provides a low level event driven SAC-like API and a CSS object\n" +"model like API. Libcroco provides a CSS2 selection engine and an experimental\n" +"XML/CSS rendering engine." +msgstr "" + +#: gnu/packages/gnome.scm:1022 +msgid "GNOME's Structured File Library" +msgstr "" + +#: gnu/packages/gnome.scm:1024 +msgid "" +"Libgsf aims to provide an efficient extensible I/O abstraction for\n" +"dealing with different structured file formats." +msgstr "" + +#: gnu/packages/gnome.scm:1075 +msgid "Render SVG files using Cairo" +msgstr "" + +#: gnu/packages/gnome.scm:1077 +msgid "" +"Librsvg is a C library to render SVG files using the Cairo 2D graphics\n" +"library." +msgstr "" + +#: gnu/packages/gnome.scm:1101 +msgid "Create trees of CORBA Interface Definition Language files" +msgstr "" + +#: gnu/packages/gnome.scm:1102 +msgid "" +"Libidl is a library for creating trees of CORBA Interface\n" +"Definition Language (idl) files, which is a specification for defining\n" +"portable interfaces. libidl was initially written for orbit (the orb from the\n" +"GNOME project, and the primary means of libidl distribution). However, the\n" +"functionality was designed to be as reusable and portable as possible." +msgstr "" + +#: gnu/packages/gnome.scm:1142 +msgid "CORBA 2.4-compliant Object Request Broker" +msgstr "" + +#: gnu/packages/gnome.scm:1143 +msgid "" +"ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)\n" +"featuring mature C, C++ and Python bindings." +msgstr "" + +#: gnu/packages/gnome.scm:1190 +msgid "Framework for creating reusable components for use in GNOME applications" +msgstr "" + +#: gnu/packages/gnome.scm:1191 +msgid "" +"Bonobo is a framework for creating reusable components for\n" +"use in GNOME applications, built on top of CORBA." +msgstr "" + +#: gnu/packages/gnome.scm:1222 +msgid "Store application preferences" +msgstr "" + +#: gnu/packages/gnome.scm:1223 +msgid "" +"Gconf is a system for storing application preferences. It\n" +"is intended for user preferences; not arbitrary data storage." +msgstr "" + +#: gnu/packages/gnome.scm:1246 +msgid "Base MIME and Application database for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:1247 +msgid "" +"GNOME Mime Data is a module which contains the base MIME\n" +"and Application database for GNOME. The data stored by this module is\n" +"designed to be accessed through the MIME functions in GnomeVFS." +msgstr "" + +#: gnu/packages/gnome.scm:1291 +msgid "Access files and folders in GNOME applications" +msgstr "" + +#: gnu/packages/gnome.scm:1293 +msgid "" +"GnomeVFS is the core library used to access files and folders in GNOME\n" +"applications. It provides a file system abstraction which allows applications\n" +"to access local and remote files with a single consistent API." +msgstr "" + +#: gnu/packages/gnome.scm:1337 +msgid "Useful routines for building applications" +msgstr "" + +#: gnu/packages/gnome.scm:1338 +msgid "" +"The libgnome library provides a number of useful routines\n" +"for building modern applications, including session management, activation of\n" +"files and URIs, and displaying help." +msgstr "" + +#: gnu/packages/gnome.scm:1361 +msgid "2D drawing library" +msgstr "Bibliothèque de dessin 2D" + +#: gnu/packages/gnome.scm:1362 +msgid "" +"Libart is a 2D drawing library intended as a\n" +"high-quality vector-based 2D library with antialiasing and alpha composition." +msgstr "" + +#: gnu/packages/gnome.scm:1389 +msgid "Flexible widget for creating interactive structured graphics" +msgstr "" + +#: gnu/packages/gnome.scm:1390 +msgid "" +"The GnomeCanvas widget provides a flexible widget for\n" +"creating interactive structured graphics." +msgstr "" + +#: gnu/packages/gnome.scm:1414 +msgid "C++ bindings to the GNOME Canvas library" +msgstr "" + +#: gnu/packages/gnome.scm:1415 +msgid "C++ bindings to the GNOME Canvas library." +msgstr "" + +#: gnu/packages/gnome.scm:1446 +msgid "Additional widgets for applications" +msgstr "" + +#: gnu/packages/gnome.scm:1447 +msgid "" +"The libgnomeui library provides additional widgets for\n" +"applications. Many of the widgets from libgnomeui have already been\n" +"ported to GTK+." +msgstr "" + +#: gnu/packages/gnome.scm:1473 +msgid "Load glade interfaces and access the glade built widgets" +msgstr "" + +#: gnu/packages/gnome.scm:1474 +msgid "" +"Libglade is a library that provides interfaces for loading\n" +"graphical interfaces described in glade files and for accessing the\n" +"widgets built in the loading process." +msgstr "" + +#: gnu/packages/gnome.scm:1504 gnu/packages/gnome.scm:1536 +msgid "Printing framework for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:1506 +msgid "" +"GNOME-print was a printing framework for GNOME. It has been deprecated\n" +"since ca. 2006, when GTK+ itself incorporated printing support." +msgstr "" + +#: gnu/packages/gnome.scm:1581 +msgid "Some user interface controls using Bonobo" +msgstr "" + +#: gnu/packages/gnome.scm:1582 +msgid "" +"The Bonobo UI library provides a number of user interface\n" +"controls using the Bonobo component framework." +msgstr "" + +#: gnu/packages/gnome.scm:1606 +msgid "Window Navigator Construction Kit" +msgstr "" + +#: gnu/packages/gnome.scm:1608 +msgid "" +"Libwnck is the Window Navigator Construction Kit, a library for use in\n" +"writing pagers, tasklists, and more generally applications that are dealing\n" +"with window management. It tries hard to respect the Extended Window Manager\n" +"Hints specification (EWMH)." +msgstr "" + +#: gnu/packages/gnome.scm:1661 +msgid "Document-centric objects and utilities" +msgstr "" + +#: gnu/packages/gnome.scm:1662 +msgid "A GLib/GTK+ set of document-centric objects and utilities." +msgstr "" + +#: gnu/packages/gnome.scm:1745 +msgid "Spreadsheet application" +msgstr "" + +#: gnu/packages/gnome.scm:1747 +msgid "" +"GNUmeric is a GNU spreadsheet application, running under GNOME. It is\n" +"interoperable with other spreadsheet applications. It has a vast array of\n" +"features beyond typical spreadsheet functionality, such as support for linear\n" +"and non-linear solvers, statistical analysis, and telecommunication\n" +"engineering." +msgstr "" + +#: gnu/packages/gnome.scm:1787 +msgid "Default GNOME 3 themes" +msgstr "" + +#: gnu/packages/gnome.scm:1789 +msgid "The default GNOME 3 themes (Adwaita and some accessibility themes)." +msgstr "" + +#: gnu/packages/gnome.scm:1822 +msgid "Manage encryption keys and passwords in the GNOME keyring" +msgstr "" + +#: gnu/packages/gnome.scm:1824 +msgid "" +"Seahorse is a GNOME application for managing encryption keys and\n" +"passwords in the GNOME keyring." +msgstr "" + +#: gnu/packages/gnome.scm:1862 gnu/packages/gnome.scm:2102 +msgid "Compiler for the GObject type system" +msgstr "" + +#: gnu/packages/gnome.scm:1864 +msgid "" +"Vala is a programming language that aims to bring modern programming\n" +"language features to GNOME developers without imposing any additional runtime\n" +"requirements and without using a different ABI compared to applications and\n" +"libraries written in C." +msgstr "" + +#: gnu/packages/gnome.scm:1896 +msgid "Virtual Terminal Emulator" +msgstr "" + +#: gnu/packages/gnome.scm:1898 +msgid "" +"VTE is a library (libvte) implementing a terminal emulator widget for\n" +"GTK+, and a minimal sample application (vte) using that. Vte is mainly used in\n" +"gnome-terminal, but can also be used to embed a console/terminal in games,\n" +"editors, IDEs, etc." +msgstr "" + +#: gnu/packages/gnome.scm:1931 +msgid "Enhanced VTE terminal widget" +msgstr "" + +#: gnu/packages/gnome.scm:1933 +msgid "" +"VTE is a library (libvte) implementing a terminal emulator widget for\n" +"GTK+, this fork provides additional functions exposed for keyboard text\n" +"selection and URL hints." +msgstr "" + +#: gnu/packages/gnome.scm:2016 +msgid "Remote desktop viewer for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2017 +msgid "" +"Vinagre is a remote display client supporting the VNC, SPICE\n" +"and RDP protocols." +msgstr "" + +#: gnu/packages/gnome.scm:2069 +msgid "Low-level GNOME configuration system" +msgstr "" + +#: gnu/packages/gnome.scm:2070 +msgid "" +"Dconf is a low-level configuration system. Its main purpose\n" +"is to provide a backend to GSettings on platforms that don't already have\n" +"configuration storage systems." +msgstr "" + +#: gnu/packages/gnome.scm:2104 +msgid "" +"JSON-GLib is a C library based on GLib providing serialization and\n" +"deserialization support for the JavaScript Object Notation (JSON) format\n" +"described by RFC 4627. It provides parser and generator GObject classes and\n" +"various wrappers for the complex data types employed by JSON, such as arrays\n" +"and objects." +msgstr "" + +#: gnu/packages/gnome.scm:2143 +msgid "High-level API for X Keyboard Extension" +msgstr "" + +#: gnu/packages/gnome.scm:2145 +msgid "" +"LibXklavier is a library providing high-level API for X Keyboard\n" +"Extension known as XKB. This library is intended to support XFree86 and other\n" +"commercial X servers. It is useful for creating XKB-related software (layout\n" +"indicators etc)." +msgstr "" + +#: gnu/packages/gnome.scm:2173 +msgid "Python bindings to librsvg" +msgstr "" + +#: gnu/packages/gnome.scm:2175 +msgid "" +"This packages provides Python bindings to librsvg, the SVG rendering\n" +"library." +msgstr "" + +#: gnu/packages/gnome.scm:2224 +msgid "Network-related GIO modules" +msgstr "" + +#: gnu/packages/gnome.scm:2226 +msgid "" +"This package contains various network related extensions for the GIO\n" +"library." +msgstr "" + +#: gnu/packages/gnome.scm:2257 +msgid "RESTful web api query library" +msgstr "" + +#: gnu/packages/gnome.scm:2259 +msgid "" +"This library was designed to make it easier to access web services that\n" +"claim to be \"RESTful\". It includes convenience wrappers for libsoup and\n" +"libxml to ease remote use of the RESTful API." +msgstr "" + +#: gnu/packages/gnome.scm:2328 +msgid "GLib-based HTTP Library" +msgstr "" + +#: gnu/packages/gnome.scm:2330 +msgid "" +"LibSoup is an HTTP client/server library for GNOME. It uses GObjects\n" +"and the GLib main loop, to integrate well with GNOME applications." +msgstr "" + +#: gnu/packages/gnome.scm:2376 +msgid "GObject bindings for \"Secret Service\" API" +msgstr "" + +#: gnu/packages/gnome.scm:2378 +msgid "" +"Libsecret is a GObject based library for storing and retrieving passwords\n" +"and other secrets. It communicates with the \"Secret Service\" using DBus." +msgstr "" + +#: gnu/packages/gnome.scm:2414 +msgid "Minesweeper game" +msgstr "" + +#: gnu/packages/gnome.scm:2416 +msgid "" +"Mines (previously gnomine) is a puzzle game where you locate mines\n" +"floating in an ocean using only your brain and a little bit of luck." +msgstr "" + +#: gnu/packages/gnome.scm:2447 +msgid "Japanese logic game" +msgstr "" + +#: gnu/packages/gnome.scm:2449 +msgid "" +"Sudoku is a Japanese logic game that exploded in popularity in 2005.\n" +"GNOME Sudoku is meant to have an interface as simple and unobstrusive as\n" +"possible while still providing features that make playing difficult Sudoku\n" +"more fun." +msgstr "" + +#: gnu/packages/gnome.scm:2495 +msgid "Terminal emulator" +msgstr "" + +#: gnu/packages/gnome.scm:2497 +msgid "" +"GNOME Terminal is a terminal emulator application for accessing a\n" +"UNIX shell environment which can be used to run programs available on\n" +"your system.\n" +"\n" +"It supports several profiles, multiple tabs and implements several\n" +"keyboard shortcuts." +msgstr "" + +#: gnu/packages/gnome.scm:2563 +msgid "Color management service" +msgstr "" + +#: gnu/packages/gnome.scm:2564 +msgid "" +"Colord is a system service that makes it easy to manage,\n" +"install and generate color profiles to accurately color manage input and\n" +"output devices." +msgstr "" + +#: gnu/packages/gnome.scm:2607 +msgid "Geolocation service" +msgstr "" + +#: gnu/packages/gnome.scm:2608 +msgid "" +"Geoclue is a D-Bus service that provides location\n" +"information. The primary goal of the Geoclue project is to make creating\n" +"location-aware applications as simple as possible, while the secondary goal is\n" +"to ensure that no application can access location information without explicit\n" +"permission from user." +msgstr "" + +#: gnu/packages/gnome.scm:2643 +msgid "Geocoding and reverse-geocoding library" +msgstr "" + +#: gnu/packages/gnome.scm:2645 +msgid "" +"geocode-glib is a convenience library for geocoding (finding longitude,\n" +"and latitude from an address) and reverse geocoding (finding an address from\n" +"coordinates) using the Nominatim service. geocode-glib caches requests for\n" +"faster results and to avoid unnecessary server load." +msgstr "" + +#: gnu/packages/gnome.scm:2698 +msgid "System daemon for managing power devices" +msgstr "" + +#: gnu/packages/gnome.scm:2700 +msgid "" +"UPower is an abstraction for enumerating power devices,\n" +"listening to device events and querying history and statistics. Any\n" +"application or service on the system can access the org.freedesktop.UPower\n" +"service via the system message bus." +msgstr "" + +#: gnu/packages/gnome.scm:2755 +msgid "Location, time zone, and weather library for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2757 +msgid "" +"libgweather is a library to access weather information from online\n" +"services for numerous locations." +msgstr "" + +#: gnu/packages/gnome.scm:2808 +msgid "GNOME settings daemon" +msgstr "" + +#: gnu/packages/gnome.scm:2810 +msgid "" +"This package contains the daemon responsible for setting the various\n" +"parameters of a GNOME session and the applications that run under it. It\n" +"handles settings such keyboard layout, shortcuts, and accessibility, clipboard\n" +"settings, themes, mouse settings, and startup of other daemons." +msgstr "" + +#: gnu/packages/gnome.scm:2847 +msgid "Library to parse and save media playlists for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2848 +msgid "" +"Totem-pl-parser is a GObjects-based library to parse and save\n" +"playlists in a variety of formats." +msgstr "" + +#: gnu/packages/gnome.scm:2882 +msgid "Solitaire card games" +msgstr "" + +#: gnu/packages/gnome.scm:2884 +msgid "" +"Aisleriot (also known as Solitaire or sol) is a collection of card games\n" +"which are easy to play with the aid of a mouse." +msgstr "" + +#: gnu/packages/gnome.scm:2908 +msgid "API documentation browser for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:2910 +msgid "" +"Devhelp is an API documentation browser for GTK+ and GNOME. It works\n" +"natively with GTK-Doc (the API reference system developed for GTK+ and used\n" +"throughout GNOME for API documentation)." +msgstr "" + +#: gnu/packages/gnome.scm:2973 +msgid "Object oriented GL/GLES Abstraction/Utility Layer" +msgstr "" + +#: gnu/packages/gnome.scm:2975 +msgid "" +"Cogl is a small library for using 3D graphics hardware to draw pretty\n" +"pictures. The API departs from the flat state machine style of OpenGL and is\n" +"designed to make it easy to write orthogonal components that can render\n" +"without stepping on each others toes." +msgstr "" + +#: gnu/packages/gnome.scm:3032 +msgid "Open GL based interactive canvas library" +msgstr "" + +#: gnu/packages/gnome.scm:3034 gnu/packages/gnome.scm:3063 +msgid "" +"Clutter is an Open GL based interactive canvas library, designed for\n" +"creating fast, mainly 2D single window applications such as media box UIs,\n" +"presentations, kiosk style applications and so on." +msgstr "" + +#: gnu/packages/gnome.scm:3061 +msgid "Open GL based interactive canvas library GTK+ widget" +msgstr "" + +#: gnu/packages/gnome.scm:3091 +msgid "Integration library for using GStreamer with Clutter" +msgstr "" + +#: gnu/packages/gnome.scm:3093 +msgid "" +"Clutter-Gst is an integration library for using GStreamer with Clutter.\n" +"It provides a GStreamer sink to upload frames to GL and an actor that\n" +"implements the ClutterGstPlayer interface using playbin. Clutter is an Open\n" +"GL based interactive canvas library." +msgstr "" + +#: gnu/packages/gnome.scm:3127 +msgid "C library providing a ClutterActor to display maps" +msgstr "" + +#: gnu/packages/gnome.scm:3129 +msgid "" +"libchamplain is a C library providing a ClutterActor to display maps.\n" +"It also provides a Gtk+ widget to display maps in Gtk+ applications. Python\n" +"and Perl bindings are also available. It supports numerous free map sources\n" +"such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free." +msgstr "" + +#: gnu/packages/gnome.scm:3160 +msgid "Object mapper from GObjects to SQLite" +msgstr "" + +#: gnu/packages/gnome.scm:3162 +msgid "" +"Gom provides an object mapper from GObjects to SQLite. It helps you\n" +"write applications that need to store structured data as well as make complex\n" +"queries upon that data." +msgstr "" + +#: gnu/packages/gnome.scm:3197 +msgid "Useful functionality shared among GNOME games" +msgstr "" + +#: gnu/packages/gnome.scm:3199 +msgid "" +"libgames-support is a small library intended for internal use by\n" +"GNOME Games, but it may be used by others." +msgstr "" + +#: gnu/packages/gnome.scm:3241 +msgid "Sliding block puzzles" +msgstr "" + +#: gnu/packages/gnome.scm:3243 +msgid "" +"GNOME Klotski is a set of block sliding puzzles. The objective is to move\n" +"the patterned block to the area bordered by green markers. To do so, you will\n" +"need to slide other blocks out of the way. Complete each puzzle in as few moves\n" +"as possible!" +msgstr "" + +#: gnu/packages/gnome.scm:3295 +msgid "Framework for discovering and browsing media" +msgstr "" + +#: gnu/packages/gnome.scm:3297 gnu/packages/gnome.scm:3350 +msgid "" +"Grilo is a framework focused on making media discovery and browsing easy\n" +"for application developers." +msgstr "" + +#: gnu/packages/gnome.scm:3348 +msgid "Plugins for the Grilo media discovery library" +msgstr "" + +#: gnu/packages/gnome.scm:3425 +msgid "Simple media player for GNOME based on GStreamer" +msgstr "" + +#: gnu/packages/gnome.scm:3426 +msgid "" +"Totem is a simple yet featureful media player for GNOME\n" +"which can read a large number of file formats." +msgstr "" + +#: gnu/packages/gnome.scm:3516 +msgid "Music player for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:3517 +msgid "" +"Rhythmbox is a music playing application for GNOME. It\n" +"supports playlists, song ratings, and any codecs installed through gstreamer." +msgstr "" + +#: gnu/packages/gnome.scm:3567 +msgid "GNOME image viewer" +msgstr "" + +#: gnu/packages/gnome.scm:3568 +msgid "" +"Eye of GNOME is the GNOME image viewer. It\n" +"supports image conversion, rotation, and slideshows." +msgstr "" + +#: gnu/packages/gnome.scm:3593 +msgid "GObject bindings for libudev" +msgstr "Liaisons GObject pour libudev" + +#: gnu/packages/gnome.scm:3595 +msgid "" +"This library provides GObject bindings for libudev. It was originally\n" +"part of udev-extras, then udev, then systemd. It's now a project on its own." +msgstr "" + +#: gnu/packages/gnome.scm:3643 +msgid "Userspace virtual file system for GIO" +msgstr "" + +#: gnu/packages/gnome.scm:3645 +msgid "" +"GVFS is a userspace virtual file system designed to work with the I/O\n" +"abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support\n" +"to all applications using the GIO API. It also supports exposing the GVFS\n" +"mounts to non-GIO applications using FUSE.\n" +"\n" +"GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,\n" +"DAV, and others." +msgstr "" + +#: gnu/packages/gnome.scm:3691 +msgid "GLib binding for libusb1" +msgstr "Liaisons GLib pour libusb1" + +#: gnu/packages/gnome.scm:3693 +msgid "" +"GUsb is a GObject wrapper for libusb1 that makes it easy to do\n" +"asynchronous control, bulk and interrupt transfers with proper cancellation\n" +"and integration into a mainloop. This makes it easy to integrate low level\n" +"USB transfers with your high-level application or system daemon." +msgstr "" + +#: gnu/packages/gnome.scm:3744 +msgid "Document and image scanner" +msgstr "" + +#: gnu/packages/gnome.scm:3745 +msgid "" +"Simple Scan is an easy-to-use application, designed to let\n" +"users connect their scanner and quickly have the image/document in an\n" +"appropriate format. Simple Scan is basically a frontend for SANE - which is\n" +"the same backend as XSANE uses. This means that all existing scanners will\n" +"work and the interface is well tested." +msgstr "" + +#: gnu/packages/gnome.scm:3793 +msgid "GNOME web browser" +msgstr "" + +#: gnu/packages/gnome.scm:3795 +msgid "" +"Epiphany is a GNOME web browser targeted at non-technical users. Its\n" +"principles are simplicity and standards compliance." +msgstr "" + +#: gnu/packages/gnome.scm:3851 +msgid "D-Bus debugger" +msgstr "" + +#: gnu/packages/gnome.scm:3853 +msgid "" +"D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces\n" +"of running programs and invoke methods on those interfaces." +msgstr "" + +#: gnu/packages/gnome.scm:3875 +msgid "XSL stylesheets for Yelp" +msgstr "" + +#: gnu/packages/gnome.scm:3877 +msgid "" +"Yelp-xsl contains XSL stylesheets that are used by the yelp help browser\n" +"to format Docbook and Mallard documents." +msgstr "" + +#: gnu/packages/gnome.scm:3908 +msgid "GNOME help browser" +msgstr "" + +#: gnu/packages/gnome.scm:3910 +msgid "" +"Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,\n" +"man, info, and HTML documents. It can locate documents according to the\n" +"freedesktop.org help system specification." +msgstr "" + +#: gnu/packages/gnome.scm:3938 +msgid "Yelp documentation tools" +msgstr "" + +#: gnu/packages/gnome.scm:3940 +msgid "" +"Yelp-tools is a collection of scripts and build utilities to help create,\n" +"manage, and publish documentation for Yelp and the web. Most of the heavy\n" +"lifting is done by packages like yelp-xsl and itstool. This package just\n" +"wraps things up in a developer-friendly way." +msgstr "" + +#: gnu/packages/gnome.scm:3977 +msgid "GObject collection library" +msgstr "" + +#: gnu/packages/gnome.scm:3979 +msgid "" +"Libgee is a utility library providing GObject-based interfaces and\n" +"classes for commonly used data structures." +msgstr "" + +#: gnu/packages/gnome.scm:4006 +msgid "GObject wrapper around the Exiv2 photo metadata library" +msgstr "" + +#: gnu/packages/gnome.scm:4008 +msgid "" +"Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It\n" +"allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP\n" +"metadata in photo and video files of various formats." +msgstr "" + +#: gnu/packages/gnome.scm:4051 +msgid "Photo manager for GNOME 3" +msgstr "" + +#: gnu/packages/gnome.scm:4053 +msgid "" +"Shotwell is a digital photo manager designed for the GNOME desktop\n" +"environment. It allows you to import photos from disk or camera, organize\n" +"them by keywords and events, view them in full-window or fullscreen mode, and\n" +"share them with others via social networking and more." +msgstr "" + +#: gnu/packages/gnome.scm:4094 +msgid "Graphical archive manager for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:4095 +msgid "" +"File Roller is an archive manager for the GNOME desktop\n" +"environment that allows users to view, unpack, and create compressed archives\n" +"such as gzip tarballs." +msgstr "" + +#: gnu/packages/gnome.scm:4173 +msgid "Session manager for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:4175 +msgid "" +"This package contains the GNOME session manager, as well as a\n" +"configuration program to choose applications starting on login." +msgstr "" + +#: gnu/packages/gnome.scm:4230 +msgid "Javascript bindings for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:4233 +msgid "" +"Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey\n" +"javascript engine and the GObject introspection framework." +msgstr "" + +#: gnu/packages/gnome.scm:4292 +msgid "GNOME text editor" +msgstr "Éditeur de texte GNOME" + +#: gnu/packages/gnome.scm:4293 +msgid "" +"While aiming at simplicity and ease of use, gedit is a\n" +"powerful general purpose text editor." +msgstr "" + +#: gnu/packages/gnome.scm:4317 +msgid "Display graphical dialog boxes from shell scripts" +msgstr "" + +#: gnu/packages/gnome.scm:4320 +msgid "" +"Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you\n" +"to display dialog boxes from the commandline and shell scripts." +msgstr "" + +#: gnu/packages/gnome.scm:4414 +msgid "Window and compositing manager" +msgstr "" + +#: gnu/packages/gnome.scm:4417 +msgid "" +"Mutter is a window and compositing manager that displays and manages your\n" +"desktop via OpenGL. Mutter combines a sophisticated display engine using the\n" +"Clutter toolkit with solid window-management logic inherited from the Metacity\n" +"window manager." +msgstr "" + +#: gnu/packages/gnome.scm:4452 +msgid "Single sign-on framework for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:4455 +msgid "" +"GNOME Online Accounts provides interfaces so that applications and\n" +"libraries in GNOME can access the user's online accounts. It has providers for\n" +"Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft\n" +"Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos." +msgstr "" + +#: gnu/packages/gnome.scm:4517 +msgid "Store address books and calendars" +msgstr "" + +#: gnu/packages/gnome.scm:4520 +msgid "" +"This package provides a unified backend for programs that work with\n" +"contacts, tasks, and calendar information. It was originally developed for\n" +"Evolution (hence the name), but is now used by other packages as well." +msgstr "" + +#: gnu/packages/gnome.scm:4583 +msgid "Text entry and UI navigation application" +msgstr "" + +#: gnu/packages/gnome.scm:4586 +msgid "" +"Caribou is an input assistive technology intended for switch and pointer\n" +"users." +msgstr "" + +#: gnu/packages/gnome.scm:4699 +msgid "Network connection manager" +msgstr "" + +#: gnu/packages/gnome.scm:4702 +msgid "" +"NetworkManager is a system network service that manages your network\n" +"devices and connections, attempting to keep active network connectivity when\n" +"available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE\n" +"devices, and provides VPN integration with a variety of different VPN\n" +"services." +msgstr "" + +#: gnu/packages/gnome.scm:4727 +msgid "Database of broadband connection configuration" +msgstr "" + +#: gnu/packages/gnome.scm:4728 +msgid "Database of broadband connection configuration." +msgstr "" + +#: gnu/packages/gnome.scm:4763 +msgid "Applet for managing network connections" +msgstr "" + +#: gnu/packages/gnome.scm:4766 +msgid "" +"This package contains a systray applet for NetworkManager. It displays\n" +"the available networks and allows users to easily switch between them." +msgstr "" + +#: gnu/packages/gnome.scm:4791 +msgid "C++ wrapper for XML parser library libxml2" +msgstr "" + +#: gnu/packages/gnome.scm:4793 +msgid "" +"This package provides a C++ wrapper for the XML parser library\n" +"libxml2." +msgstr "" +"Ce paquet fournit une enveloppe C++ autour de la bibliothèque d'analyseur XML\n" +"libxml2." + +#: gnu/packages/gnome.scm:4864 +msgid "Display manager for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:4867 +msgid "" +"GNOME Display Manager is a system service that is responsible for\n" +"providing graphical log-ins and managing local and remote displays." +msgstr "" + +#: gnu/packages/gnome.scm:4891 +msgid "Portable system access library" +msgstr "" + +#: gnu/packages/gnome.scm:4894 +msgid "" +"LibGTop is a library to get system specific data such as CPU and memory\n" +"usage and information about running processes." +msgstr "" + +#: gnu/packages/gnome.scm:4924 +msgid "GNOME Bluetooth subsystem" +msgstr "" + +#: gnu/packages/gnome.scm:4927 +msgid "" +"This package contains tools for managing and manipulating Bluetooth\n" +"devices using the GNOME desktop." +msgstr "" +"Ce paquet contient des outils pour gérer et manipuler des appareils bluetooth\n" +"depuis le bureau GNOME" + +#: gnu/packages/gnome.scm:4993 +msgid "Utilities to configure the GNOME desktop" +msgstr "" + +#: gnu/packages/gnome.scm:4996 +msgid "" +"This package contains configuration applets for the GNOME desktop,\n" +"allowing to set accessibility configuration, desktop fonts, keyboard and mouse\n" +"properties, sound setup, desktop theme and background, user interface\n" +"properties, screen resolution, and other GNOME parameters." +msgstr "" + +#: gnu/packages/gnome.scm:5078 +msgid "Desktop shell for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:5081 +msgid "" +"GNOME Shell provides core user interface functions for the GNOME desktop,\n" +"like switching to windows and launching applications." +msgstr "" + +#: gnu/packages/gnome.scm:5115 +msgid "VNC viewer widget for GTK+" +msgstr "" + +#: gnu/packages/gnome.scm:5117 +msgid "" +"GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing\n" +"applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.\n" +"GTK-VNC implements client side RFB protocol and authentication extensions such\n" +"as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions." +msgstr "" + +#: gnu/packages/gnome.scm:5145 +msgid "Archives integration support for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:5148 +msgid "" +"GNOME Autoar is a library which makes creating and extracting archives\n" +"easy, safe, and automatic." +msgstr "" + +#: gnu/packages/gnome.scm:5199 +msgid "Metadata database, indexer and search tool" +msgstr "" + +#: gnu/packages/gnome.scm:5202 +msgid "" +"Tracker is an advanced framework for first class objects with associated\n" +"metadata and tags. It provides a one stop solution for all metadata, tags,\n" +"shared object databases, search tools and indexing." +msgstr "" + +#: gnu/packages/gnome.scm:5251 +msgid "File manager for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:5254 +msgid "" +"Nautilus (Files) is a file manager designed to fit the GNOME desktop\n" +"design and behaviour, giving the user a simple way to navigate and manage its\n" +"files." +msgstr "" + +#: gnu/packages/gnome.scm:5282 +msgid "Disk usage analyzer for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:5284 +msgid "" +"Baobab (Disk Usage Analyzer) is a graphical application to analyse disk\n" +"usage in the GNOME desktop environment. It can easily scan device volumes or\n" +"a specific user-requested directory branch (local or remote). Once the scan\n" +"is complete it provides a graphical representation of each selected folder." +msgstr "" + +#: gnu/packages/gnome.scm:5308 +msgid "Background images for the GNOME desktop" +msgstr "" + +#: gnu/packages/gnome.scm:5310 +msgid "" +"GNOME backgrounds package contains a collection of graphics files which\n" +"can be used as backgrounds in the GNOME Desktop environment. Additionally,\n" +"the package creates the proper framework and directory structure so that you\n" +"can add your own files to the collection." +msgstr "" + +#: gnu/packages/gnome.scm:5343 +msgid "Take pictures of your screen" +msgstr "" + +#: gnu/packages/gnome.scm:5345 +msgid "" +"GNOME Screenshot is a utility used for taking screenshots of the entire\n" +"screen, a window or a user defined area of the screen, with optional\n" +"beautifying border effects." +msgstr "" + +#: gnu/packages/gnome.scm:5382 +msgid "Graphical editor for GNOME's dconf configuration system" +msgstr "" + +#: gnu/packages/gnome.scm:5384 +msgid "" +"Dconf-editor is a graphical tool for browsing and editing the dconf\n" +"configuration system for GNOME. It allows users to configure desktop\n" +"software that do not provide their own configuration interface." +msgstr "" + +#: gnu/packages/gnome.scm:5429 +msgid "The GNU desktop environment" +msgstr "" + +#: gnu/packages/gnome.scm:5432 +msgid "" +"GNOME is the graphical desktop for GNU. It includes a wide variety of\n" +"applications for browsing the web, editing text and images, creating\n" +"documents and diagrams, playing media, scanning, and much more." +msgstr "" + +#: gnu/packages/gnome.scm:5483 +msgid "Desktop recording program" +msgstr "" + +#: gnu/packages/gnome.scm:5484 +msgid "" +"Byzanz is a simple desktop recording program with a\n" +"command-line interface. It can record part or all of an X display for a\n" +"specified duration and save it as a GIF encoded animated image file." +msgstr "" + +#: gnu/packages/gnome.scm:5512 +msgid "Library for accessing SkyDrive and Hotmail" +msgstr "Bibliothèque pour accéder à SkyDrive et Hotmail" + +#: gnu/packages/gnome.scm:5514 +msgid "" +"Libzapojit is a GLib-based library for accessing online service APIs of\n" +"Microsoft SkyDrive and Hotmail, using their REST protocols." +msgstr "" + +#: gnu/packages/gnome.scm:5541 +msgid "GNOME's calendar application" +msgstr "" + +#: gnu/packages/gnome.scm:5543 +msgid "" +"GNOME Calendar is a simple calendar application designed to fit the GNOME\n" +"desktop. It supports multiple calendars, monthly view and yearly view." +msgstr "" + +#: gnu/packages/gnome.scm:5571 +msgid "Look up words in dictionary sources" +msgstr "" + +#: gnu/packages/gnome.scm:5573 +msgid "" +"GNOME Dictionary can look for the definition or translation of a word in\n" +"existing databases over the internet." +msgstr "" + +#: gnu/packages/gnome.scm:5619 +msgid "Customize advanced GNOME 3 options" +msgstr "" + +#: gnu/packages/gnome.scm:5622 +msgid "" +"GNOME Tweak Tool allows adjusting advanced configuration settings in\n" +"GNOME 3. This includes things like the fonts used in user interface elements,\n" +"alternative user interface themes, changes in window management behavior,\n" +"GNOME Shell appearance and extension, etc." +msgstr "" + +#: gnu/packages/gnome.scm:5649 +msgid "Extensions for GNOME Shell" +msgstr "" + +#: gnu/packages/gnome.scm:5650 +msgid "" +"GNOME Shell extensions modify and extend GNOME Shell\n" +"functionality and behavior." +msgstr "" + +#: gnu/packages/gnome.scm:5680 +msgid "A flat GTK+ theme with transparent elements" +msgstr "" + +#: gnu/packages/gnome.scm:5681 +msgid "" +"Arc is a flat theme with transparent elements for GTK 3, GTK\n" +"2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments\n" +"like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc." +msgstr "" + +#: gnu/packages/gnome.scm:5717 +msgid "Moka icon theme" +msgstr "" + +#: gnu/packages/gnome.scm:5718 +msgid "" +"Moka is a stylized desktop icon set, designed to be clear,\n" +"simple and consistent." +msgstr "" + +#: gnu/packages/gnome.scm:5748 +msgid "Arc icon theme" +msgstr "" + +#: gnu/packages/gnome.scm:5749 +msgid "" +"The Arc icon theme provides a set of icons matching the\n" +"style of the Arc GTK theme. Icons missing from the Arc theme are provided by\n" +"the Moka icon theme." +msgstr "" + +#: gnu/packages/gnome.scm:5781 +msgid "Library to aggregate data about people" +msgstr "" + +#: gnu/packages/gnome.scm:5782 +msgid "" +"Libfolks is a library that aggregates information about people\n" +"from multiple sources (e.g., Telepathy connection managers for IM contacts,\n" +"Evolution Data Server for local contacts, libsocialweb for web service contacts,\n" +"etc.) to create metacontacts. It's written in Vala, which generates C code when\n" +"compiled." +msgstr "" + +#: gnu/packages/gnome.scm:5817 +msgid "GLib/GObject wrapper for the Facebook API" +msgstr "" + +#: gnu/packages/gnome.scm:5818 +msgid "" +"This library allows you to use the Facebook API from\n" +"GLib/GObject code." +msgstr "" + +#: gnu/packages/gnome.scm:5846 +msgid "GNOME keyboard configuration library" +msgstr "" + +#: gnu/packages/gnome.scm:5848 +msgid "" +"Libgnomekbd is a keyboard configuration library for the GNOME desktop\n" +"environment, which can notably display keyboard layouts." +msgstr "" + +#: gnu/packages/gnome.scm:5882 +msgid "Library for writing single instance applications" +msgstr "Bibliothèque pour écrire des applications à instance unique" + +#: gnu/packages/gnome.scm:5884 +msgid "" +"Libunique is a library for writing single instance applications. If you\n" +"launch a single instance application twice, the second instance will either just\n" +"quit or will send a message to the running instance. Libunique makes it easy to\n" +"write this kind of application, by providing a base class, taking care of all\n" +"the IPC machinery needed to send messages to a running instance, and also\n" +"handling the startup notification side." +msgstr "" + +#: gnu/packages/gnome.scm:5916 +msgid "Desktop calculator" +msgstr "" + +#: gnu/packages/gnome.scm:5918 +msgid "" +"Calculator is an application that solves mathematical equations and\n" +"is suitable as a default application in a Desktop environment." +msgstr "" + +#: gnu/packages/gnome.scm:5943 +msgid "Virtual sticky note" +msgstr "" + +#: gnu/packages/gnome.scm:5945 +msgid "" +"Xpad is a sticky note that strives to be simple, fault tolerant,\n" +"and customizable. Xpad consists of independent pad windows, each is\n" +"basically a text box in which notes can be written." +msgstr "" + +#: gnu/packages/gnome.scm:5975 +msgid "Unicode character picker and font browser" +msgstr "" + +#: gnu/packages/gnome.scm:5977 +msgid "" +"This program allows you to browse through all the available Unicode\n" +"characters and categories for the installed fonts, and to examine their\n" +"detailed properties. It is an easy way to find the character you might\n" +"only know by its Unicode name or code point." +msgstr "" + +#: gnu/packages/gnome.scm:6007 +msgid "Web development studio" +msgstr "" + +#: gnu/packages/gnome.scm:6009 +msgid "" +"Bluefish is an editor targeted towards programmers and web developers,\n" +"with many options to write web sites, scripts and other code.\n" +"Bluefish supports many programming and markup languages." +msgstr "" + +#: gnu/packages/gnome.scm:6041 +msgid "Process viewer and system resource monitor for GNOME" +msgstr "" + +#: gnu/packages/gnome.scm:6043 +msgid "" +"GNOME System Monitor is a GNOME process viewer and system monitor with\n" +"an attractive, easy-to-use interface. It has features, such as a tree view\n" +"for process dependencies, icons for processes, the ability to hide processes,\n" +"graphical time histories of CPU/memory/swap usage and the ability to\n" +"kill/reinice processes." +msgstr "" + +#: gnu/packages/gnome.scm:6069 +msgid "Python client bindings for D-Bus AT-SPI" +msgstr "" + +#: gnu/packages/gnome.scm:6073 +msgid "" +"This package includes a python client library for the AT-SPI D-Bus\n" +"accessibility infrastructure." +msgstr "" + +#: gnu/packages/gnome.scm:6132 +msgid "Screen reader for individuals who are blind or visually impaired" +msgstr "" + +#: gnu/packages/gnome.scm:6135 +msgid "" +"Orca is a screen reader that provides access to the graphical desktop\n" +"via speech and refreshable braille. Orca works with applications and toolkits\n" +"that support the Assistive Technology Service Provider Interface (AT-SPI)." +msgstr "" + +#: gnu/packages/gnuzilla.scm:118 +msgid "Mozilla javascript engine" +msgstr "" + +#: gnu/packages/gnuzilla.scm:119 +msgid "" +"SpiderMonkey is Mozilla's JavaScript engine written\n" +"in C/C++." +msgstr "" + +#: gnu/packages/gnuzilla.scm:276 +msgid "Netscape API for system level and libc-like functions" +msgstr "" + +#: gnu/packages/gnuzilla.scm:277 +msgid "" +"Netscape Portable Runtime (NSPR) provides a\n" +"platform-neutral API for system level and libc-like functions. It is used\n" +"in the Mozilla clients." +msgstr "" + +#: gnu/packages/gnuzilla.scm:393 +msgid "Network Security Services" +msgstr "" + +#: gnu/packages/gnuzilla.scm:395 +msgid "" +"Network Security Services (NSS) is a set of libraries designed to support\n" +"cross-platform development of security-enabled client and server applications.\n" +"Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7,\n" +"PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security\n" +"standards." +msgstr "" + +#: gnu/packages/gnuzilla.scm:737 +msgid "Entirely free browser derived from Mozilla Firefox" +msgstr "" + +#: gnu/packages/gnuzilla.scm:739 +msgid "" +"IceCat is the GNU version of the Firefox browser. It is entirely free\n" +"software, which does not recommend non-free plugins and addons. It also\n" +"features built-in privacy-protecting features." +msgstr "" + +#: gnu/packages/gtk.scm:96 +msgid "GNOME accessibility toolkit" +msgstr "" + +#: gnu/packages/gtk.scm:98 +msgid "" +"ATK provides the set of accessibility interfaces that are implemented\n" +"by other toolkits and applications. Using the ATK interfaces, accessibility\n" +"tools have full access to view and control running applications." +msgstr "" + +#: gnu/packages/gtk.scm:138 +msgid "2D graphics library" +msgstr "Bibliothèque graphique 2D" + +#: gnu/packages/gtk.scm:140 +msgid "" +"Cairo is a 2D graphics library with support for multiple output devices.\n" +"Currently supported output targets include the X Window System (via both\n" +"Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file\n" +"output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.\n" +"\n" +"Cairo is designed to produce consistent output on all output media while\n" +"taking advantage of display hardware acceleration when available\n" +"eg. through the X Render Extension).\n" +"\n" +"The cairo API provides operations similar to the drawing operators of\n" +"PostScript and PDF. Operations in cairo including stroking and filling cubic\n" +"Bézier splines, transforming and compositing translucent images, and\n" +"antialiased text rendering. All drawing operations can be transformed by any\n" +"affine transformation (scale, rotation, shear, etc.)." +msgstr "" + +#: gnu/packages/gtk.scm:168 +msgid "2D graphics library (with X11 support)" +msgstr "" + +#: gnu/packages/gtk.scm:201 +msgid "OpenType text shaping engine" +msgstr "" + +#: gnu/packages/gtk.scm:203 +msgid "HarfBuzz is an OpenType text shaping engine." +msgstr "" + +#: gnu/packages/gtk.scm:234 +msgid "GNOME text and font handling library" +msgstr "" + +#: gnu/packages/gtk.scm:236 +msgid "" +"Pango is the core text and font handling library used in GNOME\n" +"applications. It has extensive support for the different writing systems\n" +"used throughout the world." +msgstr "" + +#: gnu/packages/gtk.scm:262 +msgid "Obsolete pango functions" +msgstr "" + +#: gnu/packages/gtk.scm:263 +msgid "" +"Pangox was a X backend to pango. It is now obsolete and no\n" +"longer provided by recent pango releases. pangox-compat provides the\n" +"functions which were removed." +msgstr "" + +#: gnu/packages/gtk.scm:299 +msgid "GTK+ widget for interactive graph-like environments" +msgstr "" + +#: gnu/packages/gtk.scm:301 +msgid "" +"Ganv is an interactive GTK+ widget for interactive “boxes and lines” or\n" +"graph-like environments, e.g. modular synths or finite state machine\n" +"diagrams." +msgstr "" + +#: gnu/packages/gtk.scm:369 +msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget" +msgstr "" + +#: gnu/packages/gtk.scm:371 +msgid "" +"GtkSourceView is a portable C library that extends the standard GTK+\n" +"framework for multiline text editing with support for configurable syntax\n" +"highlighting, unlimited undo/redo, search and replace, a completion framework,\n" +"printing and other features typical of a source code editor." +msgstr "" + +#: gnu/packages/gtk.scm:420 +msgid "GNOME source code widget" +msgstr "" + +#: gnu/packages/gtk.scm:421 +msgid "" +"GtkSourceView is a text widget that extends the standard\n" +"GTK+ text widget GtkTextView. It improves GtkTextView by implementing syntax\n" +"highlighting and other features typical of a source code editor." +msgstr "" + +#: gnu/packages/gtk.scm:472 +msgid "GNOME image loading and manipulation library" +msgstr "" + +#: gnu/packages/gtk.scm:474 +msgid "" +"GdkPixbuf is a library for image loading and manipulation developed\n" +"in the GNOME project." +msgstr "" + +#: gnu/packages/gtk.scm:506 +msgid "GNOME image loading and manipulation library, with SVG support" +msgstr "" + +#: gnu/packages/gtk.scm:546 +msgid "Assistive Technology Service Provider Interface, core components" +msgstr "" -#: gnu/packages/guile.scm:100 gnu/packages/guile.scm:163 +#: gnu/packages/gtk.scm:548 +msgid "" +"The Assistive Technology Service Provider Interface, core components,\n" +"is part of the GNOME accessibility project." +msgstr "" + +#: gnu/packages/gtk.scm:581 +msgid "Assistive Technology Service Provider Interface, ATK bindings" +msgstr "" + +#: gnu/packages/gtk.scm:583 +msgid "" +"The Assistive Technology Service Provider Interface\n" +"is part of the GNOME accessibility project." +msgstr "" + +#: gnu/packages/gtk.scm:642 +msgid "Cross-platform toolkit for creating graphical user interfaces" +msgstr "" + +#: gnu/packages/gtk.scm:644 +msgid "" +"GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating\n" +"graphical user interfaces. Offering a complete set of widgets, GTK+ is\n" +"suitable for projects ranging from small one-off tools to complete\n" +"application suites." +msgstr "" + +#: gnu/packages/gtk.scm:795 +msgid "Cairo bindings for GNU Guile" +msgstr "Liaisons Cairo pour GNU Guile" + +#: gnu/packages/gtk.scm:797 +msgid "" +"Guile-Cairo wraps the Cairo graphics library for Guile Scheme.\n" +"Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API\n" +"stable, providing a firm base on which to do graphics work. Finally, and\n" +"importantly, it is pleasant to use. You get a powerful and well-maintained\n" +"graphics library with all of the benefits of Scheme: memory management,\n" +"exceptions, macros, and a dynamic programming environment." +msgstr "" + +#: gnu/packages/gtk.scm:837 +msgid "Render SVG images using Cairo from Guile" +msgstr "" + +#: gnu/packages/gtk.scm:839 +msgid "" +"Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG\n" +"images onto Cairo surfaces." +msgstr "" + +#: gnu/packages/gtk.scm:883 +msgid "Create SVG or PDF presentations in Guile" +msgstr "Création de SVG et de présentations PDF en Guile" + +#: gnu/packages/gtk.scm:885 +msgid "" +"Guile-Present defines a declarative vocabulary for presentations,\n" +"together with tools to render presentation documents as SVG or PDF.\n" +"Guile-Present can be used to make presentations programmatically, but also\n" +"includes a tools to generate PDF presentations out of Org mode and Texinfo\n" +"documents." +msgstr "" + +#: gnu/packages/gtk.scm:939 +msgid "Guile interface for GTK+ programming for GNOME" +msgstr "" + +#: gnu/packages/gtk.scm:941 +msgid "" +"Includes guile-clutter, guile-gnome-gstreamer,\n" +"guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview." +msgstr "" + +#: gnu/packages/gtk.scm:972 +msgid "C++ bindings to the Cairo 2D graphics library" +msgstr "" + +#: gnu/packages/gtk.scm:974 +msgid "" +"Cairomm provides a C++ programming interface to the Cairo 2D graphics\n" +"library." +msgstr "" + +#: gnu/packages/gtk.scm:998 +msgid "C++ interface to the Pango text rendering library" +msgstr "" + +#: gnu/packages/gtk.scm:1000 +msgid "" +"Pangomm provides a C++ programming interface to the Pango text rendering\n" +"library." +msgstr "" + +#: gnu/packages/gtk.scm:1021 +msgid "C++ interface to the ATK accessibility library" +msgstr "" + +#: gnu/packages/gtk.scm:1023 +msgid "" +"ATKmm provides a C++ programming interface to the ATK accessibility\n" +"toolkit." +msgstr "" + +#: gnu/packages/gtk.scm:1063 +msgid "C++ interface to the GTK+ graphical user interface library" +msgstr "" + +#: gnu/packages/gtk.scm:1065 +msgid "" +"gtkmm is the official C++ interface for the popular GUI library GTK+.\n" +"Highlights include typesafe callbacks, and a comprehensive set of widgets that\n" +"are easily extensible via inheritance. You can create user interfaces either\n" +"in code or with the Glade User Interface designer, using libglademm. There's\n" +"extensive documentation, including API reference and a tutorial." +msgstr "" + +#: gnu/packages/gtk.scm:1124 +msgid "Python bindings for cairo" +msgstr "" + +#: gnu/packages/gtk.scm:1126 +msgid "Pycairo is a set of Python bindings for the Cairo graphics library." +msgstr "" + +#: gnu/packages/gtk.scm:1210 +msgid "Python bindings for GTK+" +msgstr "" + +#: gnu/packages/gtk.scm:1212 +msgid "" +"PyGTK allows you to write full featured GTK programs in Python. It is\n" +"targeted at GTK 2.x, and can be used in conjunction with gnome-python to\n" +"write GNOME applications." +msgstr "" + +#: gnu/packages/gtk.scm:1243 +msgid "Library for minimalistic gtk+3 user interfaces" +msgstr "" + +#: gnu/packages/gtk.scm:1244 +msgid "" +"Girara is a library that implements a user interface that\n" +"focuses on simplicity and minimalism. Currently based on GTK+, a\n" +"cross-platform widget toolkit, it provides an interface that focuses on three\n" +"main components: a so-called view widget that represents the actual\n" +"application, an input bar that is used to execute commands of the\n" +"application and the status bar which provides the user with current\n" +"information." +msgstr "" + +#: gnu/packages/gtk.scm:1306 +msgid "Documentation generator from C source code" +msgstr "" + +#: gnu/packages/gtk.scm:1308 +msgid "" +"GTK-Doc generates API documentation from comments added to C code. It is\n" +"typically used to document the public API of GTK+ and GNOME libraries, but it\n" +"can also be used to document application code." +msgstr "" + +#: gnu/packages/gtk.scm:1336 +msgid "Theming engines for GTK+ 2.x" +msgstr "" + +#: gnu/packages/gtk.scm:1338 +msgid "" +"This package contains the standard GTK+ 2.x theming engines including\n" +"Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,\n" +"Redmond95 and ThinIce." +msgstr "" + +#: gnu/packages/gtk.scm:1366 +msgid "Cairo-based theming engine for GTK+ 2.x" +msgstr "" + +#: gnu/packages/gtk.scm:1368 +msgid "" +"Murrine is a cairo-based GTK+ theming engine. It is named after the\n" +"glass artworks done by Venicians glass blowers." +msgstr "" + +#: gnu/packages/gtk.scm:1393 +msgid "Spell-checking addon for GTK's TextView widget" +msgstr "" + +#: gnu/packages/gtk.scm:1395 +msgid "" +"GtkSpell provides word-processor-style highlighting and replacement of\n" +"misspelled words in a GtkTextView widget." +msgstr "" + +#: gnu/packages/gtk.scm:1418 +msgid "Lightweight GTK+ clipboard manager" +msgstr "" + +#: gnu/packages/gtk.scm:1420 +msgid "" +"ClipIt is a clipboard manager with features such as a history, search\n" +"thereof, global hotkeys and clipboard item actions. It was forked from\n" +"Parcellite and adds bugfixes and features." +msgstr "" + +#: gnu/packages/gtk.scm:1457 +msgid "Thin layer of graphic data types" +msgstr "" + +#: gnu/packages/gtk.scm:1458 +msgid "" +"This library provides graphic types and their relative API;\n" +"it does not deal with windowing system surfaces, drawing, scene graphs, or\n" +"input." +msgstr "" + +#: gnu/packages/guile.scm:130 gnu/packages/guile.scm:205 msgid "Scheme implementation intended especially for extensions" msgstr "Implantation de Scheme spécialement destinée aux extensions" -#: gnu/packages/guile.scm:102 gnu/packages/guile.scm:165 +#: gnu/packages/guile.scm:132 gnu/packages/guile.scm:207 msgid "" "Guile is the GNU Ubiquitous Intelligent Language for Extensions, the\n" "official extension language of the GNU system. It is an implementation of\n" @@ -600,11 +5740,45 @@ msgstr "" "Scheme qui peut être facilement incluse dans d'autres applications pour faciliter\n" "l'ajout de fonctionnalités sans avoir à réécrire le code source." -#: gnu/packages/guile.scm:208 +#: gnu/packages/guile.scm:366 +msgid "Package manager for Guile" +msgstr "" + +#: gnu/packages/guile.scm:368 +msgid "" +"Guildhall is a package manager written for Guile Scheme. A guild is\n" +"an association of independent craftspeople. A guildhall is where they meet.\n" +"This Guildhall aims to make a virtual space for Guile wizards and journeyfolk\n" +"to share code.\n" +"\n" +"On a practical level, Guildhall lets you share Scheme modules and programs\n" +"over the internet, and install code that has been shared by others. Guildhall\n" +"can handle dependencies, so when a program requires several libraries, and\n" +"each of those has further dependencies, all of the prerequisites for the\n" +"program can be installed in one go." +msgstr "" + +#: gnu/packages/guile.scm:425 +msgid "Web application framework written in Guile" +msgstr "" + +#: gnu/packages/guile.scm:426 +msgid "" +"GNU Artanis is a web application framework written in Guile\n" +"Scheme. A web application framework (WAF) is a software framework that is\n" +"designed to support the development of dynamic websites, web applications, web\n" +"services and web resources. The framework aims to alleviate the overhead\n" +"associated with common activities performed in web development. Artanis\n" +"provides several tools for web development: database access, templating\n" +"frameworks, session management, URL-remapping for RESTful, page caching, and\n" +"more." +msgstr "" + +#: gnu/packages/guile.scm:452 msgid "Framework for building readers for GNU Guile" msgstr "Framework pour la construction de lecteurs GNU Guile" -#: gnu/packages/guile.scm:210 +#: gnu/packages/guile.scm:454 msgid "" "Guile-Reader is a simple framework for building readers for GNU Guile.\n" "\n" @@ -628,21 +5802,21 @@ msgstr "" "plus puissante et plus flexible (il est par exemple possible d'instancier autant\n" "de lecteurs que nécessaires)." -#: gnu/packages/guile.scm:263 +#: gnu/packages/guile.scm:508 msgid "Guile bindings to ncurses" msgstr "Bindings Guile pour ncurses" -#: gnu/packages/guile.scm:265 +#: gnu/packages/guile.scm:510 msgid "" "guile-ncurses provides Guile language bindings for the ncurses\n" "library." msgstr "guile-ncurses fournit un binding Guile pour la biliothèque ncurses." -#: gnu/packages/guile.scm:285 +#: gnu/packages/guile.scm:530 msgid "Run jobs at scheduled times" msgstr "Plannification de tâches" -#: gnu/packages/guile.scm:287 +#: gnu/packages/guile.scm:532 msgid "" "GNU Mcron is a complete replacement for Vixie cron. It is used to run\n" "tasks on a schedule, such as every hour or every Monday. Mcron is written in\n" @@ -654,11 +5828,23 @@ msgstr "" "Mcron est écrit en Guile et peut donc être configuré en Scheme ; le format cron\n" "original est aussi supporté." -#: gnu/packages/guile.scm:315 +#: gnu/packages/guile.scm:619 +msgid "Guile parser library for the iCalendar format" +msgstr "" + +#: gnu/packages/guile.scm:621 +msgid "" +"Guile-ICS is an iCalendar (RFC5545) format parser library written in\n" +"pure Scheme. The library can be used to read and write iCalendar data.\n" +"\n" +"The library is shipped with documentation in Info format and usage examples." +msgstr "" + +#: gnu/packages/guile.scm:656 msgid "Collection of useful Guile Scheme modules" msgstr "Collection de modules Scheme utiles pour Guile" -#: gnu/packages/guile.scm:317 +#: gnu/packages/guile.scm:658 msgid "" "Guile-Lib is intended as an accumulation place for pure-scheme Guile\n" "modules, allowing for people to cooperate integrating their generic Guile\n" @@ -669,44 +5855,858 @@ msgstr "" "aux utilisateurs d'intégrer leurs modules Guile au sein d'une bilbiothéque commune\n" "et cohérente. Voyez Guile-Lib comme une version plus simple de CPAN limitée à Guile." -#: gnu/packages/guile.scm:348 +#: gnu/packages/guile.scm:696 msgid "JSON module for Guile" msgstr "Module JSON pour Guile" -#: gnu/packages/guile.scm:350 +#: gnu/packages/guile.scm:698 msgid "" -"Guile-json supports parsing and building JSON documents according to the\n" -"http:://json.org specification. These are the main features:\n" -"- Strictly complies to http://json.org specification.\n" -"- Build JSON documents programmatically via macros.\n" -"- Unicode support for strings.\n" -"- Allows JSON pretty printing." +"Guile-JSON supports parsing and building JSON documents according to the\n" +"specification. These are the main features:\n" +"\n" +"@itemize\n" +"@item Strictly complies to @uref{http://json.org, specification}.\n" +"@item Build JSON documents programmatically via macros.\n" +"@item Unicode support for strings.\n" +"@item Allows JSON pretty printing.\n" +"@end itemize\n" msgstr "" "Guile-json supporte l'analyse et la construction de documents JSON respectant\n" -"la spécification http:://json.org . Les principales fonctionnalitées proposées\n" +"la spécification. Les principales fonctionnalitées proposées\n" "sont les suivantes :\n" -"- stricte conformité à la spécification http://json.org ;\n" -"- création de documents JSON par programmation via macros ;\n" -"- support d'unicode pour les chaines de caractère ;\n" -"- formatage élégant." +"@itemize\n" +"@item stricte conformité à la spécification http://json.org ;\n" +"@item création de documents JSON par programmation via macros ;\n" +"@item support d'unicode pour les chaines de caractère ;\n" +"@item formatage élégant.\n" +"@end itemize\n" + +#: gnu/packages/guile.scm:782 +msgid "MiniKanren declarative logic system, packaged for Guile" +msgstr "" + +#: gnu/packages/guile.scm:784 +msgid "" +"MiniKanren is a relational programming extension to the Scheme\n" +"programming Language, written as a smaller version of Kanren suitable for\n" +"pedagogical purposes. It is featured in the book, The Reasoned Schemer,\n" +"written by Dan Friedman, William Byrd, and Oleg Kiselyov.\n" +"\n" +"This is Ian Price's r6rs packaged version of miniKanren, which deviates\n" +"slightly from miniKanren mainline.\n" +"\n" +"See http://minikanren.org/ for more on miniKanren generally." +msgstr "" + +#: gnu/packages/guile.scm:855 +msgid "" +"Minimal implementation of incremental computation in Guile\n" +"Scheme" +msgstr "" + +#: gnu/packages/guile.scm:857 +msgid "" +"This package provides a complete Scheme implementation of\n" +"miniAdapton, which implements the core functionality of the Adapton system for\n" +"incremental computation (also known as self-adjusting computation). Like\n" +"Adapton, miniAdapton allows programmers to safely combine mutation and\n" +"memoization. miniAdapton is built on top of an even simpler system,\n" +"microAdapton. Both miniAdapton and microAdapton are designed to be easy to\n" +"understand, extend, and port to host languages other than Scheme." +msgstr "" + +#: gnu/packages/guile.scm:941 +msgid "S-expression based regular expressions" +msgstr "" + +#: gnu/packages/guile.scm:943 +msgid "" +"Irregex is an s-expression based alternative to your classic\n" +"string-based regular expressions. It implements SRFI 115 and is deeply\n" +"inspired by the SCSH regular expression system." +msgstr "" + +#: gnu/packages/guile.scm:1024 +msgid "Guile bindings to the GDBM library via Guile's FFI" +msgstr "" + +#: gnu/packages/guile.scm:1026 +msgid "" +"Guile bindings to the GDBM key-value storage system, using\n" +"Guile's foreign function interface." +msgstr "" + +#: gnu/packages/guile.scm:1079 +msgid "Access SQLite databases from Guile" +msgstr "" + +#: gnu/packages/guile.scm:1081 +msgid "This package provides Guile bindings to the SQLite database system." +msgstr "Ce paquet fournit les liaisons Guile pour le système de base de données SQLite" + +#: gnu/packages/guile.scm:1126 +msgid "Functional static site generator" +msgstr "" + +#: gnu/packages/guile.scm:1127 +msgid "" +"Haunt is a static site generator written in Guile\n" +"Scheme. Haunt features a functional build system and an extensible\n" +"interface for reading articles in any format." +msgstr "" + +#: gnu/packages/guile.scm:1154 +msgid "Guile application configuration parsing library" +msgstr "" + +#: gnu/packages/guile.scm:1156 +msgid "" +"Guile Config is a library providing a declarative approach to\n" +"application configuration specification. The library provides clean\n" +"configuration declaration forms, and processors that take care of:\n" +"configuration file creation; configuration file parsing; command-line\n" +"parameter parsing using getopt-long; basic GNU command-line parameter\n" +"generation (--help, --usage, --version); automatic output generation for the\n" +"above command-line parameters." +msgstr "" + +#: gnu/packages/guile.scm:1194 +msgid "Redis client library for Guile" +msgstr "" + +#: gnu/packages/guile.scm:1195 +msgid "" +"Guile-redis provides a Scheme interface to the Redis\n" +"key-value cache and store." +msgstr "" + +#: gnu/packages/guile.scm:1272 +msgid "Whitespace to lisp syntax for Guile" +msgstr "" + +#: gnu/packages/guile.scm:1273 +msgid "" +"Wisp is a syntax for Guile which provides a Python-like\n" +"whitespace-significant language. It may be easier on the eyes for some\n" +"users and in some situations." +msgstr "" + +#: gnu/packages/guile.scm:1306 +msgid "2D/3D game engine for GNU Guile" +msgstr "" + +#: gnu/packages/guile.scm:1307 +msgid "" +"Sly is a 2D/3D game engine written in Guile Scheme. Sly\n" +"features a functional reactive programming interface and live coding\n" +"capabilities." +msgstr "" + +#: gnu/packages/guile.scm:1342 +msgid "Generate C bindings for Guile" +msgstr "Génère des liaisons C pour Guile" + +#: gnu/packages/guile.scm:1343 +msgid "" +"G-Wrap is a tool and Guile library for generating function\n" +"wrappers for inter-language calls. It currently only supports generating Guile\n" +"wrappers for C functions. Given a definition of the types and prototypes for\n" +"a given C interface, G-Wrap will automatically generate the C code that\n" +"provides access to that interface and its types from the Scheme level." +msgstr "" + +#: gnu/packages/guile.scm:1380 +msgid "Guile database abstraction layer" +msgstr "Couche d'abstraction de base de données pour Guile" + +#: gnu/packages/guile.scm:1383 +msgid "" +"guile-dbi is a library for Guile that provides a convenient interface to\n" +"SQL databases. Database programming with guile-dbi is generic in that the same\n" +"programming interface is presented regardless of which database system is used.\n" +"It currently supports MySQL, Postgres and SQLite3." +msgstr "" + +#: gnu/packages/guile.scm:1409 +msgid "Guile DBI driver for SQLite" +msgstr "" + +#: gnu/packages/guile.scm:1412 +msgid "" +"guile-dbi is a library for Guile that provides a convenient interface to\n" +"SQL databases. This package implements the interface for SQLite." +msgstr "" + +#: gnu/packages/guile.scm:1438 +msgid "XOSD bindings for Guile" +msgstr "" + +#: gnu/packages/guile.scm:1440 +msgid "" +"Guile-XOSD provides Guile bindings for @code{libxosd},\n" +"@uref{http://sourceforge.net/projects/libxosd/, the X On Screen Display\n" +"library}." +msgstr "" + +#: gnu/packages/guile.scm:1463 +msgid "Evaluate code in a running Guile process" +msgstr "" + +#: gnu/packages/guile.scm:1465 +msgid "" +"Guile-Daemon is a small Guile program that loads your initial\n" +"configuration file, and then reads and evaluates Guile expressions that\n" +"you send to a FIFO file." +msgstr "" + +#: gnu/packages/guile.scm:1496 +msgid "CommonMark parser for Guile" +msgstr "" + +#: gnu/packages/guile.scm:1498 +msgid "" +"guile-commonmark is a library for parsing CommonMark, a fully specified\n" +"variant of Markdown. The library is written in Guile Scheme and is designed\n" +"to transform a CommonMark document to SXML. guile-commonmark tries to closely\n" +"follow the @uref{http://commonmark.org/, CommonMark spec}, the main difference\n" +"is no support for parsing block and inline level HTML." +msgstr "" + +#: gnu/packages/guile.scm:1584 +msgid "Structured access to bytevector contents for Guile" +msgstr "" + +#: gnu/packages/guile.scm:1586 +msgid "" +"Guile bytestructures offers a system imitating the type system\n" +"of the C programming language, to be used on bytevectors. C's type\n" +"system works on raw memory, and Guile works on bytevectors which are\n" +"an abstraction over raw memory. It's also more powerful than the C\n" +"type system, elevating types to first-class status." +msgstr "" + +#: gnu/packages/guile.scm:1627 +msgid "Spell-checking from Guile" +msgstr "" + +#: gnu/packages/guile.scm:1629 +msgid "" +"guile-aspell is a Guile Scheme library for comparing a string against a\n" +"dictionary and suggesting spelling corrections." +msgstr "" + +#: gnu/packages/guile.scm:1679 +msgid "Extend Bash using Guile" +msgstr "" + +#: gnu/packages/guile.scm:1681 +#, scheme-format +msgid "" +"Guile-Bash provides a shared library and set of Guile modules,\n" +"allowing you to extend Bash in Scheme. Scheme interfaces allow you to access\n" +"the following aspects of Bash:\n" +"\n" +"@itemize\n" +"@item aliases;\n" +"@item setting and getting Bash variables;\n" +"@item creating dynamic variables;\n" +"@item creating Bash functions with a Scheme implementation;\n" +"@item reader macro for output capturing;\n" +"@item reader macro for evaluating raw Bash commands.\n" +"@end itemize\n" +"\n" +"To enable it, run:\n" +"\n" +"@example\n" +"enable -f ~/.guix-profile/lib/bash/libguile-bash.so scm\n" +"@end example\n" +"\n" +"and then run @command{scm example.scm}." +msgstr "" + +#: gnu/packages/guile.scm:1728 +msgid "Asynchronous actor model library for Guile" +msgstr "" + +#: gnu/packages/guile.scm:1730 +msgid "" +"GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming\n" +"library for GNU Guile based on the actor model.\n" +"\n" +"Note that 8sync is only available for Guile 2.2." +msgstr "" + +#: gnu/packages/guile.scm:1753 +msgid "Lightweight concurrency facility for Guile" +msgstr "" + +#: gnu/packages/guile.scm:1755 +msgid "" +"Fibers is a Guile library that implements a a lightweight concurrency\n" +"facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is\n" +"like a \"goroutine\" from the Go language: a lightweight thread-like\n" +"abstraction. Systems built with Fibers can scale up to millions of concurrent\n" +"fibers, tens of thousands of concurrent socket connections, and many parallel\n" +"cores. The Fibers library also provides Concurrent ML-like channels for\n" +"communication between fibers.\n" +"\n" +"Note that Fibers makes use of some Guile 2.1/2.2-specific features and\n" +"is not available for Guile 2.0." +msgstr "" + +#: gnu/packages/guile.scm:1797 +msgid "Guile bindings for libgit2" +msgstr "Liaisons Guile pour libgit2" + +#: gnu/packages/guile.scm:1799 +msgid "" +"This package provides Guile bindings to libgit2, a library to\n" +"manipulate repositories of the Git version control system." +msgstr "" + +#: gnu/packages/guile.scm:1830 +msgid "General-purpose syntax highlighter for GNU Guile" +msgstr "" + +#: gnu/packages/guile.scm:1831 +msgid "" +"Guile-syntax-highlight is a general-purpose syntax\n" +"highlighting library for GNU Guile. It can parse code written in various\n" +"programming languages into a simple s-expression that can be converted to\n" +"HTML (via SXML) or any other format for rendering." +msgstr "" + +#: gnu/packages/guile.scm:1862 +msgid "S-expression based json reader/writer for Guile" +msgstr "" + +#: gnu/packages/guile.scm:1863 +msgid "" +"guile-sjson is a json reader/writer for Guile.\n" +"It has a nice, simple s-expression based syntax." +msgstr "" + +#: gnu/packages/imagemagick.scm:109 gnu/packages/imagemagick.scm:214 +msgid "Create, edit, compose, or convert bitmap images" +msgstr "" + +#: gnu/packages/imagemagick.scm:111 +msgid "" +"ImageMagick is a software suite to create, edit, compose, or convert\n" +"bitmap images. It can read and write images in a variety of formats (over 100)\n" +"including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG,\n" +"and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and\n" +"transform images, adjust image colors, apply various special effects, or draw\n" +"text, lines, polygons, ellipses and Bézier curves." +msgstr "" + +#: gnu/packages/imagemagick.scm:156 +msgid "Perl interface to ImageMagick" +msgstr "" + +#: gnu/packages/imagemagick.scm:157 +msgid "" +"This Perl extension allows the reading, manipulation and\n" +"writing of a large number of image file formats using the ImageMagick library.\n" +"Use it to create, edit, compose, or convert bitmap images from within a Perl\n" +"script." +msgstr "" + +#: gnu/packages/imagemagick.scm:216 +msgid "" +"GraphicsMagick provides a comprehensive collection of utilities,\n" +"programming interfaces, and GUIs, to support file format conversion, image\n" +"processing, and 2D vector rendering." +msgstr "" + +#: gnu/packages/image.scm:88 +msgid "Library for handling PNG files" +msgstr "Bibliothèque pour manipuler des fichiers PNG" + +#: gnu/packages/image.scm:90 +msgid "" +"Libpng is the official PNG (Portable Network Graphics) reference\n" +"library. It supports almost all PNG features and is extensible." +msgstr "" + +#: gnu/packages/image.scm:134 +msgid "APNG patch for libpng" +msgstr "" + +#: gnu/packages/image.scm:136 +msgid "" +"APNG (Animated Portable Network Graphics) is an unofficial\n" +"extension of the APNG (Portable Network Graphics) format.\n" +"APNG patch provides APNG support to libpng." +msgstr "" + +#: gnu/packages/image.scm:189 +msgid "Utility to compress PNG files" +msgstr "" + +#: gnu/packages/image.scm:190 +msgid "" +"pngcrusqh is an optimizer for PNG (Portable Network Graphics)\n" +"files. It can compress them as much as 40% losslessly." +msgstr "" + +#: gnu/packages/image.scm:205 +msgid "Library for handling JPEG files" +msgstr "Bibliothèque de manipulation des fichiers JPEG" + +#: gnu/packages/image.scm:207 +msgid "" +"Libjpeg implements JPEG image encoding, decoding, and transcoding.\n" +"JPEG is a standardized compression method for full-color and gray-scale\n" +"images.\n" +"The included programs provide conversion between the JPEG format and\n" +"image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats." +msgstr "" + +#: gnu/packages/image.scm:272 +msgid "Implementation of the JPEG XR standard" +msgstr "Implémentation du standard JPEG XR" + +#: gnu/packages/image.scm:273 +msgid "" +"JPEG XR is an approved ISO/IEC International standard (its\n" +"official designation is ISO/IEC 29199-2). This library is an implementation of that standard." +msgstr "" + +#: gnu/packages/image.scm:296 +msgid "Optimize JPEG images" +msgstr "" + +#: gnu/packages/image.scm:298 +msgid "" +"jpegoptim provides lossless optimization (based on optimizing\n" +"the Huffman tables) and \"lossy\" optimization based on setting\n" +"maximum quality factor." +msgstr "" + +#: gnu/packages/image.scm:323 +msgid "Library for handling Mac OS icns resource files" +msgstr "Bibliothèque de manipulation des fichiers de resources d'icones Mac OS" + +#: gnu/packages/image.scm:325 +msgid "" +"Libicns is a library for the manipulation of Mac OS IconFamily resource\n" +"type files (ICNS). @command{icns2png} and @command{png2icns} are provided to\n" +"convert between PNG and ICNS. @command{icns2png} will extract image files from\n" +"ICNS files under names like \"Foo_48x48x32.png\" useful for installing for use\n" +"with .desktop files. Additionally, @command{icontainer2png} is provided for\n" +"extracting icontainer icon files." +msgstr "" + +#: gnu/packages/image.scm:377 +#, fuzzy +#| msgid "Library for accessing zip files" +msgid "Library for handling TIFF files" +msgstr "Bibliothèque de manipulation des fichiers zip" + +#: gnu/packages/image.scm:379 +msgid "" +"Libtiff provides support for the Tag Image File Format (TIFF), a format\n" +"used for storing image data.\n" +"Included are a library, libtiff, for reading and writing TIFF and a small\n" +"collection of tools for doing simple manipulations of TIFF images." +msgstr "" + +#: gnu/packages/image.scm:435 +msgid "Library for reading images in the Microsoft WMF format" +msgstr "" + +#: gnu/packages/image.scm:437 +msgid "" +"libwmf is a library for reading vector images in Microsoft's native\n" +"Windows Metafile Format (WMF) and for either (a) displaying them in, e.g., an X\n" +"window; or (b) converting them to more standard/free file formats such as, e.g.,\n" +"the W3C's XML-based Scaleable Vector Graphic (SVG) format." +msgstr "" + +#: gnu/packages/image.scm:490 +msgid "Library and tools for image processing and analysis" +msgstr "" + +#: gnu/packages/image.scm:492 +msgid "" +"Leptonica is a C library and set of command-line tools for efficient\n" +"image processing and image analysis operations. It supports rasterop, affine\n" +"transformations, binary and grayscale morphology, rank order, and convolution,\n" +"seedfill and connected components, image transformations combining changes in\n" +"scale and pixel depth, and pixelwise masking, blending, enhancement, and\n" +"arithmetic ops." +msgstr "" + +#: gnu/packages/image.scm:515 +msgid "Decoder of the JBIG2 image compression format" +msgstr "" + +#: gnu/packages/image.scm:517 +msgid "" +"JBIG2 is designed for lossy or lossless encoding of 'bilevel' (1-bit\n" +"monochrome) images at moderately high resolution, and in particular scanned\n" +"paper documents. In this domain it is very efficient, offering compression\n" +"ratios on the order of 100:1.\n" +"\n" +"This is a decoder only implementation, and currently is in the alpha\n" +"stage, meaning it doesn't completely work yet. However, it is\n" +"maintaining parity with available encoders, so it is useful for real\n" +"work." +msgstr "" + +#: gnu/packages/image.scm:554 +msgid "JPEG 2000 codec" +msgstr "" + +#: gnu/packages/image.scm:556 +msgid "" +"The OpenJPEG library is a JPEG 2000 codec written in C. It has\n" +"been developed in order to promote the use of JPEG 2000, the new\n" +"still-image compression standard from the Joint Photographic Experts\n" +"Group (JPEG).\n" +"\n" +"In addition to the basic codec, various other features are under\n" +"development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,\n" +"an indexing tool useful for the JPIP protocol, JPWL-tools for\n" +"error-resilience, a Java-viewer for j2k-images, ..." +msgstr "" + +#: gnu/packages/image.scm:619 +msgid "Tools and library for working with GIF images" +msgstr "Outils et bibliothèque pour travailler avec les images GIF" + +#: gnu/packages/image.scm:621 +msgid "" +"GIFLIB is a library for reading and writing GIF images. It is API and\n" +"ABI compatible with libungif which was in wide use while the LZW compression\n" +"algorithm was patented. Tools are also included to convert, manipulate,\n" +"compose, and analyze GIF images." +msgstr "" + +#: gnu/packages/image.scm:643 +msgid "GIF decompression library" +msgstr "Bibliothèque de décompression GIF" + +#: gnu/packages/image.scm:645 +msgid "libungif is the old GIF decompression library by the GIFLIB project." +msgstr "" + +#: gnu/packages/image.scm:674 +msgid "Loading, saving, rendering and manipulating image files" +msgstr "" + +#: gnu/packages/image.scm:676 +msgid "" +"Imlib2 is a library that does image file loading and saving as well as\n" +"rendering, manipulation, arbitrary polygon support, etc.\n" +"\n" +"It does ALL of these operations FAST. Imlib2 also tries to be highly\n" +"intelligent about doing them, so writing naive programs can be done easily,\n" +"without sacrificing speed.\n" +"\n" +"This is a complete rewrite over the Imlib 1.x series. The architecture is\n" +"more modular, simple, and flexible." +msgstr "" + +#: gnu/packages/image.scm:708 +msgid "Wrapper library for imlib2" +msgstr "" + +#: gnu/packages/image.scm:710 +msgid "" +"Giblib is a simple library which wraps imlib2's context API, avoiding\n" +"all the context_get/set calls, adds fontstyles to the truetype renderer and\n" +"supplies a generic doubly-linked list and some string functions." +msgstr "" + +#: gnu/packages/image.scm:752 +msgid "Library for handling popular graphics image formats" +msgstr "" + +#: gnu/packages/image.scm:754 +msgid "" +"FreeImage is a library for developers who would like to support popular\n" +"graphics image formats like PNG, BMP, JPEG, TIFF and others." +msgstr "" + +#: gnu/packages/image.scm:809 +msgid "Computer vision library" +msgstr "" + +#: gnu/packages/image.scm:811 +msgid "" +"VIGRA stands for Vision with Generic Algorithms. It is an image\n" +"processing and analysis library that puts its main emphasis on customizable\n" +"algorithms and data structures. It is particularly strong for\n" +"multi-dimensional image processing." +msgstr "" + +#: gnu/packages/image.scm:843 +msgid "Lossless and lossy image compression" +msgstr "" + +#: gnu/packages/image.scm:845 +msgid "" +"WebP is a new image format that provides lossless and lossy compression\n" +"for images. WebP lossless images are 26% smaller in size compared to\n" +"PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at\n" +"equivalent SSIM index. WebP supports lossless transparency (also known as\n" +"alpha channel) with just 22% additional bytes. Transparency is also supported\n" +"with lossy compression and typically provides 3x smaller file sizes compared\n" +"to PNG when lossy compression is acceptable for the red/green/blue color\n" +"channels." +msgstr "" + +#: gnu/packages/image.scm:873 +msgid "Library for handling MNG files" +msgstr "Bibliothèque de manipulation des fichiers MNG" + +#: gnu/packages/image.scm:875 +msgid "Libmng is the MNG (Multiple-image Network Graphics) reference library." +msgstr "" + +#: gnu/packages/image.scm:899 +msgid "Library and command-line utility to manage image metadata" +msgstr "" + +#: gnu/packages/image.scm:901 +msgid "" +"Exiv2 is a C++ library and a command line utility to manage image\n" +"metadata. It provides fast and easy read and write access to the Exif, IPTC\n" +"and XMP metadata of images in various formats." +msgstr "" + +#: gnu/packages/image.scm:941 +msgid "Library for manipulating many image formats" +msgstr "" + +#: gnu/packages/image.scm:942 +msgid "" +"Developer's Image Library (DevIL) is a library to develop\n" +"applications with support for many types of images. DevIL can load, save,\n" +"convert, manipulate, filter and display a wide variety of image formats." +msgstr "" + +#: gnu/packages/image.scm:962 +msgid "JPEG-2000 library" +msgstr "" + +#: gnu/packages/image.scm:963 +msgid "" +"The JasPer Project is an initiative to provide a reference\n" +"implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,\n" +"ISO/IEC 15444-1)." +msgstr "" + +#: gnu/packages/image.scm:993 +msgid "Scaling, colorspace conversion, and dithering library" +msgstr "" + +#: gnu/packages/image.scm:994 +msgid "" +"Zimg implements the commonly required image processing basics\n" +"of scaling, colorspace conversion, and depth conversion. A simple API enables\n" +"conversion between any supported formats to operate with minimal knowledge from\n" +"the programmer." +msgstr "" + +#: gnu/packages/image.scm:1027 +msgid "Perceptual image comparison utility" +msgstr "" + +#: gnu/packages/image.scm:1028 +msgid "" +"PerceptualDiff visually compares two images to determine\n" +"whether they look alike. It uses a computational model of the human visual\n" +"system to detect similarities. This allows it too see beyond irrelevant\n" +"differences in file encoding, image quality, and other small variations." +msgstr "" + +#: gnu/packages/image.scm:1059 +msgid "Image and audio steganography" +msgstr "" + +#: gnu/packages/image.scm:1061 +msgid "" +"Steghide is a steganography program that is able to hide data in various\n" +"kinds of image- and audio-files. The color- respectivly sample-frequencies\n" +"are not changed thus making the embedding resistant against first-order\n" +"statistical tests." +msgstr "" + +#: gnu/packages/image.scm:1087 +msgid "Image library for Extempore" +msgstr "" + +#: gnu/packages/image.scm:1089 +msgid "" +"This package is a collection of assorted single-file libraries. Of\n" +"all included libraries only the image loading and decoding library is\n" +"installed as @code{stb_image}." +msgstr "" + +#: gnu/packages/image.scm:1117 +msgid "" +"Optimizer that recompresses PNG image files to a\n" +"smaller size" +msgstr "" + +#: gnu/packages/image.scm:1119 +msgid "" +"OptiPNG is a PNG optimizer that recompresses image\n" +"files to a smaller size, without losing any information. This program\n" +"also converts external formats (BMP, GIF, PNM and TIFF) to optimized\n" +"PNG, and performs PNG integrity checks and corrections." +msgstr "" + +#: gnu/packages/image.scm:1153 +msgid "SIMD-accelerated JPEG image handling library" +msgstr "" + +#: gnu/packages/image.scm:1154 +msgid "" +"libjpeg-turbo is a JPEG image codec that accelerates baseline\n" +"JPEG compression and decompression using SIMD instructions: MMX on x86, SSE2 on\n" +"x86-64, NEON on ARM, and AltiVec on PowerPC processors. Even on other systems,\n" +"its highly-optimized Huffman coding routines allow it to outperform libjpeg by\n" +"a significant amount.\n" +"libjpeg-turbo implements both the traditional libjpeg API and the less powerful\n" +"but more straightforward TurboJPEG API, and provides a full-featured Java\n" +"interface. It supports color space extensions that allow it to compress from\n" +"and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.)." +msgstr "" + +#: gnu/packages/image.scm:1202 +msgid "Library for reading and writing files in the nifti-1 format" +msgstr "" + +#: gnu/packages/image.scm:1203 +msgid "" +"Niftilib is a set of i/o libraries for reading and writing\n" +"files in the nifti-1 data format - a binary file format for storing\n" +"medical image data, e.g. magnetic resonance image (MRI) and functional MRI\n" +"(fMRI) brain images." +msgstr "" + +#: gnu/packages/image-viewers.scm:78 +msgid "Fast and light imlib2-based image viewer" +msgstr "" + +#: gnu/packages/image-viewers.scm:80 +msgid "" +"feh is an X11 image viewer aimed mostly at console users.\n" +"Unlike most other viewers, it does not have a fancy GUI, but simply\n" +"displays images. It can also be used to set the desktop wallpaper.\n" +"It is controlled via commandline arguments and configurable key/mouse\n" +"actions." +msgstr "" + +#: gnu/packages/image-viewers.scm:126 +msgid "Lightweight GTK+ based image viewer" +msgstr "" + +#: gnu/packages/image-viewers.scm:128 +msgid "" +"Geeqie is a lightweight GTK+ based image viewer for Unix like operating\n" +"systems. It features: EXIF, IPTC and XMP metadata browsing and editing\n" +"interoperability; easy integration with other software; geeqie works on files\n" +"and directories, there is no need to import images; fast preview for many raw\n" +"image formats; tools for image comparison, sorting and managing photo\n" +"collection. Geeqie was initially based on GQview." +msgstr "" + +#: gnu/packages/image-viewers.scm:153 +msgid "Simple and fast image viewer for X" +msgstr "" + +#: gnu/packages/image-viewers.scm:154 +msgid "" +"gpicview is a lightweight GTK+ 2.x based image viewer.\n" +"It is the default image viewer on LXDE desktop environment." +msgstr "" + +#: gnu/packages/image-viewers.scm:186 +msgid "Simple X Image Viewer" +msgstr "" + +#: gnu/packages/image-viewers.scm:188 +msgid "" +"sxiv is an alternative to feh and qiv. Its primary goal is to\n" +"provide the most basic features required for fast image viewing. It has\n" +"vi key bindings and works nicely with tiling window managers. Its code\n" +"base should be kept small and clean to make it easy for you to dig into\n" +"it and customize it for your needs." +msgstr "" + +#: gnu/packages/image-viewers.scm:229 +msgid "Simple, fast and elegant image viewer" +msgstr "" + +#: gnu/packages/image-viewers.scm:230 +msgid "" +"Viewnior is an image viewer program. Created to be simple,\n" +"fast and elegant. Its minimalistic interface provides more screenspace for\n" +"your images. Among its features are:\n" +"@enumerate\n" +"@item Fullscreen & Slideshow\n" +"@item Rotate, flip, crop, save, delete images\n" +"@item Animation support\n" +"@item Browse only selected images\n" +"@item Navigation window\n" +"@item Set image as wallpaper (Gnome 2, Gnome 3, XFCE, LXDE, FluxBox, Nitrogen)\n" +"@item Simple interface\n" +"@item EXIF and IPTC metadata\n" +"@item Configurable mouse actions\n" +"@end enumerate\n" +msgstr "" -#: gnu/packages/guile.scm:381 -msgid "Create charts and graphs in Guile" -msgstr "Création de diagrammes et de graphiques dans Guile" +#: gnu/packages/image-viewers.scm:298 +msgid "Render images in the terminal" +msgstr "" -#: gnu/packages/guile.scm:383 +#: gnu/packages/image-viewers.scm:300 msgid "" -"Guile-Charting is a Guile Scheme library to create bar charts and graphs\n" -"using the Cairo drawing library." +"Catimg is a little program that prints images in the terminal.\n" +"It supports JPEG, PNG and GIF formats." +msgstr "" + +#: gnu/packages/image-viewers.scm:351 +msgid "High dynamic range (HDR) imaging application" +msgstr "" + +#: gnu/packages/image-viewers.scm:353 +msgid "" +"Luminance HDR (formerly QtPFSGui) is a graphical user interface\n" +"application that aims to provide a workflow for high dynamic range (HDR)\n" +"imaging. It supports several HDR and LDR image formats, and it can:\n" +"\n" +"@itemize\n" +"@item Create an HDR file from a set of images (formats: JPEG, TIFF 8bit and\n" +"16bit, RAW) of the same scene taken at different exposure setting;\n" +"@item Save load HDR images;\n" +"@item Rotate, resize and crop HDR images;\n" +"@item Tone-map HDR images;\n" +"@item Copy EXIF data between sets of images.\n" +"@end itemize\n" msgstr "" -"Guile-Charting est une bibliothèque pour Guile permettant de créer des diagrammes\n" -"en barre et des graphiques utilisant la bibliothèque de dessin Cairo." -#: gnu/packages/inkscape.scm:78 +#: gnu/packages/image-viewers.scm:400 +msgid "Image viewer for comics" +msgstr "" + +#: gnu/packages/image-viewers.scm:401 +msgid "" +"MComix is a customizable image viewer that specializes as\n" +"a comic and manga reader. It supports a variety of container formats\n" +"including CBZ, CB7, CBT, LHA." +msgstr "" + +#: gnu/packages/inkscape.scm:80 msgid "Vector graphics editor" msgstr "Éditeur graphique vectoriel" -#: gnu/packages/inkscape.scm:79 +#: gnu/packages/inkscape.scm:81 msgid "" "Inkscape is a vector graphics editor. What sets Inkscape\n" "apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,\n" @@ -715,31 +6715,332 @@ msgstr "" "Inkscape est un éditeur graphique vectoriel. Ce qui différencie Inkscape\n" "est son utilisation du format SVG, un standard W3C basé sur XML, comme format natif." -#: gnu/packages/linux.scm:131 -msgid "GNU Linux-Libre kernel headers" -msgstr "Fichiers d'en-tête pour le noyau GNU Linux-Libre" +#: gnu/packages/jemalloc.scm:60 +msgid "General-purpose scalable concurrent malloc implementation" +msgstr "" -#: gnu/packages/linux.scm:132 -msgid "Headers of the Linux-Libre kernel." -msgstr "Fichiers d'en-tête pour le noyau Linux-Libre" +#: gnu/packages/jemalloc.scm:62 +msgid "" +"This library providing a malloc(3) implementation that emphasizes\n" +"fragmentation avoidance and scalable concurrency support." +msgstr "" -#: gnu/packages/linux.scm:163 -msgid "Tools for loading and managing Linux kernel modules" -msgstr "Outils de chargement et de gestion de modules noyau pour Linux" +#: gnu/packages/key-mon.scm:50 +msgid "Show keyboard and mouse status" +msgstr "" -#: gnu/packages/linux.scm:165 +#: gnu/packages/key-mon.scm:52 msgid "" -"Tools for loading and managing Linux kernel modules, such as `modprobe',\n" -"`insmod', `lsmod', and more." +"The key-mon utility displays the current keyboard and mouse status.\n" +"This is useful for teaching and screencasts." msgstr "" -"Outils pour le chargement et la gestion des modules noyau Linux, tels que\n" -"\"modprob\", \"insmod\", \"lsmod\" et plus." -#: gnu/packages/linux.scm:296 +#: gnu/packages/less.scm:41 +msgid "Paginator for terminals" +msgstr "" + +#: gnu/packages/less.scm:43 +msgid "" +"GNU less is a pager, a program that allows you to view large amounts\n" +"of text in page-sized chunks. Unlike traditional pagers, it allows both\n" +"backwards and forwards movement through the document. It also does not have\n" +"to read the entire input file before starting, so it starts faster than most\n" +"text editors." +msgstr "" + +#: gnu/packages/lesstif.scm:47 +msgid "Clone of the Motif toolkit for the X window system" +msgstr "" + +#: gnu/packages/lesstif.scm:48 +msgid "Clone of the Motif toolkit for the X window system." +msgstr "" + +#: gnu/packages/libreoffice.scm:89 +msgid "General purpose formula parser and interpreter" +msgstr "" + +#: gnu/packages/libreoffice.scm:90 +msgid "" +"Ixion is a library for calculating the results of formula\n" +"expressions stored in multiple named targets, or \"cells\". The cells can\n" +"be referenced from each other, and the library takes care of resolving\n" +"their dependencies automatically upon calculation." +msgstr "" + +#: gnu/packages/libreoffice.scm:116 +msgid "File import filter library for spreadsheet documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:117 +msgid "" +"Orcus is a library that provides a collection of standalone\n" +"file processing filters. It is currently focused on providing filters for\n" +"spreadsheet documents. The library includes import filters for\n" +"Microsoft Excel 2007 XML, Microsoft Excel 2003 XML, Open Document Spreadsheet,\n" +"Plain Text, Gnumeric XML, Generic XML. It also includes low-level parsers for\n" +"CSV, CSS and XML." +msgstr "" + +#: gnu/packages/libreoffice.scm:151 +msgid "Document importer for office suites" +msgstr "" + +#: gnu/packages/libreoffice.scm:152 +msgid "" +"Librevenge is a base library for writing document import\n" +"filters. It has interfaces for text documents, vector graphics,\n" +"spreadsheets and presentations." +msgstr "" + +#: gnu/packages/libreoffice.scm:177 +msgid "Library for importing WordPerfect documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:178 +msgid "" +"Libwpd is a C++ library designed to help process\n" +"WordPerfect documents. It is most commonly used to import such documents\n" +"into other word processors." +msgstr "" + +#: gnu/packages/libreoffice.scm:210 +msgid "Library for import of reflowable e-book formats" +msgstr "" + +#: gnu/packages/libreoffice.scm:211 +msgid "" +"Libe-book is a library and a set of tools for reading and\n" +"converting various reflowable e-book formats. Currently supported are:\n" +"Broad Band eBook, eReader .pdb, FictionBook v. 2 (including zipped files),\n" +"PalmDoc Ebook, Plucker .pdb, QiOO (mobile format, for java-enabled\n" +"cellphones), TCR (simple compressed text format), TealDoc, zTXT,\n" +"ZVR (simple compressed text format)." +msgstr "" + +#: gnu/packages/libreoffice.scm:240 +msgid "Library and tools for the WordPerfect Graphics format" +msgstr "" + +#: gnu/packages/libreoffice.scm:241 +msgid "" +"The libwpg project provides a library and tools for\n" +"working with graphics in the WPG (WordPerfect Graphics) format." +msgstr "" + +#: gnu/packages/libreoffice.scm:282 +msgid "CMIS client library" +msgstr "" + +#: gnu/packages/libreoffice.scm:283 +msgid "" +"LibCMIS is a C++ client library for the CMIS interface. It\n" +"allows C++ applications to connect to any ECM behaving as a CMIS server such\n" +"as Alfresco or Nuxeo." +msgstr "" + +#: gnu/packages/libreoffice.scm:314 +msgid "Library for parsing the AbiWord format" +msgstr "Bibliothèque d'analyse du format AbiWord" + +#: gnu/packages/libreoffice.scm:315 +msgid "" +"Libabw is a library that parses the file format of\n" +"AbiWord documents." +msgstr "" + +#: gnu/packages/libreoffice.scm:345 +msgid "Library for parsing the CorelDRAW format" +msgstr "" + +#: gnu/packages/libreoffice.scm:346 +msgid "" +"Libcdr is a library that parses the file format of\n" +"CorelDRAW documents of all versions." +msgstr "" + +#: gnu/packages/libreoffice.scm:384 +msgid "Library for parsing the Apple Keynote format" +msgstr "" + +#: gnu/packages/libreoffice.scm:385 +msgid "" +"Libetonyek is a library that parses the file format of\n" +"Apple Keynote documents. It currently supports Keynote versions 2 to 5." +msgstr "" + +#: gnu/packages/libreoffice.scm:408 +msgid "Library to access tags for identifying languages" +msgstr "Bibliothèque pour accéder aux étiquettes qui identifient les langues" + +#: gnu/packages/libreoffice.scm:409 +msgid "" +"Liblangtag implements an interface to work with tags\n" +"for identifying languages as described in RFC 5646. It supports the\n" +"extensions described in RFC6067 and RFC6497, and Extension T for\n" +"language/locale identifiers as described in the Unicode CLDR\n" +"standard 21.0.2." +msgstr "" + +#: gnu/packages/libreoffice.scm:429 +msgid "Text Categorization library" +msgstr "Bibliothèque de catégorisation de textes" + +#: gnu/packages/libreoffice.scm:430 +msgid "" +"Libexttextcat is an N-Gram-Based Text Categorization\n" +"library primarily intended for language guessing." +msgstr "" + +#: gnu/packages/libreoffice.scm:456 +msgid "Library for parsing the FreeHand format" +msgstr "" + +#: gnu/packages/libreoffice.scm:457 +msgid "" +"Libfreehand is a library that parses the file format of\n" +"Aldus/Macromedia/Adobe FreeHand documents." +msgstr "" + +#: gnu/packages/libreoffice.scm:483 +msgid "Library for parsing the Microsoft Publisher format" +msgstr "" + +#: gnu/packages/libreoffice.scm:484 +msgid "" +"Libmspub is a library that parses the file format of\n" +"Microsoft Publisher documents of all versions." +msgstr "" + +#: gnu/packages/libreoffice.scm:512 +msgid "Library for parsing the PageMaker format" +msgstr "" + +#: gnu/packages/libreoffice.scm:513 +msgid "" +"Libpagemaker is a library that parses the file format of\n" +"Aldus/Adobe PageMaker documents. Currently it only understands documents\n" +"created by PageMaker version 6.x and 7." +msgstr "" + +#: gnu/packages/libreoffice.scm:548 +msgid "Library for parsing the Microsoft Visio format" +msgstr "" + +#: gnu/packages/libreoffice.scm:549 +msgid "" +"Libvisio is a library that parses the file format of\n" +"Microsoft Visio documents of all versions." +msgstr "" + +#: gnu/packages/libreoffice.scm:577 +msgid "ODF (Open Document Format) library" +msgstr "" + +#: gnu/packages/libreoffice.scm:578 +msgid "" +"Libodfgen is a library for generating documents in the\n" +"Open Document Format (ODF). It provides generator implementations for all\n" +"document interfaces supported by librevenge:\n" +"text documents, vector drawings, presentations and spreadsheets." +msgstr "" + +#: gnu/packages/libreoffice.scm:608 +msgid "Import library for some old Macintosh text documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:609 +msgid "" +"Libmwaw contains some import filters for old Macintosh\n" +"text documents (MacWrite, ClarisWorks, ... ) and for some graphics and\n" +"spreadsheet documents." +msgstr "" + +#: gnu/packages/libreoffice.scm:632 +msgid "Provides LibreOffice support for old StarOffice documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:633 +msgid "" +"@code{libstaroffice} is an import filter for the document formats\n" +"from the old StarOffice (.sdc, .sdw, ...)." +msgstr "" + +#: gnu/packages/libreoffice.scm:661 +msgid "Import library for Microsoft Works text documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:662 +msgid "" +"Libwps is a library for importing files in the Microsoft\n" +"Works word processor file format." +msgstr "" + +#: gnu/packages/libreoffice.scm:689 +msgid "Parses file format of Zoner Callisto/Draw documents" +msgstr "" + +#: gnu/packages/libreoffice.scm:690 +msgid "" +"Libzmf is a library that parses the file format of Zoner\n" +"Callisto/Draw documents. Currently it only understands documents created by\n" +"Zoner Draw version 4 and 5." +msgstr "" + +#: gnu/packages/libreoffice.scm:712 +msgid "" +"Hunspell is a spell checker and morphological analyzer\n" +"library and program designed for languages with rich morphology and complex\n" +"word compounding or character encoding." +msgstr "" + +#: gnu/packages/libreoffice.scm:734 +msgid "Hyphenation library" +msgstr "Bibliothèque de césures" + +#: gnu/packages/libreoffice.scm:735 +msgid "" +"Hyphen is a hyphenation library using TeX hyphenation\n" +"patterns, which are pre-processed by a perl script." +msgstr "" + +#: gnu/packages/libreoffice.scm:758 +msgid "Thesaurus" +msgstr "" + +#: gnu/packages/libreoffice.scm:759 +msgid "" +"MyThes is a simple thesaurus that uses a structured text\n" +"data file and an index file with binary search to look up words and phrases\n" +"and to return information on pronunciations, meanings and synonyms." +msgstr "" + +#: gnu/packages/libreoffice.scm:929 +msgid "Office suite" +msgstr "" + +#: gnu/packages/libreoffice.scm:930 +msgid "" +"LibreOffice is a comprehensive office suite. It contains\n" +"a number of components: Writer, a word processor; Calc, a spreadsheet\n" +"application; Impress, a presentation engine; Draw, a drawing and\n" +"flowcharting application; Base, a database and database frontend;\n" +"Math for editing mathematics." +msgstr "" + +#: gnu/packages/linux.scm:196 +msgid "GNU Linux-Libre kernel headers" +msgstr "Fichiers d'en-tête pour le noyau GNU Linux-Libre" + +#: gnu/packages/linux.scm:197 +msgid "Headers of the Linux-Libre kernel." +msgstr "Fichiers d'en-tête pour le noyau Linux-Libre" + +#: gnu/packages/linux.scm:348 msgid "100% free redistribution of a cleaned Linux kernel" msgstr "Redistribution 100% libre d'un noyau Linux propre" -#: gnu/packages/linux.scm:298 +#: gnu/packages/linux.scm:350 msgid "" "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.\n" "It has been modified to remove all non-free binary blobs." @@ -747,16 +7048,22 @@ msgstr "" "GNU Linux-Libre est une variante libre du noyau Linux.\n" "Il a été modifié pour en retirer toutes les composantes non-libres." -#: gnu/packages/linux.scm:341 +#: gnu/packages/linux.scm:439 msgid "Pluggable authentication modules for Linux" msgstr "Modules d'authentification pour Linux" -#: gnu/packages/linux.scm:343 +#: gnu/packages/linux.scm:441 +#, fuzzy +#| msgid "" +#| "A *Free* project to implement OSF's RFC 86.0.\n" +#| "Pluggable authentication modules are small shared object files that can\n" +#| "be used through the PAM API to perform tasks, like authenticating a user\n" +#| "at login. Local and dynamic reconfiguration are its key features" msgid "" "A *Free* project to implement OSF's RFC 86.0.\n" "Pluggable authentication modules are small shared object files that can\n" "be used through the PAM API to perform tasks, like authenticating a user\n" -"at login. Local and dynamic reconfiguration are its key features" +"at login. Local and dynamic reconfiguration are its key features." msgstr "" "Un projet libre implantant OSF (RFC 86.0).\n" "Les modules d'authentification sont de petits fichiers objets partagés pouvant\n" @@ -764,14 +7071,19 @@ msgstr "" "d'un utilisateur au moment de la connexion. Ses principales fonctionnalités sont\n" "la reconfiguration locale et dynamique." -#: gnu/packages/linux.scm:370 -msgid "Small utilities that use the proc filesystem" +#: gnu/packages/linux.scm:483 +msgid "Small utilities that use the proc file system" msgstr "Petits utilitaires utilisant le système de fichier proc" -#: gnu/packages/linux.scm:372 +#: gnu/packages/linux.scm:485 +#, fuzzy +#| msgid "" +#| "This PSmisc package is a set of some small useful utilities that\n" +#| "use the proc filesystem. We're not about changing the world, but\n" +#| "providing the system administrator with some help in common tasks." msgid "" "This PSmisc package is a set of some small useful utilities that\n" -"use the proc filesystem. We're not about changing the world, but\n" +"use the proc file system. We're not about changing the world, but\n" "providing the system administrator with some help in common tasks." msgstr "" "Le paquet PSmisc est un ensemble de petits utilitaires utilisant le\n" @@ -779,19 +7091,22 @@ msgstr "" "mais simplement de fournir de l'aide à l'administrateur système dans ses\n" "tâches les plus courantes." -#: gnu/packages/linux.scm:416 +#: gnu/packages/linux.scm:562 msgid "Collection of utilities for the Linux kernel" msgstr "Collection d'utilitaires pour le noyau Linux" -#: gnu/packages/linux.scm:418 -msgid "Util-linux is a random collection of utilities for the Linux kernel." -msgstr "Util-linux est une collection d'utilitaires pour le noyau Linux." +#: gnu/packages/linux.scm:563 +msgid "" +"Util-linux is a diverse collection of Linux kernel\n" +"utilities. It provides dmesg and includes tools for working with file systems,\n" +"block devices, UUIDs, TTYs, and many other tools." +msgstr "" -#: gnu/packages/linux.scm:472 +#: gnu/packages/linux.scm:613 msgid "Utilities that give information about processes" msgstr "Utilitaires fournissant des informations sur les processus" -#: gnu/packages/linux.scm:474 +#: gnu/packages/linux.scm:615 msgid "" "Procps is the package that has a bunch of small useful utilities\n" "that give information about processes using the Linux /proc file system.\n" @@ -803,39 +7118,60 @@ msgstr "" "Le paquet inclut les programmes ps, top, vmstat, w, kill, free,\n" "slabtop et skill." -#: gnu/packages/linux.scm:499 +#: gnu/packages/linux.scm:641 msgid "Tools for working with USB devices, such as lsusb" msgstr "Outils de manipulation des périphériques USB, tels que lsusb." -#: gnu/packages/linux.scm:501 +#: gnu/packages/linux.scm:643 msgid "Tools for working with USB devices, such as lsusb." msgstr "Outils de manipulation des périphériques USB, tels que lsusb." -#: gnu/packages/linux.scm:542 +#: gnu/packages/linux.scm:719 msgid "Creating and checking ext2/ext3/ext4 file systems" msgstr "Création et vérification de systèmes de fichiers ext1/ext3/ext4" -#: gnu/packages/linux.scm:544 +#: gnu/packages/linux.scm:721 msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems." msgstr "Ce paquet fournit des outils pour manipuler les systèmes de fichiers ext2/ext3/ext4" -#: gnu/packages/linux.scm:575 -msgid "Statically-linked fsck.* commands from e2fsprogs" -msgstr "Commandes de e2fsprogs (fsck.*) liées statiquement" +#: gnu/packages/linux.scm:762 +msgid "Statically-linked e2fsck command from e2fsprogs" +msgstr "Commandes de e2fsck liées statiquement provenant de e2fsprogs" -#: gnu/packages/linux.scm:577 +#: gnu/packages/linux.scm:763 msgid "" -"This package provides statically-linked command of fsck.ext[234] taken\n" +"This package provides statically-linked e2fsck command taken\n" "from the e2fsprogs package. It is meant to be used in initrds." msgstr "" -"Ce paquet fournit la commande liée statiquement de fsck.ext[234] issue\n" -"du paquet e2fsprogs. Il est censé être utilisé dans initrds." +"Ce paquet fournit la commande e2fsck liée statiquement issue\n" +"du paquet e2fsprogs. Il est censé être utilisé dans les initrds." + +#: gnu/packages/linux.scm:782 +msgid "Recover deleted files from ext2/3/4 partitions" +msgstr "" + +#: gnu/packages/linux.scm:784 +msgid "" +"Extundelete is a set of tools that can recover deleted files from an\n" +"ext3 or ext4 partition." +msgstr "" + +#: gnu/packages/linux.scm:816 +msgid "Zero non-allocated regions in ext2/ext3/ext4 file systems" +msgstr "Remet à zéro les régions non allouées dans les systèmes de fichiers ext2/ext3/ext4" -#: gnu/packages/linux.scm:596 +#: gnu/packages/linux.scm:818 +msgid "" +"The zerofree command scans the free blocks in an ext2 file system and\n" +"fills any non-zero blocks with zeroes. This is a useful way to make disk\n" +"images more compressible." +msgstr "" + +#: gnu/packages/linux.scm:845 msgid "System call tracer for Linux" msgstr "Traceur d'appel système pour Linux" -#: gnu/packages/linux.scm:598 +#: gnu/packages/linux.scm:847 msgid "" "strace is a system call tracer, i.e. a debugging tool which prints out a\n" "trace of all the system calls made by a another process/program." @@ -843,11 +7179,22 @@ msgstr "" "strace est un traceur d'appels système, c-à-d un outil de débogage affichant\n" "les appels système effectués par un autre processus/programme." -#: gnu/packages/linux.scm:617 +#: gnu/packages/linux.scm:868 +msgid "Library call tracer for Linux" +msgstr "Traceur d'appel système pour Linux" + +#: gnu/packages/linux.scm:870 +msgid "" +"ltrace intercepts and records dynamic library calls which are called by\n" +"an executed process and the signals received by that process. It can also\n" +"intercept and print the system calls executed by the program." +msgstr "" + +#: gnu/packages/linux.scm:889 msgid "The Advanced Linux Sound Architecture libraries" msgstr "Bibliothèques ALSA (Advanced Linux Sound Architecture)" -#: gnu/packages/linux.scm:619 gnu/packages/linux.scm:661 +#: gnu/packages/linux.scm:891 gnu/packages/linux.scm:935 msgid "" "The Advanced Linux Sound Architecture (ALSA) provides audio and\n" "MIDI functionality to the Linux-based operating system." @@ -855,18 +7202,39 @@ msgstr "" "ALSA fournit des fonctionnalités audio et MIDI pour les sytèmes\n" "basés sur Linux." -#: gnu/packages/linux.scm:659 +#: gnu/packages/linux.scm:933 msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)" msgstr "Utilitaires pour ALSA (Advanced Linux Sound Architecture)" -#: gnu/packages/linux.scm:683 +#: gnu/packages/linux.scm:993 +msgid "Plugins for the Advanced Linux Sound Architecture (ALSA)" +msgstr "Greffons pour ALSA (Advanced Linux Sound Architecture)" + +#: gnu/packages/linux.scm:995 +msgid "" +"The Advanced Linux Sound Architecture (ALSA) provides audio and\n" +"MIDI functionality to the Linux-based operating system. This package enhances ALSA\n" +"by providing additional plugins which include: upmixing, downmixing, jackd and\n" +"pulseaudio support for native alsa applications, format conversion (s16 to a52), and\n" +"external rate conversion." +msgstr "" + +#: gnu/packages/linux.scm:1029 msgid "Program to configure the Linux IP packet filtering rules" msgstr "Programme de configuration de règles de filtrage des paquets IP pour Linux" -#: gnu/packages/linux.scm:685 +#: gnu/packages/linux.scm:1031 +#, fuzzy +#| msgid "" +#| "iptables is the userspace command line program used to configure the\n" +#| "Linux 2.4.x and later IPv4 packet filtering ruleset. It is targeted towards\n" +#| "system administrators. Since Network Address Translation is also configured\n" +#| "from the packet filter ruleset, iptables is used for this, too. The iptables\n" +#| "package also includes ip6tables. ip6tables is used for configuring the IPv6\n" +#| "packet filter." msgid "" "iptables is the userspace command line program used to configure the\n" -"Linux 2.4.x and later IPv4 packet filtering ruleset. It is targeted towards\n" +"Linux 2.4.x and later IPv4 packet filtering ruleset (firewall). It is targeted at\n" "system administrators. Since Network Address Translation is also configured\n" "from the packet filter ruleset, iptables is used for this, too. The iptables\n" "package also includes ip6tables. ip6tables is used for configuring the IPv6\n" @@ -878,11 +7246,30 @@ msgstr "" "Network Address Translation). Le paquet inclut aussi ip6tables, utilisé pour\n" "configurer le filtrage IPv6." -#: gnu/packages/linux.scm:733 +#: gnu/packages/linux.scm:1081 msgid "Utilities for controlling TCP/IP networking and traffic in Linux" msgstr "Utilitaires de contrôle du traffic TCP/IP pour Linux" -#: gnu/packages/linux.scm:735 +#: gnu/packages/linux.scm:1083 +#, fuzzy +#| msgid "" +#| "Iproute2 is a collection of utilities for controlling TCP/IP\n" +#| "networking and traffic with the Linux kernel.\n" +#| "\n" +#| "Most network configuration manuals still refer to ifconfig and route as the\n" +#| "primary network configuration tools, but ifconfig is known to behave\n" +#| "inadequately in modern network environments. They should be deprecated, but\n" +#| "most distros still include them. Most network configuration systems make use\n" +#| "of ifconfig and thus provide a limited feature set. The /etc/net project aims\n" +#| "to support most modern network technologies, as it doesn't use ifconfig and\n" +#| "allows a system administrator to make use of all iproute2 features, including\n" +#| "traffic control.\n" +#| "\n" +#| "iproute2 is usually shipped in a package called iproute or iproute2 and\n" +#| "consists of several tools, of which the most important are ip and tc. ip\n" +#| "controls IPv4 and IPv6 configuration and tc stands for traffic control. Both\n" +#| "tools print detailed usage messages and are accompanied by a set of\n" +#| "manpages." msgid "" "Iproute2 is a collection of utilities for controlling TCP/IP\n" "networking and traffic with the Linux kernel.\n" @@ -897,10 +7284,10 @@ msgid "" "traffic control.\n" "\n" "iproute2 is usually shipped in a package called iproute or iproute2 and\n" -"consists of several tools, of which the most important are ip and tc. ip\n" -"controls IPv4 and IPv6 configuration and tc stands for traffic control. Both\n" -"tools print detailed usage messages and are accompanied by a set of\n" -"manpages." +"consists of several tools, of which the most important are @command{ip} and\n" +"@command{tc}. @command{ip} controls IPv4 and IPv6 configuration and\n" +"@command{tc} stands for traffic control. Both tools print detailed usage\n" +"messages and are accompanied by a set of manpages." msgstr "" "Iproute2 est une collection d'utilitaires pour le contrôle des réseaux TCP/IP\n" "sous Linux. De nombreux manuels sur la configuration du réseau sous Linux se\n" @@ -913,11 +7300,11 @@ msgstr "" "configuration IPv4 et IPv6 tandis que tc se charge du contrôle du trafic. Ces\n" "deux outils sont accompagnés par leur manuel." -#: gnu/packages/linux.scm:827 +#: gnu/packages/linux.scm:1194 msgid "Tools for controlling the network subsystem in Linux" msgstr "Outils pour contrôler le sous-système réseau dans Linux" -#: gnu/packages/linux.scm:829 +#: gnu/packages/linux.scm:1196 msgid "" "This package includes the important tools for controlling the network\n" "subsystem of the Linux kernel. This includes arp, hostname, ifconfig,\n" @@ -931,21 +7318,21 @@ msgstr "" "particulières (pliconfig, slattach) et à des aspects avancés de la configuration\n" "réseau (iptunnel, ipmaddr)." -#: gnu/packages/linux.scm:862 +#: gnu/packages/linux.scm:1233 msgid "Library for working with POSIX capabilities" msgstr "Bibliothèque pour travailler avec les possibilités de POSIX" -#: gnu/packages/linux.scm:864 +#: gnu/packages/linux.scm:1235 msgid "" "Libcap2 provides a programming interface to POSIX capabilities on\n" "Linux-based operating systems." msgstr "Libcap2 fournit une interface de programmation POSIX aux systèmes basés sur Linux." -#: gnu/packages/linux.scm:896 +#: gnu/packages/linux.scm:1278 msgid "Manipulate Ethernet bridges" msgstr "Manipulation des ponts Ethernet" -#: gnu/packages/linux.scm:898 +#: gnu/packages/linux.scm:1280 msgid "" "Utilities for Linux's Ethernet bridging facilities. A bridge is a way\n" "to connect two Ethernet segments together in a protocol independent way.\n" @@ -960,14 +7347,21 @@ msgstr "" "niveau 2, tous les protocoles peuvent transiter de manière transparente sur un\n" "un pont." -#: gnu/packages/linux.scm:920 +#: gnu/packages/linux.scm:1302 msgid "NetLink protocol library suite" msgstr "Bibliothèqye pour le protocole NetLink" -#: gnu/packages/linux.scm:922 +#: gnu/packages/linux.scm:1304 +#, fuzzy +#| msgid "" +#| "The libnl suite is a collection of libraries providing APIs to netlink\n" +#| "protocol based Linux kernel interfaces. Netlink is an IPC mechanism primarly\n" +#| "between the kernel and user space processes. It was designed to be a more\n" +#| "flexible successor to ioctl to provide mainly networking related kernel\n" +#| "configuration and monitoring interfaces." msgid "" "The libnl suite is a collection of libraries providing APIs to netlink\n" -"protocol based Linux kernel interfaces. Netlink is an IPC mechanism primarly\n" +"protocol based Linux kernel interfaces. Netlink is an IPC mechanism primarily\n" "between the kernel and user space processes. It was designed to be a more\n" "flexible successor to ioctl to provide mainly networking related kernel\n" "configuration and monitoring interfaces." @@ -978,11 +7372,23 @@ msgstr "" "est conçu pour être un successeur plus flexible à ioctl permettant de configurer\n" "le réseau au niveau noyau et surveiller les interfaces." -#: gnu/packages/linux.scm:955 +#: gnu/packages/linux.scm:1334 +#, fuzzy +#| msgid "Tools for manipulating Linux Wireless Extensions" +msgid "Tool for configuring wireless devices" +msgstr "Outils de manipulation d'extensions sans fil pour Linux" + +#: gnu/packages/linux.scm:1336 +msgid "" +"iw is a new nl80211 based CLI configuration utility for wireless\n" +"devices. It replaces @code{iwconfig}, which is deprecated." +msgstr "" + +#: gnu/packages/linux.scm:1382 msgid "Analyze power consumption on Intel-based laptops" msgstr "Analyse de la consommation des portables basés sur Intel" -#: gnu/packages/linux.scm:957 +#: gnu/packages/linux.scm:1384 msgid "" "PowerTOP is a Linux tool to diagnose issues with power consumption and\n" "power management. In addition to being a diagnostic tool, PowerTOP also has\n" @@ -996,11 +7402,11 @@ msgstr "" "l'utilisateur peut expérimenter de multiples configurations de gestion de\n" "l'énergie pour des cas où le système d'exploitation n'a pas " -#: gnu/packages/linux.scm:979 +#: gnu/packages/linux.scm:1406 msgid "Audio mixer for X and the console" msgstr "Table de mixage audio basée sur X et la console" -#: gnu/packages/linux.scm:981 +#: gnu/packages/linux.scm:1408 msgid "" "Aumix adjusts an audio mixer from X, the console, a terminal,\n" "the command line or a script." @@ -1008,11 +7414,11 @@ msgstr "" "Aumix ajuste un mixer audio depuis X, la console, un terminal,\n" "la ligne de commande ou un script." -#: gnu/packages/linux.scm:1005 +#: gnu/packages/linux.scm:1432 msgid "Displays the IO activity of running processes" msgstr "Affiche l'activité des entrées-sorties des processus en cours d'exécution." -#: gnu/packages/linux.scm:1007 +#: gnu/packages/linux.scm:1434 msgid "" "Iotop is a Python program with a top like user interface to show the\n" "processes currently causing I/O." @@ -1020,11 +7426,11 @@ msgstr "" "Iotop est un programme Python doté d'une interface utilisateur affichant les\n" "entrées-sorties en cours des processus." -#: gnu/packages/linux.scm:1058 +#: gnu/packages/linux.scm:1487 msgid "Support file systems implemented in user space" msgstr "Support des systèmes de fichiers implantés dans l'espace utilisateur." -#: gnu/packages/linux.scm:1060 +#: gnu/packages/linux.scm:1489 msgid "" "As a consequence of its monolithic design, file system code for Linux\n" "normally goes into the kernel itself---which is not only a robustness issue,\n" @@ -1041,11 +7447,11 @@ msgstr "" "ce problème en permettant aux utilisateurs de lancer les implantations de\n" "systèmes de fichiers comme des processus utilisateur." -#: gnu/packages/linux.scm:1085 +#: gnu/packages/linux.scm:1523 msgid "User-space union file system" msgstr "" -#: gnu/packages/linux.scm:1087 +#: gnu/packages/linux.scm:1525 msgid "" "UnionFS-FUSE is a flexible union file system implementation in user\n" "space, using the FUSE library. Mounting a union file system allows you to\n" @@ -1053,15 +7459,15 @@ msgid "" "UnionFS-FUSE additionally supports copy-on-write." msgstr "" -#: gnu/packages/linux.scm:1112 +#: gnu/packages/linux.scm:1550 msgid "User-space union file system (statically linked)" msgstr "" -#: gnu/packages/linux.scm:1154 +#: gnu/packages/linux.scm:1593 msgid "Mount remote file systems over SSH" msgstr "Montage de systèmes de fichier distants avec SSH" -#: gnu/packages/linux.scm:1156 +#: gnu/packages/linux.scm:1595 msgid "" "This is a file system client based on the SSH File Transfer Protocol.\n" "Since most SSH servers already support this protocol it is very easy to set\n" @@ -1074,11 +7480,11 @@ msgstr "" "aussi facile de monter le système de fichiers que de se connecter avec un client\n" "SSH." -#: gnu/packages/linux.scm:1204 +#: gnu/packages/linux.scm:1624 msgid "Tools for non-uniform memory access (NUMA) machines" msgstr "Outils pour les machines basées sur NUMA (non-uniform memory access)" -#: gnu/packages/linux.scm:1206 +#: gnu/packages/linux.scm:1626 msgid "" "NUMA stands for Non-Uniform Memory Access, in other words a system whose\n" "memory is not all in one place. The numactl program allows you to run your\n" @@ -1095,22 +7501,22 @@ msgstr "" "une application sur des noeuds CPU et mémoire spécifiques au moyen de politiques\n" "fournies au système d'exploitation avant le lancement du programme." -#: gnu/packages/linux.scm:1269 +#: gnu/packages/linux.scm:1688 msgid "Linux keyboard utilities and keyboard maps" msgstr "" -#: gnu/packages/linux.scm:1271 +#: gnu/packages/linux.scm:1690 msgid "" "This package contains keytable files and keyboard utilities compatible\n" "for systems using the Linux kernel. This includes commands such as\n" "'loadkeys', 'setfont', 'kbdinfo', and 'chvt'." msgstr "" -#: gnu/packages/linux.scm:1290 +#: gnu/packages/linux.scm:1709 msgid "Monitor file accesses" msgstr "Surveillance des accès fichier" -#: gnu/packages/linux.scm:1292 +#: gnu/packages/linux.scm:1711 msgid "" "The inotify-tools packages provides a C library and command-line tools\n" "to use Linux' inotify mechanism, which allows file accesses to be monitored." @@ -1119,11 +7525,11 @@ msgstr "" "permettant d'utiliser le mécanisme inotify de Linux qui autorise la surveillance\n" "des accès fichier." -#: gnu/packages/linux.scm:1330 +#: gnu/packages/linux.scm:1749 msgid "Kernel module tools" msgstr "Outils de module noyau" -#: gnu/packages/linux.scm:1331 +#: gnu/packages/linux.scm:1750 msgid "" "Kmod is a set of tools to handle common tasks with Linux\n" "kernel modules like insert, remove, list, check properties, resolve\n" @@ -1141,11 +7547,11 @@ msgstr "" "kmod. L'objectif est d'être compatible avec les outils, les configurations et\n" "les indices du projet module-init-tools." -#: gnu/packages/linux.scm:1380 +#: gnu/packages/linux.scm:1786 msgid "Userspace device management" msgstr "Gestion de périphériques utilisateurs" -#: gnu/packages/linux.scm:1381 +#: gnu/packages/linux.scm:1787 msgid "" "Udev is a daemon which dynamically creates and removes\n" "device nodes from /dev/, handles hotplug events and loads drivers at boot\n" @@ -1155,33 +7561,61 @@ msgstr "" "des noeuds de périphériques dans /dev/, gérer leur branchement à chaud\n" "et charger leur pilotes au démarrage." -#: gnu/packages/linux.scm:1470 +#: gnu/packages/linux.scm:1874 msgid "Logical volume management for Linux" msgstr "Gestion de volumes logiques pour Linux" -#: gnu/packages/linux.scm:1472 +#: gnu/packages/linux.scm:1876 msgid "" "LVM2 is the logical volume management tool set for Linux-based systems.\n" "This package includes the user-space libraries and tools, including the device\n" "mapper. Kernel components are part of Linux-libre." msgstr "" -#: gnu/packages/linux.scm:1499 +#: gnu/packages/linux.scm:1898 +msgid "Logical volume management for Linux (statically linked)" +msgstr "Gestion de volumes logiques pour Linux (lié statiquement)" + +#: gnu/packages/linux.scm:1928 msgid "Tools for manipulating Linux Wireless Extensions" msgstr "Outils de manipulation d'extensions sans fil pour Linux" -#: gnu/packages/linux.scm:1500 +#: gnu/packages/linux.scm:1929 msgid "" -"Wireless Tools are used to manipulate the Linux Wireless\n" -"Extensions. The Wireless Extension is an interface allowing you to set\n" -"Wireless LAN specific parameters and get the specific stats." +"Wireless Tools are used to manipulate the now-deprecated\n" +"Linux Wireless Extensions; consider using 'iw' instead. The Wireless\n" +"Extension was an interface allowing you to set Wireless LAN specific\n" +"parameters and get the specific stats. It is deprecated in favor the nl80211\n" +"interface." +msgstr "" + +#: gnu/packages/linux.scm:2001 +msgid "Central regulatory domain agent (CRDA) for WiFi" msgstr "" -#: gnu/packages/linux.scm:1572 +#: gnu/packages/linux.scm:2003 +msgid "" +"The Central Regulatory Domain Agent (CRDA) acts as the udev helper for\n" +"communication between the kernel Linux and user space for regulatory\n" +"compliance." +msgstr "" + +#: gnu/packages/linux.scm:2049 +msgid "Wireless regulatory database" +msgstr "Base de données sans fil réglementaire" + +#: gnu/packages/linux.scm:2051 +msgid "" +"This package contains the wireless regulatory database Central\n" +"Regulatory Database Agent (CRDA) daemon. The database contains information on\n" +"country-specific regulations for the wireless spectrum." +msgstr "" + +#: gnu/packages/linux.scm:2124 msgid "Utilities to read temperature/voltage/fan sensors" msgstr "Utilitaires pour la lecture de capteurs de tempéture/voltage/ventilateur" -#: gnu/packages/linux.scm:1574 +#: gnu/packages/linux.scm:2126 msgid "" "Lm-sensors is a hardware health monitoring package for Linux. It allows\n" "you to access information from temperature, voltage, and fan speed sensors.\n" @@ -1192,22 +7626,34 @@ msgstr "" "le voltage ou la vitesse des ventilatuers. Il fonctionne avec la plupart des\n" "systèmes les plus récents." -#: gnu/packages/linux.scm:1609 +#: gnu/packages/linux.scm:2153 +msgid "I2C tools for Linux" +msgstr "" + +#: gnu/packages/linux.scm:2155 +msgid "" +"The i2c-tools package contains a heterogeneous set of I2C tools for\n" +"Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers,\n" +"EEPROM decoding scripts, EEPROM programming tools, and a python module for\n" +"SMBus access." +msgstr "" + +#: gnu/packages/linux.scm:2191 msgid "Hardware health information viewer" msgstr "Utiltaire de monitoring hardware" -#: gnu/packages/linux.scm:1611 +#: gnu/packages/linux.scm:2193 msgid "" "Xsensors reads data from the libsensors library regarding hardware\n" "health such as temperature, voltage and fan speed and displays the information\n" "in a digital read-out." msgstr "Xsensors lit les données depuis la bibliothèque libsensors " -#: gnu/packages/linux.scm:1654 +#: gnu/packages/linux.scm:2240 msgid "Linux profiling with performance counters" msgstr "" -#: gnu/packages/linux.scm:1656 +#: gnu/packages/linux.scm:2242 msgid "" "perf is a tool suite for profiling using hardware performance counters,\n" "with support in the Linux kernel. perf can instrument CPU performance\n" @@ -1216,6 +7662,546 @@ msgid "" "particular the 'perf' command." msgstr "" +#: gnu/packages/linux.scm:2265 +msgid "Simple tool for creating Linux namespace containers" +msgstr "" + +#: gnu/packages/linux.scm:2266 +msgid "" +"pflask is a simple tool for creating Linux namespace\n" +"containers. It can be used for running a command or even booting an OS inside\n" +"an isolated container, created with the help of Linux namespaces. It is\n" +"similar in functionality to chroot, although pflask provides better isolation\n" +"thanks to the use of namespaces." +msgstr "" + +#: gnu/packages/linux.scm:2295 +msgid "View and tune ATA disk drive parameters" +msgstr "" + +#: gnu/packages/linux.scm:2297 +msgid "" +"@command{hdparm} is a command-line utility to control ATA controllers and\n" +"disk drives. It can increase performance and/or reliability by careful tuning\n" +"of hardware settings like power and acoustic management, DMA modes, and caching.\n" +"It can also display detailed device information, or be used as a simple\n" +"performance benchmarking tool.\n" +"\n" +"@command{hdparm} provides a command line interface to various Linux kernel\n" +"interfaces provided by the SATA/ATA/SAS @code{libata} subsystem, and the older\n" +"IDE driver subsystem. Many external USB drive enclosures with @dfn{SCSI-ATA\n" +"Command Translation} (SAT) are also supported." +msgstr "" + +#: gnu/packages/linux.scm:2328 +msgid "Tool for enabling and disabling wireless devices" +msgstr "Outils pour activer ou désactiver des périphériques sans fil" + +#: gnu/packages/linux.scm:2330 +msgid "" +"rfkill is a simple tool for accessing the rfkill device interface,\n" +"which is used to enable and disable wireless networking devices, typically\n" +"WLAN, Bluetooth and mobile broadband." +msgstr "" + +#: gnu/packages/linux.scm:2349 +msgid "Display information on ACPI devices" +msgstr "" + +#: gnu/packages/linux.scm:2350 +msgid "" +"@code{acpi} attempts to replicate the functionality of the\n" +"\"old\" @code{apm} command on ACPI systems, including battery and thermal\n" +"information. It does not support ACPI suspending, only displays information\n" +"about ACPI devices." +msgstr "" + +#: gnu/packages/linux.scm:2369 +msgid "Daemon for delivering ACPI events to user-space programs" +msgstr "" + +#: gnu/packages/linux.scm:2371 +msgid "" +"acpid is designed to notify user-space programs of Advanced\n" +"Configuration and Power Interface (ACPI) events. acpid should be started\n" +"during the system boot, and will run as a background process. When an ACPI\n" +"event is received from the kernel, acpid will examine the list of rules\n" +"specified in /etc/acpi/events and execute the rules that match the event." +msgstr "" + +#: gnu/packages/linux.scm:2393 +msgid "System utilities based on Linux sysfs" +msgstr "" + +#: gnu/packages/linux.scm:2395 +msgid "" +"These are a set of utilities built upon sysfs, a virtual file system in\n" +"Linux kernel versions 2.5+ that exposes a system's device tree. The package\n" +"also contains the libsysfs library." +msgstr "" + +#: gnu/packages/linux.scm:2424 +msgid "System utilities based on Linux sysfs (version 1.x)" +msgstr "" + +#: gnu/packages/linux.scm:2447 +msgid "Utilities to get and set CPU frequency on Linux" +msgstr "" + +#: gnu/packages/linux.scm:2449 +msgid "" +"The cpufrequtils suite contains utilities to retrieve CPU frequency\n" +"information, and set the CPU frequency if supported, using the cpufreq\n" +"capabilities of the Linux kernel." +msgstr "" + +#: gnu/packages/linux.scm:2468 +msgid "Interface library for the Linux IEEE1394 drivers" +msgstr "" + +#: gnu/packages/linux.scm:2470 +msgid "" +"Libraw1394 is the only supported interface to the kernel side raw1394 of\n" +"the Linux IEEE-1394 subsystem, which provides direct access to the connected\n" +"1394 buses to user space. Through libraw1394/raw1394, applications can directly\n" +"send to and receive from other nodes without requiring a kernel driver for the\n" +"protocol in question." +msgstr "" + +#: gnu/packages/linux.scm:2494 +msgid "AV/C protocol library for IEEE 1394" +msgstr "" + +#: gnu/packages/linux.scm:2496 +msgid "" +"Libavc1394 is a programming interface to the AV/C specification from\n" +"the 1394 Trade Association. AV/C stands for Audio/Video Control." +msgstr "" + +#: gnu/packages/linux.scm:2518 +msgid "Isochronous streaming media library for IEEE 1394" +msgstr "" + +#: gnu/packages/linux.scm:2520 +msgid "" +"The libiec61883 library provides a higher level API for streaming DV,\n" +"MPEG-2 and audio over Linux IEEE 1394." +msgstr "" + +#: gnu/packages/linux.scm:2568 +msgid "Tool for managing Linux Software RAID arrays" +msgstr "" + +#: gnu/packages/linux.scm:2570 +msgid "" +"mdadm is a tool for managing Linux Software RAID arrays. It can create,\n" +"assemble, report on, and monitor arrays. It can also move spares between raid\n" +"arrays when needed." +msgstr "" + +#: gnu/packages/linux.scm:2602 +msgid "Statically-linked 'mdadm' command for use in an initrd" +msgstr "Commandes mdadm liées statiquement à utiliser dans un initrd" + +#: gnu/packages/linux.scm:2667 +msgid "Access block devices through multiple paths" +msgstr "" + +#: gnu/packages/linux.scm:2669 +msgid "" +"This package provides the following binaries to drive the\n" +"Linux Device Mapper multipathing driver:\n" +"@enumerate\n" +"@item @command{multipath} - Device mapper target autoconfig.\n" +"@item @command{multipathd} - Multipath daemon.\n" +"@item @command{mpathpersist} - Manages SCSI persistent reservations on\n" +"@code{dm} multipath devices.\n" +"@item @command{kpartx} - Create device maps from partition tables.\n" +"@end enumerate" +msgstr "" + +#: gnu/packages/linux.scm:2703 +msgid "Linux-native asynchronous I/O access library" +msgstr "" + +#: gnu/packages/linux.scm:2705 +msgid "" +"This library enables userspace to use Linux kernel asynchronous I/O\n" +"system calls, important for the performance of databases and other advanced\n" +"applications." +msgstr "" + +#: gnu/packages/linux.scm:2727 +msgid "Bluetooth subband audio codec" +msgstr "" + +#: gnu/packages/linux.scm:2729 +msgid "" +"The SBC is a digital audio encoder and decoder used to transfer data to\n" +"Bluetooth audio output devices like headphones or loudspeakers." +msgstr "" + +#: gnu/packages/linux.scm:2787 +msgid "Linux Bluetooth protocol stack" +msgstr "" + +#: gnu/packages/linux.scm:2789 +msgid "" +"BlueZ provides support for the core Bluetooth layers and protocols. It\n" +"is flexible, efficient and uses a modular implementation." +msgstr "" + +#: gnu/packages/linux.scm:2811 +msgid "Mount exFAT file systems" +msgstr "Montage de systèmes de fichier exFAT" + +#: gnu/packages/linux.scm:2813 +msgid "" +"This package provides a FUSE-based file system that provides read and\n" +"write access to exFAT devices." +msgstr "" + +#: gnu/packages/linux.scm:2853 +msgid "Mouse support for the Linux console" +msgstr "" + +#: gnu/packages/linux.scm:2855 +msgid "" +"The GPM (general-purpose mouse) daemon is a mouse server for\n" +"applications running on the Linux console. It allows users to select items\n" +"and copy/paste text in the console and in xterm." +msgstr "" + +#: gnu/packages/linux.scm:2904 +msgid "Create and manage btrfs copy-on-write file systems" +msgstr "" + +#: gnu/packages/linux.scm:2905 +msgid "" +"Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux\n" +"aimed at implementing advanced features while focusing on fault tolerance,\n" +"repair and easy administration." +msgstr "" + +#: gnu/packages/linux.scm:2937 +#, fuzzy +#| msgid "Statically-linked fsck.* commands from e2fsprogs" +msgid "Statically-linked btrfs command from btrfs-progs" +msgstr "Commandes de e2fsprogs (fsck.*) liées statiquement" + +#: gnu/packages/linux.scm:2938 +#, fuzzy +#| msgid "" +#| "This package provides statically-linked command of fsck.ext[234] taken\n" +#| "from the e2fsprogs package. It is meant to be used in initrds." +msgid "" +"This package provides the statically-linked @command{btrfs}\n" +"from the btrfs-progs package. It is meant to be used in initrds." +msgstr "" +"Ce paquet fournit la commande liée statiquement de fsck.ext[234] issue\n" +"du paquet e2fsprogs. Il est censé être utilisé dans initrds." + +#: gnu/packages/linux.scm:2964 +msgid "Free-fall protection for spinning laptop hard drives" +msgstr "" + +#: gnu/packages/linux.scm:2966 +msgid "" +"Prevents shock damage to the internal spinning hard drive(s) of some\n" +"HP and Dell laptops. When sudden movement is detected, all input/output\n" +"operations on the drive are suspended and its heads are parked on the ramp,\n" +"where they are less likely to cause damage to the spinning disc. Requires a\n" +"drive that supports the ATA/ATAPI-7 IDLE IMMEDIATE command with unload\n" +"feature, and a laptop with an accelerometer. It has no effect on SSDs." +msgstr "" + +#: gnu/packages/linux.scm:3020 +msgid "Simple fan control program" +msgstr "" + +#: gnu/packages/linux.scm:3022 +msgid "" +"Thinkfan is a simple fan control program. It reads temperatures,\n" +"checks them against configured limits and switches to appropriate (also\n" +"pre-configured) fan level. It requires a working @code{thinkpad_acpi} or any\n" +"other @code{hwmon} driver that enables temperature reading and fan control\n" +"from userspace." +msgstr "" + +#: gnu/packages/linux.scm:3058 +msgid "Read-write access to NTFS file systems" +msgstr "" + +#: gnu/packages/linux.scm:3060 +msgid "" +"NTFS-3G provides read-write access to NTFS file systems, which are\n" +"commonly found on Microsoft Windows. It is implemented as a FUSE file system.\n" +"The package provides additional NTFS tools." +msgstr "" + +#: gnu/packages/linux.scm:3105 +msgid "Utilities and libraries for working with RDMA devices" +msgstr "" + +#: gnu/packages/linux.scm:3107 +msgid "" +"This package provides userspace components for the InfiniBand\n" +"subsystem of the Linux kernel. Specifically it contains userspace\n" +"libraries for the following device nodes:\n" +"\n" +"@enumerate\n" +"@item @file{/dev/infiniband/uverbsX} (@code{libibverbs})\n" +"@item @file{/dev/infiniband/rdma_cm} (@code{librdmacm})\n" +"@item @file{/dev/infiniband/umadX} (@code{libibumad})\n" +"@end enumerate\n" +"\n" +"The following service daemons are also provided:\n" +"@enumerate\n" +"@item @code{srp_daemon} (for the @code{ib_srp} kernel module)\n" +"@item @code{iwpmd} (for iWARP kernel providers)\n" +"@item @code{ibacm} (for InfiniBand communication management assistant)\n" +"@end enumerate" +msgstr "" + +#: gnu/packages/linux.scm:3146 +msgid "Random number generator daemon" +msgstr "" + +#: gnu/packages/linux.scm:3148 +msgid "" +"Monitor a hardware random number generator, and supply entropy\n" +"from that to the system kernel's @file{/dev/random} machinery." +msgstr "" + +#: gnu/packages/linux.scm:3186 +msgid "CPU frequency and voltage scaling tools for Linux" +msgstr "" + +#: gnu/packages/linux.scm:3188 +msgid "" +"cpupower is a set of user-space tools that use the cpufreq feature of the\n" +"Linux kernel to retrieve and control processor features related to power saving,\n" +"such as frequency and voltage scaling." +msgstr "" + +#: gnu/packages/linux.scm:3207 +msgid "Entropy source for the Linux random number generator" +msgstr "" + +#: gnu/packages/linux.scm:3209 +msgid "" +"haveged generates an unpredictable stream of random numbers for use by\n" +"Linux's @file{/dev/random} and @file{/dev/urandom} devices. The kernel's\n" +"standard mechanisms for filling the entropy pool may not be sufficient for\n" +"systems with high needs or limited user interaction, such as headless servers.\n" +"@command{haveged} runs as a privileged daemon, harvesting randomness from the\n" +"indirect effects of hardware events on hidden processor state using the HArdware\n" +"Volatile Entropy Gathering and Expansion (HAVEGE) algorithm. It tunes itself to\n" +"its environment and provides the same built-in test suite for the output stream\n" +"as used on certified hardware security devices." +msgstr "" + +#: gnu/packages/linux.scm:3248 +msgid "eCryptfs cryptographic file system utilities" +msgstr "" + +#: gnu/packages/linux.scm:3250 +msgid "" +"eCryptfs is a POSIX-compliant stacked cryptographic file system for Linux.\n" +"Each file's cryptographic meta-data is stored inside the file itself, along\n" +"with the encrypted contents. This allows individual encrypted files to be\n" +"copied between hosts and still be decrypted with the proper key. eCryptfs is a\n" +"native Linux file system, and has been part of the Linux kernel since version\n" +"2.6.19. This package contains the userland utilities to manage it." +msgstr "" + +#: gnu/packages/linux.scm:3281 +msgid "NFSv4 support library for name/ID mapping" +msgstr "" + +#: gnu/packages/linux.scm:3282 +msgid "" +"Libnfsidmap is a library holding mulitiple methods of\n" +"mapping names to ids and visa versa, mainly for NFSv4. It provides an\n" +"extensible array of mapping functions, currently consisting of two choices:\n" +"the default @code{nsswitch} and the experimental @code{umich_ldap}." +msgstr "" + +#: gnu/packages/linux.scm:3315 +msgid "Tools for loading and managing Linux kernel modules" +msgstr "Outils de chargement et de gestion de modules noyau pour Linux" + +#: gnu/packages/linux.scm:3317 +msgid "" +"Tools for loading and managing Linux kernel modules, such as `modprobe',\n" +"`insmod', `lsmod', and more." +msgstr "" +"Outils pour le chargement et la gestion des modules noyau Linux, tels que\n" +"\"modprob\", \"insmod\", \"lsmod\" et plus." + +#: gnu/packages/linux.scm:3351 +msgid "Machine check monitor for x86 Linux systems" +msgstr "" + +#: gnu/packages/linux.scm:3353 +msgid "" +"The mcelog daemon is required by the Linux kernel to log memory, I/O, CPU,\n" +"and other hardware errors on x86 systems. It can also perform user-defined\n" +"tasks, such as bringing bad pages off-line, when configurable error thresholds\n" +"are exceeded." +msgstr "" + +#: gnu/packages/linux.scm:3382 +msgid "MTD Flash Storage Utilities" +msgstr "" + +#: gnu/packages/linux.scm:3383 +#, fuzzy +#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems." +msgid "" +"This package provides utilities for testing, partitioning, etc\n" +"of flash storage." +msgstr "Ce paquet fournit des outils pour manipuler les systèmes de fichiers ext2/ext3/ext4" + +#: gnu/packages/linux.scm:3406 +msgid "Interface to Linux's seccomp syscall filtering mechanism" +msgstr "" + +#: gnu/packages/linux.scm:3407 +msgid "" +"The libseccomp library provides an easy to use, platform\n" +"independent, interface to the Linux Kernel's syscall filtering mechanism. The\n" +"libseccomp API is designed to abstract away the underlying BPF based syscall\n" +"filter language and present a more conventional function-call based filtering\n" +"interface that should be familiar to, and easily adopted by, application\n" +"developers." +msgstr "" + +#: gnu/packages/linux.scm:3449 +msgid "Usage monitor for AMD Radeon graphics" +msgstr "" + +#: gnu/packages/linux.scm:3450 +msgid "" +"RadeonTop monitors resource consumption on supported AMD\n" +"Radeon Graphics Processing Units (GPUs), either in real time as bar graphs on\n" +"a terminal or saved to a file for further processing. It measures both the\n" +"activity of the GPU as a whole, which is also accurate during OpenCL\n" +"computations, as well as separate component statistics that are only meaningful\n" +"under OpenGL graphics workloads." +msgstr "" + +#: gnu/packages/linux.scm:3485 +msgid "Tool and library to manipulate EFI variables" +msgstr "" + +#: gnu/packages/linux.scm:3486 +msgid "" +"This package provides a library and a command line\n" +"interface to the variable facility of UEFI boot firmware." +msgstr "" + +#: gnu/packages/linux.scm:3527 +msgid "Modify the Extensible Firmware Interface (EFI) boot manager" +msgstr "" + +#: gnu/packages/linux.scm:3529 +msgid "" +"@code{efibootmgr} is a user-space application to modify the Intel\n" +"Extensible Firmware Interface (EFI) Boot Manager. This application can\n" +"create and destroy boot entries, change the boot order, change the next\n" +"running boot option, and more." +msgstr "" + +#: gnu/packages/linux.scm:3565 +msgid "Performance monitoring tools for Linux" +msgstr "" + +#: gnu/packages/linux.scm:3566 +msgid "" +"The sysstat utilities are a collection of performance\n" +"monitoring tools for Linux. These include @code{mpstat}, @code{iostat},\n" +"@code{tapestat}, @code{cifsiostat}, @code{pidstat}, @code{sar}, @code{sadc},\n" +"@code{sadf} and @code{sa}." +msgstr "" + +#: gnu/packages/linux.scm:3598 +msgid "GNU/Linux application to control backlights" +msgstr "" + +#: gnu/packages/linux.scm:3600 +msgid "" +"Light is a program to send commands to screen backlight controllers\n" +"under GNU/Linux. Features include:\n" +"\n" +"@itemize\n" +"@item It does not rely on X.\n" +"@item Light can automatically figure out the best controller to use, making\n" +"full use of underlying hardware.\n" +"@item It is possible to set a minimum brightness value, as some controllers\n" +"set the screen to be pitch black at a vaĺue of 0 (or higher).\n" +"@end itemize\n" +"\n" +"Light is the successor of lightscript." +msgstr "" + +#: gnu/packages/linux.scm:3702 +#, fuzzy +#| msgid "Logical volume management for Linux" +msgid "Power management tool for Linux" +msgstr "Gestion de volumes logiques pour Linux" + +#: gnu/packages/linux.scm:3703 +msgid "" +"TLP is a power management tool for Linux. It comes with\n" +"a default configuration already optimized for battery life. Nevertheless,\n" +"TLP is customizable to fulfil system requirements. TLP settings are applied\n" +"every time the power supply source is changed." +msgstr "" + +#: gnu/packages/linux.scm:3730 +#, fuzzy +#| msgid "Hardware health information viewer" +msgid "List hardware information" +msgstr "Utiltaire de monitoring hardware" + +#: gnu/packages/linux.scm:3732 +msgid "" +"@command{lshw} (Hardware Lister) is a small tool to provide\n" +"detailed information on the hardware configuration of the machine.\n" +"It can report exact memory configuration, firmware version, mainboard\n" +"configuration, CPU version and speed, cache configuration, bus speed,\n" +"and more on DMI-capable x86 or EFI (IA-64) systems and on some PowerPC\n" +"machines (PowerMac G4 is known to work)." +msgstr "" + +#: gnu/packages/linux.scm:3755 +#, fuzzy +#| msgid "NetLink protocol library suite" +msgid "Netlink utility library" +msgstr "Bibliothèqye pour le protocole NetLink" + +#: gnu/packages/linux.scm:3756 +msgid "" +"Libmnl is a minimalistic user-space library oriented to\n" +"Netlink developers. There are a lot of common tasks in parsing, validating,\n" +"constructing of both the Netlink header and TLVs that are repetitive and easy to\n" +"get wrong. This library aims to provide simple helpers that allows you to\n" +"re-use code and to avoid re-inventing the wheel." +msgstr "" + +#: gnu/packages/linux.scm:3781 +msgid "Netlink programming interface to the Linux nf_tables subsystem" +msgstr "" + +#: gnu/packages/linux.scm:3782 +msgid "" +"Libnftnl is a userspace library providing a low-level netlink\n" +"programming interface to the in-kernel nf_tables subsystem. The library\n" +"libnftnl has been previously known as libnftables. This library is currently\n" +"used by nftables." +msgstr "" + #: gnu/packages/lout.scm:109 msgid "Document layout system" msgstr "" @@ -1239,21 +8225,340 @@ msgid "" "beginning." msgstr "" -#: gnu/packages/mpd.scm:62 +#: gnu/packages/messaging.scm:109 +msgid "Off-the-Record (OTR) Messaging Library and Toolkit" +msgstr "" + +#: gnu/packages/messaging.scm:111 +msgid "" +"OTR allows you to have private conversations over instant messaging by\n" +"providing: (1) Encryption: No one else can read your instant messages. (2)\n" +"Authentication: You are assured the correspondent is who you think it is. (3)\n" +"Deniability: The messages you send do not have digital signatures that are\n" +"checkable by a third party. Anyone can forge messages after a conversation to\n" +"make them look like they came from you. However, during a conversation, your\n" +"correspondent is assured the messages he sees are authentic and\n" +"unmodified. (4) Perfect forward secrecy: If you lose control of your private\n" +"keys, no previous conversation is compromised." +msgstr "" + +#: gnu/packages/messaging.scm:156 +msgid "IRC to instant messaging gateway" +msgstr "" + +#: gnu/packages/messaging.scm:157 +msgid "" +"BitlBee brings IM (instant messaging) to IRC clients, for\n" +"people who have an IRC client running all the time and don't want to run an\n" +"additional IM client. BitlBee currently supports XMPP/Jabber (including\n" +"Google Talk), MSN Messenger, Yahoo! Messenger, AIM and ICQ, and the Twitter\n" +"microblogging network (plus all other Twitter API compatible services like\n" +"identi.ca and status.net)." +msgstr "" + +#: gnu/packages/messaging.scm:218 +msgid "Graphical IRC Client" +msgstr "" + +#: gnu/packages/messaging.scm:220 +msgid "" +"HexChat lets you connect to multiple IRC networks at once. The main\n" +"window shows the list of currently connected networks and their channels, the\n" +"current conversation and the list of users. It uses colors to differentiate\n" +"between users and to highlight messages. It checks spelling using available\n" +"dictionaries. HexChat can be extended with multiple addons." +msgstr "" + +#: gnu/packages/messaging.scm:285 +msgid "Lightweight Internet Relay Chat server for small networks" +msgstr "" + +#: gnu/packages/messaging.scm:287 +msgid "" +"ngIRCd is a lightweight @dfn{Internet Relay Chat} (IRC) server for small\n" +"or private networks. It is easy to configure, can cope with dynamic IP\n" +"addresses, and supports IPv6, SSL-protected connections, as well as PAM for\n" +"authentication." +msgstr "" + +#: gnu/packages/messaging.scm:359 +msgid "Graphical multi-protocol instant messaging client" +msgstr "" + +#: gnu/packages/messaging.scm:361 +msgid "" +"Pidgin is a modular instant messaging client that supports many popular\n" +"chat protocols." +msgstr "" + +#: gnu/packages/messaging.scm:399 +msgid "Off-the-Record Messaging plugin for Pidgin" +msgstr "" + +#: gnu/packages/messaging.scm:401 +msgid "" +"Pidgin-OTR is a plugin that adds support for OTR to the Pidgin instant\n" +"messaging client. OTR (Off-the-Record) Messaging allows you to have private\n" +"conversations over instant messaging by providing: (1) Encryption: No one else\n" +"can read your instant messages. (2) Authentication: You are assured the\n" +"correspondent is who you think it is. (3) Deniability: The messages you send\n" +"do not have digital signatures that are checkable by a third party. Anyone\n" +"can forge messages after a conversation to make them look like they came from\n" +"you. However, during a conversation, your correspondent is assured the\n" +"messages he sees are authentic and unmodified. (4) Perfect forward secrecy:\n" +"If you lose control of your private keys, no previous conversation is\n" +"compromised." +msgstr "" + +#: gnu/packages/messaging.scm:452 +msgid "IRC network bouncer" +msgstr "" + +#: gnu/packages/messaging.scm:453 +msgid "" +"ZNC is an IRC network bouncer or BNC. It can detach the\n" +"client from the actual IRC server, and also from selected channels. Multiple\n" +"clients from different locations can connect to a single ZNC account\n" +"simultaneously and therefore appear under the same nickname on IRC." +msgstr "" + +#: gnu/packages/messaging.scm:474 +msgid "Non-blocking Jabber/XMPP module" +msgstr "" + +#: gnu/packages/messaging.scm:476 +msgid "" +"The goal of this python library is to provide a way for Python\n" +"applications to use Jabber/XMPP networks in a non-blocking way. This library\n" +"was initially a fork of xmpppy, but uses non-blocking sockets." +msgstr "" + +#: gnu/packages/messaging.scm:525 +msgid "Jabber (XMPP) client" +msgstr "" + +#: gnu/packages/messaging.scm:526 +msgid "" +"Gajim is a feature-rich and easy to use Jabber/XMPP client.\n" +"Among its features are: a tabbed chat window and single window modes; support\n" +"for group chat (with Multi-User Chat protocol), invitation, chat to group chat\n" +"transformation; audio and video conferences; file transfer; TLS, GPG and\n" +"end-to-end encryption support; XML console." +msgstr "" + +#: gnu/packages/messaging.scm:615 +msgid "Jabber (XMPP) server" +msgstr "" + +#: gnu/packages/messaging.scm:616 +msgid "" +"Prosody is a modern XMPP communication server. It aims to\n" +"be easy to set up and configure, and efficient with system resources.\n" +"Additionally, for developers it aims to be easy to extend and give a flexible\n" +"system on which to rapidly develop added functionality, or prototype new\n" +"protocols." +msgstr "" + +#: gnu/packages/messaging.scm:658 gnu/packages/messaging.scm:699 +msgid "Library for the Tox encrypted messenger protocol" +msgstr "" + +#: gnu/packages/messaging.scm:660 +msgid "C library implementation of the Tox encrypted messenger protocol." +msgstr "" + +#: gnu/packages/messaging.scm:701 +msgid "" +"Official fork of the C library implementation of the Tox\n" +"encrypted messenger protocol." +msgstr "" + +#: gnu/packages/messaging.scm:749 +#, fuzzy +#| msgid "Lightweight PDF viewer and toolkit" +msgid "Lightweight Tox client" +msgstr "Boite à outils légère pour la visualisation de documents PDF" + +#: gnu/packages/messaging.scm:751 +msgid "" +"Utox is a lightweight Tox client. Tox is a distributed and secure\n" +"instant messenger with audio and video chat capabilities." +msgstr "" + +#: gnu/packages/messaging.scm:802 +msgid "Tox chat client using Qt" +msgstr "" + +#: gnu/packages/messaging.scm:803 +msgid "" +"qTox is a Tox client that follows the Tox design\n" +"guidelines. It provides an easy to use application that allows you to\n" +"connect with friends and family without anyone else listening in." +msgstr "" + +#: gnu/packages/messaging.scm:900 +msgid "" +"Distributed and trustless peer-to-peer communications protocol\n" +"for sending encrypted messages to one person or many subscribers." +msgstr "" + +#: gnu/packages/messaging.scm:902 +msgid "Distributed peer-to-peer communication" +msgstr "" + +#: gnu/packages/messaging.scm:921 +msgid "Multi-user chat program" +msgstr "" + +#: gnu/packages/messaging.scm:922 +msgid "" +"Ytalk is a replacement for the BSD talk program. Its main\n" +"advantage is the ability to communicate with any arbitrary number of users at\n" +"once. It supports both talk protocols (\"talk\" and \"ntalk\") and can communicate\n" +"with several different talk daemons at the same time." +msgstr "" + +#: gnu/packages/messaging.scm:947 +msgid "Portable high-level Jabber/XMPP library for C++" +msgstr "" + +#: gnu/packages/messaging.scm:949 +msgid "" +"gloox is a full-featured Jabber/XMPP client library,\n" +"written in ANSI C++. It makes writing spec-compliant clients easy\n" +"and allows for hassle-free integration of Jabber/XMPP functionality\n" +"into existing applications." +msgstr "" + +#: gnu/packages/messaging.scm:1022 +msgid "" +"@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and\n" +"Gtk2 event loops. This package includes 12 applications and additional scripts:\n" +"psycion (a @uref{http://about.psyc.eu,PSYC} chat client), remotor (a control console\n" +"for @uref{https://torproject.org,tor} router) and many more." +msgstr "" + +#: gnu/packages/messaging.scm:1026 +msgid "Perl implementation of PSYC protocol" +msgstr "" + +#: gnu/packages/messaging.scm:1065 +msgid "" +"@code{libpsyc} is a PSYC library in C which implements\n" +"core aspects of PSYC, useful for all kinds of clients and servers\n" +"including psyced." +msgstr "" + +#: gnu/packages/messaging.scm:1068 +msgid "PSYC library in C" +msgstr "" + +#: gnu/packages/messaging.scm:1135 +msgid "psycLPC is a multi-user network server programming language" +msgstr "" + +#: gnu/packages/messaging.scm:1137 +msgid "" +"LPC is a bytecode language, invented to specifically implement\n" +"multi user virtual environments on the internet. This technology is used for\n" +"MUDs and also the psyced implementation of the Protocol for SYnchronous\n" +"Conferencing (PSYC). psycLPC is a fork of LDMud with some new features and\n" +"many bug fixes." +msgstr "" + +#: gnu/packages/messaging.scm:1168 +msgid "" +"Loudmouth is a lightweight and easy-to-use C library for programming\n" +"with the XMPP (formerly known as Jabber) protocol. It is designed to be\n" +"easy to get started with and yet extensible to let you do anything the XMPP\n" +"protocol allows." +msgstr "" + +#: gnu/packages/messaging.scm:1172 +msgid "Asynchronous XMPP library" +msgstr "" + +#: gnu/packages/messaging.scm:1204 +msgid "" +"Mcabber is a small XMPP (Jabber) console client, which includes features\n" +"such as SASL and TLS support, @dfn{Multi-User Chat} (MUC) support, logging,\n" +"command-completion, OpenPGP encryption, @dfn{Off-the-Record Messaging} (OTR)\n" +"support, and more." +msgstr "" + +#: gnu/packages/messaging.scm:1208 +msgid "Small XMPP console client" +msgstr "" + +#: gnu/packages/messaging.scm:1254 +msgid "Extensible console-based Jabber client" +msgstr "" + +#: gnu/packages/messaging.scm:1256 +msgid "" +"GNU Freetalk is a command-line Jabber/XMPP chat client. It notably uses\n" +"the Readline library to handle input, so it features convenient navigation of\n" +"text as well as tab-completion of buddy names, commands and English words. It\n" +"is also scriptable and extensible via Guile." +msgstr "" + +#: gnu/packages/messaging.scm:1290 gnu/packages/messaging.scm:1325 +#, fuzzy +#| msgid "Library for working with POSIX capabilities" +msgid "C library for writing XMPP clients" +msgstr "Bibliothèque pour travailler avec les possibilités de POSIX" + +#: gnu/packages/messaging.scm:1291 +msgid "" +"Libmesode is a fork of libstrophe for use with Profanity\n" +"XMPP Client. In particular, libmesode provides extra TLS functionality such as\n" +"manual SSL certificate verification." +msgstr "" + +#: gnu/packages/messaging.scm:1326 +msgid "" +"Libstrophe is a minimal XMPP library written in C. It has\n" +"almost no external dependencies, only an XML parsing library (expat or libxml\n" +"are both supported)." +msgstr "" + +#: gnu/packages/messaging.scm:1362 +msgid "Console-based XMPP client" +msgstr "" + +#: gnu/packages/messaging.scm:1363 +msgid "" +"Profanity is a console based XMPP client written in C\n" +"using ncurses and libmesode, inspired by Irssi." +msgstr "" + +#: gnu/packages/messaging.scm:1393 +msgid "Library implementing the client IRC protocol" +msgstr "" + +#: gnu/packages/messaging.scm:1394 +msgid "" +"Libircclient is a library which implements the client IRC\n" +"protocol. It is designed to be small, fast, portable and compatible with the\n" +"RFC standards as well as non-standard but popular features. It can be used for\n" +"building the IRC clients and bots." +msgstr "" + +#: gnu/packages/mpd.scm:69 msgid "Music Player Daemon client library" msgstr "" -#: gnu/packages/mpd.scm:63 +#: gnu/packages/mpd.scm:70 msgid "" "A stable, documented, asynchronous API library for\n" "interfacing MPD in the C, C++ & Objective C languages." msgstr "" -#: gnu/packages/mpd.scm:121 +#: gnu/packages/mpd.scm:142 msgid "Music Player Daemon" msgstr "" -#: gnu/packages/mpd.scm:122 +#: gnu/packages/mpd.scm:143 msgid "" "Music Player Daemon (MPD) is a flexible, powerful,\n" "server-side application for playing music. Through plugins and libraries it\n" @@ -1261,49 +8566,603 @@ msgid "" "protocol." msgstr "" -#: gnu/packages/mpd.scm:147 +#: gnu/packages/mpd.scm:166 +msgid "Music Player Daemon client" +msgstr "" + +#: gnu/packages/mpd.scm:167 +msgid "" +"MPC is a minimalist command line interface to MPD, the music\n" +"player daemon." +msgstr "" + +#: gnu/packages/mpd.scm:190 msgid "Curses Music Player Daemon client" msgstr "" -#: gnu/packages/mpd.scm:148 +#: gnu/packages/mpd.scm:191 msgid "" "ncmpc is a fully featured MPD client, which runs in a\n" "terminal using ncurses." msgstr "" -#: gnu/packages/mpd.scm:169 +#: gnu/packages/mpd.scm:220 msgid "Featureful ncurses based MPD client inspired by ncmpc" msgstr "" -#: gnu/packages/mpd.scm:170 +#: gnu/packages/mpd.scm:221 msgid "" "Ncmpcpp is an mpd client with a UI very similar to ncmpc,\n" "but it provides new useful features such as support for regular expressions\n" "for library searches, extended song format, items filtering, the ability to\n" -"sort playlists, and a local filesystem browser." +"sort playlists, and a local file system browser." +msgstr "" + +#: gnu/packages/mpd.scm:244 +msgid "MPD client for track scrobbling" +msgstr "" + +#: gnu/packages/mpd.scm:245 +msgid "" +"mpdscribble is a Music Player Daemon client which submits\n" +"information about tracks being played to a scrobbler, such as Libre.FM." +msgstr "" + +#: gnu/packages/mpd.scm:270 +msgid "Python MPD client library" +msgstr "" + +#: gnu/packages/mpd.scm:271 +msgid "" +"Python-mpd2 is a Python library which provides a client\n" +"interface for the Music Player Daemon." +msgstr "" + +#: gnu/packages/mpd.scm:320 +msgid "Elegant client for the Music Player Daemon" +msgstr "" + +#: gnu/packages/mpd.scm:321 +msgid "" +"Sonata is an elegant graphical client for the Music Player\n" +"Daemon (MPD). It supports playlists, multiple profiles (connecting to different\n" +"MPD servers, search and multimedia key support." +msgstr "" + +#: gnu/packages/netpbm.scm:167 +#, fuzzy +#| msgid "Tools for manipulating Linux Wireless Extensions" +msgid "Toolkit for manipulation of images" +msgstr "Outils de manipulation d'extensions sans fil pour Linux" + +#: gnu/packages/netpbm.scm:169 +msgid "" +"Netpbm is a toolkit for the manipulation of graphic images, including\n" +"the conversion of images between a variety of different formats.\n" +"There are over 300 separate tools in the package including converters for\n" +"about 100 graphics formats." +msgstr "" + +#: gnu/packages/nettle.scm:51 +msgid "C library for low-level cryptographic functionality" msgstr "" -#: gnu/packages/pdf.scm:79 +#: gnu/packages/nettle.scm:53 +msgid "" +"GNU Nettle is a low-level cryptographic library. It is designed to\n" +"fit in easily in almost any context. It can be easily included in\n" +"cryptographic toolkits for object-oriented languages or in applications\n" +"themselves." +msgstr "" + +#: gnu/packages/networking.scm:81 +msgid "Viewing and manipulating MAC addresses of network interfaces" +msgstr "" + +#: gnu/packages/networking.scm:82 +msgid "" +"GNU MAC Changer is a utility for viewing and changing MAC\n" +"addresses of networking devices. New addresses may be set explicitly or\n" +"randomly. They can include MAC addresses of the same or other hardware vendors\n" +"or, more generally, MAC addresses of the same category of hardware." +msgstr "" + +#: gnu/packages/networking.scm:110 +msgid "Teredo IPv6 tunneling software" +msgstr "" + +#: gnu/packages/networking.scm:112 +msgid "" +"Miredo is an implementation (client, relay, server) of the Teredo\n" +"specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts\n" +"residing in IPv4-only networks, even when they are behind a NAT device." +msgstr "" + +#: gnu/packages/networking.scm:134 +msgid "Open bidirectional communication channels from the command line" +msgstr "" + +#: gnu/packages/networking.scm:136 +msgid "" +"socat is a relay for bidirectional data transfer between two independent\n" +"data channels---files, pipes, devices, sockets, etc. It can create\n" +"\"listening\" sockets, named pipes, and pseudo terminals.\n" +"\n" +"socat can be used, for instance, as TCP port forwarder, as a shell interface\n" +"to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial\n" +"line, to logically connect serial lines on different computers, or to\n" +"establish a relatively secure environment (su and chroot) for running client\n" +"or server shell scripts with network connections." +msgstr "" + +#: gnu/packages/networking.scm:217 +msgid "Monitor and filter incoming requests for network services" +msgstr "" + +#: gnu/packages/networking.scm:218 +msgid "" +"With this package you can monitor and filter incoming requests for\n" +"network services. It includes a library which may be used by daemons to\n" +"transparently check connection attempts against an access control list." +msgstr "" + +#: gnu/packages/networking.scm:238 +msgid "Library for message-based applications" +msgstr "" + +#: gnu/packages/networking.scm:240 +msgid "" +"The 0MQ lightweight messaging kernel is a library which extends the\n" +"standard socket interfaces with features traditionally provided by specialized\n" +"messaging middle-ware products. 0MQ sockets provide an abstraction of\n" +"asynchronous message queues, multiple messaging patterns, message\n" +"filtering (subscriptions), seamless access to multiple transport protocols and\n" +"more." +msgstr "" + +#: gnu/packages/networking.scm:279 +msgid "Apache Kafka C/C++ client library" +msgstr "" + +#: gnu/packages/networking.scm:281 +msgid "" +"librdkafka is a C library implementation of the Apache Kafka protocol,\n" +"containing both Producer and Consumer support." +msgstr "" + +#: gnu/packages/networking.scm:298 +msgid "Library for Neighbor Discovery Protocol" +msgstr "" + +#: gnu/packages/networking.scm:300 +msgid "" +"libndp contains a library which provides a wrapper for IPv6 Neighbor\n" +"Discovery Protocol. It also provides a tool named ndptool for sending and\n" +"receiving NDP messages." +msgstr "" + +#: gnu/packages/networking.scm:318 +msgid "Display or change Ethernet device settings" +msgstr "" + +#: gnu/packages/networking.scm:320 +msgid "" +"ethtool can be used to query and change settings such as speed,\n" +"auto-negotiation and checksum offload on many network devices, especially\n" +"Ethernet devices." +msgstr "" + +#: gnu/packages/networking.scm:357 +msgid "Text based network interface status monitor" +msgstr "" + +#: gnu/packages/networking.scm:359 +msgid "" +"IFStatus is a simple, easy-to-use program for displaying commonly\n" +"needed/wanted real-time traffic statistics of multiple network\n" +"interfaces, with a simple and efficient view on the command line. It is\n" +"intended as a substitute for the PPPStatus and EthStatus projects." +msgstr "" + +#: gnu/packages/networking.scm:379 +msgid "Realtime console network usage monitor" +msgstr "" + +#: gnu/packages/networking.scm:381 +msgid "" +"Nload is a console application which monitors network traffic and\n" +"bandwidth usage in real time. It visualizes the in- and outgoing traffic using\n" +"two graphs, and provides additional info like total amount of transferred data\n" +"and min/max network usage." +msgstr "" + +#: gnu/packages/networking.scm:424 +msgid "Tunnel IPv4 data through a DNS server" +msgstr "" + +#: gnu/packages/networking.scm:425 +msgid "" +"Iodine tunnels IPv4 data through a DNS server. This\n" +"can be useful in different situations where internet access is firewalled, but\n" +"DNS queries are allowed. The bandwidth is asymmetrical, with limited upstream\n" +"and up to 1 Mbit/s downstream." +msgstr "" + +#: gnu/packages/networking.scm:463 +msgid "Improved whois client" +msgstr "" + +#: gnu/packages/networking.scm:464 +msgid "" +"This whois client is intelligent and can\n" +"automatically select the appropriate whois server for most queries.\n" +"Because of historical reasons this also includes a tool called mkpasswd\n" +"which can be used to encrypt a password with @code{crypt(3)}." +msgstr "" + +#: gnu/packages/networking.scm:475 +msgid "Network traffic analyzer" +msgstr "" + +#: gnu/packages/networking.scm:516 +msgid "" +"Wireshark is a network protocol analyzer, or @dfn{packet\n" +"sniffer}, that lets you capture and interactively browse the contents of\n" +"network frames." +msgstr "" + +#: gnu/packages/networking.scm:547 +msgid "Web server latency and throughput monitor" +msgstr "" + +#: gnu/packages/networking.scm:549 +msgid "" +"httping measures how long it takes to connect to a web server, send an\n" +"HTTP(S) request, and receive the reply headers. It is somewhat similar to\n" +"@command{ping}, but can be used even in cases where ICMP traffic is blocked\n" +"by firewalls or when you want to monitor the response time of the actual web\n" +"application stack itself." +msgstr "" + +#: gnu/packages/networking.scm:580 +msgid "Visualize curl statistics" +msgstr "" + +#: gnu/packages/networking.scm:582 +msgid "" +"@command{httpstat} is a tool to visualize statistics from the\n" +"@command{curl} HTTP client. It acts as a wrapper for @command{curl} and\n" +"prints timing information for each step of the HTTP request (DNS lookup,\n" +"TCP connection, TLS handshake and so on) in the terminal." +msgstr "" + +#: gnu/packages/networking.scm:602 +msgid "Console based live network and disk I/O bandwidth monitor" +msgstr "" + +#: gnu/packages/networking.scm:603 +msgid "" +"Bandwidth Monitor NG is a small and simple console based\n" +"live network and disk I/O bandwidth monitor." +msgstr "" + +#: gnu/packages/networking.scm:652 +msgid "Assess WiFi network security" +msgstr "" + +#: gnu/packages/networking.scm:654 +msgid "" +"Aircrack-ng is a complete suite of tools to assess WiFi network\n" +"security. It focuses on different areas of WiFi security: monitoring,\n" +"attacking, testing, and cracking. All tools are command-line driven, which\n" +"allows for heavy scripting." +msgstr "" + +#: gnu/packages/networking.scm:679 +msgid "Perl Interface to the Domain Name System" +msgstr "" + +#: gnu/packages/networking.scm:680 +msgid "Net::DNS is the Perl Interface to the Domain Name System." +msgstr "" + +#: gnu/packages/networking.scm:711 +msgid "IPv6 related part of the C socket.h defines and structure manipulators for Perl" +msgstr "" + +#: gnu/packages/networking.scm:712 +msgid "" +"Socket6 binds the IPv6 related part of the C socket header\n" +"definitions and structure manipulators for Perl." +msgstr "" + +#: gnu/packages/networking.scm:738 +msgid "Programmable DNS resolver class for offline emulation of DNS" +msgstr "" + +#: gnu/packages/networking.scm:739 +msgid "" +"Net::DNS::Resolver::Programmable is a programmable DNS resolver for\n" +"offline emulation of DNS." +msgstr "" + +#: gnu/packages/networking.scm:772 +msgid "Manages IPv4 and IPv6 addresses and subnets" +msgstr "" + +#: gnu/packages/networking.scm:773 +msgid "NetAddr::IP manages IPv4 and IPv6 addresses and subsets." +msgstr "" + +#: gnu/packages/networking.scm:797 +msgid "Patricia Trie Perl module for fast IP address lookups" +msgstr "" + +#: gnu/packages/networking.scm:799 +msgid "Net::Patricia does IP address lookups quickly in Perl." +msgstr "" + +#: gnu/packages/networking.scm:822 +msgid "Perl extension for merging IPv4 or IPv6 CIDR addresses" +msgstr "" + +#: gnu/packages/networking.scm:823 +msgid "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses." +msgstr "" + +#: gnu/packages/networking.scm:845 +msgid "Look up location and network information by IP Address in Perl" +msgstr "" + +#: gnu/packages/networking.scm:846 +msgid "" +"The Perl module 'Geo::IP'. It looks up location and network\n" +"information by IP Address." +msgstr "" + +#: gnu/packages/networking.scm:875 +msgid "Perl object interface for AF_INET/AF_INET6 domain sockets" +msgstr "" + +#: gnu/packages/networking.scm:876 +msgid "" +"IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain\n" +"sockets in Perl." +msgstr "" + +#: gnu/packages/networking.scm:907 +msgid "Redirect any TCP connection through a proxy or proxy chain" +msgstr "" + +#: gnu/packages/networking.scm:908 +msgid "" +"Proxychains-ng is a preloader which hooks calls to sockets\n" +"in dynamically linked programs and redirects them through one or more SOCKS or\n" +"HTTP proxies." +msgstr "" + +#: gnu/packages/networking.scm:929 +msgid "Network communication layer on top of UDP" +msgstr "" + +#: gnu/packages/networking.scm:931 +msgid "" +"ENet's purpose is to provide a relatively thin, simple and robust network\n" +"communication layer on top of UDP. The primary feature it provides is optional\n" +"reliable, in-order delivery of packets. ENet omits certain higher level\n" +"networking features such as authentication, server discovery, encryption, or\n" +"other similar tasks that are particularly application specific so that the\n" +"library remains flexible, portable, and easily embeddable." +msgstr "" + +#: gnu/packages/networking.scm:994 +msgid "Applicative network protocol demultiplexer" +msgstr "" + +#: gnu/packages/networking.scm:996 +msgid "" +"sslh is a network protocol demultiplexer. It acts like a switchboard,\n" +"accepting connections from clients on one port and forwarding them to different\n" +"servers based on the contents of the first received data packet. Detection of\n" +"common protocols like HTTP(S), SSL, SSH, OpenVPN, tinc, and XMPP is already\n" +"implemented, but any other protocol that matches a regular expression can be\n" +"added. sslh's name comes from its original application of serving both SSH and\n" +"HTTPS on port 443, allowing SSH connections from inside corporate firewalls\n" +"that block port 22." +msgstr "" + +#: gnu/packages/networking.scm:1019 +msgid "TCP, UDP and SCTP bandwidth measurement tool" +msgstr "" + +#: gnu/packages/networking.scm:1021 +msgid "" +"iPerf is a tool to measure achievable bandwidth on IP networks. It\n" +"supports tuning of various parameters related to timing, buffers and\n" +"protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports\n" +"the bandwidth, loss, and other parameters." +msgstr "" + +#: gnu/packages/networking.scm:1054 +msgid "Per-process bandwidth monitor" +msgstr "" + +#: gnu/packages/networking.scm:1055 +msgid "" +"NetHogs is a small 'net top' tool for Linux. Instead of\n" +"breaking the traffic down per protocol or per subnet, like most tools do, it\n" +"groups bandwidth by process.\n" +"\n" +"NetHogs does not rely on a special kernel module to be loaded. If there's\n" +"suddenly a lot of network traffic, you can fire up NetHogs and immediately see\n" +"which PID is causing this. This makes it easy to identify programs that have\n" +"gone wild and are suddenly taking up your bandwidth." +msgstr "" + +#: gnu/packages/networking.scm:1111 +msgid "Virtual network switch" +msgstr "" + +#: gnu/packages/networking.scm:1114 +msgid "" +"Open vSwitch is a multilayer virtual switch. It is designed to enable\n" +"massive network automation through programmatic extension, while still\n" +"supporting standard management interfaces and protocols (e.g. NetFlow, sFlow,\n" +"IPFIX, RSPAN, CLI, LACP, 802.1ag)." +msgstr "" + +#: gnu/packages/networking.scm:1136 +msgid "Python class and tools for handling IP addresses and networks" +msgstr "" + +#: gnu/packages/networking.scm:1137 +msgid "" +"The @code{IP} class allows a comfortable parsing and\n" +"handling for most notations in use for IPv4 and IPv6 addresses and\n" +"networks." +msgstr "" + +#: gnu/packages/networking.scm:1157 +msgid "Internet bandwidth tester" +msgstr "" + +#: gnu/packages/networking.scm:1159 +msgid "" +"Command line interface for testing internet bandwidth using\n" +"speedtest.net." +msgstr "" + +#: gnu/packages/networking.scm:1177 +msgid "HPA's tftp client" +msgstr "" + +#: gnu/packages/networking.scm:1179 +msgid "" +"This is a tftp client derived from OpenBSD tftp with some extra options\n" +"added and bugs fixed. The source includes readline support but it is not\n" +"enabled due to license conflicts between the BSD advertising clause and the GPL." +msgstr "" + +#: gnu/packages/pdf.scm:126 msgid "PDF rendering library" msgstr "Bibliothèque de rendu PDF" -#: gnu/packages/pdf.scm:81 +#: gnu/packages/pdf.scm:128 msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base." msgstr "" -#: gnu/packages/pdf.scm:124 +#: gnu/packages/pdf.scm:137 +msgid "Qt4 frontend for the Poppler PDF rendering library" +msgstr "" + +#: gnu/packages/pdf.scm:148 +msgid "Qt5 frontend for the Poppler PDF rendering library" +msgstr "" + +#: gnu/packages/pdf.scm:181 +msgid "Python bindings for Poppler-Qt4" +msgstr "" + +#: gnu/packages/pdf.scm:183 +#, fuzzy +#| msgid "This package provides an database interface for Perl." +msgid "" +"This package provides Python bindings for the Qt4 interface of the\n" +"Poppler PDF rendering library." +msgstr "Ce paquet fournit une interface de base de données pour Perl." + +#: gnu/packages/pdf.scm:228 +msgid "Python bindings for Poppler-Qt5" +msgstr "" + +#: gnu/packages/pdf.scm:230 +#, fuzzy +#| msgid "This package provides an database interface for Perl." +msgid "" +"This package provides Python bindings for the Qt5 interface of the\n" +"Poppler PDF rendering library." +msgstr "Ce paquet fournit une interface de base de données pour Perl." + +#: gnu/packages/pdf.scm:267 +#, fuzzy +#| msgid "Library for accessing zip files" +msgid "Library for generating PDF files" +msgstr "Bibliothèque de manipulation des fichiers zip" + +#: gnu/packages/pdf.scm:269 +msgid "" +"libHaru is a library for generating PDF files. libHaru does not support\n" +"reading and editing of existing PDF files." +msgstr "" + +#: gnu/packages/pdf.scm:316 msgid "Viewer for PDF files based on the Motif toolkit" msgstr "Visionneuse pour fichiers PDF basée sur la boîte à outil Motif" -#: gnu/packages/pdf.scm:126 -msgid "Xpdf is a viewer for Portable Document Format (PDF) files" +#: gnu/packages/pdf.scm:318 +#, fuzzy +#| msgid "Xpdf is a viewer for Portable Document Format (PDF) files" +msgid "Xpdf is a viewer for Portable Document Format (PDF) files." msgstr "Xpdf est une visionneuse pour fichiers PDF (Portable Document Format)" -#: gnu/packages/pdf.scm:154 +#: gnu/packages/pdf.scm:348 +msgid "Comic book support for zathura (libarchive backend)" +msgstr "" + +#: gnu/packages/pdf.scm:349 +msgid "" +"The zathura-cb plugin adds comic book support to zathura\n" +"using libarchive." +msgstr "" + +#: gnu/packages/pdf.scm:379 +msgid "PS support for zathura (libspectre backend)" +msgstr "" + +#: gnu/packages/pdf.scm:380 +msgid "" +"The zathura-ps plugin adds PS support to zathura\n" +"using libspectre." +msgstr "" + +#: gnu/packages/pdf.scm:411 +msgid "DjVu support for zathura (DjVuLibre backend)" +msgstr "" + +#: gnu/packages/pdf.scm:412 +msgid "" +"The zathura-djvu plugin adds DjVu support to zathura\n" +"using the DjVuLibre library." +msgstr "" + +#: gnu/packages/pdf.scm:444 +msgid "PDF support for zathura (poppler backend)" +msgstr "" + +#: gnu/packages/pdf.scm:445 +msgid "" +"The zathura-pdf-poppler plugin adds PDF support to zathura\n" +"by using the poppler rendering engine." +msgstr "" + +#: gnu/packages/pdf.scm:482 +#, fuzzy +#| msgid "Lightweight PDF viewer and toolkit" +msgid "Lightweight keyboard-driven PDF viewer" +msgstr "Boite à outils légère pour la visualisation de documents PDF" + +#: gnu/packages/pdf.scm:483 +msgid "" +"Zathura is a customizable document viewer. It provides a\n" +"minimalistic interface and an interface that mainly focuses on keyboard\n" +"interaction." +msgstr "" + +#: gnu/packages/pdf.scm:522 msgid "Tools to work with the PDF file format" msgstr "Outils de manipulation de fichiers PDF" -#: gnu/packages/pdf.scm:156 +#: gnu/packages/pdf.scm:524 msgid "" "PoDoFo is a C++ library and set of command-line tools to work with the\n" "PDF file format. It can parse PDF files and load them into memory, and makes\n" @@ -1312,11 +9171,21 @@ msgid "" "extracting content or merging files." msgstr "" -#: gnu/packages/pdf.scm:217 +#: gnu/packages/pdf.scm:580 msgid "Lightweight PDF viewer and toolkit" msgstr "Boite à outils légère pour la visualisation de documents PDF" -#: gnu/packages/pdf.scm:219 +#: gnu/packages/pdf.scm:582 +#, fuzzy +#| msgid "" +#| "MuPDF is a C library that implements a PDF and XPS parsing and\n" +#| "rendering engine. It is used primarily to render pages into bitmaps,\n" +#| "but also provides support for other operations such as searching and\n" +#| "listing the table of contents and hyperlinks.\n" +#| "\n" +#| "The library ships with a rudimentary X11 viewer, and a set of command\n" +#| "line tools for batch rendering (pdfdraw), examining the file structure\n" +#| "(pdfshow), and rewriting files (pdfclean)." msgid "" "MuPDF is a C library that implements a PDF and XPS parsing and\n" "rendering engine. It is used primarily to render pages into bitmaps,\n" @@ -1324,8 +9193,8 @@ msgid "" "listing the table of contents and hyperlinks.\n" "\n" "The library ships with a rudimentary X11 viewer, and a set of command\n" -"line tools for batch rendering (pdfdraw), examining the file structure\n" -"(pdfshow), and rewriting files (pdfclean)." +"line tools for batch rendering (pdfdraw), rewriting files (pdfclean),\n" +"and examining the file structure (pdfshow)." msgstr "" "MuPDF est une bibliothèque C permettant d'analyser et de faire le rendu de\n" "fichiers PDF et XPS. Elle est surtout utilisée pour effectuer le rendu de pages dans\n" @@ -1336,11 +9205,4290 @@ msgstr "" "d'outils en ligne de commande pour le rendu par lots (pdfdraw), l'analyse de structure\n" "(pdfshow), et la réécriture de fichiers (pdfclean)." -#: gnu/packages/ratpoison.scm:60 +#: gnu/packages/pdf.scm:634 +msgid "Command-line tools and library for transforming PDF files" +msgstr "" + +#: gnu/packages/pdf.scm:636 +msgid "" +"QPDF is a command-line program that does structural, content-preserving\n" +"transformations on PDF files. It could have been called something like\n" +"pdf-to-pdf. It includes support for merging and splitting PDFs and to\n" +"manipulate the list of pages in a PDF file. It is not a PDF viewer or a\n" +"program capable of converting PDF into other formats." +msgstr "" + +#: gnu/packages/pdf.scm:666 +msgid "Notetaking using a stylus" +msgstr "" + +#: gnu/packages/pdf.scm:668 +msgid "" +"Xournal is an application for notetaking, sketching, keeping a journal\n" +"using a stylus." +msgstr "" + +#: gnu/packages/pdf.scm:690 +msgid "Python library for generating PDFs and graphics" +msgstr "" + +#: gnu/packages/pdf.scm:691 +msgid "" +"This is the ReportLab PDF Toolkit. It allows rapid creation\n" +"of rich PDF documents, and also creation of charts in a variety of bitmap and\n" +"vector formats." +msgstr "" + +#: gnu/packages/pdf.scm:744 +msgid "PDF presentation tool with visual effects" +msgstr "" + +#: gnu/packages/pdf.scm:746 +msgid "" +"Impressive is a tool to display PDF files that provides visual effects\n" +"such as smooth alpha-blended slide transitions. It provides additional tools\n" +"such as zooming, highlighting an area of the screen, and a tool to navigate\n" +"the PDF pages." +msgstr "" + +#: gnu/packages/pdf.scm:793 +msgid "Framebuffer and drm-based image viewer" +msgstr "" + +#: gnu/packages/pdf.scm:795 +msgid "" +"fbida contains a few applications for viewing and editing images on\n" +"the framebuffer." +msgstr "" + +#: gnu/packages/pdf.scm:820 +msgid "PDF to SVG converter" +msgstr "" + +#: gnu/packages/pdf.scm:821 +msgid "" +"@command{pdf2svg} is a simple command-line PDF to SVG\n" +"converter using the Poppler and Cairo libraries." +msgstr "" + +#: gnu/packages/pdf.scm:852 gnu/packages/pdf.scm:889 +msgid "Pure Python PDF toolkit" +msgstr "" + +#: gnu/packages/pdf.scm:853 +msgid "" +"PyPDF2 is a pure Python PDF library capable of:\n" +"\n" +"@enumerate\n" +"@item extracting document information (title, author, …)\n" +"@item splitting documents page by page\n" +"@item merging documents page by page\n" +"@item cropping pages\n" +"@item merging multiple pages into a single page\n" +"@item encrypting and decrypting PDF files\n" +"@end enumerate\n" +"\n" +"By being pure Python, it should run on any Python platform without any\n" +"dependencies on external libraries. It can also work entirely on\n" +"@code{StringIO} objects rather than file streams, allowing for PDF\n" +"manipulation in memory. It is therefore a useful tool for websites that\n" +"manage or manipulate PDFs." +msgstr "" + +#: gnu/packages/pdf.scm:890 +msgid "" +"PyPDF2 is a pure Python PDF toolkit.\n" +"\n" +"Note: This module isn't maintained anymore. For new projects please use\n" +"python-pypdf2 instead." +msgstr "" + +#: gnu/packages/pdf.scm:914 +msgid "Scale and tile PDF images/pages to print on multiple pages" +msgstr "" + +#: gnu/packages/pdf.scm:915 +msgid "" +"@command{pdfposter} can be used to create a large poster by\n" +"building it from multple pages and/or printing it on large media. It expects\n" +"as input a PDF file, normally printing on a single page. The output is again\n" +"a PDF file, maybe containing multiple pages together building the poster. The\n" +"input page will be scaled to obtain the desired size.\n" +"\n" +"This is much like @command{poster} does for Postscript files, but working with\n" +"PDF. Since sometimes @command{poster} does not like your files converted from\n" +"PDF. Indeed @command{pdfposter} was inspired by @command{poster}." +msgstr "" + +#: gnu/packages/pdf.scm:946 +msgid "Command-line utility to search text in PDF files" +msgstr "" + +#: gnu/packages/pdf.scm:948 +msgid "" +"Pdfgrep searches in pdf files for strings matching a regular expression.\n" +"Support some GNU grep options as file name output, page number output,\n" +"optional case insensitivity, count occurrences, color highlights and search in\n" +"multiple files." +msgstr "" + +#: gnu/packages/pem.scm:41 +msgid "Personal expenses manager" +msgstr "" + +#: gnu/packages/pem.scm:43 +msgid "" +"GNU Pem is a simple tool for tracking personal income and\n" +"expenses. It operates from the command line and it stores its data\n" +"in a basic text format in your home directory. It can easily print\n" +"reports of your spending on different expenses via a basic search\n" +"feature." +msgstr "" + +#: gnu/packages/perl.scm:143 +#, fuzzy +#| msgid "Implementation of Scheme and related languages" +msgid "Implementation of the Perl programming language" +msgstr "Implantation de Scheme et d'autres langages associés" + +#: gnu/packages/perl.scm:145 +msgid "" +"Perl 5 is a highly capable, feature-rich programming language with over\n" +"24 years of development." +msgstr "" + +#: gnu/packages/perl.scm:164 +msgid "Module for merging hierarchies using the C3 algorithm" +msgstr "" + +#: gnu/packages/perl.scm:165 +msgid "" +"This module implements the C3 algorithm, which aims to\n" +"provide a sane method resolution order under multiple inheritance." +msgstr "" + +#: gnu/packages/perl.scm:183 +msgid "Compute differences between two files or lists" +msgstr "" + +#: gnu/packages/perl.scm:184 +msgid "" +"This is a module for computing the difference between two\n" +"files, two strings, or any other two lists of things. It uses an intelligent\n" +"algorithm similar to (or identical to) the one used by the Unix \"diff\"\n" +"program. It is guaranteed to find the *smallest possible* set of\n" +"differences." +msgstr "" + +#: gnu/packages/perl.scm:206 +msgid "Use shorter versions of class names" +msgstr "" + +#: gnu/packages/perl.scm:207 +msgid "" +"The alias module loads the class you specify and exports\n" +"into your namespace a subroutine that returns the class name. You can\n" +"explicitly alias the class to another name or, if you prefer, you can do so\n" +"implicitly." +msgstr "" + +#: gnu/packages/perl.scm:229 +msgid "Transparently use Moose or Mouse modules" +msgstr "" + +#: gnu/packages/perl.scm:231 +msgid "" +"This module facilitates using @code{Moose} or @code{Mouse} modules\n" +"without changing the code. By default, Mouse will be provided to libraries,\n" +"unless Moose is already loaded, or explicitly requested by the end-user. End\n" +"users can force the decision of which backend to use by setting the environment\n" +"variable ANY_MOOSE to be Moose or Mouse." +msgstr "" + +#: gnu/packages/perl.scm:254 +msgid "Configuration files and command line parsing" +msgstr "" + +#: gnu/packages/perl.scm:255 +msgid "" +"AppConfig is a bundle of Perl5 modules for reading\n" +"configuration files and parsing command line arguments." +msgstr "" + +#: gnu/packages/perl.scm:273 +msgid "Perl API to zip files" +msgstr "" + +#: gnu/packages/perl.scm:274 gnu/packages/zip.scm:174 +msgid "" +"The Archive::Zip module allows a Perl program to create,\n" +"manipulate, read, and write Zip archive files." +msgstr "" +"Le module Archive::Zip permet à un programme Perl de créer,\n" +"manipuler, lire et écrire des archives Zip." + +#: gnu/packages/perl.scm:295 +msgid "Small utils for array manipulation" +msgstr "" + +#: gnu/packages/perl.scm:296 +msgid "" +"@code{Array::Utils} is a small pure-perl module containing\n" +"list manipulation routines." +msgstr "" + +#: gnu/packages/perl.scm:315 +msgid "Allow C/XS libraries to interrupt perl asynchronously" +msgstr "" + +#: gnu/packages/perl.scm:317 +msgid "" +"@code{Async::Interrupt} implements a single feature only of interest\n" +"to advanced perl modules, namely asynchronous interruptions (think \"UNIX\n" +"signals\", which are very similar).\n" +"\n" +"Sometimes, modules wish to run code asynchronously (in another thread,\n" +"or from a signal handler), and then signal the perl interpreter on\n" +"certain events. One common way is to write some data to a pipe and use\n" +"an event handling toolkit to watch for I/O events. Another way is to\n" +"send a signal. Those methods are slow, and in the case of a pipe, also\n" +"not asynchronous - it won't interrupt a running perl interpreter.\n" +"\n" +"This module implements asynchronous notifications that enable you to\n" +"signal running perl code from another thread, asynchronously, and\n" +"sometimes even without using a single syscall." +msgstr "" + +#: gnu/packages/perl.scm:347 +msgid "Lexically disable autovivification" +msgstr "" + +#: gnu/packages/perl.scm:348 +msgid "" +"When an undefined variable is dereferenced, it gets silently\n" +"upgraded to an array or hash reference (depending of the type of the\n" +"dereferencing). This behaviour is called autovivification and usually does\n" +"what you mean but it may be unnatural or surprising because your variables get\n" +"populated behind your back. This is especially true when several levels of\n" +"dereferencing are involved, in which case all levels are vivified up to the\n" +"last, or when it happens in intuitively read-only constructs like\n" +"@code{exists}. The pragma provided by this package lets you disable\n" +"autovivification for some constructs and optionally throws a warning or an\n" +"error when it would have happened." +msgstr "" + +#: gnu/packages/perl.scm:374 gnu/packages/perl.scm:5464 +msgid "Establish an ISA relationship with base classes at compile time" +msgstr "" + +#: gnu/packages/perl.scm:375 +msgid "" +"Allows you to both load one or more modules, while setting\n" +"up inheritance from those modules at the same time. Unless you are using the\n" +"fields pragma, consider this module discouraged in favor of the lighter-weight\n" +"parent." +msgstr "" + +#: gnu/packages/perl.scm:400 +msgid "Execute code after a scope finished compilation" +msgstr "" + +#: gnu/packages/perl.scm:401 +msgid "" +"This module allows you to execute code when perl finished\n" +"compiling the surrounding scope." +msgstr "" + +#: gnu/packages/perl.scm:419 +msgid "Benchmarking with statistical confidence" +msgstr "" + +#: gnu/packages/perl.scm:421 +msgid "" +"The Benchmark::Timer class allows you to time portions of code\n" +"conveniently, as well as benchmark code by allowing timings of repeated\n" +"trials. It is perfect for when you need more precise information about the\n" +"running time of portions of your code than the Benchmark module will give you,\n" +"but don't want to go all out and profile your code." +msgstr "" + +#: gnu/packages/perl.scm:446 +msgid "Bit vector library" +msgstr "" + +#: gnu/packages/perl.scm:447 +msgid "" +"Bit::Vector is an efficient C library which allows you to\n" +"handle bit vectors, sets (of integers), \"big integer arithmetic\" and boolean\n" +"matrices, all of arbitrary sizes. The package also includes an\n" +"object-oriented Perl module for accessing the C library from Perl, and\n" +"optionally features overloaded operators for maximum ease of use. The C\n" +"library can nevertheless be used stand-alone, without Perl." +msgstr "" + +#: gnu/packages/perl.scm:469 +msgid "Boolean support for Perl" +msgstr "" + +#: gnu/packages/perl.scm:470 +msgid "" +"This module provides basic Boolean support, by defining two\n" +"special objects: true and false." +msgstr "" + +#: gnu/packages/perl.scm:488 +msgid "Data files for Business::ISBN" +msgstr "" + +#: gnu/packages/perl.scm:489 +msgid "" +"This package provides a data pack for @code{Business::ISBN}.\n" +"These data are generated from the RangeMessage.xml file provided by the ISBN\n" +"Agency." +msgstr "" + +#: gnu/packages/perl.scm:511 +msgid "Work with International Standard Book Numbers" +msgstr "" + +#: gnu/packages/perl.scm:512 +msgid "" +"This modules provides tools to deal with International\n" +"Standard Book Numbers, including ISBN-10 and ISBN-13." +msgstr "" + +#: gnu/packages/perl.scm:530 +msgid "Work with International Standard Serial Numbers" +msgstr "" + +#: gnu/packages/perl.scm:531 +msgid "" +"This modules provides tools to deal with International\n" +"Standard Serial Numbers." +msgstr "" + +#: gnu/packages/perl.scm:551 +msgid "Work with International Standard Music Numbers" +msgstr "" + +#: gnu/packages/perl.scm:552 +msgid "" +"This modules provides tools to deal with International\n" +"Standard Music Numbers." +msgstr "" + +#: gnu/packages/perl.scm:573 +#, fuzzy +#| msgid "SQlite interface for Perl" +msgid "Cache interface for Perl" +msgstr "Interface SQLite pour Perl" + +#: gnu/packages/perl.scm:574 +msgid "" +"The Cache modules are designed to assist a developer in\n" +"persisting data for a specified period of time. Often these modules are used\n" +"in web applications to store data locally to save repeated and redundant\n" +"expensive calls to remote machines or databases. People have also been known\n" +"to use Cache::Cache for its straightforward interface in sharing data between\n" +"runs of an application or invocations of a CGI-style script or simply as an\n" +"easy to use abstraction of the file system or shared memory." +msgstr "" + +#: gnu/packages/perl.scm:597 +msgid "Shared memory interprocess cache via mmap" +msgstr "" + +#: gnu/packages/perl.scm:598 +msgid "" +"A shared memory cache through an mmap'ed file. It's core is\n" +"written in C for performance. It uses fcntl locking to ensure multiple\n" +"processes can safely access the cache at the same time. It uses a basic LRU\n" +"algorithm to keep the most used entries in the cache." +msgstr "" + +#: gnu/packages/perl.scm:619 +msgid "Capture STDOUT and STDERR from Perl, XS or external programs" +msgstr "" + +#: gnu/packages/perl.scm:621 +msgid "" +"Capture::Tiny provides a simple, portable way to capture almost anything\n" +"sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS\n" +"code or from an external program. Optionally, output can be teed so that it\n" +"is captured while being passed through to the original file handles." +msgstr "" + +#: gnu/packages/perl.scm:640 +msgid "Check compatibility with the installed perl version" +msgstr "" + +#: gnu/packages/perl.scm:642 +msgid "" +"This module is used by Schmorp's modules during configuration stage\n" +"to test the installed perl for compatibility with his modules." +msgstr "" + +#: gnu/packages/perl.scm:660 +msgid "Executable comments for Perl" +msgstr "" + +#: gnu/packages/perl.scm:661 +msgid "" +"Carp::Assert is intended for a purpose like the ANSI C\n" +"library assert.h." +msgstr "" + +#: gnu/packages/perl.scm:683 +msgid "Convenience wrappers around Carp::Assert" +msgstr "" + +#: gnu/packages/perl.scm:684 +msgid "" +"Carp::Assert::More is a set of handy assertion functions for\n" +"Perl." +msgstr "" + +#: gnu/packages/perl.scm:704 +msgid "Report errors from a \"clan\" of modules" +msgstr "" + +#: gnu/packages/perl.scm:705 +msgid "" +"This module allows errors from a clan (or family) of modules\n" +"to appear to originate from the caller of the clan. This is necessary in\n" +"cases where the clan modules are not classes derived from each other, and thus\n" +"the Carp.pm module doesn't help." +msgstr "" + +#: gnu/packages/perl.scm:725 +msgid "Read the CDDB entry for an audio CD in your drive" +msgstr "" + +#: gnu/packages/perl.scm:726 +msgid "This module can retrieve information from the CDDB." +msgstr "" + +#: gnu/packages/perl.scm:748 +msgid "Automated accessor generation" +msgstr "" + +#: gnu/packages/perl.scm:749 +msgid "" +"This module automagically generates accessors/mutators for\n" +"your class." +msgstr "" + +#: gnu/packages/perl.scm:771 +msgid "Faster, but less expandable, chained accessors" +msgstr "" + +#: gnu/packages/perl.scm:772 +msgid "" +"A chained accessor is one that always returns the object\n" +"when called with parameters (to set), and the value of the field when called\n" +"with no arguments. This module subclasses Class::Accessor in order to provide\n" +"the same mk_accessors interface." +msgstr "" + +#: gnu/packages/perl.scm:798 +msgid "Build groups of accessors" +msgstr "" + +#: gnu/packages/perl.scm:799 +msgid "" +"This class lets you build groups of accessors that will call\n" +"different getters and setters." +msgstr "" + +#: gnu/packages/perl.scm:819 +msgid "Pragma to use the C3 method resolution order algorithm" +msgstr "" + +#: gnu/packages/perl.scm:820 +msgid "" +"This is pragma to change Perl 5's standard method resolution\n" +"order from depth-first left-to-right (a.k.a - pre-order) to the more\n" +"sophisticated C3 method resolution order." +msgstr "" + +#: gnu/packages/perl.scm:844 +msgid "Drop-in replacement for NEXT" +msgstr "" + +#: gnu/packages/perl.scm:845 +msgid "" +"This module is intended as a drop-in replacement for NEXT,\n" +"supporting the same interface, but using Class::C3 to do the hard work." +msgstr "" + +#: gnu/packages/perl.scm:869 +msgid "Load mix-ins or components to your C3-based class" +msgstr "" + +#: gnu/packages/perl.scm:870 +msgid "" +"This module will inject base classes to your module using\n" +"the Class::C3 method resolution order." +msgstr "" + +#: gnu/packages/perl.scm:888 +msgid "Inheritable, overridable class data" +msgstr "" + +#: gnu/packages/perl.scm:889 +msgid "" +"Class::Data::Inheritable is for creating accessor/mutators\n" +"to class data. That is, if you want to store something about your class as a\n" +"whole (instead of about a single object). This data is then inherited by your\n" +"subclasses and can be overridden." +msgstr "" + +#: gnu/packages/perl.scm:910 +msgid "Class for easy date and time manipulation" +msgstr "" + +#: gnu/packages/perl.scm:911 +msgid "" +"This module provides a general-purpose date and datetime\n" +"type for perl." +msgstr "" + +#: gnu/packages/perl.scm:928 +msgid "Base class for error handling" +msgstr "" + +#: gnu/packages/perl.scm:930 +msgid "" +"@code{Class::ErrorHandler} provides an error-handling mechanism that is generic\n" +"enough to be used as the base class for a variety of OO classes. Subclasses inherit\n" +"its two error-handling methods, error and errstr, to communicate error messages back\n" +"to the calling program." +msgstr "" + +#: gnu/packages/perl.scm:951 +msgid "Utility methods for factory classes" +msgstr "" + +#: gnu/packages/perl.scm:952 +msgid "This module exports methods useful for factory classes." +msgstr "" + +#: gnu/packages/perl.scm:969 +msgid "Get information about a class and its structure" +msgstr "" + +#: gnu/packages/perl.scm:970 +msgid "" +"Class::Inspector allows you to get information about a\n" +"loaded class." +msgstr "" + +#: gnu/packages/perl.scm:998 +msgid "Working (require \"Class::Name\") and more" +msgstr "" + +#: gnu/packages/perl.scm:999 +msgid "" +"\"require EXPR\" only accepts Class/Name.pm style module\n" +"names, not Class::Name. For that, this module provides \"load_class\n" +"'Class::Name'\"." +msgstr "" + +#: gnu/packages/perl.scm:1022 +msgid "XS implementation of parts of Class::Load" +msgstr "" + +#: gnu/packages/perl.scm:1023 +msgid "" +"This module provides an XS implementation for portions of\n" +"Class::Load." +msgstr "" + +#: gnu/packages/perl.scm:1042 +msgid "Create generic methods for OO Perl" +msgstr "" + +#: gnu/packages/perl.scm:1043 +msgid "" +"This module solves the problem of having to continually\n" +"write accessor methods for your objects that perform standard tasks." +msgstr "" + +#: gnu/packages/perl.scm:1064 +msgid "Moose-like method modifiers" +msgstr "" + +#: gnu/packages/perl.scm:1065 +msgid "" +"Class::Method::Modifiers provides three modifiers: 'before',\n" +"'around', and 'after'. 'before' and 'after' are run just before and after the\n" +"method they modify, but can not really affect that original method. 'around'\n" +"is run in place of the original method, with a hook to easily call that\n" +"original method." +msgstr "" + +#: gnu/packages/perl.scm:1086 +msgid "Implementation of a singleton class for Perl" +msgstr "" + +#: gnu/packages/perl.scm:1087 +msgid "" +"This module implements a Singleton class from which other\n" +"classes can be derived. By itself, the Class::Singleton module does very\n" +"little other than manage the instantiation of a single object." +msgstr "" + +#: gnu/packages/perl.scm:1106 +msgid "Minimalist class construction" +msgstr "" + +#: gnu/packages/perl.scm:1107 +msgid "" +"This module offers a minimalist class construction kit. It\n" +"uses no non-core modules for any recent Perl." +msgstr "" + +#: gnu/packages/perl.scm:1127 +msgid "Unload a class" +msgstr "" + +#: gnu/packages/perl.scm:1128 +msgid "" +"Class:Unload unloads a given class by clearing out its\n" +"symbol table and removing it from %INC." +msgstr "" + +#: gnu/packages/perl.scm:1146 +msgid "Generate fast XS accessors without runtime compilation" +msgstr "" + +#: gnu/packages/perl.scm:1147 +msgid "" +"Class::XSAccessor implements fast read, write, and\n" +"read/write accessors in XS. Additionally, it can provide predicates such as\n" +"\"has_foo()\" for testing whether the attribute \"foo\" is defined in the\n" +"object. It only works with objects that are implemented as ordinary hashes.\n" +"Class::XSAccessor::Array implements the same interface for objects that use\n" +"arrays for their internal representation." +msgstr "" + +#: gnu/packages/perl.scm:1167 +msgid "Recursively copy Perl datatypes" +msgstr "" + +#: gnu/packages/perl.scm:1169 +msgid "" +"This module provides a clone() method which makes recursive copies of\n" +"nested hash, array, scalar and reference types, including tied variables and\n" +"objects." +msgstr "" + +#: gnu/packages/perl.scm:1190 +msgid "Sane defaults for Perl programs" +msgstr "" + +#: gnu/packages/perl.scm:1191 +msgid "" +"This module implements some sane defaults for Perl programs,\n" +"as defined by two typical specimens of Perl coders." +msgstr "" + +#: gnu/packages/perl.scm:1211 +msgid "Load configuration from different file formats" +msgstr "" + +#: gnu/packages/perl.scm:1212 +msgid "" +"Config::Any provides a facility for Perl applications and\n" +"libraries to load configuration data from multiple different file formats. It\n" +"supports XML, YAML, JSON, Apache-style configuration, and Perl code." +msgstr "" + +#: gnu/packages/perl.scm:1233 +msgid "Module to implement some AutoConf macros in Perl" +msgstr "" + +#: gnu/packages/perl.scm:1234 +msgid "" +"Config::AutoConf is intended to provide the same\n" +"opportunities to Perl developers as GNU Autoconf does for Shell developers." +msgstr "" + +#: gnu/packages/perl.scm:1252 +msgid "Generic Config Module" +msgstr "" + +#: gnu/packages/perl.scm:1253 +msgid "" +"This module opens a config file and parses its contents for\n" +"you. The format of config files supported by Config::General is inspired by\n" +"the well known Apache config format and is 100% compatible with Apache\n" +"configs, but you can also just use simple name/value pairs in your config\n" +"files. In addition to the capabilities of an Apache config file it supports\n" +"some enhancements such as here-documents, C-style comments, and multiline\n" +"options." +msgstr "" + +#: gnu/packages/perl.scm:1280 +msgid "Simple .ini-file format reader and writer" +msgstr "" + +#: gnu/packages/perl.scm:1281 +msgid "" +"@code{Config::INI} is a module that facilates the reading\n" +"and writing of @code{.ini}-style configuration files." +msgstr "" + +#: gnu/packages/perl.scm:1302 +msgid "Preserve context during subroutine call" +msgstr "" + +#: gnu/packages/perl.scm:1303 +msgid "" +"This module runs code after a subroutine call, preserving\n" +"the context the subroutine would have seen if it were the last statement in\n" +"the caller." +msgstr "" + +#: gnu/packages/perl.scm:1324 +msgid "Verify requirements in a CPAN::Meta object" +msgstr "" + +#: gnu/packages/perl.scm:1325 +msgid "" +"This module verifies if requirements described in a\n" +"CPAN::Meta object are present." +msgstr "" + +#: gnu/packages/perl.scm:1345 +msgid "JSON::XS for Cpanel" +msgstr "" + +#: gnu/packages/perl.scm:1346 gnu/packages/perl.scm:3777 +msgid "" +"This module converts Perl data structures to JSON and vice\n" +"versa." +msgstr "" + +#: gnu/packages/perl.scm:1364 +msgid "Random password generator" +msgstr "" + +#: gnu/packages/perl.scm:1365 +msgid "" +"Crypt::RandPasswd provides three functions that can be used\n" +"to generate random passwords, constructed from words, letters, or characters.\n" +"This code is a Perl implementation of the Automated Password Generator\n" +"standard, like the program described in \"A Random Word Generator For\n" +"Pronounceable Passwords\". This code is a re-engineering of the program\n" +"contained in Appendix A of FIPS Publication 181, \"Standard for Automated\n" +"Password Generator\"." +msgstr "" + +#: gnu/packages/perl.scm:1390 +msgid "Perl implementation of the RC4 encryption algorithm" +msgstr "" + +#: gnu/packages/perl.scm:1391 +msgid "A pure Perl implementation of the RC4 algorithm." +msgstr "" + +#: gnu/packages/perl.scm:1410 +msgid "Temporarily change working directory" +msgstr "" + +#: gnu/packages/perl.scm:1412 +msgid "" +"@code{Cwd::Guard} changes the current directory using a limited scope.\n" +"It returns to the previous working directory when the object is destroyed." +msgstr "" + +#: gnu/packages/perl.scm:1450 +#, fuzzy +#| msgid "Library for accessing zip files" +msgid "Library for genomic analysis" +msgstr "Bibliothèque de manipulation des fichiers zip" + +#: gnu/packages/perl.scm:1451 +msgid "" +"Chaolin Zhang's Perl Library (czplib) contains assorted\n" +"functions and data structures for processing and analysing genomic and\n" +"bioinformatics data." +msgstr "" + +#: gnu/packages/perl.scm:1472 +msgid "Compare Perl data structures" +msgstr "" + +#: gnu/packages/perl.scm:1473 +msgid "" +"This module compares arbitrary data structures to see if\n" +"they are copies of each other." +msgstr "" + +#: gnu/packages/perl.scm:1491 +msgid "Perl extension for generating unique identifiers" +msgstr "" + +#: gnu/packages/perl.scm:1492 +msgid "" +"@code{Data::Uniqid} provides three simple routines for\n" +"generating unique ids. These ids are coded with a Base62 systen to make them\n" +"short and handy (e.g. to use it as part of a URL)." +msgstr "" + +#: gnu/packages/perl.scm:1511 +msgid "Pretty printing of data structures" +msgstr "" + +#: gnu/packages/perl.scm:1512 +msgid "" +"This module provide functions that takes a list of values as\n" +"their argument and produces a string as its result. The string contains Perl\n" +"code that, when \"eval\"ed, produces a deep copy of the original arguments." +msgstr "" + +#: gnu/packages/perl.scm:1531 +msgid "Concise data dumper" +msgstr "" + +#: gnu/packages/perl.scm:1532 +msgid "" +"Data::Dumper::Concise provides a dumper with Less\n" +"indentation and newlines plus sub deparsing." +msgstr "" + +#: gnu/packages/perl.scm:1554 +msgid "Parse and validate simple name/value option pairs" +msgstr "" + +#: gnu/packages/perl.scm:1556 +msgid "Data::OptList provides a simple syntax for name/value option pairs." +msgstr "" + +#: gnu/packages/perl.scm:1578 +msgid "Help when paging through sets of results" +msgstr "" + +#: gnu/packages/perl.scm:1579 +msgid "" +"When searching through large amounts of data, it is often\n" +"the case that a result set is returned that is larger than we want to display\n" +"on one page. This results in wanting to page through various pages of data.\n" +"The maths behind this is unfortunately fiddly, hence this module." +msgstr "" + +#: gnu/packages/perl.scm:1601 +msgid "Structured tags datastructures" +msgstr "" + +#: gnu/packages/perl.scm:1603 +msgid "" +"This module is for manipulating data as hierarchical tag/value\n" +"pairs (Structured TAGs or Simple Tree AGgregates). These datastructures can\n" +"be represented as nested arrays, which have the advantage of being native to\n" +"Perl." +msgstr "" + +#: gnu/packages/perl.scm:1630 +msgid "N at a time iteration API" +msgstr "" + +#: gnu/packages/perl.scm:1631 +msgid "" +"This module tries to find middle ground between one at a\n" +"time and all at once processing of data sets. The purpose of this module is\n" +"to avoid the overhead of implementing an iterative api when this isn't\n" +"necessary, without breaking forward compatibility in case that becomes\n" +"necessary later on." +msgstr "" + +#: gnu/packages/perl.scm:1656 +msgid "Dynamic generation of nested combinations of variants" +msgstr "" + +#: gnu/packages/perl.scm:1657 +msgid "" +"Data::Tumbler - Dynamic generation of nested combinations of\n" +"variants." +msgstr "" + +#: gnu/packages/perl.scm:1683 +msgid "Visitor style traversal of Perl data structures" +msgstr "" + +#: gnu/packages/perl.scm:1684 +msgid "" +"This module is a simple visitor implementation for Perl\n" +"values. It has a main dispatcher method, visit, which takes a single perl\n" +"value and then calls the methods appropriate for that value. It can\n" +"recursively map (cloning as necessary) or just traverse most structures, with\n" +"support for per-object behavior, circular structures, visiting tied\n" +"structures, and all ref types (hashes, arrays, scalars, code, globs)." +msgstr "" + +#: gnu/packages/perl.scm:1709 +msgid "Gregorian calendar date calculations" +msgstr "" + +#: gnu/packages/perl.scm:1710 +msgid "" +"This package consists of a Perl module for date calculations\n" +"based on the Gregorian calendar, thereby complying with all relevant norms and\n" +"standards: ISO/R 2015-1971, DIN 1355 and, to some extent, ISO 8601 (where\n" +"applicable)." +msgstr "" + +#: gnu/packages/perl.scm:1734 +msgid "XS wrapper for Date::Calc" +msgstr "" + +#: gnu/packages/perl.scm:1735 +msgid "" +"Date::Calc::XS is an XS wrapper and C library plug-in for\n" +"Date::Calc." +msgstr "" + +#: gnu/packages/perl.scm:1759 +msgid "Date manipulation routines" +msgstr "" + +#: gnu/packages/perl.scm:1760 +msgid "" +"Date::Manip is a series of modules for common date/time\n" +"operations, such as comparing two times, determining a date a given amount of\n" +"time from another, or parsing international times." +msgstr "" + +#: gnu/packages/perl.scm:1779 +msgid "Simple date handling" +msgstr "" + +#: gnu/packages/perl.scm:1780 +msgid "" +"Dates are complex enough without times and timezones. This\n" +"module may be used to create simple date objects. It handles validation,\n" +"interval arithmetic, and day-of-week calculation. It does not deal with\n" +"hours, minutes, seconds, and time zones." +msgstr "" + +#: gnu/packages/perl.scm:1810 +msgid "Date and time object for Perl" +msgstr "" + +#: gnu/packages/perl.scm:1811 +msgid "" +"DateTime is a class for the representation of date/time\n" +"combinations. It represents the Gregorian calendar, extended backwards in\n" +"time before its creation (in 1582)." +msgstr "" + +#: gnu/packages/perl.scm:1833 +msgid "Dates in the Julian calendar" +msgstr "" + +#: gnu/packages/perl.scm:1834 +msgid "" +"This package is a companion module to @code{DateTime.pm}.\n" +"It implements the Julian calendar. It supports everything that\n" +"@code{DateTime.pm} supports and more: about one day per century more, to be\n" +"precise." +msgstr "" + +#: gnu/packages/perl.scm:1860 +msgid "DateTime set objects" +msgstr "" + +#: gnu/packages/perl.scm:1861 +msgid "" +"The DateTime::Set module provides a date/time sets\n" +"implementation. It allows, for example, the generation of groups of dates,\n" +"like \"every wednesday\", and then find all the dates matching that pattern,\n" +"within a time range." +msgstr "" + +#: gnu/packages/perl.scm:1884 +msgid "DateTime rfc2445 recurrences" +msgstr "" + +#: gnu/packages/perl.scm:1885 +msgid "" +"This module provides convenience methods that let you easily\n" +"create DateTime::Set objects for RFC 2445 style recurrences." +msgstr "" + +#: gnu/packages/perl.scm:1906 +msgid "DateTime::Set extension for basic recurrences" +msgstr "" + +#: gnu/packages/perl.scm:1907 +msgid "" +"This module provides convenience methods that let you easily\n" +"create DateTime::Set objects for various recurrences, such as \"once a month\"\n" +"or \"every day\". You can also create more complicated recurrences, such as\n" +"\"every Monday, Wednesday and Thursday at 10:00 AM and 2:00 PM\"." +msgstr "" + +#: gnu/packages/perl.scm:1932 +msgid "Create DateTime parser classes and objects" +msgstr "" + +#: gnu/packages/perl.scm:1933 +msgid "" +"DateTime::Format::Builder creates DateTime parsers. Many\n" +"string formats of dates and times are simple and just require a basic regular\n" +"expression to extract the relevant information. Builder provides a simple way\n" +"to do this without writing reams of structural code." +msgstr "" + +#: gnu/packages/perl.scm:1960 +msgid "Parse data/time strings" +msgstr "" + +#: gnu/packages/perl.scm:1961 +msgid "" +"DateTime::Format::Flexible attempts to take any string you\n" +"give it and parse it into a DateTime object." +msgstr "" + +#: gnu/packages/perl.scm:1987 +msgid "Parse and format iCal datetime and duration strings" +msgstr "" + +#: gnu/packages/perl.scm:1988 +msgid "" +"This module understands the ICal date/time and duration\n" +"formats, as defined in RFC 2445. It can be used to parse these formats in\n" +"order to create the appropriate objects." +msgstr "" + +#: gnu/packages/perl.scm:2020 +msgid "Machine-readable date/time with natural parsing" +msgstr "" + +#: gnu/packages/perl.scm:2021 +msgid "" +"DateTime::Format::Natural takes a string with a human\n" +"readable date/time and creates a machine readable one by applying natural\n" +"parsing logic." +msgstr "" + +#: gnu/packages/perl.scm:2045 +msgid "Parse and format strp and strf time patterns" +msgstr "" + +#: gnu/packages/perl.scm:2046 +msgid "" +"This module implements most of `strptime(3)`, the POSIX\n" +"function that is the reverse of `strftime(3)`, for `DateTime`. While\n" +"`strftime` takes a `DateTime` and a pattern and returns a string, `strptime`\n" +"takes a string and a pattern and returns the `DateTime` object associated." +msgstr "" + +#: gnu/packages/perl.scm:2071 +msgid "Localization support for DateTime.pm" +msgstr "" + +#: gnu/packages/perl.scm:2072 +msgid "" +"The DateTime::Locale modules provide localization data for\n" +"the DateTime.pm class." +msgstr "" + +#: gnu/packages/perl.scm:2099 +msgid "Time zone object for Perl" +msgstr "Objet de fuseau horaire pour Perl" + +#: gnu/packages/perl.scm:2100 +msgid "" +"This class is the base class for all time zone objects. A\n" +"time zone is represented internally as a set of observances, each of which\n" +"describes the offset from GMT for a given time period. Note that without the\n" +"DateTime module, this module does not do much. It's primary interface is\n" +"through a DateTime object, and most users will not need to directly use\n" +"DateTime::TimeZone methods." +msgstr "" +"Cette classe est la classe de base pour tous les objets de fuseaux horaires. Un\n" +"fuseau horaire est représenté de manière interne par un ensemble d'observations,\n" +"qui décrivent chacune le décalage par rapport à GMT pour une certaine période de temps.\n" +"Remarquez que sans le module DateTime, ce module ne fait pas grand chose. Son interface principale\n" +"est l'objet DateTime et la plupart des utilisateurs n'aura pas besoin d'utiliser les\n" +"méthodes DateTime::TimeZone directement." + +#: gnu/packages/perl.scm:2130 +msgid "Parse date/time strings" +msgstr "Analyse des chaînes de date et temps" + +#: gnu/packages/perl.scm:2131 +msgid "" +"DateTimeX::Easy uses a variety of DateTime::Format packages\n" +"to create DateTime objects, with some custom tweaks to smooth out the rough\n" +"edges (mainly concerning timezone detection and selection)." +msgstr "" +"DateTimeX::Easy utilise un ensemble de paquets DateTime::Format\n" +"pour créer des objets DateTime, avec certains ajustements pour arrondir\n" +"les angles (surtout dans la détection des fuseaux horaires et de leur sélection)." + +#: gnu/packages/perl.scm:2152 +msgid "Convert between DateTime and RFC2822/822 formats" +msgstr "Convertit entre les formats DateTime et RFC2822/822" + +#: gnu/packages/perl.scm:2153 +msgid "" +"RFCs 2822 and 822 specify date formats to be used by email.\n" +"This module parses and emits such dates." +msgstr "" +"Les RFC 2822 et 822 spécifient les formats de date utilisés par les\n" +"courriels. Ce module analyse et émet ces dates." + +#: gnu/packages/perl.scm:2175 +msgid "Parse and format W3CDTF datetime strings" +msgstr "Analyse et formate les chaînes de date W3CDTF" + +#: gnu/packages/perl.scm:2177 +msgid "" +"This module understands the W3CDTF date/time format, an ISO 8601 profile,\n" +"defined at https://www.w3.org/TR/NOTE-datetime. This format is the native date\n" +"format of RSS 1.0. It can be used to parse these formats in order to create\n" +"the appropriate objects." +msgstr "" +"Ce module comprend le format de date/temps W3CDTF, un profil ISO 8601,\n" +"défini sur https://www.w3.org/TR/NOTE-datetime. Ce format est le format natif\n" +"pour RSS 1.0. Il peut être utilisé pour analyser ces formats pour créer les\n" +"objets appropriés." + +#: gnu/packages/perl.scm:2199 +msgid "Meatier version of caller" +msgstr "" + +#: gnu/packages/perl.scm:2200 +msgid "Devel::Caller provides meatier version of caller." +msgstr "" + +#: gnu/packages/perl.scm:2218 +msgid "Check that a command is available" +msgstr "Vérifie qu'une commande est disponible" + +#: gnu/packages/perl.scm:2219 +msgid "" +"Devel::CheckBin is a perl module that checks whether a\n" +"particular command is available." +msgstr "" +"Devel::CheckBin est un module perl qui vérifie si une commande\n" +"particulière est disponible." + +#: gnu/packages/perl.scm:2238 +msgid "Check compiler availability" +msgstr "Vérifie la disponibilité d'un compilateur" + +#: gnu/packages/perl.scm:2239 +msgid "" +"@code{Devel::CheckCompiler} is a tiny module to check\n" +"whether a compiler is available. It can test for a C99 compiler, or\n" +"you can tell it to compile a C source file with optional linker flags." +msgstr "" +"@code{Devel::CheckCompiler} est un petit module pour vérifier\n" +"si un compilateur est disponible. Il peut tester la présence d'un compilateur\n" +"C99 ou vous pouvez lui dire de compiler un fichier source C avec des\n" +"drapeaux de l'éditeur de liens particuliers." + +#: gnu/packages/perl.scm:2260 +msgid "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls" +msgstr "Fournit un équivalent de ${^GLOBAL_PHASE} eq 'DESTRUCT' pour les perls plus vieux" + +#: gnu/packages/perl.scm:2261 +msgid "" +"Devel::GlobalDestruction provides a function returning the\n" +"equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls." +msgstr "" +"Devel::GlobalDestruction fournit une fonction qui renvoie l'équivalent\n" +"de « $@{^GLOBAL_PHASE@} eq 'DESTRUCT' » pour les vieux perls." + +#: gnu/packages/perl.scm:2281 +msgid "Alias lexical variables" +msgstr "" + +#: gnu/packages/perl.scm:2282 +msgid "" +"Devel::LexAlias provides the ability to alias a lexical\n" +"variable in a subroutines scope to one of your choosing." +msgstr "" + +#: gnu/packages/perl.scm:2306 +msgid "Introspect overloaded operators" +msgstr "" + +#: gnu/packages/perl.scm:2307 +msgid "" +"Devel::OverloadInfo returns information about overloaded\n" +"operators for a given class (or object), including where in the inheritance\n" +"hierarchy the overloads are declared and where the code implementing it is." +msgstr "" + +#: gnu/packages/perl.scm:2334 +msgid "Partial dumping of data structures" +msgstr "" + +#: gnu/packages/perl.scm:2335 +msgid "" +"This module is a data dumper optimized for logging of\n" +"arbitrary parameters." +msgstr "" + +#: gnu/packages/perl.scm:2353 +msgid "Object representing a stack trace" +msgstr "" + +#: gnu/packages/perl.scm:2354 +msgid "" +"The Devel::StackTrace module contains two classes,\n" +"Devel::StackTrace and Devel::StackTrace::Frame. These objects encapsulate the\n" +"information that can be retrieved via Perl's caller() function, as well as\n" +"providing a simple interface to this data." +msgstr "" + +#: gnu/packages/perl.scm:2376 +msgid "Displays stack trace in HTML" +msgstr "" + +#: gnu/packages/perl.scm:2377 +msgid "" +"Devel::StackTrace::AsHTML adds as_html method to\n" +"Devel::StackTrace which displays the stack trace in beautiful HTML, with code\n" +"snippet context and function parameters. If you call it on an instance of\n" +"Devel::StackTrace::WithLexicals, you even get to see the lexical variables of\n" +"each stack frame." +msgstr "" + +#: gnu/packages/perl.scm:2398 +msgid "Dump symbol names or the symbol table" +msgstr "" + +#: gnu/packages/perl.scm:2399 +msgid "Devel::Symdump provides access to the perl symbol table." +msgstr "" + +#: gnu/packages/perl.scm:2416 +msgid "Keyed-Hashing for Message Authentication" +msgstr "" + +#: gnu/packages/perl.scm:2417 +msgid "" +"The Digest::HMAC module follows the common Digest::\n" +"interface for the RFC 2104 HMAC mechanism." +msgstr "" + +#: gnu/packages/perl.scm:2442 +msgid "Perl interface to the MD-5 algorithm" +msgstr "" + +#: gnu/packages/perl.scm:2444 +msgid "" +"The @code{Digest::MD5} module allows you to use the MD5 Message Digest\n" +"algorithm from within Perl programs. The algorithm takes as\n" +"input a message of arbitrary length and produces as output a\n" +"128-bit \"fingerprint\" or \"message digest\" of the input." +msgstr "" + +#: gnu/packages/perl.scm:2462 +msgid "Perl implementation of the SHA-1 message digest algorithm" +msgstr "" + +#: gnu/packages/perl.scm:2464 +msgid "" +"This package provides 'Digest::SHA1', an implementation of the NIST\n" +"SHA-1 message digest algorithm for use by Perl programs." +msgstr "" + +#: gnu/packages/perl.scm:2486 +msgid "Declare version conflicts for your dist" +msgstr "" + +#: gnu/packages/perl.scm:2487 +msgid "" +"This module allows you to specify conflicting versions of\n" +"modules separately and deal with them after the module is done installing." +msgstr "" + +#: gnu/packages/perl.scm:2507 +msgid "Detect the encoding of data" +msgstr "" + +#: gnu/packages/perl.scm:2508 +msgid "" +"This package provides a class @code{Encode::Detect} to detect\n" +"the encoding of data." +msgstr "" + +#: gnu/packages/perl.scm:2526 +msgid "ASCII mapping for eucJP encoding" +msgstr "" + +#: gnu/packages/perl.scm:2527 +#, fuzzy +#| msgid "This package provides an database interface for Perl." +msgid "" +"This package provides an ASCII mapping for the eucJP\n" +"encoding." +msgstr "Ce paquet fournit une interface de base de données pour Perl." + +#: gnu/packages/perl.scm:2545 +msgid "JIS X 0212 (aka JIS 2000) encodings" +msgstr "" + +#: gnu/packages/perl.scm:2546 +msgid "" +"This package provides encodings for JIS X 0212, which is\n" +"also known as JIS 2000." +msgstr "" + +#: gnu/packages/perl.scm:2564 +msgid "Additional Chinese encodings" +msgstr "" + +#: gnu/packages/perl.scm:2565 +msgid "" +"This Perl module provides Chinese encodings that are not\n" +"part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",\n" +"\"BIG5EXT\", \"CCCII\", \"EUC-TW\", \"CNS11643-*\", \"GB18030\", and\n" +"\"UNISYS\"." +msgstr "" + +#: gnu/packages/perl.scm:2587 +msgid "Advanced operations on path variables" +msgstr "" + +#: gnu/packages/perl.scm:2588 +msgid "" +"@code{Env::Path} presents an object-oriented interface to\n" +"path variables, defined as that subclass of environment variables which name\n" +"an ordered list of file system elements separated by a platform-standard\n" +"separator." +msgstr "" + +#: gnu/packages/perl.scm:2608 +msgid "OO-ish Error/Exception handling for Perl" +msgstr "" + +#: gnu/packages/perl.scm:2609 +msgid "" +"The Error package provides two interfaces. Firstly Error\n" +"provides a procedural interface to exception handling. Secondly Error is a\n" +"base class for errors/exceptions that can either be thrown, for subsequent\n" +"catch, or can simply be recorded." +msgstr "" + +#: gnu/packages/perl.scm:2634 +msgid "Safely and cleanly create closures via string eval" +msgstr "" + +#: gnu/packages/perl.scm:2635 +msgid "" +"String eval is often used for dynamic code generation. For\n" +"instance, Moose uses it heavily, to generate inlined versions of accessors and\n" +"constructors, which speeds code up at runtime by a significant amount. String\n" +"eval is not without its issues however - it's difficult to control the scope\n" +"it's used in (which determines which variables are in scope inside the eval),\n" +"and it's easy to miss compilation errors, since eval catches them and sticks\n" +"them in $@@ instead. This module attempts to solve these problems. It\n" +"provides an eval_closure function, which evals a string in a clean\n" +"environment, other than a fixed list of specified variables. Compilation\n" +"errors are rethrown automatically." +msgstr "" + +#: gnu/packages/perl.scm:2664 +msgid "Allows you to declare real exception classes in Perl" +msgstr "" + +#: gnu/packages/perl.scm:2665 +msgid "" +"Exception::Class allows you to declare exception hierarchies\n" +"in your modules in a \"Java-esque\" manner." +msgstr "" + +#: gnu/packages/perl.scm:2681 +msgid "Lightweight exporting of functions and variables" +msgstr "" + +#: gnu/packages/perl.scm:2683 +msgid "" +"Exporter::Lite is an alternative to Exporter, intended to provide a\n" +"lightweight subset of the most commonly-used functionality. It supports\n" +"import(), @@EXPORT and @@EXPORT_OK and not a whole lot else." +msgstr "" + +#: gnu/packages/perl.scm:2703 +msgid "Exporter with the features of Sub::Exporter but only core dependencies" +msgstr "" + +#: gnu/packages/perl.scm:2704 +msgid "" +"Exporter::Tiny supports many of Sub::Exporter's\n" +"external-facing features including renaming imported functions with the `-as`,\n" +"`-prefix` and `-suffix` options; explicit destinations with the `into` option;\n" +"and alternative installers with the `installler` option. But it's written in\n" +"only about 40% as many lines of code and with zero non-core dependencies." +msgstr "" + +#: gnu/packages/perl.scm:2727 +msgid "Build.PL install path logic made easy" +msgstr "" + +#: gnu/packages/perl.scm:2728 +msgid "" +"This module tries to make install path resolution as easy as\n" +"possible." +msgstr "" + +#: gnu/packages/perl.scm:2746 +msgid "Wrapper for perl's configuration" +msgstr "" + +#: gnu/packages/perl.scm:2747 +msgid "" +"ExtUtils::Config is an abstraction around the %Config hash.\n" +"By itself it is not a particularly interesting module by any measure, however\n" +"it ties together a family of modern toolchain modules." +msgstr "" + +#: gnu/packages/perl.scm:2767 +msgid "Easily build XS extensions that depend on XS extensions" +msgstr "" + +#: gnu/packages/perl.scm:2769 +msgid "" +"This module tries to make it easy to build Perl extensions that use\n" +"functions and typemaps provided by other perl extensions. This means that a\n" +"perl extension is treated like a shared library that provides also a C and an\n" +"XS interface besides the perl one." +msgstr "" + +#: gnu/packages/perl.scm:2789 +msgid "Various portability utilities for module builders" +msgstr "" + +#: gnu/packages/perl.scm:2790 +msgid "" +"This module provides various portable helper functions for\n" +"module building modules." +msgstr "" + +#: gnu/packages/perl.scm:2810 +msgid "Tool to build C libraries" +msgstr "" + +#: gnu/packages/perl.scm:2811 +msgid "" +"Some Perl modules need to ship C libraries together with\n" +"their Perl code. Although there are mechanisms to compile and link (or glue)\n" +"C code in your Perl programs, there isn't a clear method to compile standard,\n" +"self-contained C libraries. This module main goal is to help in that task." +msgstr "" + +#: gnu/packages/perl.scm:2832 +msgid "Simplistic interface to pkg-config" +msgstr "" + +#: gnu/packages/perl.scm:2834 +msgid "" +"@code{ExtUtils::PkgConfig} is a very simplistic interface to the\n" +"@command{pkg-config} utility, intended for use in the @file{Makefile.PL}\n" +"of perl extensions which bind libraries that @command{pkg-config} knows.\n" +"It is really just boilerplate code that you would have written yourself." +msgstr "" + +#: gnu/packages/perl.scm:2866 +msgid "Watch for changes to files" +msgstr "" + +#: gnu/packages/perl.scm:2867 +msgid "" +"This module provides a class to monitor a directory for\n" +"changes made to any file." +msgstr "" + +#: gnu/packages/perl.scm:2885 +msgid "Recursively copy files and directories" +msgstr "" + +#: gnu/packages/perl.scm:2886 +msgid "" +"This module has 3 functions: one to copy files only, one to\n" +"copy directories only, and one to do either depending on the argument's\n" +"type." +msgstr "" + +#: gnu/packages/perl.scm:2908 +msgid "Alternative interface to File::Find" +msgstr "" + +#: gnu/packages/perl.scm:2909 +msgid "" +"File::Find::Rule is a friendlier interface to File::Find.\n" +"It allows you to build rules which specify the desired files and\n" +"directories." +msgstr "" + +#: gnu/packages/perl.scm:2932 +msgid "Common rules for searching for Perl things" +msgstr "" + +#: gnu/packages/perl.scm:2933 +msgid "" +"File::Find::Rule::Perl provides methods for finding various\n" +"types Perl-related files, or replicating search queries run on a distribution\n" +"in various parts of the CPAN ecosystem." +msgstr "" + +#: gnu/packages/perl.scm:2954 +msgid "Matches patterns in a series of files" +msgstr "" + +#: gnu/packages/perl.scm:2955 +msgid "" +"@code{File::Grep} provides similar functionality as perl's\n" +"builtin @code{grep}, @code{map}, and @code{foreach} commands, but iterating\n" +"over a passed filelist instead of arrays. While trivial, this module can\n" +"provide a quick dropin when such functionality is needed." +msgstr "" + +#: gnu/packages/perl.scm:2979 +msgid "Find your home and other directories on any platform" +msgstr "" + +#: gnu/packages/perl.scm:2980 +msgid "" +"File::HomeDir is a module for locating the directories that\n" +"are \"owned\" by a user (typically your user) and to solve the various issues\n" +"that arise trying to find them consistently across a wide variety of\n" +"platforms." +msgstr "" + +#: gnu/packages/perl.scm:3002 +msgid "Create or remove directory trees" +msgstr "" + +#: gnu/packages/perl.scm:3003 +msgid "" +"This module provide a convenient way to create directories\n" +"of arbitrary depth and to delete an entire directory subtree from the\n" +"file system." +msgstr "" + +#: gnu/packages/perl.scm:3026 +msgid "Change directory temporarily for a limited scope" +msgstr "" + +#: gnu/packages/perl.scm:3027 +msgid "" +"@code{File::pushd} does a temporary @code{chdir} that is\n" +"easily and automatically reverted, similar to @code{pushd} in some Unix\n" +"command shells. It works by creating an object that caches the original\n" +"working directory. When the object is destroyed, the destructor calls\n" +"@code{chdir} to revert to the original working directory. By storing the\n" +"object in a lexical variable with a limited scope, this happens automatically\n" +"at the end of the scope." +msgstr "" + +#: gnu/packages/perl.scm:3057 +msgid "" +"Perl extension for crawling directory trees and compiling\n" +"lists of files" +msgstr "" + +#: gnu/packages/perl.scm:3060 +msgid "" +"The File::List module crawls the directory tree starting at the\n" +"provided base directory and can return files (and/or directories if desired)\n" +"matching a regular expression." +msgstr "" + +#: gnu/packages/perl.scm:3079 +msgid "Remove files and directories in Perl" +msgstr "" + +#: gnu/packages/perl.scm:3080 +msgid "" +"File::Remove::remove removes files and directories. It acts\n" +"like /bin/rm, for the most part. Although \"unlink\" can be given a list of\n" +"files, it will not remove directories; this module remedies that. It also\n" +"accepts wildcards, * and ?, as arguments for file names." +msgstr "" + +#: gnu/packages/perl.scm:3104 +msgid "Locate per-dist and per-module shared files" +msgstr "" + +#: gnu/packages/perl.scm:3105 +msgid "" +"The intent of File::ShareDir is to provide a companion to\n" +"Class::Inspector and File::HomeDir. Quite often you want or need your Perl\n" +"module to have access to a large amount of read-only data that is stored on\n" +"the file-system at run-time. Once the files have been installed to the\n" +"correct directory, you can use File::ShareDir to find your files again after\n" +"the installation." +msgstr "" + +#: gnu/packages/perl.scm:3127 +msgid "Install shared files" +msgstr "" + +#: gnu/packages/perl.scm:3128 +msgid "" +"File::ShareDir::Install allows you to install read-only data\n" +"files from a distribution. It is a companion module to File::ShareDir, which\n" +"allows you to locate these files after installation." +msgstr "" + +#: gnu/packages/perl.scm:3147 +msgid "Reading/Writing/Modifying of complete files" +msgstr "" + +#: gnu/packages/perl.scm:3148 +msgid "" +"File::Slurp provides subroutines to read or write entire\n" +"files with a simple call. It also has a subroutine for reading the list of\n" +"file names in a directory." +msgstr "" + +#: gnu/packages/perl.scm:3171 +msgid "Simple, sane and efficient module to slurp a file" +msgstr "" + +#: gnu/packages/perl.scm:3172 +msgid "" +"This module provides functions for fast and correct file\n" +"slurping and spewing. All functions are optionally exported." +msgstr "" + +#: gnu/packages/perl.scm:3189 +msgid "Simple file reader and writer" +msgstr "" + +#: gnu/packages/perl.scm:3191 +msgid "This module provides functions for fast reading and writing of files." +msgstr "" + +#: gnu/packages/perl.scm:3210 +msgid "Return name and handle of a temporary file safely" +msgstr "" + +#: gnu/packages/perl.scm:3211 +msgid "" +"File::Temp can be used to create and open temporary files in\n" +"a safe way." +msgstr "" + +#: gnu/packages/perl.scm:3228 +msgid "Portable implementation of the `which' utility" +msgstr "" + +#: gnu/packages/perl.scm:3230 +msgid "" +"File::Which was created to be able to get the paths to executable\n" +"programs on systems under which the `which' program wasn't implemented in the\n" +"shell." +msgstr "" + +#: gnu/packages/perl.scm:3251 +msgid "Extended Unix style glob functionality" +msgstr "" + +#: gnu/packages/perl.scm:3252 +msgid "" +"@code{File::Zglob} provides a traditional Unix @code{glob}\n" +"functionality; it returns a list of file names that match the given pattern.\n" +"For instance, it supports the @code{**/*.pm} form." +msgstr "" + +#: gnu/packages/perl.scm:3271 +msgid "Module to handle parsing command line options" +msgstr "" + +#: gnu/packages/perl.scm:3272 +msgid "" +"The @code{Getopt::Long} module implements an extended getopt\n" +"function called @code{GetOptions()}. It parses the command line from\n" +"@code{ARGV}, recognizing and removing specified options and their possible\n" +"values.\n" +"\n" +"This function adheres to the POSIX syntax for command line options, with GNU\n" +"extensions. In general, this means that options have long names instead of\n" +"single letters, and are introduced with a double dash \"--\". Support for\n" +"bundling of command line options, as was the case with the more traditional\n" +"single-letter approach, is provided but not enabled by default." +msgstr "" + +#: gnu/packages/perl.scm:3305 +msgid "Getopt::Long, but simpler and more powerful" +msgstr "" + +#: gnu/packages/perl.scm:3306 +msgid "" +"Getopt::Long::Descriptive is yet another Getopt library.\n" +"It's built atop Getopt::Long, and gets a lot of its features, but tries to\n" +"avoid making you think about its huge array of options. It also provides\n" +"usage (help) messages, data validation, and a few other useful features." +msgstr "" + +#: gnu/packages/perl.scm:3324 +msgid "Table-driven argument parsing for Perl" +msgstr "" + +#: gnu/packages/perl.scm:3326 +msgid "" +"Getopt::Tabular is a Perl 5 module for table-driven argument parsing,\n" +"vaguely inspired by John Ousterhout's Tk_ParseArgv." +msgstr "" + +#: gnu/packages/perl.scm:3348 +msgid "Graph data structures and algorithms" +msgstr "" + +#: gnu/packages/perl.scm:3349 +msgid "" +"This is @code{Graph}, a Perl module for dealing with graphs,\n" +"the abstract data structures." +msgstr "" + +#: gnu/packages/perl.scm:3366 +msgid "Safe cleanup blocks implemented as guards" +msgstr "" + +#: gnu/packages/perl.scm:3367 +msgid "" +"@code{Guard} implements so-called @dfn{guards}. A guard is\n" +"something (usually an object) that \"guards\" a resource, ensuring that it is\n" +"cleaned up when expected.\n" +"\n" +"Specifically, this module supports two different types of guards: guard\n" +"objects, which execute a given code block when destroyed, and scoped guards,\n" +"which are tied to the scope exit." +msgstr "" + +#: gnu/packages/perl.scm:3390 +msgid "Merge arbitrarily deep hashes into a single hash" +msgstr "" + +#: gnu/packages/perl.scm:3391 +msgid "" +"Hash::Merge merges two arbitrarily deep hashes into a single\n" +"hash. That is, at any level, it will add non-conflicting key-value pairs from\n" +"one hash to the other, and follows a set of specific rules when there are key\n" +"value conflicts. The hash is followed recursively, so that deeply nested\n" +"hashes that are at the same level will be merged when the parent hashes are\n" +"merged." +msgstr "" + +#: gnu/packages/perl.scm:3413 +msgid "Store multiple values per key" +msgstr "" + +#: gnu/packages/perl.scm:3414 +msgid "" +"Hash::MultiValue is an object (and a plain hash reference)\n" +"that may contain multiple values per key, inspired by MultiDict of WebOb." +msgstr "" + +#: gnu/packages/perl.scm:3434 +msgid "Import packages into other packages" +msgstr "" + +#: gnu/packages/perl.scm:3435 +msgid "" +"Writing exporters is a pain. Some use Exporter, some use\n" +"Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and\n" +"some things are pragmas. Exporting on someone else's behalf is harder. The\n" +"exporters don't provide a consistent API for this, and pragmas need to have\n" +"their import method called directly, since they effect the current unit of\n" +"compilation. Import::Into provides global methods to make this painless." +msgstr "" + +#: gnu/packages/perl.scm:3457 +msgid "Use modules in inc/ if newer than installed" +msgstr "" + +#: gnu/packages/perl.scm:3458 +msgid "" +"The inc::latest module helps bootstrap configure-time\n" +"dependencies for CPAN distributions. These dependencies get bundled into the\n" +"inc directory within a distribution and are used by Makefile.PL or Build.PL." +msgstr "" + +#: gnu/packages/perl.scm:3479 +msgid "Capture STDOUT and STDERR from Perl code, subprocesses or XS" +msgstr "" + +#: gnu/packages/perl.scm:3480 +msgid "" +"@code{IO::CaptureOutput} provides routines for capturing\n" +"@code{STDOUT} and @code{STDERR} from perl subroutines, forked system\n" +"calls (e.g. @code{system()}, @code{fork()}) and from XS or C modules.\n" +"\n" +"This module is no longer recommended by its maintainer. Users are advised to\n" +"try @code{Capture::Tiny} instead." +msgstr "" + +#: gnu/packages/perl.scm:3502 +msgid "Utilities for interactive I/O" +msgstr "" + +#: gnu/packages/perl.scm:3503 +msgid "" +"This module provides three utility subroutines that make it\n" +"easier to develop interactive applications: is_interactive(), interactive(),\n" +"and busy()." +msgstr "" + +#: gnu/packages/perl.scm:3522 +msgid "Emulate file interface for in-core strings" +msgstr "" + +#: gnu/packages/perl.scm:3523 +msgid "" +"IO::String is an IO::File (and IO::Handle) compatible class\n" +"that reads or writes data from in-core strings." +msgstr "" + +#: gnu/packages/perl.scm:3541 +msgid "IO:: interface for reading/writing an array of lines" +msgstr "" + +#: gnu/packages/perl.scm:3542 +msgid "" +"This toolkit primarily provides modules for performing both\n" +"traditional and object-oriented i/o) on things *other* than normal\n" +"filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines." +msgstr "" + +#: gnu/packages/perl.scm:3560 +msgid "Perl interface to pseudo ttys" +msgstr "" + +#: gnu/packages/perl.scm:3562 +#, fuzzy +#| msgid "This package provides an database interface for Perl." +msgid "" +"This package provides the 'IO::Pty' and 'IO::Tty' Perl interfaces to\n" +"pseudo ttys." +msgstr "Ce paquet fournit une interface de base de données pour Perl." + +#: gnu/packages/perl.scm:3580 +msgid "Run interactive command-line programs" +msgstr "" + +#: gnu/packages/perl.scm:3581 +msgid "" +"@code{IPC::Cmd} allows for the searching and execution of\n" +"any binary on your system. It adheres to verbosity settings and is able to\n" +"run interactively. It also has an option to capture output/error buffers." +msgstr "" + +#: gnu/packages/perl.scm:3610 +msgid "Run system() and background procs w/ piping, redirs, ptys" +msgstr "" + +#: gnu/packages/perl.scm:3611 +msgid "" +"IPC::Run allows you run and interact with child processes\n" +"using files, pipes, and pseudo-ttys. Both system()-style and scripted usages\n" +"are supported and may be mixed. Likewise, functional and OO API styles are\n" +"both supported and may be mixed." +msgstr "" + +#: gnu/packages/perl.scm:3629 +msgid "Run a subprocess with input/output redirection" +msgstr "" + +#: gnu/packages/perl.scm:3631 +msgid "" +"The IPC::Run3 module allows you to run a subprocess and redirect stdin,\n" +"stdout, and/or stderr to files and perl data structures. It aims to satisfy\n" +"99% of the need for using system, qx, and open3 with a simple, extremely\n" +"Perlish API and none of the bloat and rarely used features of IPC::Run." +msgstr "" + +#: gnu/packages/perl.scm:3655 +#, fuzzy +#| msgid "SQlite interface for Perl" +msgid "Lightweight interface to shared memory" +msgstr "Interface SQLite pour Perl" + +#: gnu/packages/perl.scm:3656 +msgid "" +"IPC::ShareLite provides a simple interface to shared memory,\n" +"allowing data to be efficiently communicated between processes." +msgstr "" + +#: gnu/packages/perl.scm:3674 +msgid "Run commands simply, with detailed diagnostics" +msgstr "" + +#: gnu/packages/perl.scm:3675 +msgid "" +"Calling Perl's in-built @code{system} function is easy,\n" +"determining if it was successful is hard. Let's face it, @code{$?} isn't the\n" +"nicest variable in the world to play with, and even if you do check it,\n" +"producing a well-formatted error string takes a lot of work.\n" +"\n" +"@code{IPC::System::Simple} takes the hard work out of calling external\n" +"commands." +msgstr "" + +#: gnu/packages/perl.scm:3700 +msgid "JSON encoder/decoder for Perl" +msgstr "" + +#: gnu/packages/perl.scm:3701 +msgid "" +"This module converts Perl data structures to JSON and vice\n" +"versa using either JSON::XS or JSON::PP." +msgstr "" + +#: gnu/packages/perl.scm:3726 +msgid "Wrapper for Perl JSON classes" +msgstr "" + +#: gnu/packages/perl.scm:3728 +msgid "" +"This module tries to provide a coherent API to bring together the\n" +"various JSON modules currently on CPAN. This module will allow you to code to\n" +"any JSON API and have it work regardless of which JSON module is actually\n" +"installed." +msgstr "" + +#: gnu/packages/perl.scm:3752 +msgid "Cpanel::JSON::XS with fallback" +msgstr "" + +#: gnu/packages/perl.scm:3753 +msgid "" +"This module first checks to see if either Cpanel::JSON::XS\n" +"or JSON::XS is already loaded, in which case it uses that module. Otherwise\n" +"it tries to load Cpanel::JSON::XS, then JSON::XS, then JSON::PP in order, and\n" +"either uses the first module it finds or throws an error." +msgstr "" + +#: gnu/packages/perl.scm:3776 +msgid "JSON serialising/deserialising for Perl" +msgstr "" + +#: gnu/packages/perl.scm:3795 +msgid "Bringing loggers and listeners together" +msgstr "" + +#: gnu/packages/perl.scm:3796 +msgid "" +"@code{Log::Any} provides a standard log production API for\n" +"modules. @code{Log::Any::Adapter} allows applications to choose the mechanism\n" +"for log consumption, whether screen, file or another logging mechanism like\n" +"@code{Log::Dispatch} or @code{Log::Log4perl}.\n" +"\n" +"A CPAN module uses @code{Log::Any} to get a log producer object. An\n" +"application, in turn, may choose one or more logging mechanisms via\n" +"@code{Log::Any::Adapter}, or none at all.\n" +"\n" +"@code{Log::Any} has a very tiny footprint and no dependencies beyond Perl\n" +"itself, which makes it appropriate for even small CPAN modules to use. It\n" +"defaults to 'null' logging activity, so a module can safely log without\n" +"worrying about whether the application has chosen (or will ever choose) a\n" +"logging mechanism." +msgstr "" + +#: gnu/packages/perl.scm:3832 +msgid "Log::Any adapter for Log::Log4perl" +msgstr "" + +#: gnu/packages/perl.scm:3833 +msgid "" +"@code{Log::Any::Adapter::Log4perl} provides a\n" +"@code{Log::Any} adapter using @code{Log::Log4perl} for logging." +msgstr "" + +#: gnu/packages/perl.scm:3854 +msgid "Log4j implementation for Perl" +msgstr "" + +#: gnu/packages/perl.scm:3855 +msgid "" +"@code{Log::Log4perl} lets you remote-control and fine-tune\n" +"the logging behaviour of your system from the outside. It implements the\n" +"widely popular (Java-based) Log4j logging package in pure Perl." +msgstr "" + +#: gnu/packages/perl.scm:3875 +msgid "Log::Report in the lightest form" +msgstr "" + +#: gnu/packages/perl.scm:3877 +msgid "" +"This module allows libraries to have a dependency to a small module\n" +"instead of the full Log-Report distribution. The full power of\n" +"@code{Log::Report} is only released when the main program uses that module.\n" +"In that case, the module using the 'Optional' will also use the full\n" +"@code{Log::Report}, otherwise the dressed-down @code{Log::Report::Minimal}\n" +"version." +msgstr "" + +#: gnu/packages/perl.scm:3902 +msgid "Get messages to users and logs" +msgstr "" + +#: gnu/packages/perl.scm:3904 +msgid "" +"@code{Log::Report} combines three tasks which are closely related in\n" +"one: logging, exceptions, and translations." +msgstr "" + +#: gnu/packages/perl.scm:3922 +msgid "Transliterate text between writing systems" +msgstr "" + +#: gnu/packages/perl.scm:3923 +msgid "" +"@code{Lingua::Translit} can be used to convert text from one\n" +"writing system to another, based on national or international transliteration\n" +"tables. Where possible a reverse transliteration is supported." +msgstr "" + +#: gnu/packages/perl.scm:3947 +msgid "Combination of List::Util and List::MoreUtils" +msgstr "" + +#: gnu/packages/perl.scm:3948 +msgid "" +"This module exports all of the functions that either\n" +"List::Util or List::MoreUtils defines, with preference to List::Util." +msgstr "" + +#: gnu/packages/perl.scm:3970 +msgid "Compare elements of two or more lists" +msgstr "" + +#: gnu/packages/perl.scm:3971 +msgid "" +"@code{List::Compare} provides a module to perform\n" +"comparative operations on two or more lists. Provided operations include\n" +"intersections, unions, unique elements, complements and many more." +msgstr "" + +#: gnu/packages/perl.scm:3996 gnu/packages/perl.scm:4023 +msgid "Provide the stuff missing in List::Util" +msgstr "" + +#: gnu/packages/perl.scm:3997 +msgid "" +"List::MoreUtils provides some trivial but commonly needed\n" +"functionality on lists which is not going to go into List::Util." +msgstr "" + +#: gnu/packages/perl.scm:4024 +msgid "" +"@code{List::SomeUtils} provides some trivial but commonly\n" +"needed functionality on lists which is not going to go into @code{List::Util}.\n" +"\n" +"All of the below functions are implementable in only a couple of lines of Perl\n" +"code. Using the functions from this module however should give slightly\n" +"better performance as everything is implemented in C. The pure-Perl\n" +"implementation of these functions only serves as a fallback in case the C\n" +"portions of this module couldn't be compiled on this machine." +msgstr "" + +#: gnu/packages/perl.scm:4048 +msgid "Expiry plug-in for Memoize that adds LRU cache expiration" +msgstr "" + +#: gnu/packages/perl.scm:4049 +msgid "" +"This module implements an expiry policy for Memoize that\n" +"follows LRU semantics, that is, the last n results, where n is specified as\n" +"the argument to the CACHESIZE parameter, will be cached." +msgstr "" + +#: gnu/packages/perl.scm:4067 +msgid "Charset information for MIME messages" +msgstr "" + +#: gnu/packages/perl.scm:4069 +msgid "" +"@code{MIME::Charset} provides information about character sets used for\n" +"MIME messages on Internet." +msgstr "" + +#: gnu/packages/perl.scm:4087 +msgid "Definition of MIME types" +msgstr "" + +#: gnu/packages/perl.scm:4088 +msgid "" +"This module provides a list of known mime-types, combined\n" +"from various sources. For instance, it contains all IANA types and the\n" +"knowledge of Apache." +msgstr "" + +#: gnu/packages/perl.scm:4110 +msgid "Write your linewise code for handles; this does the rest" +msgstr "" + +#: gnu/packages/perl.scm:4111 +msgid "" +"It's boring to deal with opening files for IO, converting\n" +"strings to handle-like objects, and all that. With\n" +"@code{Mixin::Linewise::Readers} and @code{Mixin::Linewise::Writers}, you can\n" +"just write a method to handle handles, and methods for handling strings and\n" +"file names are added for you." +msgstr "" + +#: gnu/packages/perl.scm:4138 +msgid "Enable all of the features of Modern Perl with one import" +msgstr "" + +#: gnu/packages/perl.scm:4139 +msgid "" +"@code{Modern::Perl} provides a simple way to enable\n" +"multiple, by now, standard libraries in a Perl program." +msgstr "" + +#: gnu/packages/perl.scm:4167 +msgid "Tiny replacement for Module::Build" +msgstr "" + +#: gnu/packages/perl.scm:4168 +msgid "" +"Many Perl distributions use a Build.PL file instead of a\n" +"Makefile.PL file to drive distribution configuration, build, test and\n" +"installation. Traditionally, Build.PL uses Module::Build as the underlying\n" +"build system. This module provides a simple, lightweight, drop-in\n" +"replacement. Whereas Module::Build has over 6,700 lines of code; this module\n" +"has less than 120, yet supports the features needed by most distributions." +msgstr "" + +#: gnu/packages/perl.scm:4196 +msgid "Module::Build class for building XS modules" +msgstr "" + +#: gnu/packages/perl.scm:4198 +msgid "" +"@code{Module::Build::XSUtil} is subclass of @code{Module::Build}\n" +"for support building XS modules.\n" +"\n" +"This is a list of a new parameters in the @code{Module::Build::new} method:\n" +"\n" +"@enumerate\n" +"@item @code{needs_compiler_c99}: This option checks C99 compiler availability.\n" +"@item @code{needs_compiler_cpp}: This option checks C++ compiler availability.\n" +"Can also pass @code{extra_compiler_flags} and @code{extra_linker_flags} for C++.\n" +"@item @code{generate_ppport_h}: Generate @file{ppport.h} by @code{Devel::PPPort}.\n" +"@item @code{generate_xshelper_h}: Generate @file{xshelper.h} which is a helper\n" +"header file to include @file{EXTERN.h}, @file{perl.h}, @file{XSUB.h} and\n" +"@file{ppport.h}, and defines some portability stuff which are not supported by\n" +"@file{ppport.h}.\n" +"\n" +"It is ported from @code{Module::Install::XSUtil}.\n" +"@item @code{cc_warnings}: Toggle compiler warnings. Enabled by default.\n" +"@item @code{-g options}: Invoke @file{Build.PL} with @code{-g} to enable\n" +"debug options.\n" +"@end enumerate" +msgstr "" + +#: gnu/packages/perl.scm:4234 +msgid "Find and use installed modules in a (sub)category" +msgstr "" + +#: gnu/packages/perl.scm:4235 +msgid "" +"Module::Find lets you find and use modules in categories.\n" +"This can be useful for auto-detecting driver or plugin modules. You can\n" +"differentiate between looking in the category itself or in all\n" +"subcategories." +msgstr "" + +#: gnu/packages/perl.scm:4261 +msgid "Loads alternate underlying implementations for a module" +msgstr "" + +#: gnu/packages/perl.scm:4262 +msgid "" +"This module abstracts out the process of choosing one of\n" +"several underlying implementations for a module. This can be used to provide\n" +"XS and pure Perl implementations of a module, or it could be used to load an\n" +"implementation for a given OS or any other case of needing to provide multiple\n" +"implementations." +msgstr "" + +#: gnu/packages/perl.scm:4300 +msgid "Standalone, extensible Perl module installer" +msgstr "" + +#: gnu/packages/perl.scm:4301 +msgid "" +"Module::Install is a package for writing installers for\n" +"CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a\n" +"strictly correct manner with ExtUtils::MakeMaker, and will run on any Perl\n" +"installation version 5.005 or newer." +msgstr "" + +#: gnu/packages/perl.scm:4322 +msgid "Give your Perl module the ability to have plugins" +msgstr "" + +#: gnu/packages/perl.scm:4323 +msgid "" +"This module provides a simple but extensible way of having\n" +"'plugins' for your Perl module." +msgstr "" + +#: gnu/packages/perl.scm:4342 +msgid "Perl runtime module handling" +msgstr "" + +#: gnu/packages/perl.scm:4343 +msgid "" +"The functions exported by this module deal with runtime\n" +"handling of Perl modules, which are normally handled at compile time." +msgstr "" + +#: gnu/packages/perl.scm:4366 +msgid "Provide information on conflicts for Module::Runtime" +msgstr "" + +#: gnu/packages/perl.scm:4367 +msgid "" +"This module provides conflicts checking for Module::Runtime,\n" +"which had a recent release that broke some versions of Moose. It is called\n" +"from Moose::Conflicts and moose-outdated." +msgstr "" + +#: gnu/packages/perl.scm:4388 +msgid "Recursively scan Perl code for dependencies" +msgstr "" + +#: gnu/packages/perl.scm:4389 +msgid "" +"Module::ScanDeps is a module to recursively scan Perl\n" +"programs for dependencies." +msgstr "" + +#: gnu/packages/perl.scm:4409 +msgid "Module name tools and transformations" +msgstr "" + +#: gnu/packages/perl.scm:4410 +msgid "" +"This module provides a few useful functions for manipulating\n" +"module names. Its main aim is to centralise some of the functions commonly\n" +"used by modules that manipulate other modules in some way, like converting\n" +"module names to relative paths." +msgstr "" + +#: gnu/packages/perl.scm:4440 +msgid "Minimalist Object Orientation (with Moose compatibility)" +msgstr "" + +#: gnu/packages/perl.scm:4441 +msgid "" +"Moo is an extremely light-weight Object Orientation system.\n" +"It allows one to concisely define objects and roles with a convenient syntax\n" +"that avoids the details of Perl's object system. Moo contains a subset of\n" +"Moose and is optimised for rapid startup." +msgstr "" + +#: gnu/packages/perl.scm:4517 +msgid "Postmodern object system for Perl 5" +msgstr "" + +#: gnu/packages/perl.scm:4519 +msgid "" +"Moose is a complete object system for Perl 5. It provides keywords for\n" +"attribute declaration, object construction, inheritance, and maybe more. With\n" +"Moose, you define your class declaratively, without needing to know about\n" +"blessed hashrefs, accessor methods, and so on. You can concentrate on the\n" +"logical structure of your classes, focusing on \"what\" rather than \"how\".\n" +"A class definition with Moose reads like a list of very concise English\n" +"sentences." +msgstr "" + +#: gnu/packages/perl.scm:4547 +msgid "Emulate Class::Accessor::Fast behavior using Moose attributes" +msgstr "" + +#: gnu/packages/perl.scm:4548 +msgid "" +"This module attempts to emulate the behavior of\n" +"Class::Accessor::Fast as accurately as possible using the Moose attribute\n" +"system. The public API of Class::Accessor::Fast is wholly supported, but the\n" +"private methods are not." +msgstr "" + +#: gnu/packages/perl.scm:4580 +msgid "Moose role for processing command line options" +msgstr "" + +#: gnu/packages/perl.scm:4581 +msgid "" +"This is a Moose role which provides an alternate constructor\n" +"for creating objects using parameters passed in from the command line." +msgstr "" + +#: gnu/packages/perl.scm:4602 +msgid "Mark overload code symbols as methods" +msgstr "" + +#: gnu/packages/perl.scm:4603 +msgid "" +"MooseX::MarkAsMethods allows one to easily mark certain\n" +"functions as Moose methods. This will allow other packages such as\n" +"namespace::autoclean to operate without blowing away your overloads. After\n" +"using MooseX::MarkAsMethods your overloads will be recognized by Class::MOP as\n" +"being methods, and class extension as well as composition from roles with\n" +"overloads will \"just work\"." +msgstr "" + +#: gnu/packages/perl.scm:4633 +msgid "Code attribute introspection" +msgstr "" + +#: gnu/packages/perl.scm:4634 +msgid "" +"This module allows code attributes of methods to be\n" +"introspected using Moose meta method objects." +msgstr "" + +#: gnu/packages/perl.scm:4660 +msgid "Subclassing of non-Moose classes" +msgstr "" + +#: gnu/packages/perl.scm:4661 +msgid "" +"MooseX::NonMoose allows for easily subclassing non-Moose\n" +"classes with Moose, taking care of the details connected with doing this, such\n" +"as setting up proper inheritance from Moose::Object and installing (and\n" +"inlining, at make_immutable time) a constructor that makes sure things like\n" +"BUILD methods are called. It tries to be as non-intrusive as possible." +msgstr "" + +#: gnu/packages/perl.scm:4690 +msgid "Extension of Params::Validate using Moose's types" +msgstr "" + +#: gnu/packages/perl.scm:4691 +msgid "" +"This module fills a gap in Moose by adding method parameter\n" +"validation to Moose." +msgstr "" + +#: gnu/packages/perl.scm:4712 +msgid "Apply roles to a related Perl class" +msgstr "" + +#: gnu/packages/perl.scm:4713 +msgid "" +"This module applies roles to make a subclass instead of\n" +"manually setting up a subclass." +msgstr "" + +#: gnu/packages/perl.scm:4740 +msgid "Moose roles with composition parameters" +msgstr "" + +#: gnu/packages/perl.scm:4741 +msgid "" +"Because Moose roles serve many different masters, they\n" +"usually provide only the least common denominator of functionality. To\n" +"empower roles further, more configurability than -alias and -excludes is\n" +"required. Perhaps your role needs to know which method to call when it is\n" +"done processing, or what default value to use for its url attribute.\n" +"Parameterized roles offer a solution to these (and other) kinds of problems." +msgstr "" + +#: gnu/packages/perl.scm:4767 +msgid "Roles which support overloading" +msgstr "" + +#: gnu/packages/perl.scm:4768 +msgid "" +"MooseX::Role::WithOverloading allows you to write a\n" +"Moose::Role which defines overloaded operators and allows those overload\n" +"methods to be composed into the classes/roles/instances it's compiled to,\n" +"where plain Moose::Roles would lose the overloading." +msgstr "" + +#: gnu/packages/perl.scm:4790 +msgid "Name your accessors foo() and set_foo()" +msgstr "" + +#: gnu/packages/perl.scm:4791 +msgid "" +"This module does not provide any methods. Simply loading it\n" +"changes the default naming policy for the loading class so that accessors are\n" +"separated into get and set methods. The get methods have the same name as the\n" +"accessor, while set methods are prefixed with \"_set_\"." +msgstr "" + +#: gnu/packages/perl.scm:4817 +msgid "Strict object constructors for Moose" +msgstr "" + +#: gnu/packages/perl.scm:4818 +msgid "" +"Simply loading this module makes your constructors\n" +"\"strict\". If your constructor is called with an attribute init argument\n" +"that your class does not declare, then it calls Moose->throw_error()." +msgstr "" + +#: gnu/packages/perl.scm:4846 +msgid "Trait loading and resolution for Moose" +msgstr "" + +#: gnu/packages/perl.scm:4847 +msgid "" +"Adds support on top of MooseX::Traits for class precedence\n" +"search for traits and some extra attributes." +msgstr "" + +#: gnu/packages/perl.scm:4873 +msgid "Organise your Moose types in libraries" +msgstr "" + +#: gnu/packages/perl.scm:4874 +msgid "" +"This package lets you declare types using short names, but\n" +"behind the scenes it namespaces all your type declarations, effectively\n" +"prevent name clashes between packages." +msgstr "" + +#: gnu/packages/perl.scm:4905 +msgid "DateTime related constraints and coercions for Moose" +msgstr "" + +#: gnu/packages/perl.scm:4906 +msgid "" +"This module packages several Moose::Util::TypeConstraints\n" +"with coercions, designed to work with the DateTime suite of objects." +msgstr "" + +#: gnu/packages/perl.scm:4938 +msgid "Extensions to MooseX::Types::DateTime" +msgstr "" + +#: gnu/packages/perl.scm:4939 +msgid "" +"This module builds on MooseX::Types::DateTime to add\n" +"additional custom types and coercions. Since it builds on an existing type,\n" +"all coercions and constraints are inherited." +msgstr "" + +#: gnu/packages/perl.scm:4968 +msgid "ClassName type constraints for Moose" +msgstr "" + +#: gnu/packages/perl.scm:4969 +msgid "" +"MooseX::Types::LoadableClass provides a ClassName type\n" +"constraint with coercion to load the class." +msgstr "" + +#: gnu/packages/perl.scm:4993 +msgid "Moosish types and type builder" +msgstr "" + +#: gnu/packages/perl.scm:4994 +msgid "" +"MooX::Types::MooseLike provides a possibility to build your\n" +"own set of Moose-like types. These custom types can then be used to describe\n" +"fields in Moo-based classes." +msgstr "" + +#: gnu/packages/perl.scm:5023 +msgid "Fast Moose-compatible object system for perl5" +msgstr "" + +#: gnu/packages/perl.scm:5025 +msgid "" +"Mouse is a @code{Moose} compatible object system that implements a\n" +"subset of the functionality for reduced startup time." +msgstr "" + +#: gnu/packages/perl.scm:5047 +#, fuzzy +#| msgid "SQlite interface for Perl" +msgid "Extend attribute interfaces for Mouse" +msgstr "Interface SQLite pour Perl" + +#: gnu/packages/perl.scm:5049 +msgid "" +"While @code{Mouse} attributes provide a way to name your accessors,\n" +"readers, writers, clearers and predicates, @code{MouseX::NativeTraits}\n" +"provides commonly used attribute helper methods for more specific types\n" +"of data." +msgstr "" + +#: gnu/packages/perl.scm:5069 +msgid "Mozilla's CA cert bundle in PEM format" +msgstr "" + +#: gnu/packages/perl.scm:5070 +msgid "" +"@code{Mozilla::CA} provides a copy of Mozilla's bundle of\n" +"Certificate Authority certificates in a form that can be consumed by modules\n" +"and libraries based on OpenSSL." +msgstr "" + +#: gnu/packages/perl.scm:5089 +msgid "MRO interface compatibility for Perls < 5.9.5" +msgstr "" + +#: gnu/packages/perl.scm:5090 +msgid "" +"The \"mro\" namespace provides several utilities for dealing\n" +"with method resolution order and method caching in general in Perl 5.9.5 and\n" +"higher. This module provides those interfaces for earlier versions of\n" +"Perl (back to 5.6.0)." +msgstr "" + +#: gnu/packages/perl.scm:5117 +msgid "Keep imports out of your namespace" +msgstr "" + +#: gnu/packages/perl.scm:5118 +msgid "" +"The namespace::autoclean pragma will remove all imported\n" +"symbols at the end of the current package's compile cycle. Functions called\n" +"in the package itself will still be bound by their name, but they won't show\n" +"up as methods on your class or instances. It is very similar to\n" +"namespace::clean, except it will clean all imported functions, no matter if\n" +"you imported them before or after you used the pragma. It will also not touch\n" +"anything that looks like a method." +msgstr "" + +#: gnu/packages/perl.scm:5144 +msgid "Keep imports and functions out of your namespace" +msgstr "" + +#: gnu/packages/perl.scm:5145 +msgid "" +"The namespace::clean pragma will remove all previously\n" +"declared or imported symbols at the end of the current package's compile\n" +"cycle. Functions called in the package itself will still be bound by their\n" +"name, but they won't show up as methods on your class or instances." +msgstr "" + +#: gnu/packages/perl.scm:5168 +msgid "Perl client for Etsy's statsd daemon" +msgstr "" + +#: gnu/packages/perl.scm:5169 +msgid "" +"This module implement a UDP client for the statsd statistics\n" +"collector daemon in use at Etsy.com." +msgstr "" + +#: gnu/packages/perl.scm:5187 +msgid "Numeric comparisons" +msgstr "" + +#: gnu/packages/perl.scm:5188 +msgid "" +"Number::Compare compiles a simple comparison to an anonymous\n" +"subroutine, which you can call with a value to be tested against." +msgstr "" + +#: gnu/packages/perl.scm:5206 +msgid "Generate cryptographic signatures for objects" +msgstr "" + +#: gnu/packages/perl.scm:5207 +msgid "" +"Object::Signature is an abstract base class that you can\n" +"inherit from in order to allow your objects to generate unique cryptographic\n" +"signatures." +msgstr "" + +#: gnu/packages/perl.scm:5228 +msgid "Read and write OLE storage files" +msgstr "" + +#: gnu/packages/perl.scm:5229 +msgid "" +"This module allows you to read and write\n" +"an OLE-Structured file. @dfn{OLE} (Object Linking and Embedding) is a\n" +"technology to store hierarchical information such as links to other\n" +"documents within a single file." +msgstr "" + +#: gnu/packages/perl.scm:5252 +msgid "Anonymous packages" +msgstr "" + +#: gnu/packages/perl.scm:5253 +msgid "" +"This module allows for anonymous packages that are\n" +"independent of the main namespace and only available through an object\n" +"instance, not by name." +msgstr "" + +#: gnu/packages/perl.scm:5281 +msgid "Manage deprecation warnings for your distribution" +msgstr "" + +#: gnu/packages/perl.scm:5282 +msgid "" +"This module allows you to manage a set of deprecations for\n" +"one or more modules." +msgstr "" + +#: gnu/packages/perl.scm:5309 +msgid "Routines for manipulating stashes" +msgstr "" + +#: gnu/packages/perl.scm:5310 +msgid "" +"Manipulating stashes (Perl's symbol tables) is occasionally\n" +"necessary, but incredibly messy, and easy to get wrong. This module hides all\n" +"of that behind a simple API." +msgstr "" + +#: gnu/packages/perl.scm:5333 +msgid "Faster implementation of the Package::Stash API" +msgstr "" + +#: gnu/packages/perl.scm:5334 +msgid "" +"This is a backend for Package::Stash, which provides the\n" +"functionality in a way that's less buggy and much faster. It will be used by\n" +"default if it's installed, and should be preferred in all environments with a\n" +"compiler." +msgstr "" + +#: gnu/packages/perl.scm:5354 +msgid "Play with other peoples' lexical variables" +msgstr "" + +#: gnu/packages/perl.scm:5355 +msgid "" +"PadWalker is a module which allows you to inspect (and even\n" +"change) lexical variables in any subroutine which called you. It will only\n" +"show those variables which are in scope at the point of the call. PadWalker\n" +"is particularly useful for debugging." +msgstr "" + +#: gnu/packages/perl.scm:5379 +msgid "Simple parallel processing fork manager" +msgstr "" + +#: gnu/packages/perl.scm:5380 +msgid "" +"@code{Parallel::ForkManager} is intended for use in\n" +"operations that can be done in parallel where the number of\n" +"processes to be forked off should be limited." +msgstr "" + +#: gnu/packages/perl.scm:5400 +msgid "Simple, compact and correct param-checking functions" +msgstr "" + +#: gnu/packages/perl.scm:5402 +msgid "" +"Params::Util provides a basic set of importable functions that makes\n" +"checking parameters easier." +msgstr "" + +#: gnu/packages/perl.scm:5426 +msgid "Validate method/function parameters" +msgstr "" + +#: gnu/packages/perl.scm:5427 +msgid "" +"The Params::Validate module allows you to validate method or\n" +"function call parameters to an arbitrary level of specificity." +msgstr "" + +#: gnu/packages/perl.scm:5445 +msgid "Create and manipulate PAR distributions" +msgstr "" + +#: gnu/packages/perl.scm:5446 +msgid "" +"PAR::Dist is a toolkit to create and manipulate PAR\n" +"distributions." +msgstr "" + +#: gnu/packages/perl.scm:5465 +msgid "" +"Allows you to both load one or more modules, while setting\n" +"up inheritance from those modules at the same time." +msgstr "" + +#: gnu/packages/perl.scm:5484 +msgid "Path specification manipulation" +msgstr "" + +#: gnu/packages/perl.scm:5485 +msgid "" +"Path::Class is a module for manipulation of file and\n" +"directory specifications in a cross-platform manner." +msgstr "" + +#: gnu/packages/perl.scm:5509 +msgid "File path utility" +msgstr "" + +#: gnu/packages/perl.scm:5510 +msgid "" +"This module provides a small, fast utility for working\n" +"with file paths." +msgstr "" + +#: gnu/packages/perl.scm:5531 +msgid "Fast and correct UTF-8 IO" +msgstr "" + +#: gnu/packages/perl.scm:5532 +msgid "" +"@code{PerlIO::utf8_strict} provides a fast and correct UTF-8\n" +"PerlIO layer. Unlike Perl's default @code{:utf8} layer it checks the input\n" +"for correctness." +msgstr "" + +#: gnu/packages/perl.scm:5553 +msgid "Check for comprehensive documentation of a module" +msgstr "" + +#: gnu/packages/perl.scm:5554 +msgid "" +"This module provides a mechanism for determining if the pod\n" +"for a given module is comprehensive." +msgstr "" + +#: gnu/packages/perl.scm:5571 +msgid "Parsing library for text in Pod format" +msgstr "" + +#: gnu/packages/perl.scm:5572 +msgid "" +"Pod::Simple is a Perl library for parsing text in\n" +"the Pod (plain old documentation) markup language that is typically\n" +"used for writing documentation for Perl and for Perl modules." +msgstr "" + +#: gnu/packages/perl.scm:5593 +msgid "GNU C library compatible strftime for loggers and servers" +msgstr "" + +#: gnu/packages/perl.scm:5594 +msgid "" +"POSIX::strftime::Compiler provides GNU C library compatible\n" +"strftime(3). But this module is not affected by the system locale. This\n" +"feature is useful when you want to write loggers, servers, and portable\n" +"applications." +msgstr "" + +#: gnu/packages/perl.scm:5612 +msgid "Information about the currently running perl" +msgstr "" + +#: gnu/packages/perl.scm:5614 +msgid "" +"Probe::Perl provides methods for obtaining information about the\n" +"currently running perl interpreter. It originally began life as code in the\n" +"Module::Build project, but has been externalized here for general use." +msgstr "" + +#: gnu/packages/perl.scm:5636 +msgid "Create read-only scalars, arrays, hashes" +msgstr "" + +#: gnu/packages/perl.scm:5637 +msgid "" +"This module provides a facility for creating non-modifiable\n" +"variables in Perl. This is useful for configuration files, headers, etc. It\n" +"can also be useful as a development and debugging tool for catching updates to\n" +"variables that should not be changed." +msgstr "" + +#: gnu/packages/perl.scm:5655 +msgid "Provide commonly requested regular expressions" +msgstr "" + +#: gnu/packages/perl.scm:5657 +msgid "" +"This module exports a single hash (`%RE') that stores or generates\n" +"commonly needed regular expressions. Patterns currently provided include:\n" +"balanced parentheses and brackets, delimited text (with escapes), integers and\n" +"floating-point numbers in any base (up to 36), comments in 44 languages,\n" +"offensive language, lists of any pattern, IPv4 addresses, URIs, and Zip\n" +"codes." +msgstr "" + +#: gnu/packages/perl.scm:5687 +msgid "Roles, as a slice of Moose" +msgstr "" + +#: gnu/packages/perl.scm:5688 +msgid "Role::Tiny is a minimalist role composition tool." +msgstr "" + +#: gnu/packages/perl.scm:5705 +msgid "Call isa, can, does, and DOES safely" +msgstr "" + +#: gnu/packages/perl.scm:5706 +msgid "" +"This module allows you to call isa, can, does, and DOES\n" +"safely on things that may not be objects." +msgstr "" + +#: gnu/packages/perl.scm:5724 +#, fuzzy +#| msgid "Userspace device management" +msgid "Lexically-scoped resource management" +msgstr "Gestion de périphériques utilisateurs" + +#: gnu/packages/perl.scm:5725 +msgid "" +"This module provides a convenient way to perform cleanup or\n" +"other forms of resource management at the end of a scope. It is particularly\n" +"useful when dealing with exceptions: the Scope::Guard constructor takes a\n" +"reference to a subroutine that is guaranteed to be called even if the thread\n" +"of execution is aborted prematurely. This effectively allows lexically-scoped\n" +"\"promises\" to be made that are automatically honoured by perl's garbage\n" +"collector." +msgstr "" + +#: gnu/packages/perl.scm:5748 +msgid "Infinite sets" +msgstr "" + +#: gnu/packages/perl.scm:5749 +msgid "Set::Infinite is a set theory module for infinite sets." +msgstr "" + +#: gnu/packages/perl.scm:5769 +msgid "Unordered collections of Perl Objects" +msgstr "" + +#: gnu/packages/perl.scm:5770 +msgid "" +"Set::Object provides efficient sets, unordered collections\n" +"of Perl objects without duplicates for scalars and references." +msgstr "" + +#: gnu/packages/perl.scm:5788 +#, fuzzy +#| msgid "SQlite interface for Perl" +msgid "Set operations for Perl" +msgstr "Interface SQLite pour Perl" + +#: gnu/packages/perl.scm:5789 +msgid "" +"The first priority of Set::Scalar is to be a convenient\n" +"interface to sets (as in: unordered collections of Perl scalars). While not\n" +"designed to be slow or big, neither has it been designed to be fast or\n" +"compact." +msgstr "" + +#: gnu/packages/perl.scm:5809 +msgid "Sort arrays by one or multiple calculated keys" +msgstr "" + +#: gnu/packages/perl.scm:5810 +msgid "" +"This Perl module provides various functions to quickly sort\n" +"arrays by one or multiple calculated keys." +msgstr "" + +#: gnu/packages/perl.scm:5828 +msgid "Spiffy Perl Interface Framework For You" +msgstr "" + +#: gnu/packages/perl.scm:5829 +msgid "" +"Spiffy is a framework and methodology for doing object\n" +"oriented (OO) programming in Perl. Spiffy combines the best parts of\n" +"Exporter.pm, base.pm, mixin.pm and SUPER.pm into one magic foundation class.\n" +"It attempts to fix all the nits and warts of traditional Perl OO, in a clean,\n" +"straightforward and (perhaps someday) standard way. Spiffy borrows ideas from\n" +"other OO languages like Python, Ruby, Java and Perl 6." +msgstr "" + +#: gnu/packages/perl.scm:5851 +msgid "Temporary buffer to save bytes" +msgstr "" + +#: gnu/packages/perl.scm:5852 +msgid "" +"Stream::Buffered is a buffer class to store arbitrary length\n" +"of byte strings and then get a seekable filehandle once everything is\n" +"buffered. It uses PerlIO and/or temporary file to save the buffer depending\n" +"on the length of the size." +msgstr "" + +#: gnu/packages/perl.scm:5872 +msgid "Turn on strict and make all warnings fatal" +msgstr "" + +#: gnu/packages/perl.scm:5873 +msgid "" +"Strictures turns on strict and make all warnings fatal when\n" +"run from within a source-controlled directory." +msgstr "" + +#: gnu/packages/perl.scm:5891 +msgid "Camelcase and de-camelcase" +msgstr "" + +#: gnu/packages/perl.scm:5892 +msgid "" +"This module may be used to convert from under_score text to\n" +"CamelCase and back again." +msgstr "" + +#: gnu/packages/perl.scm:5912 +msgid "Rewrite strings based on a set of known prefixes" +msgstr "" + +#: gnu/packages/perl.scm:5913 +msgid "" +"This module allows you to rewrite strings based on a set of\n" +"known prefixes." +msgstr "" + +#: gnu/packages/perl.scm:5932 +msgid "String printing alternatives to printf" +msgstr "" + +#: gnu/packages/perl.scm:5934 +msgid "" +"This module inserts values into (translated) strings. It provides\n" +"@code{printf} and @code{sprintf} alternatives via both an object-oriented and\n" +"a functional interface." +msgstr "" + +#: gnu/packages/perl.scm:5957 +msgid "Sophisticated exporter for custom-built routines" +msgstr "" + +#: gnu/packages/perl.scm:5959 +msgid "" +"Sub::Exporter provides a sophisticated alternative to Exporter.pm for\n" +"custom-built routines." +msgstr "" + +#: gnu/packages/perl.scm:5978 +msgid "Only use Sub::Exporter if you need it" +msgstr "" + +#: gnu/packages/perl.scm:5979 +msgid "" +"Sub::Exporter is an incredibly powerful module, but with\n" +"that power comes great responsibility, as well as some runtime penalties.\n" +"This module is a \"Sub::Exporter\" wrapper that will let your users just use\n" +"Exporter if all they are doing is picking exports, but use \"Sub::Exporter\"\n" +"if your users try to use \"Sub::Exporter\"'s more advanced features, like\n" +"renaming exports, if they try to use them." +msgstr "" + +#: gnu/packages/perl.scm:6001 +msgid "Retrieve names of code references" +msgstr "" + +#: gnu/packages/perl.scm:6002 +msgid "" +"Sub::Identify allows you to retrieve the real name of code\n" +"references." +msgstr "" + +#: gnu/packages/perl.scm:6021 +msgid "Install subroutines into packages easily" +msgstr "" + +#: gnu/packages/perl.scm:6023 +msgid "" +"Sub::Install makes it easy to install subroutines into packages without\n" +"the unsightly mess of C<no strict> or typeglobs lying about where just anyone\n" +"can see them." +msgstr "" + +#: gnu/packages/perl.scm:6044 +msgid "(Re)name a sub" +msgstr "" + +#: gnu/packages/perl.scm:6045 +msgid "" +"Assigns a new name to referenced sub. If package\n" +"specification is omitted in the name, then the current package is used. The\n" +"return value is the sub." +msgstr "" + +#: gnu/packages/perl.scm:6064 +msgid "Apparently run a function in a higher stack frame" +msgstr "" + +#: gnu/packages/perl.scm:6065 +msgid "" +"Like Tcl's uplevel() function, but not quite so dangerous.\n" +"The idea is just to fool caller(). All the really naughty bits of Tcl's\n" +"uplevel() are avoided." +msgstr "" + +#: gnu/packages/perl.scm:6084 +msgid "Perl extension for generating SVG documents" +msgstr "" + +#: gnu/packages/perl.scm:6085 +msgid "" +"SVG is a Perl module which generates a nested data structure\n" +"containing the DOM representation of an SVG (Scalable Vector Graphics) image.\n" +"Using SVG, you can generate SVG objects, embed other SVG instances into it,\n" +"access the DOM object, create and access Javascript, and generate SMIL\n" +"animation content." +msgstr "" + +#: gnu/packages/perl.scm:6106 +#, fuzzy +#| msgid "SQlite interface for Perl" +msgid "Switch statement for Perl" +msgstr "Interface SQLite pour Perl" + +#: gnu/packages/perl.scm:6107 +msgid "" +"Switch is a Perl module which implements a generalized case\n" +"mechanism. The module augments the standard Perl syntax with two new\n" +"statements: @code{switch} and @code{case}." +msgstr "" + +#: gnu/packages/perl.scm:6124 +msgid "Perl extension for getting CPU information" +msgstr "" + +#: gnu/packages/perl.scm:6126 +msgid "" +"Sys::CPU is a module for counting the number of CPUs on a system, and\n" +"determining their type and clock speed." +msgstr "" + +#: gnu/packages/perl.scm:6147 +msgid "Get full hostname in Perl" +msgstr "" + +#: gnu/packages/perl.scm:6148 +msgid "" +"Sys::Hostname::Long tries very hard to get the full hostname\n" +"of a system." +msgstr "" + +#: gnu/packages/perl.scm:6166 +msgid "Ensure that a platform has weaken support" +msgstr "" + +#: gnu/packages/perl.scm:6167 +msgid "" +"One recurring problem in modules that use Scalar::Util's\n" +"weaken function is that it is not present in the pure-perl variant. If\n" +"Scalar::Util is not available at all, it will issue a normal dependency on the\n" +"module. However, if Scalar::Util is relatively new ( it is >= 1.19 ) and the\n" +"module does not have weaken, the install will bail out altogether with a long\n" +"error encouraging the user to seek support." +msgstr "" + +#: gnu/packages/perl.scm:6192 +msgid "Template processing system for Perl" +msgstr "" + +#: gnu/packages/perl.scm:6193 +msgid "" +"The Template Toolkit is a collection of modules which\n" +"implement an extensible template processing system. It was originally\n" +"designed and remains primarily useful for generating dynamic web content, but\n" +"it can be used equally well for processing any other kind of text based\n" +"documents: HTML, XML, POD, PostScript, LaTeX, and so on." +msgstr "" + +#: gnu/packages/perl.scm:6216 +msgid "Profiling for Template Toolkit" +msgstr "" + +#: gnu/packages/perl.scm:6217 +msgid "" +"Template::Timer provides inline profiling of the template\n" +"processing in Perl code." +msgstr "" + +#: gnu/packages/perl.scm:6235 +msgid "Detect encoding of the current terminal" +msgstr "" + +#: gnu/packages/perl.scm:6236 +msgid "" +"Term::Encoding is a simple module to detect the encoding of\n" +"the current terminal expects in various ways." +msgstr "" + +#: gnu/packages/perl.scm:6260 +msgid "Progress meter on a standard terminal" +msgstr "" + +#: gnu/packages/perl.scm:6261 +msgid "" +"Term::ProgressBar provides a simple progress bar on the\n" +"terminal, to let the user know that something is happening, roughly how much\n" +"stuff has been done, and maybe an estimate at how long remains." +msgstr "" + +#: gnu/packages/perl.scm:6284 +msgid "Progress meter if run interactively" +msgstr "" + +#: gnu/packages/perl.scm:6285 +msgid "" +"Term::ProgressBar is a wonderful module for showing progress\n" +"bars on the terminal. This module acts very much like that module when it is\n" +"run interactively. However, when it is not run interactively (for example, as\n" +"a cron job) then it does not show the progress bar." +msgstr "" + +#: gnu/packages/perl.scm:6307 +msgid "Simple progress bars" +msgstr "" + +#: gnu/packages/perl.scm:6308 +msgid "" +"Term::ProgressBar::Simple tells you how much work has been\n" +"done, how much is left to do, and estimate how long it will take." +msgstr "" + +#: gnu/packages/perl.scm:6326 +#, fuzzy +#| msgid "Simple incremental backup tool" +msgid "Simple terminal control" +msgstr "Outil simple de sauvegarde incrémentale" + +#: gnu/packages/perl.scm:6327 +msgid "" +"This module, ReadKey, provides ioctl control for terminals\n" +"so the input modes can be changed (thus allowing reads of a single character\n" +"at a time), and also provides non-blocking reads of stdin, as well as several\n" +"other terminal related features, including retrieval/modification of the\n" +"screen size, and retrieval/modification of the control characters." +msgstr "" + +#: gnu/packages/perl.scm:6354 +msgid "Data-driven testing framework for Perl" +msgstr "" + +#: gnu/packages/perl.scm:6355 +msgid "" +"Test::Base gives a way to trivially write your own test\n" +"framework base class. It concentrates on offering reusable data driven\n" +"patterns, so that you can write tests with a minimum of code." +msgstr "" + +#: gnu/packages/perl.scm:6382 +msgid "Easily create test classes in an xUnit/JUnit style" +msgstr "" + +#: gnu/packages/perl.scm:6383 +msgid "" +"@code{Test::Class} provides a simple way of creating classes\n" +"and objects to test your code in an xUnit style.\n" +"\n" +"Built using @code{Test::Builder}, it was designed to work with other\n" +"@code{Test::Builder} based modules (@code{Test::More},\n" +"@code{Test::Differences}, @code{Test::Exception}, etc.)." +msgstr "" + +#: gnu/packages/perl.scm:6415 +msgid "Test classes the easy way" +msgstr "" + +#: gnu/packages/perl.scm:6416 +msgid "" +"@code{Test::Class::Most} provides some more convenience when\n" +"using @code{Test::Class}." +msgstr "" + +#: gnu/packages/perl.scm:6448 +msgid "Check for uncleaned imports" +msgstr "" + +#: gnu/packages/perl.scm:6449 +msgid "" +"This module lets you check your module's namespaces for\n" +"imported functions you might have forgotten to remove with\n" +"namespace::autoclean or namespace::clean and are therefore available to be\n" +"called as methods, which usually isn't want you want." +msgstr "" + +#: gnu/packages/perl.scm:6469 +msgid "Flexible deep comparison for the Test::Builder framework" +msgstr "" + +#: gnu/packages/perl.scm:6471 +msgid "" +"Test::Deep compares two structures by going through each level, ensuring\n" +"that the values match, that arrays and hashes have the same elements and that\n" +"references are blessed into the correct class. It also handles circular data\n" +"structures without getting caught in an infinite loop." +msgstr "" + +#: gnu/packages/perl.scm:6497 +msgid "Test strings and data structures and show differences" +msgstr "" + +#: gnu/packages/perl.scm:6498 +msgid "" +"This module exports three test functions and four diff-style\n" +"functions." +msgstr "" + +#: gnu/packages/perl.scm:6519 +msgid "Perl extension for maintaining test directories" +msgstr "" + +#: gnu/packages/perl.scm:6520 +msgid "" +"Testing code can involve making sure that files are created\n" +"and deleted as expected. Doing this manually can be error prone, as it's easy\n" +"to forget a file, or miss that some unexpected file was added. This module\n" +"simplifies maintaining test directories by tracking their status as they are\n" +"modified or tested with this API, making it simple to test both individual\n" +"files, as well as to verify that there are no missing or unknown files." +msgstr "" + +#: gnu/packages/perl.scm:6546 +msgid "Test exception based code" +msgstr "" + +#: gnu/packages/perl.scm:6547 +msgid "" +"This module provides a few convenience methods for testing\n" +"exception based code. It is built with Test::Builder and plays happily with\n" +"Test::More and friends." +msgstr "" + +#: gnu/packages/perl.scm:6567 +msgid "Simple helpers for testing code with exceptions" +msgstr "" + +#: gnu/packages/perl.scm:6568 +msgid "" +"Test::Fatal is an alternative to the popular\n" +"Test::Exception. It does much less, but should allow greater flexibility in\n" +"testing exception-throwing code with about the same amount of typing." +msgstr "" + +#: gnu/packages/perl.scm:6592 +msgid "Ease software testing with files and directories" +msgstr "" + +#: gnu/packages/perl.scm:6593 +msgid "" +"This library provides functions to enable testing of files\n" +"and directories. For instance, the @code{file_ok} helper can test whether the\n" +"contents of a file is equal to a particular string." +msgstr "" + +#: gnu/packages/perl.scm:6623 +msgid "Run Perl standard test scripts with statistics" +msgstr "" + +#: gnu/packages/perl.scm:6624 +msgid "" +"Simple test harness which allows tests to be run and results\n" +"automatically aggregated and output to STDOUT." +msgstr "" + +#: gnu/packages/perl.scm:6642 +msgid "Traces memory leaks in Perl" +msgstr "" + +#: gnu/packages/perl.scm:6643 +msgid "" +"Test::LeakTrace provides several functions that trace memory\n" +"leaks. This module scans arenas, the memory allocation system, so it can\n" +"detect any leaked SVs in given blocks." +msgstr "" + +#: gnu/packages/perl.scm:6662 +msgid "Tests strings for equality, with more helpful failures" +msgstr "" + +#: gnu/packages/perl.scm:6663 +msgid "" +"This module provides some drop-in replacements for the\n" +"string comparison functions of Test::More, but which are more suitable when\n" +"you test against long strings." +msgstr "" + +#: gnu/packages/perl.scm:6684 +msgid "Interact with a t/test_manifest file" +msgstr "" + +#: gnu/packages/perl.scm:6685 +msgid "" +"@code{Test::Manifest} overrides the default test file order. Instead of\n" +"running all of the t/*.t files in ASCII-betical order, it looks in the t/test_manifest\n" +"file to find out which tests you want to run and the order in which you want to run them.\n" +"It constructs the right value for the build system to do the right thing." +msgstr "" + +#: gnu/packages/perl.scm:6714 +#, fuzzy +#| msgid "SQlite interface for Perl" +msgid "Emulate troublesome interfaces in Perl" +msgstr "Interface SQLite pour Perl" + +#: gnu/packages/perl.scm:6715 +msgid "" +"Test::MockObject allows you to create objects that conform\n" +"to particular interfaces with very little code. You don't have to reimplement\n" +"the behavior, just the input and the output." +msgstr "" + +#: gnu/packages/perl.scm:6734 +msgid "Replaces actual time with simulated time" +msgstr "" + +#: gnu/packages/perl.scm:6735 +msgid "" +"This module was created to enable test suites to test code\n" +"at specific points in time. Specifically it overrides localtime, gmtime and\n" +"time at compile time and then relies on the user supplying a mock time via\n" +"set_relative_time, set_absolute_time or set_fixed_time to alter future calls\n" +"to gmtime,time or localtime." +msgstr "" + +#: gnu/packages/perl.scm:6762 +msgid "Most commonly needed test functions and features" +msgstr "" + +#: gnu/packages/perl.scm:6763 +msgid "" +"This module provides the most commonly used testing\n" +"functions, along with automatically turning on strict and warning and gives a\n" +"bit more fine-grained control over test suites." +msgstr "" + +#: gnu/packages/perl.scm:6786 +msgid "Skip tests when modules not available" +msgstr "" + +#: gnu/packages/perl.scm:6787 +msgid "" +"@code{Test::Needs} allows you to skip test scripts if\n" +"modules are not available. The requested modules will be loaded, and\n" +"optionally have their versions checked. If the module is missing, the test\n" +"script will be skipped. Modules that are found but fail to compile will exit\n" +"with an error rather than skip.\n" +"\n" +"If used in a subtest, the remainder of the subtest will be skipped." +msgstr "" + +#: gnu/packages/perl.scm:6809 +msgid "Ensure no warnings are produced while testing" +msgstr "" + +#: gnu/packages/perl.scm:6811 +msgid "" +"This modules causes any warnings during testing to be captured and\n" +"stored. It automatically adds an extra test that will run when your script\n" +"ends to check that there were no warnings. If there were any warnings, the\n" +"test will fail and output diagnostics of where, when and what the warning was,\n" +"including a stack trace of what was going on when it occurred." +msgstr "" + +#: gnu/packages/perl.scm:6834 +msgid "Compare the difference between numbers against a given tolerance" +msgstr "" + +#: gnu/packages/perl.scm:6836 +msgid "" +"At some point or another, most programmers find they need to compare\n" +"floating-point numbers for equality. The typical idiom is to test if the\n" +"absolute value of the difference of the numbers is within a desired tolerance,\n" +"usually called epsilon. This module provides such a function for use with\n" +"@code{Test::More}." +msgstr "" + +#: gnu/packages/perl.scm:6859 +msgid "Utilities to test STDOUT and STDERR messages" +msgstr "" + +#: gnu/packages/perl.scm:6861 +msgid "" +"Test::Output provides a simple interface for testing output sent to\n" +"STDOUT or STDERR. A number of different utilities are included to try and be\n" +"as flexible as possible to the tester." +msgstr "" + +#: gnu/packages/perl.scm:6883 +msgid "Check for POD errors in files" +msgstr "" + +#: gnu/packages/perl.scm:6884 +msgid "" +"Check POD files for errors or warnings in a test file, using\n" +"Pod::Simple to do the heavy lifting." +msgstr "" + +#: gnu/packages/perl.scm:6904 +msgid "Check for pod coverage" +msgstr "" + +#: gnu/packages/perl.scm:6905 +msgid "" +"This module adds a test to your Perl distribution which\n" +"checks for pod coverage of all appropriate files." +msgstr "" + +#: gnu/packages/perl.scm:6923 +msgid "Checks to see if the module can be loaded" +msgstr "" + +#: gnu/packages/perl.scm:6924 +msgid "" +"Test::Requires checks to see if the module can be loaded.\n" +"If this fails, then rather than failing tests this skips all tests." +msgstr "" + +#: gnu/packages/perl.scm:6943 +msgid "Basic cross-platform tests for scripts" +msgstr "" + +#: gnu/packages/perl.scm:6945 +msgid "" +"The intent of the Test::Script module is to provide a series of basic\n" +"tests for 80% of the testing you will need to do for scripts in the script (or\n" +"bin as is also commonly used) paths of your Perl distribution." +msgstr "" + +#: gnu/packages/perl.scm:6968 +msgid "Fork test in Perl" +msgstr "" + +#: gnu/packages/perl.scm:6969 +msgid "" +"Test::SharedFork is a utility module for Test::Builder. It\n" +"makes fork(2) safe to use in test cases." +msgstr "" + +#: gnu/packages/perl.scm:6985 +msgid "Basic utilities for writing tests" +msgstr "" + +#: gnu/packages/perl.scm:6987 +msgid "Test::Simple contains basic utilities for writing tests." +msgstr "" + +#: gnu/packages/perl.scm:7004 +msgid "Simplify running Test::Builder tests" +msgstr "" + +#: gnu/packages/perl.scm:7006 +msgid "" +"Test::Tester allows testing of test modules based on Test::Builder with\n" +"a minimum of effort." +msgstr "" + +#: gnu/packages/perl.scm:7032 +msgid "Trap exit codes, exceptions, output, and so on" +msgstr "" + +#: gnu/packages/perl.scm:7033 +msgid "" +"This module is primarily (but not exclusively) for use in\n" +"test scripts: A block eval configurable and extensible but by default trapping\n" +"STDOUT, STDERR, warnings, exceptions, would-be exit codes, and return values\n" +"from boxed blocks of test code." +msgstr "" + +#: gnu/packages/perl.scm:7053 +msgid "UTF-8 testing in Perl" +msgstr "" + +#: gnu/packages/perl.scm:7054 +msgid "" +"This module is a collection of tests useful for dealing with\n" +"UTF-8 strings in Perl. This module has two types of tests: The validity tests\n" +"check if a string is valid and not corrupt, whereas the characteristics tests\n" +"will check that string has a given set of characteristics." +msgstr "" + +#: gnu/packages/perl.scm:7076 +msgid "Perl extension to test methods for warnings" +msgstr "" + +#: gnu/packages/perl.scm:7077 +msgid "" +"This module provides a few convenience methods for testing\n" +"warning based code." +msgstr "" + +#: gnu/packages/perl.scm:7095 +msgid "Test for warnings and the lack of them" +msgstr "" + +#: gnu/packages/perl.scm:7096 +msgid "" +"This module is intended to be used as a drop-in replacement\n" +"for Test::NoWarnings. It also adds an extra test, but runs this test before\n" +"done_testing calculates the test count, rather than after. It does this by\n" +"hooking into done_testing as well as via an END block. You can declare a\n" +"plan, or not, and things will still Just Work." +msgstr "" + +#: gnu/packages/perl.scm:7117 +msgid "Test fallback behaviour in absence of modules" +msgstr "" + +#: gnu/packages/perl.scm:7118 +msgid "" +"This module allows you to deliberately hide modules from a\n" +"program even though they are installed. This is mostly useful for testing\n" +"modules that have a fallback when a certain dependency module is not\n" +"installed." +msgstr "" + +#: gnu/packages/perl.scm:7145 +msgid "Dynamic generation of tests" +msgstr "" + +#: gnu/packages/perl.scm:7146 +msgid "" +"The Test::WriteVariants module provides for the dynamic\n" +"generation of tests in nested combinations of contexts." +msgstr "" + +#: gnu/packages/perl.scm:7166 +msgid "Testing module for YAML implementations" +msgstr "" + +#: gnu/packages/perl.scm:7167 +msgid "" +"Test::YAML is a subclass of Test::Base with YAML specific\n" +"support." +msgstr "" + +#: gnu/packages/perl.scm:7186 +msgid "Align text" +msgstr "" + +#: gnu/packages/perl.scm:7187 +msgid "" +"Text::Aligner exports a single function, align(), which is\n" +"used to justify strings to various alignment styles." +msgstr "" + +#: gnu/packages/perl.scm:7205 +msgid "Extract delimited text sequences from strings" +msgstr "" + +#: gnu/packages/perl.scm:7206 +msgid "" +"The Text::Balanced module can be used to extract delimited\n" +"text sequences from strings." +msgstr "" + +#: gnu/packages/perl.scm:7224 +msgid "Manipulate comma-separated values" +msgstr "" + +#: gnu/packages/perl.scm:7225 +msgid "" +"Text::CSV provides facilities for the composition and\n" +"decomposition of comma-separated values. An instance of the Text::CSV class\n" +"can combine fields into a CSV string and parse a CSV string into fields." +msgstr "" + +#: gnu/packages/perl.scm:7244 +msgid "Rountines for manipulating CSV files" +msgstr "" + +#: gnu/packages/perl.scm:7245 +msgid "" +"@code{Text::CSV_XS} provides facilities for the composition\n" +"and decomposition of comma-separated values. An instance of the\n" +"@code{Text::CSV_XS} class will combine fields into a CSV string and parse a\n" +"CSV string into fields. The module accepts either strings or files as input\n" +"and support the use of user-specified characters for delimiters, separators,\n" +"and escapes." +msgstr "" + +#: gnu/packages/perl.scm:7269 +msgid "Perform diffs on files and record sets" +msgstr "" + +#: gnu/packages/perl.scm:7270 +msgid "" +"Text::Diff provides a basic set of services akin to the GNU\n" +"diff utility. It is not anywhere near as feature complete as GNU diff, but it\n" +"is better integrated with Perl and available on all platforms. It is often\n" +"faster than shelling out to a system's diff executable for small files, and\n" +"generally slower on larger files." +msgstr "" + +#: gnu/packages/perl.scm:7292 +msgid "Match globbing patterns against text" +msgstr "" + +#: gnu/packages/perl.scm:7293 +msgid "" +"Text::Glob implements glob(3) style matching that can be\n" +"used to match against text, rather than fetching names from a file system. If\n" +"you want to do full file globbing use the File::Glob module instead." +msgstr "" + +#: gnu/packages/perl.scm:7316 +msgid "Fast, middleweight template engine" +msgstr "" + +#: gnu/packages/perl.scm:7318 +msgid "" +"Text::NeatTemplate provides a simple, middleweight but fast\n" +"template engine, for when you need speed rather than complex features,\n" +"yet need more features than simple variable substitution." +msgstr "" + +#: gnu/packages/perl.scm:7337 +msgid "Convert between Roman and Arabic algorisms" +msgstr "" + +#: gnu/packages/perl.scm:7338 +msgid "" +"This package provides functions to convert between Roman and\n" +"Arabic algorisms. It supports both conventional Roman algorisms (which range\n" +"from 1 to 3999) and Milhar Romans, a variation which uses a bar across the\n" +"algorism to indicate multiplication by 1000." +msgstr "" + +#: gnu/packages/perl.scm:7358 +msgid "Simple ASCII tables" +msgstr "" + +#: gnu/packages/perl.scm:7359 +msgid "Text::SimpleTable draws simple ASCII tables." +msgstr "" + +#: gnu/packages/perl.scm:7380 +msgid "Organize Data in Tables" +msgstr "" + +#: gnu/packages/perl.scm:7381 +msgid "Text::Table renders plaintext tables." +msgstr "" + +#: gnu/packages/perl.scm:7398 +msgid "Provide plain ASCII transliterations of Unicode text" +msgstr "" + +#: gnu/packages/perl.scm:7399 +msgid "" +"Text::Unidecode provides a function, unidecode(...) that\n" +"takes Unicode data and tries to represent it in US-ASCII characters (i.e., the\n" +"universally displayable characters between 0x00 and 0x7F). The representation\n" +"is almost always an attempt at transliteration-- i.e., conveying, in Roman\n" +"letters, the pronunciation expressed by the text in some other writing\n" +"system." +msgstr "" + +#: gnu/packages/perl.scm:7427 +msgid "Role for classes that can be thrown" +msgstr "" + +#: gnu/packages/perl.scm:7428 +msgid "" +"Throwable is a role for classes that are meant to be thrown\n" +"as exceptions to standard program flow." +msgstr "" + +#: gnu/packages/perl.scm:7445 +msgid "Perl script tidier" +msgstr "" + +#: gnu/packages/perl.scm:7446 +msgid "" +"This package contains a Perl script which indents and\n" +"reformats Perl scripts to make them easier to read. The formatting can be\n" +"controlled with command line parameters. The default parameter settings\n" +"approximately follow the suggestions in the Perl Style Guide." +msgstr "" + +#: gnu/packages/perl.scm:7466 +msgid "Cycle through a list of values" +msgstr "" + +#: gnu/packages/perl.scm:7467 +msgid "" +"You use @code{Tie::Cycle} to go through a list over and over\n" +"again. Once you get to the end of the list, you go back to the beginning." +msgstr "" + +#: gnu/packages/perl.scm:7486 +msgid "Ordered associative arrays for Perl" +msgstr "" + +#: gnu/packages/perl.scm:7487 +msgid "" +"This Perl module implements Perl hashes that preserve the\n" +"order in which the hash elements were added. The order is not affected when\n" +"values corresponding to existing keys in the IxHash are changed. The elements\n" +"can also be set to any arbitrary supplied order. The familiar perl array\n" +"operations can also be performed on the IxHash." +msgstr "" + +#: gnu/packages/perl.scm:7510 +msgid "Tie to an existing Perl object" +msgstr "" + +#: gnu/packages/perl.scm:7511 +msgid "" +"This class provides a tie constructor that returns the\n" +"object it was given as it's first argument. This way side effects of calling\n" +"$object->TIEHASH are avoided." +msgstr "" + +#: gnu/packages/perl.scm:7533 +msgid "English expression of durations" +msgstr "" + +#: gnu/packages/perl.scm:7534 +msgid "" +"This module provides functions for expressing durations in\n" +"rounded or exact terms." +msgstr "" + +#: gnu/packages/perl.scm:7556 +msgid "Parse time duration strings" +msgstr "" + +#: gnu/packages/perl.scm:7557 +msgid "" +"Time::Duration::Parse is a module to parse human readable\n" +"duration strings like \"2 minutes\" and \"3 seconds\" to seconds." +msgstr "" + +#: gnu/packages/perl.scm:7575 +msgid "Efficiently compute time from local and GMT time" +msgstr "" + +#: gnu/packages/perl.scm:7576 +msgid "" +"This module provides functions that are the inverse of\n" +"built-in perl functions localtime() and gmtime(). They accept a date as a\n" +"six-element array, and return the corresponding time(2) value in seconds since\n" +"the system epoch." +msgstr "" + +#: gnu/packages/perl.scm:7596 +msgid "Date parsing/formatting subroutines" +msgstr "" + +#: gnu/packages/perl.scm:7597 +msgid "" +"This module provides routines for parsing date string into\n" +"time values and formatting dates into ASCII strings." +msgstr "" + +#: gnu/packages/perl.scm:7619 +msgid "Shift and scale time" +msgstr "" + +#: gnu/packages/perl.scm:7620 +msgid "" +"This module allows you to speed up your sleep(), alarm(),\n" +"and time() calls." +msgstr "" + +#: gnu/packages/perl.scm:7643 +msgid "Simple tree object" +msgstr "" + +#: gnu/packages/perl.scm:7644 +msgid "" +"This module in a fully object-oriented implementation of a\n" +"simple n-ary tree." +msgstr "" + +#: gnu/packages/perl.scm:7668 +msgid "Factory object for dispensing Visitor objects" +msgstr "" + +#: gnu/packages/perl.scm:7669 +msgid "" +"This module is a factory for dispensing\n" +"Tree::Simple::Visitor::* objects." +msgstr "" + +#: gnu/packages/perl.scm:7687 +msgid "Minimal try/catch with proper preservation of $@@" +msgstr "" + +#: gnu/packages/perl.scm:7688 +msgid "" +"This module provides bare bones try/catch/finally statements\n" +"that are designed to minimize common mistakes with eval blocks, and nothing\n" +"else." +msgstr "" + +#: gnu/packages/perl.scm:7709 +msgid "Data types for common serialisation formats" +msgstr "" + +#: gnu/packages/perl.scm:7710 +msgid "" +"This module provides some extra datatypes that are used by\n" +"common serialisation formats such as JSON or CBOR." +msgstr "" + +#: gnu/packages/perl.scm:7728 +msgid "Unicode normalization forms" +msgstr "" + +#: gnu/packages/perl.scm:7729 +msgid "This Perl module provides Unicode normalization forms." +msgstr "" + +#: gnu/packages/perl.scm:7748 +msgid "Unicode collation algorithm" +msgstr "" + +#: gnu/packages/perl.scm:7749 +#, fuzzy +#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems." +msgid "" +"This package provides tools for sorting and comparing\n" +"Unicode data." +msgstr "Ce paquet fournit des outils pour manipuler les systèmes de fichiers ext2/ext3/ext4" + +#: gnu/packages/perl.scm:7770 +msgid "Unicode line breaking algorithm" +msgstr "" + +#: gnu/packages/perl.scm:7772 +msgid "" +"@code{Unicode::LineBreak} implements the line breaking algorithm\n" +"described in Unicode Standard Annex #14. The @code{East_Asian_Width} property\n" +"defined by Annex #11 is used to determine breaking positions." +msgstr "" + +#: gnu/packages/perl.scm:7795 +msgid "Encoding and decoding of UTF-8 encoding form" +msgstr "" + +#: gnu/packages/perl.scm:7797 +msgid "" +"This module provides functions to encode and decode UTF-8 encoding form\n" +"as specified by Unicode and ISO/IEC 10646:2011." +msgstr "" + +#: gnu/packages/perl.scm:7815 +msgid "UNIVERSAL::can() reimplementation" +msgstr "" + +#: gnu/packages/perl.scm:7816 +msgid "" +"This module attempts to work around people calling\n" +"UNIVERSAL::can() as a function, which it is not." +msgstr "" + +#: gnu/packages/perl.scm:7836 +msgid "UNIVERSAL::isa() reimplementation" +msgstr "" + +#: gnu/packages/perl.scm:7837 +msgid "" +"This module attempts to recover from people calling\n" +"UNIVERSAL::isa as a function." +msgstr "" + +#: gnu/packages/perl.scm:7855 +msgid "Associate user-defined magic to variables from Perl" +msgstr "" + +#: gnu/packages/perl.scm:7856 +msgid "" +"Magic is Perl's way of enhancing variables. This mechanism\n" +"lets the user add extra data to any variable and hook syntactical\n" +"operations (such as access, assignment or destruction) that can be applied to\n" +"it. With this module, you can add your own magic to any variable without\n" +"having to write a single line of XS." +msgstr "" + +#: gnu/packages/perl.scm:7879 +msgid "Easily generate well-formed, namespace-aware XML" +msgstr "" + +#: gnu/packages/perl.scm:7880 +msgid "" +"@code{XML::Writer} is a simple Perl module for writing XML\n" +"documents: it takes care of constructing markup and escaping data correctly.\n" +"By default, it also performs a significant amount of well-formedness checking\n" +"on the output to make certain (for example) that start and end tags match,\n" +"that there is exactly one document element, and that there are not duplicate\n" +"attribute names." +msgstr "" + +#: gnu/packages/perl.scm:7906 +msgid "Opaque, extensible XS pointer backed objects using sv_magic" +msgstr "" + +#: gnu/packages/perl.scm:7908 +msgid "" +"This way of associating structs with Perl space objects is designed to\n" +"supersede Perl's builtin @code{T_PTROBJ} with something that is extensible\n" +"(structs can be associated with any data type) and opaque (the C pointer is\n" +"neither visible nor modifiable from Perl space)." +msgstr "" + +#: gnu/packages/perl.scm:7930 +msgid "YAML for Perl" +msgstr "" + +#: gnu/packages/perl.scm:7931 +msgid "" +"The YAML.pm module implements a YAML Loader and Dumper based\n" +"on the YAML 1.0 specification." +msgstr "" + +#: gnu/packages/perl.scm:7954 +msgid "Read/Write YAML files" +msgstr "" + +#: gnu/packages/perl.scm:7955 +msgid "" +"YAML::Tiny is a perl class for reading and writing\n" +"YAML-style files, written with as little code as possible, reducing load time\n" +"and memory overhead." +msgstr "" + +#: gnu/packages/perl.scm:7976 +msgid "Generate and use LALR parsers" +msgstr "" + +#: gnu/packages/perl.scm:7977 +msgid "" +"This package compiles yacc-like @dfn{Look Ahead LR} (LALR)\n" +"grammars to generate Perl object oriented parser modules." +msgstr "" + +#: gnu/packages/perl.scm:8003 +msgid "Distribution metadata for a CPAN dist" +msgstr "" + +#: gnu/packages/perl.scm:8004 +msgid "" +"Software distributions released to the CPAN include a\n" +"META.json or, for older distributions, META.yml, which describes the\n" +"distribution, its contents, and the requirements for building and installing\n" +"the distribution. The data structure stored in the META.json file is\n" +"described in CPAN::Meta::Spec. CPAN::Meta provides a simple class to\n" +"represent this distribution metadata (or distmeta), along with some helpful\n" +"methods for interrogating that data." +msgstr "" + +#: gnu/packages/perl.scm:8027 +msgid "Set of version requirements for a CPAN dist" +msgstr "" + +#: gnu/packages/perl.scm:8028 +msgid "" +"A CPAN::Meta::Requirements object models a set of version\n" +"constraints like those specified in the META.yml or META.json files in CPAN\n" +"distributions, and as defined by CPAN::Meta::Spec. It can be built up by\n" +"adding more and more constraints, and will reduce them to the simplest\n" +"representation." +msgstr "" + +#: gnu/packages/perl.scm:8051 +msgid "Read and write a subset of YAML for CPAN Meta files" +msgstr "" + +#: gnu/packages/perl.scm:8052 +msgid "" +"This module implements a subset of the YAML specification\n" +"for use in reading and writing CPAN metadata files like META.yml and\n" +"MYMETA.yml." +msgstr "" + +#: gnu/packages/perl.scm:8073 +msgid "Build and install Perl modules" +msgstr "" + +#: gnu/packages/perl.scm:8074 +msgid "" +"@code{Module::Build} is a system for building, testing, and\n" +"installing Perl modules; it used to be part of Perl itself until version 5.22,\n" +"which dropped it. It is meant to be an alternative to\n" +"@code{ExtUtils::MakeMaker}. Developers may alter the behavior of the module\n" +"through subclassing in a much more straightforward way than with\n" +"@code{MakeMaker}. It also does not require a @command{make} on your\n" +"system---most of the @code{Module::Build} code is pure-Perl." +msgstr "" + +#: gnu/packages/perl.scm:8100 +msgid "Parse META.yml and META.json CPAN metadata files" +msgstr "" + +#: gnu/packages/perl.scm:8101 +msgid "" +"Parse::CPAN::Meta is a parser for META.json and META.yml\n" +"files, using JSON::PP and/or CPAN::Meta::YAML." +msgstr "" + +#: gnu/packages/perl.scm:8119 +msgid "Common Scalar and List utility subroutines" +msgstr "" + +#: gnu/packages/perl.scm:8120 +msgid "" +"This package contains a selection of subroutines that people\n" +"have expressed would be nice to have in the perl core, but the usage would not\n" +"really be high enough to warrant the use of a keyword, and the size so small\n" +"such that being individual extensions would be wasteful." +msgstr "" + +#: gnu/packages/perl.scm:8144 +msgid "Cross-platform functions emulating common shell commands" +msgstr "" + +#: gnu/packages/perl.scm:8146 +msgid "Shell::Command is a thin wrapper around ExtUtils::Command." +msgstr "" + +#: gnu/packages/perl.scm:8173 +msgid "Object-oriented File::Find replacement in Perl" +msgstr "" + +#: gnu/packages/perl.scm:8174 +msgid "" +"File::Find::Object is an object-oriented\n" +"File::Find replacement in Perl." +msgstr "" + +#: gnu/packages/perl.scm:8203 +msgid "Alternative interface to File::Find::Object" +msgstr "" + +#: gnu/packages/perl.scm:8204 +msgid "" +"File::Find::Object::Rule is an alternative Perl\n" +"interface to File::Find::Object." +msgstr "" + +#: gnu/packages/perl.scm:8234 +msgid "Test for trailing space in Perl source files" +msgstr "" + +#: gnu/packages/perl.scm:8235 +msgid "" +"Test::TrailingSpace tests for trailing spaces\n" +"in Perl source files." +msgstr "" + +#: gnu/packages/photo.scm:72 +msgid "Raw image decoder" +msgstr "" + +#: gnu/packages/photo.scm:74 +msgid "" +"LibRaw is a library for reading RAW files obtained from digital photo\n" +"cameras (CRW/CR2, NEF, RAF, DNG, and others)." +msgstr "" + +#: gnu/packages/photo.scm:91 +msgid "Read and manipulate EXIF data in digital photographs" +msgstr "" + +#: gnu/packages/photo.scm:93 +msgid "" +"The libexif C library allows applications to read, edit, and save EXIF\n" +"data as produced by digital cameras." +msgstr "" + +#: gnu/packages/photo.scm:119 +msgid "Accessing digital cameras" +msgstr "" + +#: gnu/packages/photo.scm:121 +msgid "" +"This is the library backend for gphoto2. It contains the code for PTP,\n" +"MTP, and other vendor specific protocols for controlling and transferring data\n" +"from digital cameras." +msgstr "" + +#: gnu/packages/photo.scm:162 +msgid "Command-line tools to access digital cameras" +msgstr "" + +#: gnu/packages/photo.scm:164 +msgid "" +"Gphoto2 is a set of command line utilities for manipulating a large\n" +"number of different digital cameras. Through libgphoto2, it supports PTP,\n" +"MTP, and much more." +msgstr "" + +#: gnu/packages/photo.scm:197 +msgid "Program and Perl library to manipulate EXIF and other metadata" +msgstr "" + +#: gnu/packages/photo.scm:198 +msgid "" +"This package provides the @code{exiftool} command and the\n" +"@code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images\n" +"and a wide variety of other metadata." +msgstr "" + +#: gnu/packages/photo.scm:222 +#, fuzzy +#| msgid "Library for accessing zip files" +msgid "Library for panoramic images" +msgstr "Bibliothèque de manipulation des fichiers zip" + +#: gnu/packages/photo.scm:224 +msgid "" +"The libpano13 package contains the backend library written by the\n" +"Panorama Tools project for building panoramic images from a set of\n" +"overlapping images, as well as some command line tools." +msgstr "" + +#: gnu/packages/photo.scm:268 +#, fuzzy +#| msgid "Tools for loading and managing Linux kernel modules" +msgid "Tools for combining and blending images" +msgstr "Outils de chargement et de gestion de modules noyau pour Linux" + +#: gnu/packages/photo.scm:270 +msgid "" +"Enblend blends away the seams in a panoramic image mosaic using a\n" +"multi-resolution spline. Enfuse merges different exposures of the same\n" +"scene to produce an image that looks much like a tone-mapped image." +msgstr "" + +#: gnu/packages/photo.scm:294 +msgid "Library to correct optical lens defects with a lens database" +msgstr "" + +#: gnu/packages/photo.scm:295 +msgid "" +"Digital photographs are not ideal. Of course, the better is\n" +"your camera, the better the results will be, but in any case if you look\n" +"carefully at shots taken even by the most expensive cameras equipped with the\n" +"most expensive lenses you will see various artifacts. It is very hard to make\n" +"ideal cameras, because there are a lot of factors that affect the final image\n" +"quality, and at some point camera and lens designers have to trade one factor\n" +"for another to achieve the optimal image quality, within the given design\n" +"restrictions and budget. But we all want ideal shots, don't we? So that's\n" +"what's Lensfun is all about: rectifying the defects introduced by your\n" +"photographic equipment." +msgstr "" + +#: gnu/packages/photo.scm:371 +msgid "Virtual lighttable and darkroom for photographers" +msgstr "" + +#: gnu/packages/photo.scm:372 +msgid "" +"Darktable is a photography workflow application and RAW\n" +"developer. It manages your digital negatives in a database, lets you view\n" +"them through a zoomable lighttable and enables you to develop raw images\n" +"and enhance them." +msgstr "" + +#: gnu/packages/qemu.scm:161 +msgid "Machine emulator and virtualizer" +msgstr "" + +#: gnu/packages/qemu.scm:163 +msgid "" +"QEMU is a generic machine emulator and virtualizer.\n" +"\n" +"When used as a machine emulator, QEMU can run OSes and programs made for one\n" +"machine (e.g. an ARM board) on a different machine---e.g., your own PC. By\n" +"using dynamic translation, it achieves very good performance.\n" +"\n" +"When used as a virtualizer, QEMU achieves near native performances by\n" +"executing the guest code directly on the host CPU. QEMU supports\n" +"virtualization when executing under the Xen hypervisor or using\n" +"the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86,\n" +"server and embedded PowerPC, and S390 guests." +msgstr "" + +#: gnu/packages/qemu.scm:185 +msgid "Machine emulator and virtualizer (without GUI)" +msgstr "" + +#: gnu/packages/qemu.scm:251 +msgid "Operating system information database" +msgstr "" + +#: gnu/packages/qemu.scm:252 +msgid "" +"libosinfo is a GObject based library API for managing\n" +"information about operating systems, hypervisors and the (virtual) hardware\n" +"devices they can support. It includes a database containing device metadata\n" +"and provides APIs to match/identify optimal devices for deploying an operating\n" +"system on a hypervisor. Via GObject Introspection, the API is available in\n" +"all common programming languages. Vala bindings are also provided." +msgstr "" + +#: gnu/packages/qemu.scm:326 +msgid "Simple API for virtualization" +msgstr "" + +#: gnu/packages/qemu.scm:327 +msgid "" +"Libvirt is a C toolkit to interact with the virtualization\n" +"capabilities of recent versions of Linux. The library aims at providing long\n" +"term stable C API initially for the Xen paravirtualization but should be able\n" +"to integrate other virtualization mechanisms if needed." +msgstr "" + +#: gnu/packages/qemu.scm:368 +msgid "GLib wrapper around libvirt" +msgstr "" + +#: gnu/packages/qemu.scm:369 +msgid "" +"libvirt-glib wraps the libvirt library to provide a\n" +"high-level object-oriented API better suited for glib-based applications, via\n" +"three libraries:\n" +"\n" +"@enumerate\n" +"@item libvirt-glib - GLib main loop integration & misc helper APIs\n" +"@item libvirt-gconfig - GObjects for manipulating libvirt XML documents\n" +"@item libvirt-gobject - GObjects for managing libvirt objects\n" +"@end enumerate\n" +msgstr "" + +#: gnu/packages/qemu.scm:411 +msgid "Python bindings to libvirt" +msgstr "" + +#: gnu/packages/qemu.scm:412 +msgid "" +"This package provides Python bindings to the libvirt\n" +"virtualization library." +msgstr "" + +#: gnu/packages/qemu.scm:488 +#, fuzzy +#| msgid "Managing tar archives" +msgid "Manage virtual machines" +msgstr "Gestion d'archives tar" + +#: gnu/packages/qemu.scm:490 +msgid "" +"The virt-manager application is a desktop user interface for managing\n" +"virtual machines through libvirt. It primarily targets KVM VMs, but also\n" +"manages Xen and LXC (Linux containers). It presents a summary view of running\n" +"domains, their live performance and resource utilization statistics." +msgstr "" + +#: gnu/packages/ratpoison.scm:86 msgid "Simple mouse-free tiling window manager" msgstr "" -#: gnu/packages/ratpoison.scm:62 +#: gnu/packages/ratpoison.scm:88 msgid "" "Ratpoison is a simple window manager with no fat library\n" "dependencies, no fancy graphics, no window decorations, and no\n" @@ -1356,11 +13504,49 @@ msgid "" "cripples Emacs and other quality pieces of software." msgstr "" -#: gnu/packages/scanner.scm:52 -msgid "Raster image scanner library and drivers" +#: gnu/packages/readline.scm:82 +msgid "Edit command lines while typing, with history support" +msgstr "" + +#: gnu/packages/readline.scm:84 +msgid "" +"The GNU readline library allows users to edit command lines as they\n" +"are typed in. It can maintain a searchable history of previously entered\n" +"commands, letting you easily recall, edit and re-enter past commands. It\n" +"features both Emacs-like and vi-like keybindings, making its usage\n" +"comfortable for anyone." +msgstr "" + +#: gnu/packages/readline.scm:121 +msgid "Wrapper to allow the editing of keyboard commands" msgstr "" -#: gnu/packages/scanner.scm:53 +#: gnu/packages/readline.scm:123 +msgid "" +"Rlwrap is a 'readline wrapper', a small utility that uses the GNU\n" +"readline library to allow the editing of keyboard input for any command. You\n" +"should consider rlwrap especially when you need user-defined completion (by way\n" +"of completion word lists) and persistent history, or if you want to program\n" +"'special effects' using the filter mechanism." +msgstr "" + +#: gnu/packages/scanner.scm:84 +msgid "Raster image scanner library and drivers, without scanner support" +msgstr "" + +#: gnu/packages/scanner.scm:85 +msgid "" +"SANE stands for \"Scanner Access Now Easy\" and is an API\n" +"proving access to any raster image scanner hardware (flatbed scanner,\n" +"hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The\n" +"package contains the library, but no drivers." +msgstr "" + +#: gnu/packages/scanner.scm:123 +msgid "Raster image scanner library and drivers, with scanner support" +msgstr "" + +#: gnu/packages/scanner.scm:124 msgid "" "SANE stands for \"Scanner Access Now Easy\" and is an API\n" "proving access to any raster image scanner hardware (flatbed scanner,\n" @@ -1368,11 +13554,11 @@ msgid "" "package contains the library and drivers." msgstr "" -#: gnu/packages/scheme.scm:126 +#: gnu/packages/scheme.scm:187 msgid "A Scheme implementation with integrated editor and debugger" msgstr "Une implantation de Scheme avec éditeur et débogueur intégrés" -#: gnu/packages/scheme.scm:128 +#: gnu/packages/scheme.scm:189 msgid "" "GNU/MIT Scheme is an implementation of the Scheme programming\n" "language. It provides an interpreter, a compiler and a debugger. It also\n" @@ -1382,11 +13568,11 @@ msgstr "" "Il fournit un interpréteur, un compilateur et un débogueur. Il intègre\n" "également un éditeur sur le modèle d'Emacs et une librairie d'exécution complète." -#: gnu/packages/scheme.scm:208 +#: gnu/packages/scheme.scm:273 msgid "Efficient Scheme compiler" msgstr "Compilateur Scheme efficace" -#: gnu/packages/scheme.scm:210 +#: gnu/packages/scheme.scm:275 msgid "" "Bigloo is a Scheme implementation devoted to one goal: enabling\n" "Scheme based programming style where C(++) is usually\n" @@ -1401,11 +13587,11 @@ msgstr "" "permettre un style de programmation basé sur Schema là où C(++)\n" "est généralement requis. Bigloo " -#: gnu/packages/scheme.scm:281 +#: gnu/packages/scheme.scm:317 msgid "Multi-tier programming language for the Web 2.0" msgstr "" -#: gnu/packages/scheme.scm:283 +#: gnu/packages/scheme.scm:319 msgid "" "HOP is a multi-tier programming language for the Web 2.0 and the\n" "so-called diffuse Web. It is designed for programming interactive web\n" @@ -1414,11 +13600,11 @@ msgid "" "mashups, office (web agendas, mail clients, ...), etc." msgstr "" -#: gnu/packages/scheme.scm:323 +#: gnu/packages/scheme.scm:362 msgid "R5RS Scheme implementation that compiles native code via C" msgstr "" -#: gnu/packages/scheme.scm:325 +#: gnu/packages/scheme.scm:364 msgid "" "CHICKEN is a compiler for the Scheme programming language. CHICKEN\n" "produces portable and efficient C, supports almost all of the R5RS Scheme\n" @@ -1428,11 +13614,11 @@ msgstr "" "produit du C portable et efficace, supporte l'essentiel du standard R5RS et\n" "incult de nombreuses améliorations et extensions." -#: gnu/packages/scheme.scm:344 +#: gnu/packages/scheme.scm:383 msgid "Scheme implementation using a bytecode interpreter" msgstr "Implantation de Scheme utilisanat un interpréteur pour bytecode" -#: gnu/packages/scheme.scm:346 +#: gnu/packages/scheme.scm:385 msgid "" "Scheme 48 is an implementation of Scheme based on a byte-code\n" "interpreter and is designed to be used as a testbed for experiments in\n" @@ -1442,11 +13628,11 @@ msgstr "" "destinée à être utilisée comme un banc d'essai pour des expérimentations\n" "portant sur des techniques d'implantation et comme un outil d'exposition." -#: gnu/packages/scheme.scm:419 +#: gnu/packages/scheme.scm:498 msgid "Implementation of Scheme and related languages" msgstr "Implantation de Scheme et d'autres langages associés" -#: gnu/packages/scheme.scm:421 +#: gnu/packages/scheme.scm:500 msgid "" "Racket is an implementation of the Scheme programming language (R5RS and\n" "R6RS) and related languages, such as Typed Racket. It features a compiler and\n" @@ -1458,16 +13644,2771 @@ msgstr "" "une machine virtuelle avec compilation à la volée ainsi qu'un ensemble de\n" "bibliothèques." -#: gnu/packages/wordnet.scm:79 +#: gnu/packages/scheme.scm:538 +#, fuzzy +#| msgid "Efficient Scheme compiler" +msgid "Efficient Scheme interpreter and compiler" +msgstr "Compilateur Scheme efficace" + +#: gnu/packages/scheme.scm:540 +msgid "" +"Gambit consists of two main programs: gsi, the Gambit Scheme\n" +"interpreter, and gsc, the Gambit Scheme compiler. The interpreter contains\n" +"the complete execution and debugging environment. The compiler is the\n" +"interpreter extended with the capability of generating executable files. The\n" +"compiler can produce standalone executables or compiled modules which can be\n" +"loaded at run time. Interpreted code and compiled code can be freely\n" +"mixed." +msgstr "" + +#: gnu/packages/scheme.scm:574 +msgid "Small embeddable Scheme implementation" +msgstr "" + +#: gnu/packages/scheme.scm:576 +msgid "" +"Chibi-Scheme is a very small library with no external dependencies\n" +"intended for use as an extension and scripting language in C programs. In\n" +"addition to support for lightweight VM-based threads, each VM itself runs in\n" +"an isolated heap allowing multiple VMs to run simultaneously in different OS\n" +"threads." +msgstr "" + +#: gnu/packages/scheme.scm:746 +msgid "Scmutils library for MIT Scheme" +msgstr "" + +#: gnu/packages/scheme.scm:747 +msgid "" +"The Scmutils system is an integrated library of\n" +"procedures, embedded in the programming language Scheme, and intended to\n" +"support teaching and research in mathematical physics and electrical\n" +"engineering." +msgstr "" + +#: gnu/packages/scheme.scm:795 +msgid "Structure and Interpretation of Computer Programs" +msgstr "" + +#: gnu/packages/scheme.scm:796 +msgid "" +"Structure and Interpretation of Computer Programs (SICP) is\n" +"a textbook aiming to teach the principles of computer programming.\n" +"\n" +"Using Scheme, a dialect of the Lisp programming language, the book explains\n" +"core computer science concepts such as abstraction in programming,\n" +"metalinguistic abstraction, recursion, interpreters, and modular programming." +msgstr "" + +#: gnu/packages/scheme.scm:837 +msgid "SRE String pattern-matching library for scheme48" +msgstr "" + +#: gnu/packages/scheme.scm:839 +msgid "" +"String pattern-matching library for scheme48 based on the SRE\n" +"regular-expression notation." +msgstr "" + +#: gnu/packages/scheme.scm:871 +msgid "Compatibility and utility library for Scheme" +msgstr "" + +#: gnu/packages/scheme.scm:872 +msgid "" +"SLIB is a portable Scheme library providing compatibility and\n" +"utility functions for all standard Scheme implementations." +msgstr "" + +#: gnu/packages/scheme.scm:933 +msgid "Scheme implementation conforming to R5RS and IEEE P1178" +msgstr "" + +#: gnu/packages/scheme.scm:934 +msgid "" +"GNU SCM is an implementation of Scheme. This\n" +"implementation includes Hobbit, a Scheme-to-C compiler, which can\n" +"generate C files whose binaries can be dynamically or statically\n" +"linked with a SCM executable." +msgstr "" + +#: gnu/packages/search.scm:64 +msgid "Search Engine Library" +msgstr "" + +#: gnu/packages/search.scm:66 +msgid "" +"Xapian is a highly adaptable toolkit which allows developers to easily\n" +"add advanced indexing and search facilities to their own applications. It\n" +"supports the Probabilistic Information Retrieval model and also supports a\n" +"rich set of boolean query operators." +msgstr "" + +#: gnu/packages/search.scm:109 +msgid "Tool for Obsessive Compulsive Classifiers" +msgstr "" + +#: gnu/packages/search.scm:111 +msgid "" +"libtocc is the engine of the Tocc project, a tag-based file management\n" +"system. The goal of Tocc is to provide a better system for classifying files\n" +"that is more flexible than classic file systems that are based on a tree of\n" +"files and directories." +msgstr "" + +#: gnu/packages/search.scm:133 +msgid "Command-line interface to libtocc" +msgstr "" + +#: gnu/packages/search.scm:135 +msgid "" +"Tocc is a tag-based file management system. This package contains the\n" +"command line tool for interacting with libtocc." +msgstr "" + +#: gnu/packages/search.scm:153 +msgid "Finding text and HTML files that match boolean expressions" +msgstr "" + +#: gnu/packages/search.scm:155 +msgid "" +"GNU Bool is a utility to perform text searches on files using Boolean\n" +"expressions. For example, a search for \"hello AND world\" would return a\n" +"file containing the phrase \"Hello, world!\". It supports both AND and OR\n" +"statements, as well as the NEAR statement to search for the occurrence of\n" +"words in close proximity to each other. It handles context gracefully,\n" +"accounting for new lines and paragraph changes. It also has robust support\n" +"for parsing HTML files." +msgstr "" + +#: gnu/packages/search.scm:185 +msgid "Full-text search system" +msgstr "" + +#: gnu/packages/search.scm:186 +msgid "" +"Hyper Estraier can be used to integrate full-text\n" +"search into applications, using either the provided command line and CGI\n" +"interfaces, or a C API." +msgstr "" + +#: gnu/packages/search.scm:204 +msgid "Locate files on the file system" +msgstr "" + +#: gnu/packages/search.scm:206 +msgid "" +"mlocate is a locate/updatedb implementation. The 'm' stands for\n" +"\"merging\": @code{updatedb} reuses the existing database to avoid rereading\n" +"most of the file system, which makes it faster and does not trash the system\n" +"caches as much. The locate(1) utility is intended to be completely compatible\n" +"with slocate, and attempts to be compatible to GNU locate when it does not\n" +"conflict with slocate compatibility." +msgstr "" + +#: gnu/packages/search.scm:269 +msgid "Web indexing system" +msgstr "" + +#: gnu/packages/search.scm:271 +msgid "" +"Swish-e is Simple Web Indexing System for Humans - Enhanced. Swish-e\n" +"can quickly and easily index directories of files or remote web sites and\n" +"search the generated indexes." +msgstr "" + +#: gnu/packages/serveez.scm:51 +msgid "Framework for implementing IP-based servers" +msgstr "" + +#: gnu/packages/serveez.scm:53 +msgid "" +"GNU Serveez is a server framework providing the routines necessary to\n" +"easily implement IP-based servers in your application. It\n" +"demonstrates aspects of network programming in a portable manner,\n" +"making it convenient for both simplifying the process of adding a\n" +"server to your application or for learning about how network services\n" +"work. Several example servers are provided already, such as an HTTP\n" +"server and an IRC server." +msgstr "" + +#: gnu/packages/shells.scm:89 +msgid "POSIX-compliant shell optimised for size" +msgstr "" + +#: gnu/packages/shells.scm:91 +msgid "" +"dash is a POSIX-compliant @command{/bin/sh} implementation that aims to be\n" +"as small as possible, often without sacrificing speed. It is faster than the\n" +"GNU Bourne-Again Shell (@command{bash}) at most scripted tasks. dash is a\n" +"direct descendant of NetBSD's Almquist Shell (@command{ash})." +msgstr "" + +#: gnu/packages/shells.scm:141 +msgid "The friendly interactive shell" +msgstr "" + +#: gnu/packages/shells.scm:143 +msgid "" +"Fish (friendly interactive shell) is a shell focused on interactive use,\n" +"discoverability, and friendliness. Fish has very user-friendly and powerful\n" +"tab-completion, including descriptions of every completion, completion of\n" +"strings with wildcards, and many completions for specific commands. It also\n" +"has extensive and discoverable help. A special help command gives access to\n" +"all the fish documentation in your web browser. Other features include smart\n" +"terminal handling based on terminfo, an easy to search history, and syntax\n" +"highlighting." +msgstr "" + +#: gnu/packages/shells.scm:175 +msgid "Fish completions for Guix" +msgstr "" + +#: gnu/packages/shells.scm:177 +msgid "Fish-guix provides completions for Guix for users of the fish shell." +msgstr "" + +#: gnu/packages/shells.scm:218 +msgid "Alternative implementation of the rc shell by Byron Rakitzis" +msgstr "" + +#: gnu/packages/shells.scm:220 +msgid "" +"This is a reimplementation by Byron Rakitzis of the Plan 9 shell. It\n" +"has a small feature set similar to a traditional Bourne shell." +msgstr "" + +#: gnu/packages/shells.scm:251 +msgid "Extensible shell with higher-order functions" +msgstr "" + +#: gnu/packages/shells.scm:253 +msgid "" +"Es is an extensible shell. The language was derived from the Plan 9\n" +"shell, rc, and was influenced by functional programming languages, such as\n" +"Scheme, and the Tcl embeddable programming language. This implementation is\n" +"derived from Byron Rakitzis's public domain implementation of rc, and was\n" +"written by Paul Haahr and Byron Rakitzis." +msgstr "" + +#: gnu/packages/shells.scm:313 +msgid "Unix shell based on csh" +msgstr "" + +#: gnu/packages/shells.scm:315 +msgid "" +"Tcsh is an enhanced, but completely compatible version of the Berkeley\n" +"UNIX C shell (csh). It is a command language interpreter usable both as an\n" +"interactive login shell and a shell script command processor. It includes a\n" +"command-line editor, programmable word completion, spelling correction, a\n" +"history mechanism, job control and a C-like syntax." +msgstr "" + +#: gnu/packages/shells.scm:364 +msgid "Powerful shell for interactive use and scripting" +msgstr "Shell puissant pour un usage interactif et l'écriture de scripts" + +#: gnu/packages/shells.scm:365 +msgid "" +"The Z shell (zsh) is a Unix shell that can be used\n" +"as an interactive login shell and as a powerful command interpreter\n" +"for shell scripting. Zsh can be thought of as an extended Bourne shell\n" +"with a large number of improvements, including some features of bash,\n" +"ksh, and tcsh." +msgstr "" +"Le Z shell (zsh) est un shell Unix pouvant être utilisé comme un shell\n" +"interactif de connexion et un puissant interpréteur de commande pour l'écriture de scripts\n" +"shell. Zsh peut être vu comme un Bourn shell étendu doté de nombreuses améliorations\n" +"et incluant certaines fonctionnalités de bash, ksh et tcsh." + +#: gnu/packages/shells.scm:404 +msgid "Python-ish shell" +msgstr "" + +#: gnu/packages/shells.scm:406 +msgid "" +"Xonsh is a Python-ish, BASHwards-looking shell language and command\n" +"prompt. The language is a superset of Python 3.4+ with additional shell\n" +"primitives that you are used to from Bash and IPython. It works on all major\n" +"systems including Linux, Mac OSX, and Windows. Xonsh is meant for the daily\n" +"use of experts and novices alike." +msgstr "" + +#: gnu/packages/shells.scm:453 +msgid "Unix shell embedded in Scheme" +msgstr "" + +#: gnu/packages/shells.scm:455 +msgid "" +"Scsh is a Unix shell embedded in Scheme. Scsh has two main\n" +"components: a process notation for running programs and setting up pipelines\n" +"and redirections, and a complete syscall library for low-level access to the\n" +"operating system." +msgstr "" + +#: gnu/packages/telephony.scm:66 +msgid "(u)Common C++ framework for threaded applications" +msgstr "" + +#: gnu/packages/telephony.scm:67 +msgid "" +"GNU Common C++ is an portable, optimized class framework for\n" +"threaded applications, supporting concurrent synchronization, inter-process\n" +"communications via sockets, and various methods for data handling, such as\n" +"serialization and XML parsing. It includes the uCommon C++ library, a smaller\n" +"reimplementation." +msgstr "" + +#: gnu/packages/telephony.scm:87 +msgid "Common C++ framework for threaded applications" +msgstr "" + +#: gnu/packages/telephony.scm:88 +msgid "" +"GNU uCommon C++ is meant as a very light-weight C++ library\n" +"to facilitate using C++ design patterns even for very deeply embedded\n" +"applications, such as for systems using uclibc along with posix threading\n" +"support." +msgstr "" + +#: gnu/packages/telephony.scm:110 +msgid "Implementation of RTP (real-time transport protocol)" +msgstr "" + +#: gnu/packages/telephony.scm:111 +msgid "" +"GNU ccRTP is an implementation of RTP, the real-time transport\n" +"protocol from the IETF. It is suitable both for high capacity servers and\n" +"personal client applications. It is flexible in its design, allowing it to\n" +"function as a framework for the framework, rather than just being a\n" +"packet-manipulation library." +msgstr "" + +#: gnu/packages/telephony.scm:131 +msgid "Library implementing SIP (RFC-3261)" +msgstr "" + +#: gnu/packages/telephony.scm:132 +msgid "" +"GNU oSIP is an implementation of the SIP protocol. It is\n" +"used to provide multimedia and telecom software developers with an interface\n" +"to initiate and control SIP sessions." +msgstr "" + +#: gnu/packages/telephony.scm:151 +#, fuzzy +#| msgid "Data source abstraction library" +msgid "Sip abstraction library" +msgstr "Bibliothèque d'abstraction de source de données" + +#: gnu/packages/telephony.scm:152 +msgid "" +"EXosip is a library that hides the complexity of using the\n" +"SIP protocol for multimedia session establishment. This protocol is mainly to\n" +"be used by VoIP telephony applications (endpoints or conference server) but\n" +"might be also useful for any application that wish to establish sessions like\n" +"multiplayer games." +msgstr "" + +#: gnu/packages/telephony.scm:195 +msgid "Secure peer-to-peer VoIP server for the SIP protocol" +msgstr "" + +#: gnu/packages/telephony.scm:196 +msgid "" +"GNU SIP Witch is a peer-to-peer Voice-over-IP server that\n" +"uses the SIP protocol. Calls can be made from behind NAT firewalls and\n" +"without the need for a service provider. Its peer-to-peer design ensures that\n" +"there is no central point for media intercept or capture and thus it can be\n" +"used to construct a secure telephone system that operates over the public\n" +"internet." +msgstr "" + +#: gnu/packages/telephony.scm:241 +msgid "Secure RTP (SRTP) Reference Implementation" +msgstr "" + +#: gnu/packages/telephony.scm:242 +msgid "" +"This package provides an implementation of the Secure\n" +"Real-time Transport Protocol (SRTP), the Universal Security Transform (UST),\n" +"and a supporting cryptographic kernel." +msgstr "" + +#: gnu/packages/telephony.scm:277 +#, fuzzy +#| msgid "NetLink protocol library suite" +msgid "Inter-Asterisk-Protocol library" +msgstr "Bibliothèqye pour le protocole NetLink" + +#: gnu/packages/telephony.scm:278 +msgid "" +"LibIAX2 implements the Inter-Asterisk-Protocol for relaying\n" +"Voice-over-IP (VoIP) communications." +msgstr "" + +#: gnu/packages/telephony.scm:309 +msgid "Simple VoIP program to create conferences from the terminal" +msgstr "" + +#: gnu/packages/telephony.scm:311 +msgid "" +"Seren is a simple VoIP program based on the Opus codec that allows you\n" +"to create a voice conference from the terminal, with up to 10 participants,\n" +"without having to register accounts, exchange emails, or add people to contact\n" +"lists. All you need to join an existing conference is the host name or IP\n" +"address of one of the participants." +msgstr "" + +#: gnu/packages/telephony.scm:423 +msgid "Low-latency, high quality voice chat software" +msgstr "" + +#: gnu/packages/telephony.scm:425 +msgid "" +"Mumble is an low-latency, high quality voice chat\n" +"software primarily intended for use while gaming.\n" +"Mumble consists of two applications for separate usage:\n" +"@code{mumble} for the client, and @code{murmur} for the server." +msgstr "" + +#: gnu/packages/tex.scm:171 gnu/packages/tex.scm:243 gnu/packages/tex.scm:305 +msgid "TeX Live, a package of the TeX typesetting system" +msgstr "" + +#: gnu/packages/tex.scm:173 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains the binaries." +msgstr "" + +#: gnu/packages/tex.scm:245 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains the complete tree of texmf-dist data." +msgstr "" + +#: gnu/packages/tex.scm:307 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains the complete TeX Live distribution." +msgstr "" + +#: gnu/packages/tex.scm:362 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains a small subset of the texmf-dist data." +msgstr "" + +#: gnu/packages/tex.scm:384 +msgid "" +"TeX Live provides a comprehensive TeX document production system.\n" +"It includes all the major TeX-related programs, macro packages, and fonts\n" +"that are free software, including support for many languages around the\n" +"world.\n" +"\n" +"This package contains a small working part of the TeX Live distribution." +msgstr "" + +#: gnu/packages/tex.scm:425 +msgid "Interface to read and parse BibTeX files" +msgstr "" + +#: gnu/packages/tex.scm:426 +msgid "" +"@code{Text::BibTeX} is a Perl library for reading, parsing,\n" +"and processing BibTeX files. @code{Text::BibTeX} gives you access to the data\n" +"at many different levels: you may work with BibTeX entries as simple field to\n" +"string mappings, or get at the original form of the data as a list of simple\n" +"values (strings, macros, or numbers) pasted together." +msgstr "" + +#: gnu/packages/tex.scm:508 +msgid "Backend for the BibLaTeX citation management tool" +msgstr "" + +#: gnu/packages/tex.scm:509 +msgid "" +"Biber is a BibTeX replacement for users of biblatex. Among\n" +"other things it comes with full Unicode support." +msgstr "" + +#: gnu/packages/tex.scm:560 +msgid "Wrapper for LaTeX and friends" +msgstr "" + +#: gnu/packages/tex.scm:562 +msgid "" +"Rubber is a program whose purpose is to handle all tasks related to the\n" +"compilation of LaTeX documents. This includes compiling the document itself,\n" +"of course, enough times so that all references are defined, and running BibTeX\n" +"to manage bibliographic references. Automatic execution of dvips to produce\n" +"PostScript documents is also included, as well as usage of pdfLaTeX to produce\n" +"PDF documents." +msgstr "" + +#: gnu/packages/tex.scm:604 +#, fuzzy +#| msgid "Stream editor" +msgid "LaTeX editor" +msgstr "Éditeur de flux" + +#: gnu/packages/tex.scm:605 +msgid "" +"Texmaker is a program that integrates many tools needed to\n" +"develop documents with LaTeX, in a single application." +msgstr "" + +#: gnu/packages/tex.scm:644 +msgid "Book on TeX, plain TeX and Eplain" +msgstr "" + +#: gnu/packages/tex.scm:645 +msgid "" +"@i{TeX for the Impatient} is a ~350 page book on TeX,\n" +"plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,\n" +"and Karl Berry." +msgstr "" + +#: gnu/packages/texinfo.scm:55 +#, fuzzy +#| msgid "Tools and documentation for translation" +msgid "The GNU documentation format" +msgstr "Outils et documentation pour la traduction" + +#: gnu/packages/texinfo.scm:57 +msgid "" +"Texinfo is the official documentation format of the GNU project. It\n" +"uses a single source file using explicit commands to produce a final document\n" +"in any of several supported output formats, such as HTML or PDF. This\n" +"package includes both the tools necessary to produce Info documents from\n" +"their source and the command-line Info reader. The emphasis of the language\n" +"is on expressing the content semantically, avoiding physical markup commands." +msgstr "" + +#: gnu/packages/texinfo.scm:125 +msgid "Standalone Info documentation reader" +msgstr "" + +#: gnu/packages/texinfo.scm:155 +msgid "Convert Texinfo to HTML" +msgstr "" + +#: gnu/packages/texinfo.scm:157 +msgid "" +"Texi2HTML is a Perl script which converts Texinfo source files to HTML\n" +"output. It now supports many advanced features, such as internationalization\n" +"and extremely configurable output formats.\n" +"\n" +"Development of Texi2HTML moved to the GNU Texinfo repository in 2010, since it\n" +"was meant to replace the makeinfo implementation in GNU Texinfo. The route\n" +"forward for authors is, in most cases, to alter manuals and build processes as\n" +"necessary to use the new features of the makeinfo/texi2any implementation of\n" +"GNU Texinfo. The Texi2HTML maintainers (one of whom is the principal author\n" +"of the GNU Texinfo implementation) do not intend to make further releases of\n" +"Texi2HTML." +msgstr "" + +#: gnu/packages/textutils.scm:76 +msgid "Text encoding converter" +msgstr "" + +#: gnu/packages/textutils.scm:77 +msgid "" +"The Recode library converts files between character sets and\n" +"usages. It recognises or produces over 200 different character sets (or about\n" +"300 if combined with an iconv library) and transliterates files between almost\n" +"any pair. When exact transliteration are not possible, it gets rid of\n" +"offending characters or falls back on approximations. The recode program is a\n" +"handy front-end to the library." +msgstr "" + +#: gnu/packages/textutils.scm:105 +msgid "Text encoding detection tool" +msgstr "" + +#: gnu/packages/textutils.scm:106 +msgid "" +"Enca (Extremely Naive Charset Analyser) consists of libenca,\n" +"an encoding detection library, and enca, a command line frontend, integrating\n" +"libenca and several charset conversion libraries and tools." +msgstr "" + +#: gnu/packages/textutils.scm:156 +msgid "C library for processing UTF-8 Unicode data" +msgstr "" + +#: gnu/packages/textutils.scm:157 +msgid "" +"utf8proc is a small C library that provides Unicode\n" +"normalization, case-folding, and other operations for data in the UTF-8\n" +"encoding, supporting Unicode version 9.0.0." +msgstr "" + +#: gnu/packages/textutils.scm:186 +msgid "Gordon's text utils library" +msgstr "" + +#: gnu/packages/textutils.scm:188 +msgid "" +"libgtextutils is a text utilities library used by the fastx toolkit from\n" +"the Hannon Lab." +msgstr "" + +#: gnu/packages/textutils.scm:220 +msgid "C++ hash functions for strings" +msgstr "" + +#: gnu/packages/textutils.scm:222 +msgid "" +"CityHash provides hash functions for strings. The functions mix the\n" +"input bits thoroughly but are not suitable for cryptography." +msgstr "" + +#: gnu/packages/textutils.scm:260 +msgid "String library with very low memory overhead" +msgstr "" + +#: gnu/packages/textutils.scm:262 +msgid "Ustr is a string library for C with very low memory overhead." +msgstr "" + +#: gnu/packages/textutils.scm:283 +msgid "C/C++ configuration file library" +msgstr "" + +#: gnu/packages/textutils.scm:285 +msgid "" +"Libconfig is a simple library for manipulating structured configuration\n" +"files. This file format is more compact and more readable than XML. And\n" +"unlike XML, it is type-aware, so it is not necessary to do string parsing in\n" +"application code." +msgstr "" + +#: gnu/packages/textutils.scm:305 +msgid "Probabilistic fast file fingerprinting tool" +msgstr "" + +#: gnu/packages/textutils.scm:307 +msgid "" +"pfff is a tool for calculating a compact digital fingerprint of a file\n" +"by sampling randomly from the file instead of reading it in full.\n" +"Consequently, the computation has a flat performance characteristic,\n" +"correlated with data variation rather than file size. pfff can be as reliable\n" +"as existing hashing techniques, with provably negligible risk of collisions." +msgstr "" + +#: gnu/packages/textutils.scm:328 +#, fuzzy +#| msgid "Multi-format archive and compression library" +msgid "Regular expression library" +msgstr "Bibliothèque de compression et d'archivage multi-format" + +#: gnu/packages/textutils.scm:329 +msgid "" +"Oniguruma is a regular expressions library. The special\n" +"characteristic of this library is that different character encoding for every\n" +"regular expression object can be specified." +msgstr "" + +#: gnu/packages/textutils.scm:362 +msgid "Microsoft Word document reader" +msgstr "" + +#: gnu/packages/textutils.scm:363 +msgid "" +"Antiword is an application for displaying Microsoft Word\n" +"documents. It can also convert the document to PostScript or XML. Only\n" +"documents made by MS Word version 2 and version 6 or later are supported. The\n" +"name comes from: \"The antidote against people who send Microsoft Word files\n" +"to everybody, because they believe that everybody runs Windows and therefore\n" +"runs Word\"." +msgstr "" + +#: gnu/packages/textutils.scm:405 +msgid "Portable C++ library for handling UTF-8" +msgstr "" + +#: gnu/packages/textutils.scm:406 +msgid "" +"UTF8-CPP is a C++ library for handling UTF-8 encoded text\n" +"in a portable way." +msgstr "" + +#: gnu/packages/textutils.scm:472 +msgid "Bayesian text and email classifier" +msgstr "" + +#: gnu/packages/textutils.scm:474 +msgid "" +"dbacl is a fast Bayesian text and email classifier. It builds a variety\n" +"of language models using maximum entropy (minimum divergence) principles, and\n" +"these can then be used to categorize input data automatically among multiple\n" +"categories." +msgstr "" + +#: gnu/packages/textutils.scm:516 +msgid "Configuration file parser library" +msgstr "" + +#: gnu/packages/textutils.scm:518 +msgid "C library for creating and parsing configuration files." +msgstr "" + +#: gnu/packages/version-control.scm:110 +msgid "Version control system supporting both distributed and centralized workflows" +msgstr "" + +#: gnu/packages/version-control.scm:112 +msgid "" +"GNU Bazaar is a version control system that allows you to record\n" +"changes to project files over time. It supports both a distributed workflow\n" +"as well as the classic centralized workflow." +msgstr "" + +#: gnu/packages/version-control.scm:306 +msgid "Distributed version control system" +msgstr "" + +#: gnu/packages/version-control.scm:308 +msgid "" +"Git is a free distributed version control system designed to handle\n" +"everything from small to very large projects with speed and efficiency." +msgstr "" + +#: gnu/packages/version-control.scm:377 +msgid "Library providing Git core methods" +msgstr "" + +#: gnu/packages/version-control.scm:379 +msgid "" +"Libgit2 is a portable, pure C implementation of the Git core methods\n" +"provided as a re-entrant linkable library with a solid API, allowing you to\n" +"write native speed custom Git applications in any language with bindings." +msgstr "" + +#: gnu/packages/version-control.scm:415 +msgid "Transparent encryption of files in a git repository" +msgstr "" + +#: gnu/packages/version-control.scm:416 +msgid "" +"git-crypt enables transparent encryption and decryption of\n" +"files in a git repository. Files which you choose to protect are encrypted when\n" +"committed, and decrypted when checked out. git-crypt lets you freely share a\n" +"repository containing a mix of public and private content. git-crypt gracefully\n" +"degrades, so developers without the secret key can still clone and commit to a\n" +"repository with encrypted files. This lets you store your secret material (such\n" +"as keys or passwords) in the same repository as your code, without requiring you\n" +"to lock down your entire repository." +msgstr "" + +#: gnu/packages/version-control.scm:477 +msgid "Web frontend for git repositories" +msgstr "" + +#: gnu/packages/version-control.scm:479 +msgid "" +"CGit is an attempt to create a fast web interface for the Git SCM, using\n" +"a built-in cache to decrease server I/O pressure." +msgstr "" + +#: gnu/packages/version-control.scm:516 +msgid "Command-line flags library for shell scripts" +msgstr "" + +#: gnu/packages/version-control.scm:518 +msgid "" +"Shell Flags (shFlags) is a library written to greatly simplify the\n" +"handling of command-line flags in Bourne based Unix shell scripts (bash, dash,\n" +"ksh, sh, zsh). Most shell scripts use getopt for flags processing, but the\n" +"different versions of getopt on various OSes make writing portable shell\n" +"scripts difficult. shFlags instead provides an API that doesn't change across\n" +"shell and OS versions so the script writer can be confident that the script\n" +"will work." +msgstr "" + +#: gnu/packages/version-control.scm:561 +msgid "Git extensions for Vincent Driessen's branching model" +msgstr "" + +#: gnu/packages/version-control.scm:563 +msgid "" +"Vincent Driessen's branching model is a git branching and release\n" +"management strategy that helps developers keep track of features, hotfixes,\n" +"and releases in bigger software projects. The git-flow library of git\n" +"subcommands helps automate some parts of the flow to make working with it a\n" +"lot easier." +msgstr "" + +#: gnu/packages/version-control.scm:598 +msgid "Run a command over a sequence of commits" +msgstr "" + +#: gnu/packages/version-control.scm:600 +msgid "" +"git-test-sequence is similar to an automated git bisect except it’s\n" +"linear. It will test every change between two points in the DAG. It will\n" +"also walk each side of a merge and test those changes individually." +msgstr "" + +#: gnu/packages/version-control.scm:661 +msgid "Git access control layer" +msgstr "" + +#: gnu/packages/version-control.scm:663 +msgid "" +"Gitolite is an access control layer on top of Git, providing fine access\n" +"control to Git repositories." +msgstr "" + +#: gnu/packages/version-control.scm:687 +msgid "Decentralized version control system" +msgstr "" + +#: gnu/packages/version-control.scm:689 +msgid "" +"Mercurial is a free, distributed source control management tool.\n" +"It efficiently handles projects of any size\n" +"and offers an easy and intuitive interface." +msgstr "" + +#: gnu/packages/version-control.scm:723 +msgid "HTTP and WebDAV client library" +msgstr "" + +#: gnu/packages/version-control.scm:725 +msgid "" +"Neon is an HTTP and WebDAV client library, with a C interface and the\n" +"following features:\n" +"@enumerate\n" +"@item High-level wrappers for common HTTP and WebDAV operations (GET, MOVE,\n" +" DELETE, etc.);\n" +"@item low-level interface to the HTTP request/response engine, allowing the use\n" +" of arbitrary HTTP methods, headers, etc.;\n" +"@item authentication support including Basic and Digest support, along with\n" +" GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on Win32;\n" +"@item SSL/TLS support using OpenSSL or GnuTLS, exposing an abstraction layer for\n" +" verifying server certificates, handling client certificates, and examining\n" +" certificate properties, smartcard-based client certificates are also\n" +" supported via a PKCS#11 wrapper interface;\n" +"@item abstract interface to parsing XML using libxml2 or expat, and wrappers for\n" +" simplifying handling XML HTTP response bodies;\n" +"@item WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify\n" +" property manipulation.\n" +"@end enumerate\n" +msgstr "" + +#: gnu/packages/version-control.scm:804 +msgid "Revision control system" +msgstr "" + +#: gnu/packages/version-control.scm:806 +msgid "" +"Subversion exists to be universally recognized and adopted as a\n" +"centralized version control system characterized by its\n" +"reliability as a safe haven for valuable data; the simplicity of its model and\n" +"usage; and its ability to support the needs of a wide variety of users and\n" +"projects, from individuals to large-scale enterprise operations." +msgstr "" + +#: gnu/packages/version-control.scm:828 +msgid "Per-file local revision control system" +msgstr "" + +#: gnu/packages/version-control.scm:830 +msgid "" +"RCS is the original Revision Control System. It works on a\n" +"file-by-file basis, in contrast to subsequent version control systems such as\n" +"CVS, Subversion, and Git. This can make it suitable for system\n" +"administration files, for example, which are often inherently local to one\n" +"machine." +msgstr "" + +#: gnu/packages/version-control.scm:857 +msgid "Historical centralized version control system" +msgstr "" + +#: gnu/packages/version-control.scm:859 +msgid "" +"CVS is a version control system, an important component of Source\n" +"Configuration Management (SCM). Using it, you can record the history of\n" +"sources files, and documents. It fills a similar role to the free software\n" +"RCS, PRCS, and Aegis packages." +msgstr "" + +#: gnu/packages/version-control.scm:888 +msgid "Export an RCS or CVS history as a fast-import stream" +msgstr "" + +#: gnu/packages/version-control.scm:889 +msgid "" +"This program analyzes a collection of RCS files in a CVS\n" +"repository (or outside of one) and, when possible, emits an equivalent history\n" +"in the form of a fast-import stream. Not all possible histories can be\n" +"rendered this way; the program tries to emit useful warnings when it can't.\n" +"\n" +"The program can also produce a visualization of the resulting commit directed\n" +"acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org,\n" +"Graphviz}. The package also includes @command{cvssync}, a tool for mirroring\n" +"masters from remote CVS hosts." +msgstr "" + +#: gnu/packages/version-control.scm:916 +msgid "Version-control-agnostic ChangeLog diff and commit tool" +msgstr "" + +#: gnu/packages/version-control.scm:918 +msgid "" +"The vc-dwim package contains two tools, \"vc-dwim\" and \"vc-chlog\".\n" +"vc-dwim is a tool that simplifies the task of maintaining a ChangeLog and\n" +"using version control at the same time, for example by printing a reminder\n" +"when a file change has been described in the ChangeLog but the file has not\n" +"been added to the VC. vc-chlog scans changed files and generates\n" +"standards-compliant ChangeLog entries based on the changes that it detects." +msgstr "" + +#: gnu/packages/version-control.scm:943 +msgid "Make histograms from the output of @command{diff}" +msgstr "" + +#: gnu/packages/version-control.scm:945 +msgid "" +"Diffstat reads the output of @command{diff} and displays a histogram of\n" +"the insertions, deletions, and modifications per file. It is useful for\n" +"reviewing large, complex patch files." +msgstr "" + +#: gnu/packages/version-control.scm:984 +msgid "File-based version control like SCCS" +msgstr "" + +#: gnu/packages/version-control.scm:985 +msgid "" +"GNU CSSC provides a replacement for the legacy Unix source\n" +"code control system SCCS. This allows old code still under that system to be\n" +"accessed and migrated on modern systems." +msgstr "" + +#: gnu/packages/version-control.scm:1064 +msgid "Project change supervisor" +msgstr "" + +#: gnu/packages/version-control.scm:1065 +msgid "" +"Aegis is a project change supervisor, and performs some of\n" +"the Software Configuration Management needed in a CASE environment. Aegis\n" +"provides a framework within which a team of developers may work on many\n" +"changes to a program independently, and Aegis coordinates integrating these\n" +"changes back into the master source of the program, with as little disruption\n" +"as possible. Resolution of contention for source files, a major headache for\n" +"any project with more than one developer, is one of Aegis's major functions." +msgstr "" + +#: gnu/packages/version-control.scm:1114 +msgid "Edit version-control repository history" +msgstr "" + +#: gnu/packages/version-control.scm:1115 +msgid "" +"Reposurgeon enables risky operations that version-control\n" +"systems don't want to let you do, such as editing past comments and metadata\n" +"and removing commits. It works with any version control system that can\n" +"export and import Git fast-import streams, including Git, Mercurial, Fossil,\n" +"Bazaar, CVS, RCS, and Src. It can also read Subversion dump files directly\n" +"and can thus be used to script production of very high-quality conversions\n" +"from Subversion to any supported Distributed Version Control System (DVCS)." +msgstr "" + +#: gnu/packages/version-control.scm:1154 +msgid "Ncurses-based text user interface for Git" +msgstr "" + +#: gnu/packages/version-control.scm:1156 +msgid "" +"Tig is an ncurses text user interface for Git, primarily intended as\n" +"a history browser. It can also stage hunks for commit, or colorize the\n" +"output of the 'git' command." +msgstr "" + +#: gnu/packages/version-control.scm:1182 +msgid "Print the modification time of the latest file" +msgstr "" + +#: gnu/packages/version-control.scm:1184 +msgid "" +"Recursively find the newest file in a file tree and print its\n" +"modification time." +msgstr "" + +#: gnu/packages/version-control.scm:1209 +msgid "Multiple repository management tool" +msgstr "" + +#: gnu/packages/version-control.scm:1211 +msgid "" +"Myrepos provides the @code{mr} command, which maps an operation (e.g.,\n" +"fetching updates) over a collection of version control repositories. It\n" +"supports a large number of version control systems: Git, Subversion,\n" +"Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity." +msgstr "" + +#: gnu/packages/version-control.scm:1241 +msgid "Use hubic as a git-annex remote" +msgstr "" + +#: gnu/packages/version-control.scm:1243 +msgid "" +"This package allows you to use your hubic account as a \"special\n" +"repository\" with git-annex." +msgstr "" + +#: gnu/packages/version-control.scm:1293 +#, fuzzy +#| msgid "The SQLite database management system" +msgid "Software configuration management system" +msgstr "Le système de gestion de bases de données SQLite" + +#: gnu/packages/version-control.scm:1295 +msgid "" +"Fossil is a distributed source control management system which supports\n" +"access and administration over HTTP CGI or via a built-in HTTP server. It has\n" +"a built-in wiki, built-in file browsing, built-in tickets system, etc." +msgstr "" + +#: gnu/packages/version-control.scm:1323 +msgid "Static git page generator" +msgstr "" + +#: gnu/packages/version-control.scm:1324 +msgid "" +"Stagit creates static pages for git repositories, the results can\n" +"be served with a HTTP file server of your choice." +msgstr "" + +#: gnu/packages/version-control.scm:1412 +msgid "Distributed Revision Control System" +msgstr "" + +#: gnu/packages/version-control.scm:1414 +msgid "" +"Darcs is a revision control system. It is:\n" +"\n" +"@enumerate\n" +"@item Distributed: Every user has access to the full command set, removing boundaries\n" +"between server and client or committer and non-committers.\n" +"@item Interactive: Darcs is easy to learn and efficient to use because it asks you\n" +"questions in response to simple commands, giving you choices in your work flow.\n" +"You can choose to record one change in a file, while ignoring another. As you update\n" +"from upstream, you can review each patch name, even the full diff for interesting\n" +"patches.\n" +"@item Smart: Originally developed by physicist David Roundy, darcs is based on a\n" +"unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.\n" +"@end enumerate" +msgstr "" + +#: gnu/packages/webkit.scm:123 +msgid "Web content engine for GTK+" +msgstr "" + +#: gnu/packages/webkit.scm:125 +msgid "" +"WebKitGTK+ is a full-featured port of the WebKit rendering engine,\n" +"suitable for projects requiring any kind of web integration, from hybrid\n" +"HTML/CSS applications to full-fledged web browsers." +msgstr "" + +#: gnu/packages/web.scm:119 +msgid "Featureful HTTP server" +msgstr "" + +#: gnu/packages/web.scm:121 +msgid "" +"The Apache HTTP Server Project is a collaborative software development\n" +"effort aimed at creating a robust, commercial-grade, featureful, and\n" +"freely-available source code implementation of an HTTP (Web) server. The\n" +"project is jointly managed by a group of volunteers located around the world,\n" +"using the Internet and the Web to communicate, plan, and develop the server\n" +"and its related documentation." +msgstr "" + +#: gnu/packages/web.scm:199 +msgid "HTTP and reverse proxy server" +msgstr "" + +#: gnu/packages/web.scm:201 +msgid "" +"Nginx (\"engine X\") is a high-performance web and reverse proxy server\n" +"created by Igor Sysoev. It can be used both as a standalone web server\n" +"and as a proxy to reduce the load on back-end HTTP or mail servers." +msgstr "" + +#: gnu/packages/web.scm:230 +msgid "Language-independent, high-performant extension to CGI" +msgstr "" + +#: gnu/packages/web.scm:231 +msgid "" +"FastCGI is a language independent, scalable extension to CGI\n" +"that provides high performance without the limitations of server specific\n" +"APIs." +msgstr "" + +#: gnu/packages/web.scm:267 +msgid "Simple server for running CGI applications over FastCGI" +msgstr "" + +#: gnu/packages/web.scm:268 +msgid "" +"Fcgiwrap is a simple server for running CGI applications\n" +"over FastCGI. It hopes to provide clean CGI support to Nginx (and other web\n" +"servers that may need it)." +msgstr "" + +#: gnu/packages/web.scm:299 +msgid "PSGI/Plack web server" +msgstr "" + +#: gnu/packages/web.scm:300 +msgid "" +"Starman is a PSGI perl web server that has unique features\n" +"such as high performance, preforking, signal support, superdaemon awareness,\n" +"and UNIX socket support." +msgstr "" + +#: gnu/packages/web.scm:319 +#, fuzzy +#| msgid "The GNU C Library" +msgid "JSON C library" +msgstr "La bibliothèque GNU C" + +#: gnu/packages/web.scm:321 +msgid "" +"Jansson is a C library for encoding, decoding and manipulating JSON\n" +"data." +msgstr "" + +#: gnu/packages/web.scm:353 +msgid "JSON implementation in C" +msgstr "" + +#: gnu/packages/web.scm:355 +msgid "" +"JSON-C implements a reference counting object model that allows you to\n" +"easily construct JSON objects in C, output them as JSON formatted strings and\n" +"parse JSON formatted strings back into the C representation of JSON objects." +msgstr "" + +#: gnu/packages/web.scm:438 +msgid "Hierarchical data exploration with zoomable HTML5 pie charts" +msgstr "" + +#: gnu/packages/web.scm:440 +msgid "" +"Krona is a flexible tool for exploring the relative proportions of\n" +"hierarchical data, such as metagenomic classifications, using a radial,\n" +"space-filling display. It is implemented using HTML5 and JavaScript, allowing\n" +"charts to be explored locally or served over the Internet, requiring only a\n" +"current version of any major web browser." +msgstr "" + +#: gnu/packages/web.scm:479 +msgid "JSON parser/generator for C++ with both SAX/DOM style API" +msgstr "" + +#: gnu/packages/web.scm:481 +msgid "" +"RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM\n" +"style API." +msgstr "" + +#: gnu/packages/web.scm:499 +msgid "C library for parsing JSON" +msgstr "" + +#: gnu/packages/web.scm:501 +msgid "" +"Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON\n" +"parser written in ANSI C and a small validating JSON generator." +msgstr "" + +#: gnu/packages/web.scm:531 +msgid "WebSockets library written in C" +msgstr "" + +#: gnu/packages/web.scm:533 +msgid "" +"Libwebsockets is a library that allows C programs to establish client\n" +"and server WebSockets connections---a protocol layered above HTTP that allows\n" +"for efficient socket-like bidirectional reliable communication channels." +msgstr "" + +#: gnu/packages/web.scm:558 +msgid "C library for the Publix Suffix List" +msgstr "" + +#: gnu/packages/web.scm:560 +msgid "" +"A \"public suffix\" is a domain name under which Internet users can\n" +"directly register own names.\n" +"\n" +"Browsers and other web clients can use it to avoid privacy-leaking\n" +"\"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain\n" +"highlighting parts of the domain in a user interface, and sorting domain lists\n" +"by site.\n" +"\n" +"Libpsl has built-in PSL data for fast access, allows to load PSL data from\n" +"files, checks if a given domain is a public suffix, provides immediate cookie\n" +"domain verification, finds the longest public part of a given domain, finds\n" +"the shortest private part of a given domain, works with international\n" +"domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008\n" +"UTS#46." +msgstr "" + +#: gnu/packages/web.scm:605 +msgid "HTML validator and tidier" +msgstr "" + +#: gnu/packages/web.scm:606 +msgid "" +"HTML Tidy is a command-line tool and C library that can be\n" +"used to validate and fix HTML data." +msgstr "" + +#: gnu/packages/web.scm:642 +msgid "Light-weight HTTP/HTTPS proxy daemon" +msgstr "" + +#: gnu/packages/web.scm:643 +msgid "" +"Tinyproxy is a light-weight HTTP/HTTPS proxy\n" +"daemon. Designed from the ground up to be fast and yet small, it is an ideal\n" +"solution for use cases such as embedded deployments where a full featured HTTP\n" +"proxy is required, but the system resources for a larger proxy are\n" +"unavailable." +msgstr "" + +#: gnu/packages/web.scm:676 +msgid "Small caching web proxy" +msgstr "" + +#: gnu/packages/web.scm:678 +msgid "" +"Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy\n" +"server). It was primarily designed to be used by one person or a small group\n" +"of people." +msgstr "" + +#: gnu/packages/web.scm:703 +msgid "Caching web proxy optimized for intermittent internet links" +msgstr "" + +#: gnu/packages/web.scm:704 +msgid "" +"WWWOFFLE is a proxy web server that is especially good for\n" +"intermittent internet links. It can cache HTTP, HTTPS, FTP, and finger\n" +"protocols, and supports browsing and requesting pages while offline, indexing,\n" +"modifying pages and incoming and outgoing headers, monitoring pages for\n" +"changes, and much more." +msgstr "" + +#: gnu/packages/web.scm:727 +msgid "YAML 1.1 parser and emitter written in C" +msgstr "" + +#: gnu/packages/web.scm:729 +msgid "LibYAML is a YAML 1.1 parser and emitter written in C." +msgstr "" + +#: gnu/packages/web.scm:746 gnu/packages/web.scm:780 gnu/packages/web.scm:803 +msgid "Media stream URL parser" +msgstr "" + +#: gnu/packages/web.scm:747 +msgid "" +"This package contains support scripts called by libquvi to\n" +"parse media stream properties." +msgstr "" + +#: gnu/packages/web.scm:781 +msgid "" +"libquvi is a library with a C API for parsing media stream\n" +"URLs and extracting their actual media files." +msgstr "" + +#: gnu/packages/web.scm:804 +msgid "" +"quvi is a command-line-tool suite to extract media files\n" +"from streaming URLs. It is a command-line wrapper for the libquvi library." +msgstr "" + +#: gnu/packages/web.scm:894 +msgid "High-performance asynchronous HTTP client library" +msgstr "" + +#: gnu/packages/web.scm:896 +msgid "" +"serf is a C-based HTTP client library built upon the Apache Portable\n" +"Runtime (APR) library. It multiplexes connections, running the read/write\n" +"communication asynchronously. Memory copies and transformations are kept to a\n" +"minimum to provide high performance operation." +msgstr "" + +#: gnu/packages/web.scm:951 +msgid "CSS pre-processor" +msgstr "" + +#: gnu/packages/web.scm:952 +msgid "" +"SassC is a compiler written in C for the CSS pre-processor\n" +"language known as SASS." +msgstr "" + +#: gnu/packages/web.scm:981 +msgid "Compile a log format string to perl-code" +msgstr "" + +#: gnu/packages/web.scm:982 +msgid "" +"This module provides methods to compile a log format string\n" +"to perl-code, for faster generation of access_log lines." +msgstr "" + +#: gnu/packages/web.scm:1003 +msgid "SASL authentication framework" +msgstr "" + +#: gnu/packages/web.scm:1004 +msgid "Authen::SASL provides an SASL authentication framework." +msgstr "" + +#: gnu/packages/web.scm:1028 +msgid "Sensible default Catalyst action" +msgstr "" + +#: gnu/packages/web.scm:1029 +msgid "" +"This Catalyst action implements a sensible default end\n" +"action, which will forward to the first available view." +msgstr "" + +#: gnu/packages/web.scm:1060 +msgid "Automated REST Method Dispatching" +msgstr "" + +#: gnu/packages/web.scm:1061 +msgid "" +"This Action handles doing automatic method dispatching for\n" +"REST requests. It takes a normal Catalyst action, and changes the dispatch to\n" +"append an underscore and method name. First it will try dispatching to an\n" +"action with the generated name, and failing that it will try to dispatch to a\n" +"regular method." +msgstr "" + +#: gnu/packages/web.scm:1097 +msgid "Storage class for Catalyst authentication using DBIx::Class" +msgstr "" + +#: gnu/packages/web.scm:1098 +msgid "" +"The Catalyst::Authentication::Store::DBIx::Class class\n" +"provides access to authentication information stored in a database via\n" +"DBIx::Class." +msgstr "" + +#: gnu/packages/web.scm:1122 +msgid "Create only one instance of Moose component per context" +msgstr "" + +#: gnu/packages/web.scm:1123 +msgid "" +"Catalyst::Component::InstancePerContext returns a new\n" +"instance of a component on each request." +msgstr "" + +#: gnu/packages/web.scm:1160 +msgid "Catalyst Development Tools" +msgstr "" + +#: gnu/packages/web.scm:1161 +msgid "" +"The Catalyst-Devel distribution includes a variety of\n" +"modules useful for the development of Catalyst applications, but not required\n" +"to run them. Catalyst-Devel includes the Catalyst::Helper system, which\n" +"autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install\n" +"extension for Catalyst; and requirements for a variety of development-related\n" +"modules." +msgstr "" + +#: gnu/packages/web.scm:1190 +msgid "Regex DispatchType for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1191 +msgid "" +"Dispatch type managing path-matching behaviour using\n" +"regexes. Regex dispatch types have been deprecated and removed from Catalyst\n" +"core. It is recommend that you use Chained methods or other techniques\n" +"instead. As part of the refactoring, the dispatch priority of Regex vs Regexp\n" +"vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by\n" +"when the dispatch type is first seen in your application." +msgstr "" + +#: gnu/packages/web.scm:1239 +msgid "DBIx::Class::Schema Model Class" +msgstr "" + +#: gnu/packages/web.scm:1240 +msgid "" +"This is a Catalyst Model for DBIx::Class::Schema-based\n" +"Models." +msgstr "" + +#: gnu/packages/web.scm:1263 +msgid "Request logging from within Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1264 +msgid "" +"This Catalyst plugin enables you to create \"access logs\"\n" +"from within a Catalyst application instead of requiring a webserver to do it\n" +"for you. It will work even with Catalyst debug logging turned off." +msgstr "" + +#: gnu/packages/web.scm:1296 +msgid "Infrastructure plugin for the Catalyst authentication framework" +msgstr "" + +#: gnu/packages/web.scm:1297 +msgid "" +"The authentication plugin provides generic user support for\n" +"Catalyst apps. It is the basis for both authentication (checking the user is\n" +"who they claim to be), and authorization (allowing the user to do what the\n" +"system authorises them to do)." +msgstr "" + +#: gnu/packages/web.scm:1327 +msgid "Role-based authorization for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1328 +msgid "" +"Catalyst::Plugin::Authorization::Roles provides role-based\n" +"authorization for Catalyst based on Catalyst::Plugin::Authentication." +msgstr "" + +#: gnu/packages/web.scm:1351 +msgid "Captchas for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:1352 +msgid "" +"This plugin creates and validates Captcha images for\n" +"Catalyst." +msgstr "" + +#: gnu/packages/web.scm:1378 +msgid "Load config files of various types" +msgstr "" + +#: gnu/packages/web.scm:1379 +msgid "" +"This module will attempt to load find and load configuration\n" +"files of various types. Currently it supports YAML, JSON, XML, INI and Perl\n" +"formats." +msgstr "" + +#: gnu/packages/web.scm:1410 +msgid "Catalyst generic session plugin" +msgstr "" + +#: gnu/packages/web.scm:1411 +msgid "" +"This plugin links the two pieces required for session\n" +"management in web applications together: the state, and the store." +msgstr "" + +#: gnu/packages/web.scm:1437 +msgid "Maintain session IDs using cookies" +msgstr "" + +#: gnu/packages/web.scm:1438 +msgid "" +"In order for Catalyst::Plugin::Session to work, the session\n" +"ID needs to be stored on the client, and the session data needs to be stored\n" +"on the server. This plugin stores the session ID on the client using the\n" +"cookie mechanism." +msgstr "" + +#: gnu/packages/web.scm:1468 +msgid "FastMmap session storage backend" +msgstr "" + +#: gnu/packages/web.scm:1469 +msgid "" +"Catalyst::Plugin::Session::Store::FastMmap is a fast session\n" +"storage plugin for Catalyst that uses an mmap'ed file to act as a shared\n" +"memory interprocess cache. It is based on Cache::FastMmap." +msgstr "" + +#: gnu/packages/web.scm:1492 +msgid "Stack trace on the Catalyst debug screen" +msgstr "" + +#: gnu/packages/web.scm:1493 +msgid "" +"This plugin enhances the standard Catalyst debug screen by\n" +"including a stack trace of your application up to the point where the error\n" +"occurred. Each stack frame is displayed along with the package name, line\n" +"number, file name, and code context surrounding the line number." +msgstr "" + +#: gnu/packages/web.scm:1519 +msgid "Simple serving of static pages" +msgstr "" + +#: gnu/packages/web.scm:1520 +msgid "" +"The Static::Simple plugin is designed to make serving static\n" +"content in your application during development quick and easy, without\n" +"requiring a single line of code from you. This plugin detects static files by\n" +"looking at the file extension in the URL (such as .css or .png or .js). The\n" +"plugin uses the lightweight MIME::Types module to map file extensions to\n" +"IANA-registered MIME types, and will serve your static files with the correct\n" +"MIME type directly to the browser, without being processed through Catalyst." +msgstr "" + +#: gnu/packages/web.scm:1587 +msgid "The Catalyst Framework Runtime" +msgstr "" + +#: gnu/packages/web.scm:1588 +msgid "" +"Catalyst is a modern framework for making web applications.\n" +"It is designed to make it easy to manage the various tasks you need to do to\n" +"run an application on the web, either by doing them itself, or by letting you\n" +"\"plug in\" existing Perl modules that do what you need." +msgstr "" + +#: gnu/packages/web.scm:1618 +msgid "Replace request base with value passed by HTTP proxy" +msgstr "" + +#: gnu/packages/web.scm:1619 +msgid "" +"This module is a Moose::Role which allows you more\n" +"flexibility in your application's deployment configurations when deployed\n" +"behind a proxy. Using this module, the request base ($c->req->base) is\n" +"replaced with the contents of the X-Request-Base header." +msgstr "" + +#: gnu/packages/web.scm:1645 +msgid "Download data in many formats" +msgstr "" + +#: gnu/packages/web.scm:1646 +msgid "" +"The purpose of this module is to provide a method for\n" +"downloading data into many supportable formats. For example, downloading a\n" +"table based report in a variety of formats (CSV, HTML, etc.)." +msgstr "" + +#: gnu/packages/web.scm:1671 +msgid "Catalyst JSON view" +msgstr "" + +#: gnu/packages/web.scm:1672 +msgid "" +"Catalyst::View::JSON is a Catalyst View handler that returns\n" +"stash data in JSON format." +msgstr "" + +#: gnu/packages/web.scm:1698 +msgid "Template View Class" +msgstr "" + +#: gnu/packages/web.scm:1699 +msgid "" +"This module is a Catalyst view class for the Template\n" +"Toolkit." +msgstr "" + +#: gnu/packages/web.scm:1728 +msgid "Trait Loading and Resolution for Catalyst Components" +msgstr "" + +#: gnu/packages/web.scm:1729 +msgid "" +"Adds a \"COMPONENT\" in Catalyst::Component method to your\n" +"Catalyst component base class that reads the optional \"traits\" parameter\n" +"from app and component config and instantiates the component subclass with\n" +"those traits using \"new_with_traits\" in MooseX::Traits from\n" +"MooseX::Traits::Pluggable." +msgstr "" + +#: gnu/packages/web.scm:1754 +msgid "Apply roles to Catalyst classes" +msgstr "" + +#: gnu/packages/web.scm:1755 +msgid "" +"CatalystX::RoleApplicator applies roles to Catalyst\n" +"application classes." +msgstr "" + +#: gnu/packages/web.scm:1781 +msgid "Catalyst development server with Starman" +msgstr "" + +#: gnu/packages/web.scm:1782 +msgid "" +"This module provides a Catalyst extension to replace the\n" +"development server with Starman." +msgstr "" + +#: gnu/packages/web.scm:1806 +msgid "Handle Common Gateway Interface requests and responses" +msgstr "" + +#: gnu/packages/web.scm:1807 +msgid "" +"CGI.pm is a stable, complete and mature solution for\n" +"processing and preparing HTTP requests and responses. Major features include\n" +"processing form submissions, file uploads, reading and writing cookies, query\n" +"string generation and manipulation, and processing and preparing HTTP\n" +"headers." +msgstr "" + +#: gnu/packages/web.scm:1831 +msgid "CGI interface that is CGI.pm compliant" +msgstr "" + +#: gnu/packages/web.scm:1832 +msgid "" +"CGI::Simple provides a relatively lightweight drop in\n" +"replacement for CGI.pm. It shares an identical OO interface to CGI.pm for\n" +"parameter parsing, file upload, cookie handling and header generation." +msgstr "" + +#: gnu/packages/web.scm:1853 +msgid "Build structures from CGI data" +msgstr "" + +#: gnu/packages/web.scm:1854 +msgid "" +"This is a module for building structured data from CGI\n" +"inputs, in a manner reminiscent of how PHP does." +msgstr "" + +#: gnu/packages/web.scm:1877 +msgid "Date conversion routines" +msgstr "" + +#: gnu/packages/web.scm:1878 +msgid "" +"This module provides functions that deal with the date\n" +"formats used by the HTTP protocol." +msgstr "" + +#: gnu/packages/web.scm:1898 +msgid "MD5 sums for files and urls" +msgstr "" + +#: gnu/packages/web.scm:1899 +msgid "" +"Digest::MD5::File is a Perl extension for getting MD5 sums\n" +"for files and urls." +msgstr "" + +#: gnu/packages/web.scm:1917 +msgid "Perl locale encoding determination" +msgstr "" + +#: gnu/packages/web.scm:1919 +msgid "" +"The POSIX locale system is used to specify both the language\n" +"conventions requested by the user and the preferred character set to\n" +"consume and output. The Encode::Locale module looks up the charset and\n" +"encoding (called a CODESET in the locale jargon) and arranges for the\n" +"Encode module to know this encoding under the name \"locale\". It means\n" +"bytes obtained from the environment can be converted to Unicode strings\n" +"by calling Encode::encode(locale => $bytes) and converted back again\n" +"with Encode::decode(locale => $string)." +msgstr "" + +#: gnu/packages/web.scm:1950 +msgid "Syndication feed auto-discovery" +msgstr "" + +#: gnu/packages/web.scm:1951 +msgid "" +"@code{Feed::Find} implements feed auto-discovery for finding\n" +"syndication feeds, given a URI. It will discover the following feed formats:\n" +"RSS 0.91, RSS 1.0, RSS 2.0, Atom." +msgstr "" + +#: gnu/packages/web.scm:1972 +msgid "Perl directory listing parser" +msgstr "" + +#: gnu/packages/web.scm:1974 +msgid "" +"The File::Listing module exports a single function called parse_dir(),\n" +"which can be used to parse directory listings." +msgstr "" + +#: gnu/packages/web.scm:2006 +msgid "Stock and mutual fund quotes" +msgstr "" + +#: gnu/packages/web.scm:2008 +msgid "" +"Finance::Quote gets stock quotes from various internet sources, including\n" +"Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange." +msgstr "" + +#: gnu/packages/web.scm:2030 +msgid "Perl extension providing access to the GSSAPIv2 library" +msgstr "" + +#: gnu/packages/web.scm:2031 +msgid "" +"This is a Perl extension for using GSSAPI C bindings as\n" +"described in RFC 2744." +msgstr "" + +#: gnu/packages/web.scm:2051 +msgid "Manipulate tables of HTML::Element" +msgstr "" + +#: gnu/packages/web.scm:2053 +msgid "" +"HTML::Element::Extended is a Perl extension for manipulating a table\n" +"composed of HTML::Element style components." +msgstr "" + +#: gnu/packages/web.scm:2077 +msgid "Perl class representing an HTML form element" +msgstr "" + +#: gnu/packages/web.scm:2078 +msgid "" +"Objects of the HTML::Form class represents a single HTML\n" +"<form> ... </form> instance." +msgstr "" + +#: gnu/packages/web.scm:2100 +msgid "Check for HTML errors in a string or file" +msgstr "" + +#: gnu/packages/web.scm:2101 +msgid "" +"HTML::Lint is a pure-Perl HTML parser and checker for\n" +"syntactic legitmacy." +msgstr "" + +#: gnu/packages/web.scm:2122 +msgid "Extract contents from HTML tables" +msgstr "" + +#: gnu/packages/web.scm:2124 +msgid "" +"HTML::TableExtract is a Perl module for extracting the content contained\n" +"in tables within an HTML document, either as text or encoded element trees." +msgstr "" + +#: gnu/packages/web.scm:2149 +msgid "Work with HTML in a DOM-like tree structure" +msgstr "" + +#: gnu/packages/web.scm:2150 +msgid "" +"This distribution contains a suite of modules for\n" +"representing, creating, and extracting information from HTML syntax trees." +msgstr "" + +#: gnu/packages/web.scm:2171 +msgid "Perl HTML parser class" +msgstr "" + +#: gnu/packages/web.scm:2173 +msgid "" +"Objects of the HTML::Parser class will recognize markup and separate\n" +"it from plain text (alias data content) in HTML documents. As different\n" +"kinds of markup and text are recognized, the corresponding event handlers\n" +"are invoked." +msgstr "" + +#: gnu/packages/web.scm:2193 +msgid "Perl data tables useful in parsing HTML" +msgstr "" + +#: gnu/packages/web.scm:2195 +msgid "" +"The HTML::Tagset module contains several data tables useful in various\n" +"kinds of HTML parsing operations." +msgstr "" + +#: gnu/packages/web.scm:2214 +msgid "HTML-like templates" +msgstr "" + +#: gnu/packages/web.scm:2216 +msgid "" +"This module attempts to make using HTML templates simple and natural.\n" +"It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>},\n" +"@code{<TMPL_LOOP>}, @code{<TMPL_INCLUDE>}, @code{<TMPL_IF>},\n" +"@code{<TMPL_ELSE>} and @code{<TMPL_UNLESS>}. The file written with HTML and\n" +"these new tags is called a template. Using this module you fill in the values\n" +"for the variables, loops and branches declared in the template. This allows\n" +"you to separate design from the data." +msgstr "" + +#: gnu/packages/web.scm:2244 +msgid "HTTP Body Parser" +msgstr "" + +#: gnu/packages/web.scm:2245 +msgid "" +"HTTP::Body parses chunks of HTTP POST data and supports\n" +"application/octet-stream, application/json, application/x-www-form-urlencoded,\n" +"and multipart/form-data." +msgstr "" + +#: gnu/packages/web.scm:2272 +msgid "Minimalist HTTP user agent cookie jar" +msgstr "" + +#: gnu/packages/web.scm:2273 +msgid "" +"This module implements a minimalist HTTP user agent cookie\n" +"jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>." +msgstr "" + +#: gnu/packages/web.scm:2293 +msgid "Perl HTTP cookie jars" +msgstr "" + +#: gnu/packages/web.scm:2295 +msgid "" +"The HTTP::Cookies class is for objects that represent a cookie jar,\n" +"that is, a database of all the HTTP cookies that a given LWP::UserAgent\n" +"object knows about." +msgstr "" + +#: gnu/packages/web.scm:2317 +msgid "Perl simple http server class" +msgstr "" + +#: gnu/packages/web.scm:2319 +msgid "" +"Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen\n" +"on a socket for incoming requests. The HTTP::Daemon is a subclass of\n" +"IO::Socket::INET, so you can perform socket operations directly on it too." +msgstr "" + +#: gnu/packages/web.scm:2338 +msgid "Perl date conversion routines" +msgstr "" + +#: gnu/packages/web.scm:2340 +msgid "" +"The HTTP::Date module provides functions that deal with date formats\n" +"used by the HTTP protocol (and then some more)." +msgstr "" + +#: gnu/packages/web.scm:2364 +msgid "Perl HTTP style message" +msgstr "" + +#: gnu/packages/web.scm:2366 +msgid "An HTTP::Message object contains some headers and a content body." +msgstr "" + +#: gnu/packages/web.scm:2385 +msgid "Perl http content negotiation" +msgstr "" + +#: gnu/packages/web.scm:2387 +msgid "" +"The HTTP::Negotiate module provides a complete implementation of the\n" +"HTTP content negotiation algorithm specified in\n" +"draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for\n" +"the selection of a preferred content representation based upon attributes\n" +"of the negotiable variants and the value of the various Accept* header\n" +"fields in the request." +msgstr "" + +#: gnu/packages/web.scm:2412 +msgid "Parse HTTP/1.1 requests" +msgstr "" + +#: gnu/packages/web.scm:2413 +msgid "" +"This is an HTTP request parser. It takes chunks of text as\n" +"received and returns a 'hint' as to what is required, or returns the\n" +"HTTP::Request when a complete request has been read. HTTP/1.1 chunking is\n" +"supported." +msgstr "" + +#: gnu/packages/web.scm:2433 +msgid "Fast HTTP request parser" +msgstr "" + +#: gnu/packages/web.scm:2434 +msgid "" +"HTTP::Parser::XS is a fast, primitive HTTP request/response\n" +"parser." +msgstr "" + +#: gnu/packages/web.scm:2455 +msgid "Set up a CGI environment from an HTTP::Request" +msgstr "" + +#: gnu/packages/web.scm:2456 +msgid "" +"This module provides a convenient way to set up a CGI\n" +"environment from an HTTP::Request." +msgstr "" + +#: gnu/packages/web.scm:2480 +msgid "Lightweight HTTP server" +msgstr "" + +#: gnu/packages/web.scm:2481 +msgid "" +"HTTP::Server::Simple is a simple standalone HTTP daemon with\n" +"no non-core module dependencies. It can be used for building a standalone\n" +"http-based UI to your existing tools." +msgstr "" + +#: gnu/packages/web.scm:2506 +msgid "HTTP/1.1 client" +msgstr "" + +#: gnu/packages/web.scm:2507 +msgid "" +"This is a very simple HTTP/1.1 client, designed for doing\n" +"simple requests without the overhead of a large framework like LWP::UserAgent.\n" +"It supports proxies and redirection. It also correctly resumes after EINTR." +msgstr "" + +#: gnu/packages/web.scm:2526 +msgid "Perl module to open an HTML file with automatic charset detection" +msgstr "" + +#: gnu/packages/web.scm:2528 +msgid "" +"IO::HTML provides an easy way to open a file containing HTML while\n" +"automatically determining its encoding. It uses the HTML5 encoding sniffing\n" +"algorithm specified in section 8.2.2.1 of the draft standard." +msgstr "" + +#: gnu/packages/web.scm:2548 +msgid "Family-neutral IP socket supporting both IPv4 and IPv6" +msgstr "" + +#: gnu/packages/web.scm:2549 +msgid "" +"This module provides a protocol-independent way to use IPv4\n" +"and IPv6 sockets, intended as a replacement for IO::Socket::INET." +msgstr "" + +#: gnu/packages/web.scm:2571 +msgid "Nearly transparent SSL encapsulation for IO::Socket::INET" +msgstr "" + +#: gnu/packages/web.scm:2573 +msgid "" +"IO::Socket::SSL makes using SSL/TLS much easier by wrapping the\n" +"necessary functionality into the familiar IO::Socket interface and providing\n" +"secure defaults whenever possible. This way existing applications can be made\n" +"SSL-aware without much effort, at least if you do blocking I/O and don't use\n" +"select or poll." +msgstr "" + +#: gnu/packages/web.scm:2607 +msgid "Perl modules for the WWW" +msgstr "" + +#: gnu/packages/web.scm:2609 +msgid "" +"The libwww-perl collection is a set of Perl modules which provides a\n" +"simple and consistent application programming interface to the\n" +"World-Wide Web. The main focus of the library is to provide classes\n" +"and functions that allow you to write WWW clients. The library also\n" +"contains modules that are of more general use and even classes that\n" +"help you implement simple HTTP servers." +msgstr "" + +#: gnu/packages/web.scm:2631 +msgid "Perl module to guess the media type for a file or a URL" +msgstr "" + +#: gnu/packages/web.scm:2633 +#, scheme-format +msgid "" +"The LWP::MediaTypes module provides functions for handling media (also\n" +"known as MIME) types and encodings. The mapping from file extensions to\n" +"media types is defined by the media.types file. If the ~/.media.types file\n" +"exists it is used instead." +msgstr "" + +#: gnu/packages/web.scm:2659 +msgid "HTTPS support for LWP::UserAgent" +msgstr "" + +#: gnu/packages/web.scm:2660 +msgid "" +"The LWP::Protocol::https module provides support for using\n" +"https schemed URLs with LWP." +msgstr "" + +#: gnu/packages/web.scm:2680 +msgid "Virtual browser that retries errors" +msgstr "" + +#: gnu/packages/web.scm:2681 +msgid "" +"LWP::UserAgent::Determined works just like LWP::UserAgent,\n" +"except that when you use it to get a web page but run into a\n" +"possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds\n" +"and retry a few times." +msgstr "" + +#: gnu/packages/web.scm:2726 +msgid "Perl interface to Amazon S3" +msgstr "" + +#: gnu/packages/web.scm:2727 +#, fuzzy +#| msgid "This package provides an database interface for Perl." +msgid "This module provides a Perlish interface to Amazon S3." +msgstr "Ce paquet fournit une interface de base de données pour Perl." + +#: gnu/packages/web.scm:2747 +msgid "Perl low-level HTTP connection (client)" +msgstr "" + +#: gnu/packages/web.scm:2749 +msgid "" +"The Net::HTTP class is a low-level HTTP client. An instance of the\n" +"Net::HTTP class represents a connection to an HTTP server. The HTTP protocol\n" +"is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and\n" +"HTTP/1.1." +msgstr "" + +#: gnu/packages/web.scm:2769 +msgid "Extensible Perl server engine" +msgstr "" + +#: gnu/packages/web.scm:2770 +msgid "" +"Net::Server is an extensible, generic Perl server engine.\n" +"It attempts to be a generic server as in Net::Daemon and NetServer::Generic.\n" +"It includes with it the ability to run as an inetd\n" +"process (Net::Server::INET), a single connection server (Net::Server or\n" +"Net::Server::Single), a forking server (Net::Server::Fork), a preforking\n" +"server which maintains a constant number of preforked\n" +"children (Net::Server::PreForkSimple), or as a managed preforking server which\n" +"maintains the number of children based on server load (Net::Server::PreFork).\n" +"In all but the inetd type, the server provides the ability to connect to one\n" +"or to multiple server ports." +msgstr "" + +#: gnu/packages/web.scm:2798 +msgid "SSL support for Net::SMTP" +msgstr "" + +#: gnu/packages/web.scm:2799 +msgid "SSL support for Net::SMTP." +msgstr "" + +#: gnu/packages/web.scm:2833 +msgid "Perl Superglue for Web frameworks and servers (PSGI toolkit)" +msgstr "" + +#: gnu/packages/web.scm:2834 +msgid "" +"Plack is a set of tools for using the PSGI stack. It\n" +"contains middleware components, a reference server, and utilities for Web\n" +"application frameworks. Plack is like Ruby's Rack or Python's Paste for\n" +"WSGI." +msgstr "" + +#: gnu/packages/web.scm:2860 +msgid "Plack::Middleware which sets body for redirect response" +msgstr "" + +#: gnu/packages/web.scm:2861 +msgid "" +"This module sets the body in redirect response, if it's not\n" +"already set." +msgstr "" + +#: gnu/packages/web.scm:2884 +msgid "Override REST methods to Plack apps via POST" +msgstr "" + +#: gnu/packages/web.scm:2885 +msgid "" +"This middleware allows for POST requests that pretend to be\n" +"something else: by adding either a header named X-HTTP-Method-Override to the\n" +"request, or a query parameter named x-tunneled-method to the URI, the client\n" +"can say what method it actually meant." +msgstr "" + +#: gnu/packages/web.scm:2909 +msgid "Plack::Middleware which removes body for HTTP response" +msgstr "" + +#: gnu/packages/web.scm:2910 +msgid "" +"This module removes the body in an HTTP response if it's not\n" +"required." +msgstr "" + +#: gnu/packages/web.scm:2931 +msgid "Supports app to run as a reverse proxy backend" +msgstr "" + +#: gnu/packages/web.scm:2932 +msgid "" +"Plack::Middleware::ReverseProxy resets some HTTP headers,\n" +"which are changed by reverse-proxy. You can specify the reverse proxy address\n" +"and stop fake requests using 'enable_if' directive in your app.psgi." +msgstr "" + +#: gnu/packages/web.scm:2953 +msgid "Run HTTP tests on external live servers" +msgstr "" + +#: gnu/packages/web.scm:2954 +msgid "" +"This module allows your to run your Plack::Test tests\n" +"against an external server instead of just against a local application through\n" +"either mocked HTTP or a locally spawned server." +msgstr "" + +#: gnu/packages/web.scm:2976 +msgid "Testing TCP programs" +msgstr "" + +#: gnu/packages/web.scm:2977 +msgid "Test::TCP is test utilities for TCP/IP programs." +msgstr "" + +#: gnu/packages/web.scm:3005 +msgid "Testing-specific WWW::Mechanize subclass" +msgstr "" + +#: gnu/packages/web.scm:3006 +msgid "" +"Test::WWW::Mechanize is a subclass of the Perl module\n" +"WWW::Mechanize that incorporates features for web application testing." +msgstr "" + +#: gnu/packages/web.scm:3039 +msgid "Test::WWW::Mechanize for Catalyst" +msgstr "" + +#: gnu/packages/web.scm:3040 +msgid "" +"The Test::WWW::Mechanize::Catalyst module meshes the\n" +"Test::WWW:Mechanize module and the Catalyst web application framework to allow\n" +"testing of Catalyst applications without needing to start up a web server." +msgstr "" + +#: gnu/packages/web.scm:3064 +msgid "Test PSGI programs using WWW::Mechanize" +msgstr "" + +#: gnu/packages/web.scm:3065 +msgid "" +"PSGI is a specification to decouple web server environments\n" +"from web application framework code. Test::WWW::Mechanize is a subclass of\n" +"WWW::Mechanize that incorporates features for web application testing. The\n" +"Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI\n" +"applications." +msgstr "" + +#: gnu/packages/web.scm:3085 +msgid "Perl Uniform Resource Identifiers (absolute and relative)" +msgstr "" + +#: gnu/packages/web.scm:3087 +msgid "" +"The URI module implements the URI class. Objects of this class\n" +"represent \"Uniform Resource Identifier references\" as specified in RFC 2396\n" +"and updated by RFC 2732." +msgstr "" + +#: gnu/packages/web.scm:3111 +msgid "Smart URI fetching/caching" +msgstr "" + +#: gnu/packages/web.scm:3112 +msgid "" +"@code{URI::Fetch} is a smart client for fetching HTTP pages,\n" +"notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-\n" +"and time-saving way." +msgstr "" + +#: gnu/packages/web.scm:3135 +msgid "Find URIs in arbitrary text" +msgstr "" + +#: gnu/packages/web.scm:3136 +msgid "" +"This module finds URIs and URLs (according to what URI.pm\n" +"considers a URI) in plain text. It only finds URIs which include a\n" +"scheme (http:// or the like), for something a bit less strict, consider\n" +"URI::Find::Schemeless. For a command-line interface, urifind is provided." +msgstr "" + +#: gnu/packages/web.scm:3158 +msgid "WebSocket support for URI package" +msgstr "" + +#: gnu/packages/web.scm:3159 +msgid "" +"With this module, the URI package provides the same set of\n" +"methods for WebSocket URIs as it does for HTTP URIs." +msgstr "" + +#: gnu/packages/web.scm:3182 +msgid "Object for handling URI templates" +msgstr "" + +#: gnu/packages/web.scm:3183 +msgid "" +"This perl module provides a wrapper around URI templates as described in\n" +"RFC 6570." +msgstr "" + +#: gnu/packages/web.scm:3204 +#, fuzzy +#| msgid "SQlite interface for Perl" +msgid "Perl extension interface for libcurl" +msgstr "Interface SQLite pour Perl" + +#: gnu/packages/web.scm:3206 +msgid "" +"This is a Perl extension interface for the libcurl file downloading\n" +"library." +msgstr "" + +#: gnu/packages/web.scm:3235 +msgid "Web browsing in a Perl object" +msgstr "" + +#: gnu/packages/web.scm:3236 +msgid "" +"WWW::Mechanize is a Perl module for stateful programmatic\n" +"web browsing, used for automating interaction with websites." +msgstr "" + +#: gnu/packages/web.scm:3262 +msgid "Search A9 OpenSearch compatible engines" +msgstr "" + +#: gnu/packages/web.scm:3264 +msgid "" +"@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,\n" +"http://opensearch.a9.com} compatible search engines." +msgstr "" + +#: gnu/packages/web.scm:3284 +msgid "Perl database of robots.txt-derived permissions" +msgstr "" + +#: gnu/packages/web.scm:3286 +msgid "" +"The WWW::RobotRules module parses /robots.txt files as specified in\n" +"\"A Standard for Robot Exclusion\", at\n" +"<http://www.robotstxt.org/wc/norobots.html>. Webmasters can use the\n" +"/robots.txt file to forbid conforming robots from accessing parts of\n" +"their web site." +msgstr "" + +#: gnu/packages/web.scm:3309 +msgid "Parse feeds in Python" +msgstr "" + +#: gnu/packages/web.scm:3311 +msgid "" +"Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,\n" +"CDF, Atom 0.3, and Atom 1.0 feeds." +msgstr "" + +#: gnu/packages/web.scm:3332 +msgid "HTTP and WebSocket server library for R" +msgstr "" + +#: gnu/packages/web.scm:3334 +msgid "" +"The httpuv package provides low-level socket and protocol support for\n" +"handling HTTP and WebSocket requests directly from within R. It is primarily\n" +"intended as a building block for other packages, rather than making it\n" +"particularly easy to create complete web applications using httpuv alone." +msgstr "" + +#: gnu/packages/web.scm:3355 +msgid "Robust, high performance JSON parser and generator for R" +msgstr "" + +#: gnu/packages/web.scm:3357 +msgid "" +"The jsonlite package provides a fast JSON parser and generator optimized\n" +"for statistical data and the web. It offers flexible, robust, high\n" +"performance tools for working with JSON in R and is particularly powerful for\n" +"building pipelines and interacting with a web API. In addition to converting\n" +"JSON data from/to R objects, jsonlite contains functions to stream, validate,\n" +"and prettify JSON data. The unit tests included with the package verify that\n" +"all edge cases are encoded and decoded consistently for use with dynamic data\n" +"in systems and applications." +msgstr "" + +#: gnu/packages/web.scm:3385 +msgid "Simple HTTP server to serve static files or dynamic documents" +msgstr "" + +#: gnu/packages/web.scm:3387 +msgid "" +"Servr provides an HTTP server in R to serve static files, or dynamic\n" +"documents that can be converted to HTML files (e.g., R Markdown) under a given\n" +"directory." +msgstr "" + +#: gnu/packages/web.scm:3421 +msgid "R tools for HTML" +msgstr "" + +#: gnu/packages/web.scm:3423 +#, fuzzy +#| msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems." +msgid "This package provides tools for HTML generation and output in R." +msgstr "Ce paquet fournit des outils pour manipuler les systèmes de fichiers ext2/ext3/ext4" + +#: gnu/packages/web.scm:3442 +msgid "HTML Widgets for R" +msgstr "" + +#: gnu/packages/web.scm:3444 +msgid "" +"HTML widgets is a framework for creating HTML widgets that render in\n" +"various contexts including the R console, R Markdown documents, and Shiny web\n" +"applications." +msgstr "" + +#: gnu/packages/web.scm:3469 +msgid "Advanced tables for Markdown/HTML" +msgstr "" + +#: gnu/packages/web.scm:3471 +msgid "" +"This package provides functions to build tables with advanced layout\n" +"elements such as row spanners, column spanners, table spanners, zebra\n" +"striping, and more. While allowing advanced layout, the underlying\n" +"CSS-structure is simple in order to maximize compatibility with word\n" +"processors such as LibreOffice. The package also contains a few text\n" +"formatting functions that help outputting text compatible with HTML or\n" +"LaTeX." +msgstr "" + +#: gnu/packages/web.scm:3508 +msgid "HTTP client for R" +msgstr "" + +#: gnu/packages/web.scm:3510 +msgid "" +"The @code{curl()} and @code{curl_download()} functions provide highly\n" +"configurable drop-in replacements for base @code{url()} and\n" +"@code{download.file()} with better performance, support for encryption, gzip\n" +"compression, authentication, and other @code{libcurl} goodies. The core of\n" +"the package implements a framework for performing fully customized requests\n" +"where data can be processed either in memory, on disk, or streaming via the\n" +"callback or connection interfaces." +msgstr "" + +#: gnu/packages/web.scm:3532 +msgid "Output R objects in HTML format" +msgstr "" + +#: gnu/packages/web.scm:3534 +msgid "" +"This package provides easy-to-use and versatile functions to output R\n" +"objects in HTML format." +msgstr "" + +#: gnu/packages/web.scm:3551 +msgid "JSON library for R" +msgstr "" + +#: gnu/packages/web.scm:3553 +msgid "" +"This package provides functions to convert R objects into JSON objects\n" +"and vice-versa." +msgstr "" + +#: gnu/packages/web.scm:3582 +#, fuzzy +#| msgid "PDF rendering library" +msgid "HTML5 parsing library" +msgstr "Bibliothèque de rendu PDF" + +#: gnu/packages/web.scm:3584 +msgid "" +"Gumbo is an implementation of the HTML5 parsing algorithm implemented as\n" +"a pure C99 library." +msgstr "" + +#: gnu/packages/web.scm:3655 +msgid "Application container server" +msgstr "" + +#: gnu/packages/web.scm:3657 +msgid "" +"uWSGI presents a complete stack for networked/clustered web applications,\n" +"implementing message/object passing, caching, RPC and process management.\n" +"It uses the uwsgi protocol for all the networking/interprocess communications." +msgstr "" + +#: gnu/packages/web.scm:3687 +msgid "Command-line JSON processor" +msgstr "" + +#: gnu/packages/web.scm:3688 +msgid "" +"jq is like sed for JSON data – you can use it to slice and\n" +"filter and map and transform structured data with the same ease that sed, awk,\n" +"grep and friends let you play with text. It is written in portable C. jq can\n" +"mangle the data format that you have into the one that you want with very\n" +"little effort, and the program to do so is often shorter and simpler than\n" +"you'd expect." +msgstr "" + +#: gnu/packages/web.scm:3727 +msgid "Library for mocking web service APIs which use HTTP or HTTPS" +msgstr "" + +#: gnu/packages/web.scm:3729 +msgid "" +"Uhttpmock is a project for mocking web service APIs which use HTTP or\n" +"HTTPS. It provides a library, libuhttpmock, which implements recording and\n" +"playback of HTTP request/response traces." +msgstr "" + +#: gnu/packages/web.scm:3764 +msgid "Single file web server" +msgstr "" + +#: gnu/packages/web.scm:3765 +msgid "" +"Woof (Web Offer One File) is a small simple web server that\n" +"can easily be invoked on a single file. Your partner can access the file with\n" +"tools they trust (e.g. wget)." +msgstr "" + +#: gnu/packages/web.scm:3791 +msgid "Build system for the Netsurf project" +msgstr "" + +#: gnu/packages/web.scm:3793 +msgid "" +"This package provides the shared build system for Netsurf project\n" +"libraries." +msgstr "" + +#: gnu/packages/web.scm:3828 +#, fuzzy +#| msgid "PDF rendering library" +msgid "Parser building library" +msgstr "Bibliothèque de rendu PDF" + +#: gnu/packages/web.scm:3830 +msgid "" +"LibParserUtils is a library for building efficient parsers, written in\n" +"C. It is developed as part of the NetSurf project." +msgstr "" + +#: gnu/packages/web.scm:3858 +msgid "HTML5 compliant parsing library" +msgstr "" + +#: gnu/packages/web.scm:3860 +msgid "" +"Hubbub is an HTML5 compliant parsing library, written in C, which can\n" +"parse both valid and invalid web content. It is developed as part of the\n" +"NetSurf project." +msgstr "" + +#: gnu/packages/web.scm:3884 +msgid "String internment library" +msgstr "" + +#: gnu/packages/web.scm:3886 +msgid "" +"LibWapcaplet provides a reference counted string internment system\n" +"designed to store small strings and allow rapid comparison of them. It is\n" +"developed as part of the Netsurf project." +msgstr "" + +#: gnu/packages/web.scm:3913 +#, fuzzy +#| msgid "PDF rendering library" +msgid "CSS parser and selection library" +msgstr "Bibliothèque de rendu PDF" + +#: gnu/packages/web.scm:3915 +msgid "" +"LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,\n" +"written in C. It is developed as part of the NetSurf project." +msgstr "" + +#: gnu/packages/web.scm:3949 +msgid "Implementation of the W3C DOM" +msgstr "" + +#: gnu/packages/web.scm:3951 +msgid "" +"LibDOM is an implementation of the W3C DOM, written in C. It is\n" +"developed as part of the NetSurf project." +msgstr "" + +#: gnu/packages/web.scm:3978 +#, fuzzy +#| msgid "Library for accessing zip files" +msgid "Library for parsing SVG files" +msgstr "Bibliothèque de manipulation des fichiers zip" + +#: gnu/packages/web.scm:3980 +msgid "" +"Libsvgtiny takes some SVG as input and returns a list of paths and texts\n" +"which can be rendered easily, as defined in\n" +"@url{http://www.w3.org/TR/SVGMobile/}. It is developed as part of the NetSurf\n" +"project." +msgstr "" + +#: gnu/packages/web.scm:4003 +msgid "Decoding library for BMP and ICO files" +msgstr "" + +#: gnu/packages/web.scm:4005 +msgid "" +"Libnsbmp is a decoding library for BMP and ICO image file formats,\n" +"written in C. It is developed as part of the NetSurf project." +msgstr "" + +#: gnu/packages/web.scm:4026 +msgid "Decoding library for GIF files" +msgstr "" + +#: gnu/packages/web.scm:4028 +msgid "" +"Libnsgif is a decoding library for the GIF image file format, written in\n" +"C. It is developed as part of the NetSurf project." +msgstr "" + +#: gnu/packages/web.scm:4049 +msgid "Utility library for NetSurf" +msgstr "" + +#: gnu/packages/web.scm:4051 +msgid "" +"Libnsutils provides a small number of useful utility routines. It is\n" +"developed as part of the NetSurf project." +msgstr "" + +#: gnu/packages/web.scm:4072 +msgid "Library to generate a static Public Suffix List" +msgstr "" + +#: gnu/packages/web.scm:4074 +msgid "" +"Libnspsl is a library to generate a static code representation of the\n" +"Public Suffix List. It is developed as part of the NetSurf project." +msgstr "" + +#: gnu/packages/web.scm:4100 +msgid "Generate JavaScript to DOM bindings" +msgstr "" + +#: gnu/packages/web.scm:4102 +msgid "" +"@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from\n" +"w3c webidl files and a binding configuration file." +msgstr "" + +#: gnu/packages/web.scm:4213 +msgid "Web browser" +msgstr "" + +#: gnu/packages/web.scm:4215 +msgid "" +"NetSurf is a lightweight web browser that has its own layout and\n" +"rendering engine entirely written from scratch. It is small and capable of\n" +"handling many of the web standards in use today." +msgstr "" + +#: gnu/packages/web.scm:4237 +msgid "Unix command line interface to the www" +msgstr "" + +#: gnu/packages/web.scm:4238 +msgid "" +"Surfraw (Shell Users' Revolutionary Front Rage Against the Web)\n" +"provides a unix command line interface to a variety of popular www search engines\n" +"and similar services." +msgstr "" + +#: gnu/packages/web.scm:4269 +msgid "Simple static web server" +msgstr "" + +#: gnu/packages/web.scm:4270 +msgid "" +"darkhttpd is a simple static web server. It is\n" +"standalone and does not need inetd or ucspi-tcp. It does not need any\n" +"config files---you only have to specify the www root." +msgstr "" + +#: gnu/packages/web.scm:4300 +msgid "Analyze Web server logs in real time" +msgstr "" + +#: gnu/packages/web.scm:4302 +msgid "" +"GoAccess is a real-time web log analyzer and interactive viewer that\n" +"runs in a terminal or through your browser. It provides fast and valuable\n" +"HTTP statistics for system administrators that require a visual server report\n" +"on the fly." +msgstr "" + +#: gnu/packages/web.scm:4337 +msgid "Tunnel data connections through HTTP requests" +msgstr "" + +#: gnu/packages/web.scm:4338 +msgid "" +"httptunnel creates a bidirectional virtual data connection\n" +"tunnelled through HTTP (HyperText Transfer Protocol) requests. This can be\n" +"useful for users behind restrictive firewalls. As long as Web traffic is\n" +"allowed, even through a HTTP-only proxy, httptunnel can be combined with other\n" +"tools like SSH (Secure Shell) to reach the outside world." +msgstr "" + +#: gnu/packages/web.scm:4363 +msgid "TLS proxy for clients or servers" +msgstr "" + +#: gnu/packages/web.scm:4364 +msgid "" +"Stunnel is a proxy designed to add TLS encryption\n" +"functionality to existing clients and servers without any changes in the\n" +"programs' code. Its architecture is optimized for security, portability, and\n" +"scalability (including load-balancing), making it suitable for large\n" +"deployments." +msgstr "" + +#: gnu/packages/web.scm:4388 +msgid "Internet services daemon" +msgstr "" + +#: gnu/packages/web.scm:4389 +msgid "" +"@code{xinetd}, a more secure replacement for @code{inetd},\n" +"listens for incoming requests over a network and launches the appropriate\n" +"service for that request. Requests are made using port numbers as identifiers\n" +"and xinetd usually launches another daemon to handle the request. It can be\n" +"used to start services with both privileged and non-privileged port numbers." +msgstr "" + +#: gnu/packages/web.scm:4433 +msgid "HTML Tidy with HTML5 support" +msgstr "" + +#: gnu/packages/web.scm:4435 +msgid "" +"Tidy is a console application which corrects and cleans up\n" +"HTML and XML documents by fixing markup errors and upgrading\n" +"legacy code to modern standards.\n" +"\n" +"Tidy also provides @code{libtidy}, a C static and dynamic library that\n" +"developers can integrate into their applications to make use of the\n" +"functions of Tidy." +msgstr "" + +#: gnu/packages/web.scm:4491 +msgid "Webserver with focus on security" +msgstr "" + +#: gnu/packages/web.scm:4493 +msgid "" +"Hiawatha has been written with security in mind.\n" +"Features include the ability to stop SQL injections, XSS and CSRF attacks and\n" +"exploit attempts." +msgstr "" + +#: gnu/packages/web.scm:4517 +msgid "HTTP request and response service" +msgstr "" + +#: gnu/packages/web.scm:4518 +msgid "" +"Testing an HTTP Library can become difficult sometimes.\n" +"@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the\n" +"response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are\n" +"JSON-encoded." +msgstr "" + +#: gnu/packages/web.scm:4546 +msgid "Test your HTTP library against a local copy of httpbin" +msgstr "" + +#: gnu/packages/web.scm:4548 +msgid "" +"@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected\n" +"into your tests. It automatically starts up a HTTP server in a separate thread running\n" +"@code{httpbin} and provides your test with the URL in the fixture." +msgstr "" + +#: gnu/packages/wordnet.scm:86 msgid "Lexical database for the English language" msgstr "Base de données lexicale pour la langue anglaise" -#: gnu/packages/wordnet.scm:81 +#: gnu/packages/wordnet.scm:88 +#, fuzzy +#| msgid "" +#| "WordNet® is a large lexical database of English. Nouns, verbs,\n" +#| "adjectives and adverbs are grouped into sets of cognitive synonyms\n" +#| "(synsets), each expressing a distinct concept. Synsets are interlinked by\n" +#| "means of conceptual-semantic and lexical relations. The resulting network of\n" +#| "meaningfully related words and concepts can be navigated with the browser.\n" +#| "WordNet is also freely and publicly available for download. WordNet's\n" +#| "structure makes it a useful tool for computational linguistics and natural\n" +#| "language processing." msgid "" -"WordNet® is a large lexical database of English. Nouns, verbs,\n" -"adjectives and adverbs are grouped into sets of cognitive synonyms\n" -"(synsets), each expressing a distinct concept. Synsets are interlinked by\n" -"means of conceptual-semantic and lexical relations. The resulting network of\n" +"WordNet is a large lexical database of English. Nouns, verbs,\n" +"adjectives and adverbs are grouped into sets of cognitive synonyms (synsets),\n" +"each expressing a distinct concept. Synsets are interlinked by means of\n" +"conceptual-semantic and lexical relations. The resulting network of\n" "meaningfully related words and concepts can be navigated with the browser.\n" "WordNet is also freely and publicly available for download. WordNet's\n" "structure makes it a useful tool for computational linguistics and natural\n" @@ -1476,11 +16417,232 @@ msgstr "" "WordNet® est une vaste base de données pour la langue anglaise. Noms, verbes,\n" "adjectifs et adverbes sont regoupés en" -#: gnu/packages/zip.scm:56 +#: gnu/packages/xiph.scm:68 +msgid "Library for manipulating the ogg multimedia format" +msgstr "" + +#: gnu/packages/xiph.scm:70 +msgid "" +"The libogg library allows to manipulate the ogg multimedia container\n" +"format, which encapsulates raw compressed data and allows the interleaving of\n" +"audio and video data. In addition to encapsulation and interleaving of\n" +"multiple data streams, ogg provides packet framing, error detection, and\n" +"periodic timestamps for seeking." +msgstr "" + +#: gnu/packages/xiph.scm:94 +msgid "Library implementing the vorbis audio format" +msgstr "" + +#: gnu/packages/xiph.scm:96 +msgid "" +"The libvorbis library implements the ogg vorbis audio format,\n" +"a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n" +"compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit,\n" +"polyphonic) audio and music at fixed and variable bitrates from 16 to\n" +"128 kbps/channel." +msgstr "" + +#: gnu/packages/xiph.scm:121 +msgid "Library implementing the Theora video format" +msgstr "" + +#: gnu/packages/xiph.scm:123 +msgid "" +"The libtheora library implements the ogg theora video format,\n" +"a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n" +"compressed video format." +msgstr "" + +#: gnu/packages/xiph.scm:144 +msgid "Library for patent-free audio compression format" +msgstr "" + +#: gnu/packages/xiph.scm:146 +msgid "" +"GNU Speex is a patent-free audio compression codec specially designed\n" +"for speech. It is well-adapted to internet applications, such as VoIP. It\n" +"features compression of different bands in the same bitstream, intensity\n" +"stereo encoding, and voice activity detection." +msgstr "" + +#: gnu/packages/xiph.scm:167 +#, fuzzy +#| msgid "PDF rendering library" +msgid "Speex processing library" +msgstr "Bibliothèque de rendu PDF" + +#: gnu/packages/xiph.scm:169 +msgid "" +"SpeexDSP is a @dfn{DSP} (Digital Signal Processing) library based on\n" +"work from the @code{speex} codec." +msgstr "" + +#: gnu/packages/xiph.scm:196 +msgid "Cross platform audio library" +msgstr "" + +#: gnu/packages/xiph.scm:198 +msgid "" +"Libao is a cross-platform audio library that allows programs to\n" +"output audio using a simple API on a wide variety of platforms.\n" +"It currently supports:\n" +"@enumerate\n" +"@item Null output (handy for testing without a sound device),\n" +"@item WAV files,\n" +"@item AU files,\n" +"@item RAW files,\n" +"@item OSS (Open Sound System, used on Linux and FreeBSD),\n" +"@item ALSA (Advanced Linux Sound Architecture),\n" +"@item aRts (Analog RealTime Synth, used by KDE),\n" +"@item PulseAudio (next generation GNOME sound server),\n" +"@item esd (EsounD or Enlightened Sound Daemon),\n" +"@item Mac OS X,\n" +"@item Windows (98 and later),\n" +"@item AIX,\n" +"@item Sun/NetBSD/OpenBSD,\n" +"@item IRIX,\n" +"@item NAS (Network Audio Server),\n" +"@item RoarAudio (Modern, multi-OS, networked Sound System),\n" +"@item OpenBSD's sndio.\n" +"@end enumerate\n" +msgstr "" + +#: gnu/packages/xiph.scm:240 +msgid "Free lossless audio codec" +msgstr "" + +#: gnu/packages/xiph.scm:242 +msgid "" +"FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,\n" +"meaning that audio is compressed in FLAC without any loss in quality." +msgstr "" + +#: gnu/packages/xiph.scm:268 +msgid "Karaoke and text codec for embedding in ogg" +msgstr "" + +#: gnu/packages/xiph.scm:270 +msgid "" +"Kate is an overlay codec, originally designed for karaoke and text,\n" +"that can be multiplixed in Ogg. Text and images can be carried by a Kate\n" +"stream, and animated. Most of the time, this would be multiplexed with\n" +"audio/video to carry subtitles, song lyrics (with or without karaoke data),\n" +"etc., but doesn't have to be.\n" +"\n" +"Series of curves (splines, segments, etc.) may be attached to various\n" +"properties (text position, font size, etc.) to create animated overlays.\n" +"This allows scrolling or fading text to be defined. This can even be used\n" +"to draw arbitrary shapes, so hand drawing can also be represented by a\n" +"Kate stream." +msgstr "" + +#: gnu/packages/xiph.scm:308 +msgid "Ogg vorbis tools" +msgstr "Outils pour Ogg vorbis" + +#: gnu/packages/xiph.scm:310 +msgid "" +"Ogg vorbis is a non-proprietary, patent-and-royalty-free,\n" +"general-purpose compressed audio format.\n" +"\n" +"The package vorbis-tools contains\n" +"ogg123, an ogg vorbis command line audio player;\n" +"oggenc, the ogg vorbis encoder;\n" +"oggdec, a simple, portable command line decoder (to wav and raw);\n" +"ogginfo, to obtain information (tags, bitrate, length, etc.) about\n" +" an ogg vorbis file." +msgstr "" +"Ogg vorbis est un format audio non privateur, gratuit, non breveté, généraliste,\n" +"et compressé.\n" +"\n" +"Le paquet vorbis-tools contient\n" +"ogg123, un lecteur audio en ligne de commande pour ogg vorbis ;\n" +"oggenc, l'encodeur ogg vorbis ;\n" +"oggdec, un décodeur simple et portable en ligne de commande (pour wav et raw) ;\n" +"ogginfo, pour obtenir des informations (tags, débit, longueur, etc) à propos\n" +" d'un fichier ogg vorbis." + +#: gnu/packages/xiph.scm:335 gnu/packages/xiph.scm:398 +msgid "Versatile audio codec" +msgstr "Codec audio polyvalent" + +#: gnu/packages/xiph.scm:337 +msgid "" +"Opus is a totally open, royalty-free, highly versatile audio codec. Opus\n" +"is unmatched for interactive speech and music transmission over the Internet,\n" +"but is also intended for storage and streaming applications. It is\n" +"standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which\n" +"incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec." +msgstr "" +"Opus est un codec audio entièrement libre, gratuit et très polyvalent. Opus\n" +"est imbattu pour les transmissions de la parole et de musique sur internet,\n" +"mais il est aussi destiné au stockage et aux applications de streaming. Il est\n" +"standardisé par l'IETF (Internet Engineering Task Force) dans la RFC 6716\n" +"qui contient les technologies du codec SILK de Skype et du code CELT de\n" +"Xiph.Org." + +#: gnu/packages/xiph.scm:371 +msgid "Command line utilities to encode, inspect, and decode .opus files" +msgstr "Utilitaires en ligne de commande pour encoder, inspecter et décoder des fichiers .opus" + +#: gnu/packages/xiph.scm:372 +msgid "" +"Opus is a royalty-free, highly versatile audio codec.\n" +"Opus-tools provide command line utilities for creating, inspecting and\n" +"decoding .opus files." +msgstr "" +"Opus est un codec audio gratuit et très polyvalent.\n" +"Opus-tools fournit des utilitaires en ligne de commande pour créer, inspecter\n" +"et décoder des fichiers .opus." + +#: gnu/packages/xiph.scm:400 +msgid "" +"The opusfile library provides seeking, decode, and playback of Opus\n" +"streams in the Ogg container (.opus files) including over http(s) on posix and\n" +"windows systems." +msgstr "" +"La bibliothèque opusfile fournit l'avancement, le décodage et la lecture de\n" +"flux Opus dans le conteneur Ogg (fichiers .opus) notamment par http(s) sur les\n" +"systèmes posix et windows." + +#: gnu/packages/xiph.scm:430 +#, fuzzy +#| msgid "Stream editor" +msgid "Streaming media server" +msgstr "Éditeur de flux" + +#: gnu/packages/xiph.scm:431 +msgid "" +"Icecast is a streaming media server which currently supports\n" +"Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams. It can be used to\n" +"create an Internet radio station or a privately running jukebox and many\n" +"things in between." +msgstr "" +"Icecast est un serveur de streaming qui supporte actuellement\n" +"Ogg (Vorbis et Theora), Opus, WebM et les streams audio MP3. Il peut être\n" +"utilisé pour créer une station radio internet ou un jukebox privé et bien\n" +"d'autres choses." + +#: gnu/packages/xiph.scm:459 +msgid "Audio streaming library for icecast encoders" +msgstr "Bibliothèque de streaming audio pour les encodeurs icecast" + +#: gnu/packages/xiph.scm:461 +msgid "" +"Libshout is a library for communicating with and sending data to an\n" +"icecast server. It handles the socket connection, the timing of the data,\n" +"and prevents bad data from getting to the icecast server." +msgstr "" +"Libshout est une bibliothèque pour communiquer et envoyer des données à\n" +"un serveur icecast. Il prend en charge la connexion, la synchronisation des\n" +"données et évite que de mauvaises données n'atteignent le serveur icecast." + +#: gnu/packages/zip.scm:61 msgid "Compression and file packing utility" msgstr "Utilitaire de compression et de paquetage de fichiers" -#: gnu/packages/zip.scm:58 +#: gnu/packages/zip.scm:63 msgid "" "Zip is a compression and file packaging/archive utility. Zip is useful\n" "for packaging a set of files for distribution, for archiving files, and for\n" @@ -1508,11 +16670,11 @@ msgstr "" "pour chaque fichier.Des ratios de compression de 2 à 3 sont généralement\n" "atteignables pour les fichiers texte." -#: gnu/packages/zip.scm:98 +#: gnu/packages/zip.scm:117 msgid "Decompression and file extraction utility" msgstr "Utilitaire de décompression et d'extraction de fichiers" -#: gnu/packages/zip.scm:100 +#: gnu/packages/zip.scm:119 msgid "" "UnZip is an extraction utility for archives compressed in .zip format,\n" "also called \"zipfiles\".\n" @@ -1529,39 +16691,24 @@ msgstr "" "vers le répertoire courant et ses sous-répertoires. Unzip recrée par défaut la\n" "structure des répertoires contenus dans l'archive." -#: gnu/packages/zip.scm:134 +#: gnu/packages/zip.scm:153 msgid "Library for accessing zip files" msgstr "Bibliothèque de manipulation des fichiers zip" -#: gnu/packages/zip.scm:136 +#: gnu/packages/zip.scm:155 msgid "ZZipLib is a library based on zlib for accessing zip files." msgstr "ZZipLib est une bibliothèque basée sur zlip pour la manipulation de fichiers zip." -#: gnu/packages/zip.scm:154 +#: gnu/packages/zip.scm:173 msgid "Provides an interface to ZIP archive files" msgstr "Fournit une interface pour les archives ZIP" -#: gnu/packages/zip.scm:155 -msgid "" -"The Archive::Zip module allows a Perl program to create,\n" -"manipulate, read, and write Zip archive files." -msgstr "" -"Le module Archive::Zip permet à un programme Perl de créer,\n" -"manipuler, lire et écrire des archives Zip." - -#: gnu/packages/zsh.scm:63 -msgid "Powerful shell for interactive use and scripting" -msgstr "Shell puissant pour un usage interactif et l'écriture de scripts" +#~ msgid "" +#~ "Guile-Charting is a Guile Scheme library to create bar charts and graphs\n" +#~ "using the Cairo drawing library." +#~ msgstr "" +#~ "Guile-Charting est une bibliothèque pour Guile permettant de créer des diagrammes\n" +#~ "en barre et des graphiques utilisant la bibliothèque de dessin Cairo." -#: gnu/packages/zsh.scm:64 -msgid "" -"The Z shell (zsh) is a Unix shell that can be used\n" -"as an interactive login shell and as a powerful command interpreter\n" -"for shell scripting. Zsh can be thought of as an extended Bourne shell\n" -"with a large number of improvements, including some features of bash,\n" -"ksh, and tcsh." -msgstr "" -"Le Z shell (zsh) est un shell Unix pouvant être utilisé comme un shell\n" -"interactif de connexion et un puissant interpréteur de commande pour l'écriture de scripts\n" -"shell. Zsh peut être vu comme un Bourn shell étendu doté de nombreuses améliorations\n" -"et incluant certaines fonctionnalités de bash, ksh et tcsh." +#~ msgid "Util-linux is a random collection of utilities for the Linux kernel." +#~ msgstr "Util-linux est une collection d'utilitaires pour le noyau Linux." diff --git a/tests/cpan.scm b/tests/cpan.scm index de865b22be..8900716cb0 100644 --- a/tests/cpan.scm +++ b/tests/cpan.scm @@ -100,7 +100,7 @@ ('home-page "http://search.cpan.org/dist/Foo-Bar") ('synopsis "Fizzle Fuzz") ('description 'fill-in-yourself!) - ('license (package-license perl))) + ('license 'perl-license)) (string=? (bytevector->nix-base32-string (call-with-input-string test-source port-sha256)) hash)) diff --git a/tests/file-systems.scm b/tests/file-systems.scm index 12f4f09c57..4c28d0ebc5 100644 --- a/tests/file-systems.scm +++ b/tests/file-systems.scm @@ -22,38 +22,12 @@ #:use-module (gnu system file-systems) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) - #:use-module (rnrs bytevectors) #:use-module (ice-9 match)) ;; Test the (gnu system file-systems) module. (test-begin "file-systems") -(test-equal "uuid->string" - "c5307e6b-d1ba-499d-89c5-cb0b143577c4" - (uuid->string - #vu8(197 48 126 107 209 186 73 157 137 197 203 11 20 53 119 196))) - -(test-equal "string->uuid" - '(16 "4dab5feb-d176-45de-b287-9b0a6e4c01cb") - (let ((uuid (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) - (list (bytevector-length uuid) (uuid->string uuid)))) - -(test-assert "uuid" - (let ((str "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) - (bytevector=? (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb") - (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))) - -(test-assert "uuid, syntax error" - (catch 'syntax-error - (lambda () - (eval '(uuid "foobar") (current-module)) - #f) - (lambda (key proc message location form . args) - (and (eq? proc 'uuid) - (string-contains message "invalid UUID") - (equal? form '(uuid "foobar")))))) - (test-assert "file-system-needed-for-boot?" (let-syntax ((dummy-fs (syntax-rules () ((_ directory) diff --git a/tests/guix-system.sh b/tests/guix-system.sh index de6db0928c..d575795ea0 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -215,3 +215,7 @@ EOF # In both cases 'my-torrc' should be properly resolved. guix system build "$tmpdir/config.scm" -n (cd "$tmpdir"; guix system build "config.scm" -n) + +# Searching. +guix system search tor | grep "^name: tor" +guix system search anonym network | grep "^name: tor" diff --git a/tests/import-utils.scm b/tests/import-utils.scm index 8d44b9e0e2..3d8d2c698d 100644 --- a/tests/import-utils.scm +++ b/tests/import-utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -21,6 +21,8 @@ #:use-module (guix tests) #:use-module (guix import utils) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix build-system) #:use-module (srfi srfi-64)) (test-begin "import-utils") @@ -38,4 +40,40 @@ 'license:lgpl2.0 (license->symbol license:lgpl2.0)) +(test-assert "alist->package with simple source" + (let* ((meta '(("name" . "hello") + ("version" . "2.10") + ("source" . "mirror://gnu/hello/hello-2.10.tar.gz") + ("build-system" . "gnu") + ("home-page" . "https://gnu.org") + ("synopsis" . "Say hi") + ("description" . "This package says hi.") + ("license" . "GPL-3.0+"))) + (pkg (alist->package meta))) + (and (package? pkg) + (license:license? (package-license pkg)) + (build-system? (package-build-system pkg)) + (origin? (package-source pkg))))) + +(test-assert "alist->package with explicit source" + (let* ((meta '(("name" . "hello") + ("version" . "2.10") + ("source" . (("method" . "url-fetch") + ("uri" . "mirror://gnu/hello/hello-2.10.tar.gz") + ("sha256" . + (("base32" . + "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))) + ("build-system" . "gnu") + ("home-page" . "https://gnu.org") + ("synopsis" . "Say hi") + ("description" . "This package says hi.") + ("license" . "GPL-3.0+"))) + (pkg (alist->package meta))) + (and (package? pkg) + (license:license? (package-license pkg)) + (build-system? (package-build-system pkg)) + (origin? (package-source pkg)) + (equal? (origin-sha256 (package-source pkg)) + (base32 "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))) + (test-end "import-utils") diff --git a/tests/print.scm b/tests/print.scm new file mode 100644 index 0000000000..305807c1d1 --- /dev/null +++ b/tests/print.scm @@ -0,0 +1,64 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (test-print) + #:use-module (guix import print) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (srfi srfi-64)) + +(test-begin "print") + +(define pkg + (package + (name "test") + (version "1.2.3") + (source (origin + (method url-fetch) + (uri (string-append "file:///tmp/test-" + version ".tar.gz")) + (sha256 + (base32 + "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah")))) + (build-system gnu-build-system) + (home-page "http://gnu.org") + (synopsis "Dummy") + (description "This is a dummy package.") + (license gpl3+))) + +(test-equal "simple package" + (package->code pkg) + '(package + (name "test") + (version "1.2.3") + (source (origin + (method url-fetch) + (uri (string-append "file:///tmp/test-" + version ".tar.gz")) + (sha256 + (base32 + "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah")))) + (build-system gnu-build-system) + (home-page "http://gnu.org") + (synopsis "Dummy") + (description "This is a dummy package.") + (license gpl3+))) + +(test-end "print") diff --git a/tests/substitute.scm b/tests/substitute.scm index 69b272f2bb..0ad6247954 100644 --- a/tests/substitute.scm +++ b/tests/substitute.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +28,9 @@ #:use-module (guix base32) #:use-module ((guix store) #:select (%store-prefix)) #:use-module ((guix ui) #:select (guix-warning-port)) - #:use-module ((guix build utils) #:select (delete-file-recursively)) + #:use-module ((guix build utils) + #:select (mkdir-p delete-file-recursively)) + #:use-module (guix tests http) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (web uri) @@ -112,6 +114,15 @@ version identifier.." +(define %main-substitute-directory + ;; The place where 'call-with-narinfo' stores its data by default. + (uri-path (string->uri (getenv "GUIX_BINARY_SUBSTITUTE_URL")))) + +(define %alternate-substitute-directory + ;; Another place. + (string-append (dirname %main-substitute-directory) + "/substituter-alt-data")) + (define %narinfo ;; Skeleton of the narinfo used below. (string-append "StorePath: " (%store-prefix) @@ -125,14 +136,14 @@ References: bar baz Deriver: " (%store-prefix) "/foo.drv System: mips64el-linux\n")) -(define (call-with-narinfo narinfo thunk) - "Call THUNK in a context where $GUIX_BINARY_SUBSTITUTE_URL is populated with +(define* (call-with-narinfo narinfo thunk + #:optional + (narinfo-directory %main-substitute-directory)) + "Call THUNK in a context where the directory at URL is populated with a file for NARINFO." - (let ((narinfo-directory (and=> (string->uri (getenv - "GUIX_BINARY_SUBSTITUTE_URL")) - uri-path)) - (cache-directory (string-append (getenv "XDG_CACHE_HOME") - "/guix/substitute/"))) + (mkdir-p narinfo-directory) + (let ((cache-directory (string-append (getenv "XDG_CACHE_HOME") + "/guix/substitute/"))) (dynamic-wind (lambda () (when (file-exists? cache-directory) @@ -161,14 +172,17 @@ a file for NARINFO." #f)) thunk (lambda () - (delete-file-recursively cache-directory))))) + (when (file-exists? cache-directory) + (delete-file-recursively cache-directory)))))) (define-syntax-rule (with-narinfo narinfo body ...) (call-with-narinfo narinfo (lambda () body ...))) +(define-syntax-rule (with-narinfo* narinfo directory body ...) + (call-with-narinfo narinfo (lambda () body ...) directory)) + ;; Transmit these options to 'guix substitute'. -(set! (@@ (guix scripts substitute) %cache-urls) - (list (getenv "GUIX_BINARY_SUBSTITUTE_URL"))) +(substitute-urls (list (getenv "GUIX_BINARY_SUBSTITUTE_URL"))) (test-equal "query narinfo without signature" "" ; not substitutable @@ -228,7 +242,7 @@ a file for NARINFO." (guix-substitute "--query")))))))) (test-quit "substitute, no signature" - "lacks a signature" + "no valid substitute" (with-narinfo %narinfo (guix-substitute "--substitute" (string-append (%store-prefix) @@ -236,7 +250,7 @@ a file for NARINFO." "foo"))) (test-quit "substitute, invalid hash" - "hash" + "no valid substitute" ;; The hash in the signature differs from the hash of %NARINFO. (with-narinfo (string-append %narinfo "Signature: " (signature-field "different body") @@ -247,7 +261,7 @@ a file for NARINFO." "foo"))) (test-quit "substitute, unauthorized key" - "unauthorized" + "no valid substitute" (with-narinfo (string-append %narinfo "Signature: " (signature-field %narinfo @@ -273,9 +287,158 @@ a file for NARINFO." (lambda () (false-if-exception (delete-file "substitute-retrieved")))))) +(test-equal "substitute, unauthorized narinfo comes first" + "Substitutable data." + (with-narinfo* + (string-append %narinfo "Signature: " + (signature-field + %narinfo + #:public-key %wrong-public-key)) + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " + (signature-field %narinfo)) + %main-substitute-directory + + (dynamic-wind + (const #t) + (lambda () + ;; Remove this file so that the substitute can only be retrieved + ;; from %ALTERNATE-SUBSTITUTE-DIRECTORY. + (delete-file (string-append %main-substitute-directory + "/example.nar")) + + (parameterize ((substitute-urls + (map (cut string-append "file://" <>) + (list %alternate-substitute-directory + %main-substitute-directory)))) + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")) + (call-with-input-file "substitute-retrieved" get-string-all)) + (lambda () + (false-if-exception (delete-file "substitute-retrieved"))))))) + +(test-equal "substitute, unsigned narinfo comes first" + "Substitutable data." + (with-narinfo* %narinfo ;not signed! + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " + (signature-field %narinfo)) + %main-substitute-directory + + (dynamic-wind + (const #t) + (lambda () + ;; Remove this file so that the substitute can only be retrieved + ;; from %ALTERNATE-SUBSTITUTE-DIRECTORY. + (delete-file (string-append %main-substitute-directory + "/example.nar")) + + (parameterize ((substitute-urls + (map (cut string-append "file://" <>) + (list %alternate-substitute-directory + %main-substitute-directory)))) + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")) + (call-with-input-file "substitute-retrieved" get-string-all)) + (lambda () + (false-if-exception (delete-file "substitute-retrieved"))))))) + +(test-equal "substitute, first narinfo is unsigned and has wrong hash" + "Substitutable data." + (with-narinfo* (regexp-substitute #f + (string-match "NarHash: [[:graph:]]+" + %narinfo) + 'pre + "NarHash: sha256:" + (bytevector->nix-base32-string + (make-bytevector 32)) + 'post) + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " + (signature-field %narinfo)) + %main-substitute-directory + + (dynamic-wind + (const #t) + (lambda () + ;; This time remove the file so that the substitute can only be + ;; retrieved from %MAIN-SUBSTITUTE-DIRECTORY. + (delete-file (string-append %alternate-substitute-directory + "/example.nar")) + + (parameterize ((substitute-urls + (map (cut string-append "file://" <>) + (list %alternate-substitute-directory + %main-substitute-directory)))) + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")) + (call-with-input-file "substitute-retrieved" get-string-all)) + (lambda () + (false-if-exception (delete-file "substitute-retrieved"))))))) + +(test-equal "substitute, first narinfo is unsigned and has wrong refs" + "Substitutable data." + (with-narinfo* (regexp-substitute #f + (string-match "References: ([^\n]+)\n" + %narinfo) + 'pre "References: " 1 + " wrong set of references\n" + 'post) + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " + (signature-field %narinfo)) + %main-substitute-directory + + (dynamic-wind + (const #t) + (lambda () + ;; This time remove the file so that the substitute can only be + ;; retrieved from %MAIN-SUBSTITUTE-DIRECTORY. + (delete-file (string-append %alternate-substitute-directory + "/example.nar")) + + (parameterize ((substitute-urls + (map (cut string-append "file://" <>) + (list %alternate-substitute-directory + %main-substitute-directory)))) + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")) + (call-with-input-file "substitute-retrieved" get-string-all)) + (lambda () + (false-if-exception (delete-file "substitute-retrieved"))))))) + +(test-quit "substitute, two invalid narinfos" + "no valid substitute" + (with-narinfo* %narinfo ;not signed + %alternate-substitute-directory + + (with-narinfo* (string-append %narinfo "Signature: " ;unauthorized + (signature-field + %narinfo + #:public-key %wrong-public-key)) + %main-substitute-directory + + (guix-substitute "--substitute" + (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved")))) + (test-end "substitute") ;;; Local Variables: ;;; eval: (put 'with-narinfo 'scheme-indent-function 1) +;;; eval: (put 'with-narinfo* 'scheme-indent-function 2) ;;; eval: (put 'test-quit 'scheme-indent-function 2) ;;; End: diff --git a/tests/uuid.scm b/tests/uuid.scm new file mode 100644 index 0000000000..aacce77233 --- /dev/null +++ b/tests/uuid.scm @@ -0,0 +1,60 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015, 2017 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (test-uuid) + #:use-module (gnu system uuid) + #:use-module (srfi srfi-64) + #:use-module (rnrs bytevectors)) + +(test-begin "uuid") + +(test-equal "uuid->string" + "c5307e6b-d1ba-499d-89c5-cb0b143577c4" + (uuid->string + #vu8(197 48 126 107 209 186 73 157 137 197 203 11 20 53 119 196))) + +(test-equal "string->uuid" + '(16 "4dab5feb-d176-45de-b287-9b0a6e4c01cb") + (let ((uuid (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) + (list (bytevector-length uuid) (uuid->string uuid)))) + +(test-assert "uuid" + (let ((str "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) + (bytevector=? (uuid-bytevector + (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) + (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))) + +(test-assert "uuid, syntax error" + (catch 'syntax-error + (lambda () + (eval '(uuid "foobar") (current-module)) + #f) + (lambda (key proc message location form . args) + (and (eq? proc 'uuid) + (string-contains message "invalid UUID") + (equal? form '(uuid "foobar" 'dce)))))) + +(test-equal "uuid, ISO-9660, format preserved" + "1970-01-01-17-14-42-99" + (uuid->string (uuid "1970-01-01-17-14-42-99" 'iso9660))) + +(test-equal "uuid, FAT32, format preserved" + "1234-ABCD" + (uuid->string (uuid "1234-abcd" 'fat32))) + +(test-end) |